Apply FFmpeg palette fix to examination too; fix build with old FFmpeg.
[dcpomatic.git] / src / lib / examine_ffmpeg_subtitles_job.cc
index 9197bdcbd58c1398715be8fd25c5345a57c187a0..b9d5f54e5d09385f21406a52683dd4cfbe60abd7 100644 (file)
@@ -58,8 +58,6 @@ ExamineFFmpegSubtitlesJob::json_name () const
 void
 ExamineFFmpegSubtitlesJob::run ()
 {
-       dcpomatic_sleep (15);
-
        int64_t const len = _file_group.length ();
        while (true) {
                int r = av_read_frame (_format_context, &_packet);
@@ -84,15 +82,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;
+                                               }
                                        }
                                }
                        }