11 #include "../DVDCodecs/Overlay/DVDOverlaySpu.h" 12 #include "../IVideoPlayer.h" 13 #include "DVDDemuxers/DVDDemux.h" 14 #include "DVDInputStream.h" 15 #include "DVDInputStreamFile.h" 16 #include "DVDStateSerializer.h" 17 #include "DllDvdNav.h" 18 #include "cores/MenuType.h" 19 #include "utils/Geometry.h" 23 #define DVD_VIDEO_BLOCKSIZE DVD_VIDEO_LB_LEN // 2048 bytes 25 #define NAVRESULT_NOP 0x00000001 // keep processing messages 26 #define NAVRESULT_DATA 0x00000002 // return data to demuxer 27 #define NAVRESULT_ERROR 0x00000003 // return read error to demuxer 28 #define NAVRESULT_HOLD 0x00000004 // return eof to demuxer 30 #define LIBDVDNAV_BUTTON_NORMAL 0 31 #define LIBDVDNAV_BUTTON_CLICKED 1 33 #define DVDNAV_ERROR -1 37 class CDVDOverlayPicture;
53 void Close()
override;
54 int Read(uint8_t* buf,
int buf_size)
override;
55 int64_t Seek(int64_t offset,
int whence)
override;
56 int GetBlockSize()
override {
return DVDSTREAM_BLOCK_SIZE_DVD; }
57 bool IsEOF()
override {
return m_bEOF; }
58 int64_t GetLength()
override {
return 0; }
59 ENextStream NextStream()
override ;
61 void ActivateButton()
override;
62 void SelectButton(
int iButton)
override;
63 void SkipStill()
override;
66 void OnDown()
override;
67 void OnLeft()
override;
68 void OnRight()
override;
75 void OnBack()
override;
76 void OnNext()
override;
77 void OnPrevious()
override;
78 bool OnMouseMove(
const CPoint &point)
override;
79 bool OnMouseClick(
const CPoint &point)
override;
81 int GetCurrentButton()
override;
82 int GetTotalButtons()
override;
93 bool IsInMenu()
override {
return m_bInMenu; }
94 double GetTimeStampCorrection()
override {
return (
double)(m_iVobUnitCorrection * 1000) / 90; }
96 int GetActiveSubtitleStream();
97 int GetSubTitleStreamCount();
100 bool SetActiveSubtitleStream(
int iId);
101 void EnableSubtitleStream(
bool bEnable);
102 bool IsSubtitleStreamEnabled();
104 int GetActiveAudioStream();
105 int GetAudioStreamCount();
106 int GetActiveAngle();
107 bool SetAngle(
int angle);
108 bool SetActiveAudioStream(
int iId);
111 bool GetState(std::string &xmlstate)
override;
112 bool SetState(
const std::string &xmlstate)
override;
114 int GetChapter()
override {
return m_iPart; }
115 int GetChapterCount()
override {
return m_iPartCount; }
116 void GetChapterName(std::string& name,
int idx=-1)
override {};
117 int64_t GetChapterPos(
int ch=-1)
override;
118 bool SeekChapter(
int iChapter)
override;
121 int GetTotalTime()
override;
122 int GetTime()
override;
124 float GetVideoAspectRatio();
127 bool PosTime(
int iTimeInMsec)
override;
129 std::string GetDVDTitleString();
138 std::string GetDVDSerialString();
146 int ProcessBlock(uint8_t* buffer,
int* read);
148 static void SetAudioStreamName(
AudioStreamInfo &info,
const audio_attr_t &audio_attributes);
149 static void SetSubtitleStreamName(
SubtitleStreamInfo &info,
const subp_attr_t &subp_attributes);
152 void GetVideoResolution(uint32_t * width, uint32_t * height);
161 bool m_bCheckButtons;
168 int64_t m_iCellStart;
172 int64_t m_iVobUnitStart;
173 int64_t m_iVobUnitStop;
174 int64_t m_iVobUnitCorrection;
182 struct dvdnav_s* m_dvdnav;
184 std::unique_ptr<CDVDInputStreamFile> m_pstream;
188 uint8_t m_lastblock[DVD_VIDEO_BLOCKSIZE];
191 std::map<int, std::map<int, int64_t>> m_mapTitleChapters;
Definition: IVideoPlayer.h:28
Definition: StreamInfo.h:65
Pod structure which represents the current dvd state with respect to dvdnav properties.
Definition: DVDStateSerializer.h:16
Definition: DllDvdNav.h:123
Definition: StreamInfo.h:55
Definition: DVDDemuxSPU.h:30
Definition: StreamInfo.h:62
Definition: dvd_reader.h:81
Definition: DVDInputStream.h:76
Auxiliar class to serialize/deserialize the dvd state (into/from XML)
Definition: DVDStateSerializer.h:36
Definition: DVDOverlaySpu.h:16
Represents a file on a share.
Definition: FileItem.h:102