X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexamine_ffmpeg_subtitles_job.cc;h=b2bba11cd05707acf1c32647e48dc2754bcd3d2a;hb=0877bf6d06de8e6f768534ec40c26bf629618a20;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..b2bba11cd 100644 --- a/src/lib/examine_ffmpeg_subtitles_job.cc +++ b/src/lib/examine_ffmpeg_subtitles_job.cc @@ -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; + } } } }