update generic gstreamer

Origin commit data
------------------
Branch: master
Commit: 8218368064
Author: TangoCash <eric@loxat.de>
Date: 2017-11-03 (Fri, 03 Nov 2017)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
TangoCash
2017-11-03 21:18:53 +01:00
parent 25dd69fbc9
commit 2d229cf435
3 changed files with 658 additions and 363 deletions

View File

@@ -36,7 +36,9 @@ if ENABLE_GSTREAMER_10
libgeneric_la_SOURCES += \ libgeneric_la_SOURCES += \
playback_gst_10.cpp playback_gst_10.cpp
AM_LDFLAGS += \ AM_LDFLAGS += \
-lgstreamer-1.0 -lgstreamer-1.0 \
-lgsttag-1.0 \
-lgstmpegts-1.0
else else
libgeneric_la_SOURCES += \ libgeneric_la_SOURCES += \
playback.cpp playback.cpp

View File

@@ -26,7 +26,8 @@
#include <config.h> #include <config.h>
typedef enum { typedef enum
{
STATE_STOP, STATE_STOP,
STATE_PLAY, STATE_PLAY,
STATE_PAUSE, STATE_PAUSE,
@@ -35,55 +36,67 @@ typedef enum {
STATE_SLOW STATE_SLOW
} playstate_t; } playstate_t;
typedef enum { typedef enum
{
PLAYMODE_TS = 0, PLAYMODE_TS = 0,
PLAYMODE_FILE, PLAYMODE_FILE,
} playmode_t; } playmode_t;
struct AVFormatContext;
class cPlayback class cPlayback
{ {
private: private:
bool playing; bool playing, first;
bool decoders_closed;
int mSpeed; int mSpeed;
int mAudioStream; int mAudioStream;
int init_jump;
public: public:
playstate_t playstate; playstate_t playstate;
cPlayback(int); cPlayback(int);
bool Open(playmode_t PlayMode); bool Open(playmode_t PlayMode);
void Close(void); void Close(void);
bool Start(char *filename, int vpid, int vtype, int apid, int ac3, int duration, std::string headers = ""); bool Start(char *filename, int vpid, int vtype, int apid, int ac3, int duration, std::string headers = "");
bool Start(std::string filename, std::string headers = ""); bool Start(std::string filename, std::string headers = "");
bool Play(void); bool Play(void);
bool SyncAV(void); bool SyncAV(void);
bool Stop(void); bool Stop(void);
bool SetAPid(int pid, bool ac3); bool SetAPid(int pid, bool ac3);
bool SetSubtitlePid(int pid); bool SetSubtitlePid(int pid);
bool SetTeletextPid(int pid); bool SetTeletextPid(int pid);
void trickSeek(int ratio); void trickSeek(int ratio);
bool SetSpeed(int speed); bool SetSpeed(int speed);
bool SetSlow(int slow); bool SetSlow(int slow);
bool GetSpeed(int &speed) const; bool GetSpeed(int &speed) const;
bool GetPosition(int &position, int &duration); bool GetPosition(int &position, int &duration);
void GetPts(uint64_t &pts); void GetPts(uint64_t &pts);
bool SetPosition(int position, bool absolute = false); int GetAPid(void);
void FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *numpida, std::string *language); int GetVPid(void);
void FindAllSubtitlePids(int *pids, unsigned int *numpids, std::string *language); int GetSubtitlePid(void);
void FindAllTeletextsubtitlePids(int *pids, unsigned int *numpidt, std::string *tlanguage, int *mags, int *pages); bool SetPosition(int position, bool absolute = false);
void RequestAbort(void); void FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *numpida, std::string *language);
void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language); void FindAllSubtitlePids(int *pids, unsigned int *numpids, std::string *language);
bool SelectSubtitles(int pid); void FindAllTeletextsubtitlePids(int *pids, unsigned int *numpidt, std::string *tlanguage, int *mags, int *pages);
uint64_t GetReadCount(void); void RequestAbort(void);
void GetChapters(std::vector<int> &positions, std::vector<std::string> &titles); void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language);
void GetMetadata(std::vector<std::string> &keys, std::vector<std::string> &values); bool SelectSubtitles(int pid);
// uint64_t GetReadCount(void);
~cPlayback(); void GetChapters(std::vector<int> &positions, std::vector<std::string> &titles);
void getMeta(); void GetMetadata(std::vector<std::string> &keys, std::vector<std::string> &values);
AVFormatContext *GetAVFormatContext();
void ReleaseAVFormatContext();
std::string extra_headers;
std::string user_agent;
//
~cPlayback();
void getMeta();
}; };
#endif #endif

File diff suppressed because it is too large Load Diff