11 #include "DVDInputStream.h" 12 #include "IVideoPlayer.h" 13 #include "addons/AddonProvider.h" 14 #include "addons/binary-addons/AddonInstanceHandler.h" 15 #include "addons/kodi-dev-kit/include/kodi/addon-instance/Inputstream.h" 26 void GetAddonInstance(INSTANCE_TYPE instance_type,
27 ADDON::AddonInfoPtr& addonInfo,
28 KODI_HANDLE& parentInstance)
override;
31 ADDON::AddonInfoPtr m_addonInfo;
32 KODI_HANDLE m_parentInstance;
49 const std::string& instanceId);
52 static bool Supports(
const ADDON::AddonInfoPtr& addonInfo,
const CFileItem& fileitem);
56 void Close()
override;
57 int Read(uint8_t* buf,
int buf_size)
override;
58 int64_t Seek(int64_t offset,
int whence)
override;
59 int64_t GetLength()
override;
60 int GetBlockSize()
override;
61 bool IsEOF()
override;
62 bool CanSeek()
override;
63 bool CanPause()
override;
67 int GetTotalTime()
override;
68 int GetTime()
override;
72 bool GetTimes(
Times ×)
override;
76 bool PosTime(
int ms)
override;
80 bool OpenDemux()
override;
83 std::vector<CDemuxStream*> GetStreams()
const override;
84 void EnableStream(
int streamId,
bool enable)
override;
85 bool OpenStream(
int streamid)
override;
87 int GetNrOfStreams()
const override;
88 void SetSpeed(
int speed)
override;
89 bool SeekTime(
double time,
bool backward =
false,
double* startpts =
nullptr)
override;
90 void AbortDemux()
override;
91 void FlushDemux()
override;
92 void SetVideoResolution(
unsigned int width,
94 unsigned int maxWidth,
95 unsigned int maxHeight)
override;
96 bool IsRealtime()
override;
100 int GetChapter()
override;
101 int GetChapterCount()
override;
102 void GetChapterName(std::string& name,
int ch = -1)
override;
103 int64_t GetChapterPos(
int ch = -1)
override;
104 bool SeekChapter(
int ch)
override;
112 void DetectScreenResolution();
114 unsigned int m_currentVideoWidth{0};
115 unsigned int m_currentVideoHeight{0};
117 std::vector<std::string> m_fileItemProps;
120 int m_streamCount = 0;
122 std::shared_ptr<CInputStreamProvider> m_subAddonProvider;
134 static DEMUX_PACKET* cb_allocate_demux_packet(
void* kodiInstance,
int iDataSize = 0);
143 static DEMUX_PACKET* cb_allocate_encrypted_demux_packet(
void* kodiInstance,
144 unsigned int dataSize,
145 unsigned int encryptedSubsampleCount);
152 static void cb_free_demux_packet(
void* kodiInstance,
DEMUX_PACKET* pPacket);
165 static KODI_HANDLE cb_get_stream_transfer(KODI_HANDLE handle,
Definition: IVideoPlayer.h:28
Definition: AddonInstanceHandler.h:33
Definition: AddonProvider.h:26
Definition: demux_packet.h:45
Definition: DVDDemux.h:70
Definition: DemuxPacket.h:22
Definition: DVDInputStream.h:76
Represents a file on a share.
Definition: FileItem.h:102