11 #include "Interface/StreamInfo.h"    12 #include "cores/FFmpeg.h"    30 #pragma warning(disable : 4244)    35 #include <libavcodec/avcodec.h>    36 #include <libavutil/dovi_meta.h>    37 #include <libavutil/mastering_display_metadata.h>    58   STREAM_SOURCE_NONE = 0x000,
    59   STREAM_SOURCE_DEMUX = 0x100,
    60   STREAM_SOURCE_NAV = 0x200,
    61   STREAM_SOURCE_DEMUX_SUB = 0x300,
    62   STREAM_SOURCE_TEXT = 0x400,
    63   STREAM_SOURCE_VIDEOMUX = 0x500
    66 #define STREAM_SOURCE_MASK(a) ((a)&0xf00)    81     profile = FF_PROFILE_UNKNOWN;
    82     level = FF_LEVEL_UNKNOWN;
    84     source = STREAM_SOURCE_NONE;
    89     flags = StreamFlags::FLAG_NONE;
    95   virtual std::string GetStreamName();
   100   AVCodecID codec = AV_CODEC_ID_NONE;
   101   unsigned int codec_fourcc; 
   112   std::string language; 
   116   std::string codecName;
   120   std::shared_ptr<DemuxCryptoSession> cryptoSession;
   121   std::shared_ptr<ADDON::IAddonProvider> externalInterfaces;
   132   bool interlaced = 
false; 
   137   bool bPTSInvalid = 
false; 
   138   bool bForcedAspect = 
false; 
   139   int iOrientation = 0; 
   140   int iBitsPerPixel = 0;
   144   AVColorSpace colorSpace = AVCOL_SPC_UNSPECIFIED;
   145   AVColorRange colorRange = AVCOL_RANGE_UNSPECIFIED;
   146   AVColorPrimaries colorPrimaries = AVCOL_PRI_UNSPECIFIED;
   147   AVColorTransferCharacteristic colorTransferCharacteristic = AVCOL_TRC_UNSPECIFIED;
   149   std::shared_ptr<AVMasteringDisplayMetadata> masteringMetaData;
   150   std::shared_ptr<AVContentLightMetadata> contentLightMetaData;
   152   std::string stereo_mode; 
   153   StreamHdrType hdr_type = StreamHdrType::HDR_TYPE_NONE; 
   154   AVDOVIDecoderConfigurationRecord dovi{};
   174   std::string GetStreamType();
   181   uint64_t iChannelLayout;
   182   std::string m_channelLayoutName;
   191     type = STREAM_SUBTITLE;
   201     type = STREAM_TELETEXT;
   217     type = STREAM_RADIO_RDS;
   225     : m_demuxerId(NewGuid())
   234   virtual bool Reset() = 0;
   240   virtual void Abort() {}
   245   virtual void Flush() = 0;
   256   virtual bool SeekTime(
double time, 
bool backwards = 
false, 
double* startpts = NULL) = 0;
   262   virtual bool SeekChapter(
int chapter, 
double* startpts = NULL) { 
return false; }
   267   virtual int GetChapterCount() { 
return 0; }
   272   virtual int GetChapter() { 
return 0; }
   279   virtual void GetChapterName(std::string& strChapterName, 
int chapterIdx = -1) {}
   285   virtual int64_t GetChapterPos(
int chapterIdx = -1) { 
return 0; }
   291   virtual void SetSpeed(
int iSpeed) {}
   296   virtual void FillBuffer(
bool mode) {}
   301   virtual int GetStreamLength() { 
return 0; }
   306   virtual CDemuxStream* GetStream(int64_t demuxerId, 
int iStreamId)
 const   308     return GetStream(iStreamId);
   311   virtual std::vector<CDemuxStream*> GetStreams() 
const = 0;
   316   virtual int GetNrOfStreams() 
const = 0;
   321   virtual int GetPrograms(std::vector<ProgramInfo>& programs) { 
return 0; }
   326   virtual void SetProgram(
int progId) {}
   331   virtual std::string GetFileName() { 
return ""; }
   336   int GetNrOfSubtitleStreams();
   341   virtual std::string GetStreamCodecName(int64_t demuxerId, 
int iStreamId)
   343     return GetStreamCodecName(iStreamId);
   349   virtual void EnableStream(int64_t demuxerId, 
int id, 
bool enable) { EnableStream(
id, enable); }
   354   virtual void OpenStream(int64_t demuxerId, 
int id) { OpenStream(
id); }
   360   virtual void SetVideoResolution(
unsigned int width, 
unsigned int height) {}
   365   int64_t GetDemuxerId() { 
return m_demuxerId; }
   368   virtual void EnableStream(
int id, 
bool enable) {}
   369   virtual void OpenStream(
int id) {}
   370   virtual CDemuxStream* GetStream(
int iStreamId) 
const = 0;
   371   virtual std::string GetStreamCodecName(
int iStreamId) { 
return ""; }
   373   int GetNrOfStreams(StreamType streamType);
   380     static int64_t guid = 0;
 
Definition: DVDDemux.h:221
Definition: DVDDemux.h:205
Definition: DVDDemux.h:195
Definition: DVDDemux.h:157
Definition: DVDDemux.h:211
Definition: DVDDemux.h:124
Definition: DemuxCrypto.h:26
Definition: DVDDemux.h:185
Definition: DVDDemux.h:72
Definition: DemuxPacket.h:22