-
Notifications
You must be signed in to change notification settings - Fork 343
/
subtitlereader.h
63 lines (51 loc) · 1.49 KB
/
subtitlereader.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef SUBTITLEREADER_H
#define SUBTITLEREADER_H
#include <QMutex>
extern "C" {
#include "libavcodec/avcodec.h"
}
#include "mythdeque.h"
#include "textsubtitleparser.h"
class AVSubtitles
{
public:
AVSubtitles() : fixPosition(false) { }
MythDeque<AVSubtitle> buffers;
QMutex lock;
bool fixPosition;
};
class RawTextSubs
{
public:
QStringList buffers;
uint64_t duration;
QMutex lock;
};
class SubtitleReader
{
public:
SubtitleReader();
~SubtitleReader();
void EnableAVSubtitles(bool enable);
void EnableTextSubtitles(bool enable);
void EnableRawTextSubtitles(bool enable);
AVSubtitles* GetAVSubtitles(void) { return &m_AVSubtitles; }
bool AddAVSubtitle(const AVSubtitle& subtitle, bool fix_position,
bool allow_forced);
void ClearAVSubtitles(void);
void FreeAVSubtitle(const AVSubtitle &sub);
TextSubtitles* GetTextSubtitles(void) { return &m_TextSubtitles; }
bool HasTextSubtitles(void);
bool LoadExternalSubtitles(const QString &videoFile, bool isInProgress);
QStringList GetRawTextSubtitles(uint64_t &duration);
void AddRawTextSubtitle(QStringList list, uint64_t duration);
void ClearRawTextSubtitles(void);
private:
AVSubtitles m_AVSubtitles;
bool m_AVSubtitlesEnabled;
TextSubtitles m_TextSubtitles;
bool m_TextSubtitlesEnabled;
RawTextSubs m_RawTextSubtitles;
bool m_RawTextSubtitlesEnabled;
};
#endif // SUBTITLEREADER_H