12 #include "BaseRenderer.h" 13 #include "cores/VideoPlayer/DVDCodecs/Overlay/DVDOverlay.h" 14 #include "cores/VideoPlayer/DVDSubtitles/SubtitlesStyle.h" 15 #include "settings/SubtitlesSettings.h" 16 #include "threads/CriticalSection.h" 17 #include "utils/Observer.h" 24 typedef struct ass_image ASS_Image;
48 static std::shared_ptr<COverlay> Create(ASS_Image* images,
float width,
float height);
72 POSITION_ABSOLUTE_SCREEN,
80 float m_source_width{0};
81 float m_source_height{0};
99 void Notify(
const Observable& obs,
const ObservableMessage msg)
override;
101 void AddOverlay(std::shared_ptr<CDVDOverlay> o,
double pts,
int index);
102 virtual void Render(
int idx);
116 void Release(
int idx);
117 bool HasOverlay(
int idx);
119 void SetStereoMode(
const std::string &stereomode);
127 void SetSubtitleVerticalPosition(
const int value,
bool save);
133 void ResetSubtitlePosition();
142 SElement() : overlay_dvd(NULL) { pts = 0.0; }
144 std::shared_ptr<CDVDOverlay> overlay_dvd;
148 std::shared_ptr<COverlay> Convert(
CDVDOverlay& o,
double pts);
156 std::shared_ptr<COverlay> ConvertLibass(
160 const std::shared_ptr<struct KODI::SUBTITLES::STYLE::style>& overlayStyle);
162 void CreateSubtitlesStyle();
164 void Release(std::vector<SElement>& list);
166 void ReleaseUnused();
173 enum PositonResInfoState
175 POSRESINFO_UNSET = -1,
176 POSRESINFO_SAVE_CHANGES = -2,
179 CCriticalSection m_section;
180 std::vector<SElement> m_buffers[NUM_BUFFERS];
181 std::map<unsigned int, std::shared_ptr<COverlay>> m_textureCache;
182 static unsigned int m_textureid;
186 std::string m_stereomode;
188 int m_subtitlePosition{0};
191 int m_subtitlePosResInfo{POSRESINFO_UNSET};
192 int m_subtitleVerticalMargin{0};
193 bool m_saveSubtitlePosition{
false};
194 KODI::SUBTITLES::HorizontalAlign m_subtitleHorizontalAlign{
195 KODI::SUBTITLES::HorizontalAlign::CENTER};
196 KODI::SUBTITLES::Align m_subtitleAlign{KODI::SUBTITLES::Align::BOTTOM_OUTSIDE};
198 std::shared_ptr<struct KODI::SUBTITLES::STYLE::style> m_overlayStyle;
199 std::atomic<bool> m_isSettingsChanged{
false};
Definition: DVDOverlayText.h:16
Definition: DVDOverlaySSA.h:16
Definition: OverlayRenderer.h:43
Definition: OverlayRenderer.h:92
Definition: OverlayRenderer.h:33
Definition: DVDOverlayImage.h:18
bool IsSquareResolution(float resRatio)
Given the resolution ratio determines if it is a 4/3 resolution.
Definition: OverlayRenderer.h:89
Definition: DVDOverlayLibass.h:16
Definition: Observer.h:31
Definition: OverlayRenderer.h:35
Definition: OverlayRenderer.h:140
Definition: DVDOverlaySpu.h:16
Definition: Observer.h:44
Definition: DVDOverlay.h:27