2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
11 #include "DVDDemuxSPU.h"
12 #include "DVDMessageQueue.h"
13 #include "DVDOverlayContainer.h"
14 #include "DVDStreamInfo.h"
15 #include "DVDSubtitles/DVDFactorySubtitle.h"
16 #include "IVideoPlayer.h"
18 class CDVDInputStream
;
19 class CDVDSubtitleStream
;
20 class CDVDSubtitleParser
;
21 class CDVDInputStreamNavigator
;
22 class CDVDOverlayCodec
;
24 class CVideoPlayerSubtitle
: public IDVDStreamPlayer
27 CVideoPlayerSubtitle(CDVDOverlayContainer
* pOverlayContainer
, CProcessInfo
&processInfo
);
28 ~CVideoPlayerSubtitle() override
;
30 void Process(double pts
, double offset
);
32 void FindSubtitles(const char* strFilename
);
33 int GetSubtitleCount();
35 void UpdateOverlayInfo(const std::shared_ptr
<CDVDInputStreamNavigator
>& pStream
, int iAction
)
37 m_pOverlayContainer
->UpdateOverlayInfo(pStream
, &m_dvdspus
, iAction
);
40 bool AcceptsData() const override
;
41 void SendMessage(std::shared_ptr
<CDVDMsg
> pMsg
, int priority
= 0) override
;
42 void FlushMessages() override
{}
43 bool OpenStream(CDVDStreamInfo hints
) override
{ return OpenStream(hints
, hints
.filename
); }
44 bool OpenStream(CDVDStreamInfo
&hints
, std::string
& filename
);
45 void CloseStream(bool bWaitForBuffers
) override
;
47 bool IsInited() const override
{ return true; }
48 bool IsStalled() const override
{ return m_pOverlayContainer
->GetSize() == 0; }
50 CDVDOverlayContainer
* m_pOverlayContainer
;
52 std::unique_ptr
<CDVDSubtitleParser
> m_pSubtitleFileParser
;
53 std::unique_ptr
<CDVDOverlayCodec
> m_pOverlayCodec
;
54 CDVDDemuxSPU m_dvdspus
;
56 CDVDStreamInfo m_streaminfo
;
60 CCriticalSection m_section
;
64 //typedef struct SubtitleInfo