5QString
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);
80 if (!(is_selected_forced_track || 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())
MythDeque< AVSubtitle > m_buffers
std::chrono::milliseconds m_duration
AVSubtitles m_avSubtitles
void ClearRawTextSubtitles(void)
RawTextSubs m_rawTextSubtitles
static void FreeAVSubtitle(AVSubtitle &sub)
bool m_rawTextSubtitlesEnabled
~SubtitleReader() override
QStringList GetRawTextSubtitles(std::chrono::milliseconds &duration)
SubtitleReader(MythPlayer *parent)
void EnableRawTextSubtitles(bool enable)
TextSubtitles m_textSubtitles
bool AddAVSubtitle(AVSubtitle &subtitle, bool fix_position, bool is_selected_forced_track, bool allow_forced, bool isExternal)
void TextSubtitlesUpdated()
bool m_textSubtitlesEnabled
void ClearAVSubtitles(void)
void AddRawTextSubtitle(const QStringList &list, std::chrono::milliseconds duration)
TextSubtitleParser * m_externalParser
void LoadExternalSubtitles(const QString &subtitleFileName, bool isInProgress)
void EnableAVSubtitles(bool enable)
bool m_avSubtitlesEnabled
void EnableTextSubtitles(bool enable)
void SeekFrame(int64_t ts, int flags)
bool HasTextSubtitles(void)
int ReadNextSubtitle(void)
void LoadSubtitles(bool inBackground)
void SeekFrame(int64_t ts, int flags)
int ReadNextSubtitle(void)
Read the next subtitle in the AV stream.
void TextSubtitlesUpdated()
bool GetHasSubtitles() const
void SetInProgress(bool isInProgress)
static bool VERBOSE_LEVEL_CHECK(uint64_t mask, LogLevel_t level)
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.
static const int MAX_BUFFERS_BEFORE_CLEAR