11 #include "BlurayStateSerializer.h" 12 #include "DVDInputStream.h" 19 #include <libbluray/bluray.h> 20 #include <libbluray/bluray-version.h> 21 #include <libbluray/keys.h> 22 #include <libbluray/overlay.h> 23 #include <libbluray/player_settings.h> 24 #include "DVDInputStreamFile.h" 27 #define MAX_PLAYLIST_ID 99999 28 #define MAX_CLIP_ID 99999 29 #define BD_EVENT_MENU_OVERLAY -1 30 #define BD_EVENT_MENU_ERROR -2 31 #define BD_EVENT_ENC_ERROR -3 33 #define HDMV_PID_VIDEO 0x1011 34 #define HDMV_PID_AUDIO_FIRST 0x1100 35 #define HDMV_PID_AUDIO_LAST 0x111f 36 #define HDMV_PID_PG_FIRST 0x1200 37 #define HDMV_PID_PG_LAST 0x121f 38 #define HDMV_PID_PG_HDR_FIRST 0x12a0 39 #define HDMV_PID_PG_HDR_LAST 0x12bf 40 #define HDMV_PID_IG_FIRST 0x1400 41 #define HDMV_PID_IG_LAST 0x141f 58 void Close()
override;
59 int Read(uint8_t* buf,
int buf_size)
override;
60 int64_t Seek(int64_t offset,
int whence)
override;
61 void Abort()
override;
62 bool IsEOF()
override;
63 int64_t GetLength()
override;
64 int GetBlockSize()
override {
return 6144; }
65 ENextStream NextStream()
override;
69 void ActivateButton()
override { UserInput(BD_VK_ENTER); }
70 void SelectButton(
int iButton)
override 73 UserInput((bd_vk_key_e)(BD_VK_0 + iButton));
75 int GetCurrentButton()
override {
return 0; }
76 int GetTotalButtons()
override {
return 0; }
77 void OnUp()
override { UserInput(BD_VK_UP); }
78 void OnDown()
override { UserInput(BD_VK_DOWN); }
79 void OnLeft()
override { UserInput(BD_VK_LEFT); }
80 void OnRight()
override { UserInput(BD_VK_RIGHT); }
86 void OnBack()
override 91 void OnNext()
override {}
92 void OnPrevious()
override {}
100 bool IsInMenu()
override;
101 bool OnMouseMove(
const CPoint &point)
override {
return MouseMove(point); }
102 bool OnMouseClick(
const CPoint &point)
override {
return MouseClick(point); }
103 void SkipStill()
override;
104 bool GetState(std::string& xmlstate)
override;
105 bool SetState(
const std::string& xmlstate)
override;
106 bool CanSeek()
override;
109 void UserInput(bd_vk_key_e vk);
110 bool MouseMove(
const CPoint &point);
111 bool MouseClick(
const CPoint &point);
113 int GetChapter()
override;
114 int GetChapterCount()
override;
115 void GetChapterName(std::string& name,
int ch=-1)
override {};
116 int64_t GetChapterPos(
int ch)
override;
117 bool SeekChapter(
int ch)
override;
120 int GetTotalTime()
override;
121 int GetTime()
override;
124 bool PosTime(
int ms)
override;
126 void GetStreamInfo(
int pid, std::string &language);
128 void OverlayCallback(
const BD_OVERLAY *
const);
129 #ifdef HAVE_LIBBLURAY_BDJ 130 void OverlayCallbackARGB(
const struct bd_argb_overlay_s *
const);
133 BLURAY_TITLE_INFO* GetTitleLongest();
134 BLURAY_TITLE_INFO* GetTitleFile(
const std::string& name);
141 void OverlayFlush(int64_t pts);
143 static void OverlayClear(
SPlane& plane,
int x,
int y,
int w,
int h);
144 static void OverlayInit (
SPlane& plane,
int w,
int h);
147 BLURAY* m_bd =
nullptr;
148 const BLURAY_TITLE* m_title =
nullptr;
149 BLURAY_TITLE_INFO* m_titleInfo =
nullptr;
150 uint32_t m_playlist = MAX_PLAYLIST_ID + 1;
151 BLURAY_CLIP_INFO* m_clip =
nullptr;
152 uint32_t m_angle = 0;
154 bool m_isInMainMenu =
false;
155 bool m_hasOverlay =
false;
156 bool m_navmode =
false;
157 int m_dispTimeBeforeRead = 0;
159 typedef std::shared_ptr<CDVDOverlayImage> SOverlay;
160 typedef std::list<SOverlay> SOverlays;
177 } m_hold = HOLD_NONE;
179 #ifdef HAVE_LIBBLURAY_BDJ 180 struct bd_argb_buffer_s m_argb;
185 void SetupPlayerSettings();
186 void FreeTitleInfo();
187 std::unique_ptr<CDVDInputStreamFile> m_pstream;
188 std::string m_rootPath;
Definition: IVideoPlayer.h:28
Auxiliar class to serialize/deserialize the Bluray state (into/from XML)
Definition: BlurayStateSerializer.h:22
Definition: DVDOverlayImage.h:18
Definition: DVDInputStream.h:76
Represents a file on a share.
Definition: FileItem.h:102