kodi
VideoPlayerSubtitle.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
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"
17 
18 class CDVDInputStream;
19 class CDVDSubtitleStream;
20 class CDVDSubtitleParser;
22 class CDVDOverlayCodec;
23 
25 {
26 public:
27  CVideoPlayerSubtitle(CDVDOverlayContainer* pOverlayContainer, CProcessInfo &processInfo);
28  ~CVideoPlayerSubtitle() override;
29 
30  void Process(double pts, double offset);
31  void Flush();
32  void FindSubtitles(const char* strFilename);
33  int GetSubtitleCount();
34 
35  void UpdateOverlayInfo(const std::shared_ptr<CDVDInputStreamNavigator>& pStream, int iAction)
36  {
37  m_pOverlayContainer->UpdateOverlayInfo(pStream, &m_dvdspus, iAction);
38  }
39 
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;
46 
47  bool IsInited() const override { return true; }
48  bool IsStalled() const override { return m_pOverlayContainer->GetSize() == 0; }
49 private:
50  CDVDOverlayContainer* m_pOverlayContainer;
51 
52  std::unique_ptr<CDVDSubtitleParser> m_pSubtitleFileParser;
53  std::unique_ptr<CDVDOverlayCodec> m_pOverlayCodec;
54  CDVDDemuxSPU m_dvdspus;
55 
56  CDVDStreamInfo m_streaminfo;
57  double m_lastPts;
58 
59 
60  CCriticalSection m_section;
61 };
62 
63 
64 //typedef struct SubtitleInfo
65 //{
66 
67 //
68 //} SubtitleInfo;
69 
Definition: DVDStreamInfo.h:25
Definition: IVideoPlayer.h:36
Definition: DVDSubtitleStream.h:21
Definition: DVDInputStream.h:50
Definition: VideoPlayerSubtitle.h:24
Definition: DVDOverlayCodec.h:39
Definition: DVDDemuxSPU.h:30
Definition: ProcessInfo.h:26
Definition: DVDInputStreamNavigator.h:41
Definition: DVDOverlayContainer.h:19
Definition: DVDSubtitleParser.h:21