Go to the documentation of this file.
5 QString
toString(
const AVSubtitle& sub)
7 auto start = QTime(0,0).addMSecs(sub.start_display_time);
8 auto end = QTime(0,0).addMSecs(sub.end_display_time);
9 return QString(
"%1-%2 (%3-%4)")
10 .arg(start.toString(
"HH:mm:ss.zzz"),
11 end.toString(
"HH:mm:ss.zzz"))
12 .arg(sub.start_display_time)
13 .arg(sub.end_display_time);
60 bool is_selected_forced_track,
64 bool enableforced =
false;
73 for (
unsigned i = 0; i < subtitle.num_rects; i++)
75 forced = forced ||
static_cast<bool>(subtitle.rects[i]->flags & AV_SUBTITLE_FLAG_FORCED);
88 LOG(VB_PLAYBACK, LOG_INFO,
89 "SubtitleReader: Ignoring forced AV subtitle.");
94 LOG(VB_PLAYBACK, LOG_INFO,
95 "SubtitleReader: Allowing forced AV subtitle.");
107 if (subtitle.num_rects > 1000)
113 #ifdef DEBUG_SUBTITLES
116 LOG(VB_PLAYBACK, LOG_DEBUG,
117 QString(
"AddAVSubtitle adding sub %1").arg(
toString(subtitle)));
121 bool clearsubs =
false;
130 LOG(VB_GENERAL, LOG_ERR,
131 QString(
"SubtitleReader: %1 AVSubtitles queued (more than %2) - clearing.")
157 avsubtitle_free(&subtitle);
164 if (!subtitleFileName.isEmpty())
static const int MAX_BUFFERS_BEFORE_CLEAR
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.
void TextSubtitlesUpdated()
void SetInProgress(bool isInProgress)
bool AddAVSubtitle(AVSubtitle &subtitle, bool fix_position, bool is_selected_forced_track, bool allow_forced, bool isExternal)
static bool VERBOSE_LEVEL_CHECK(uint64_t mask, LogLevel_t level)
SubtitleReader(MythPlayer *parent)
TextSubtitles m_textSubtitles
void SeekFrame(int64_t ts, int flags)
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
void EnableAVSubtitles(bool enable)
void ClearAVSubtitles(void)
std::chrono::milliseconds m_duration
int ReadNextSubtitle(void)
void LoadExternalSubtitles(const QString &subtitleFileName, bool isInProgress)
void EnableTextSubtitles(bool enable)
~SubtitleReader() override
void SeekFrame(int64_t ts, int flags)
void ClearRawTextSubtitles(void)
static void FreeAVSubtitle(AVSubtitle &sub)
RawTextSubs m_rawTextSubtitles
void EnableRawTextSubtitles(bool enable)
QStringList GetRawTextSubtitles(std::chrono::milliseconds &duration)
bool m_rawTextSubtitlesEnabled
bool m_avSubtitlesEnabled
MythDeque< AVSubtitle > m_buffers
bool GetHasSubtitles() const
bool m_textSubtitlesEnabled
bool HasTextSubtitles(void)
void AddRawTextSubtitle(const QStringList &list, std::chrono::milliseconds duration)
TextSubtitleParser * m_externalParser
void TextSubtitlesUpdated()
AVSubtitles m_avSubtitles
int ReadNextSubtitle(void)
Read the next subtitle in the AV stream.
void LoadSubtitles(bool inBackground)