X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexamine_ffmpeg_subtitles_job.cc;h=90589eb2843c8794fc2b4c46daca4b53b41f234a;hb=dd9be86db6cde0afa5da0d1d1ac43b42e05dca26;hp=dbd265ecaacd33d8e4251b29d196c05f636fb147;hpb=3743fb15c41eaa66cf625cb4ce9b1f8122b900b4;p=dcpomatic.git diff --git a/src/lib/examine_ffmpeg_subtitles_job.cc b/src/lib/examine_ffmpeg_subtitles_job.cc index dbd265eca..90589eb28 100644 --- a/src/lib/examine_ffmpeg_subtitles_job.cc +++ b/src/lib/examine_ffmpeg_subtitles_job.cc @@ -33,7 +33,7 @@ extern "C" { using std::string; using std::cout; -using boost::shared_ptr; +using std::shared_ptr; ExamineFFmpegSubtitlesJob::ExamineFFmpegSubtitlesJob (shared_ptr film, shared_ptr c) : Job (film) @@ -43,6 +43,11 @@ ExamineFFmpegSubtitlesJob::ExamineFFmpegSubtitlesJob (shared_ptr fil } +ExamineFFmpegSubtitlesJob::~ExamineFFmpegSubtitlesJob () +{ + stop_thread (); +} + string ExamineFFmpegSubtitlesJob::name () const { @@ -82,15 +87,18 @@ ExamineFFmpegSubtitlesJob::run () /* sub_p looks up into a BGRA palette which is here (i.e. first byte B, second G, third R, fourth A) */ - uint32_t const * palette = (uint32_t *) rect->pict.data[1]; + uint8_t const * palette = rect->pict.data[1]; #else /* sub_p looks up into a BGRA palette which is here (i.e. first byte B, second G, third R, fourth A) */ - uint32_t const * palette = (uint32_t *) rect->data[1]; + uint8_t const * palette = rect->data[1]; #endif - RGBA c ((palette[i] & 0xff0000) >> 16, (palette[i] & 0xff00) >> 8, palette[i] & 0xff, (palette[i] & 0xff000000) >> 24); - _content->subtitle_stream()->set_colour (c, c); + for (int j = 0; j < rect->nb_colors; ++j) { + RGBA c (palette[2], palette[1], palette[0], palette[3]); + _content->subtitle_stream()->set_colour (c, c); + palette += 4; + } } } }