X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fffmpeg_examiner.cc;h=48738b91725da6cc156f901e6b3494c6d9177d10;hb=22873931f874a87fcf6a0077eddbec0f97eb3423;hp=719e7a2b0863e085fcb6a0308d73e345c8df1bcb;hpb=030c74f085718ea276c6e55a7a7c7de267a9ebf3;p=dcpomatic.git diff --git a/src/lib/ffmpeg_examiner.cc b/src/lib/ffmpeg_examiner.cc index 719e7a2b0..48738b917 100644 --- a/src/lib/ffmpeg_examiner.cc +++ b/src/lib/ffmpeg_examiner.cc @@ -142,11 +142,13 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr c, shared_ptrsecond) { i->first->add_subtitle ( + i->second->id, ContentTimePeriod ( - i->second.get (), + i->second->time, ContentTime::from_frames (video_length(), video_frame_rate().get_value_or (24)) ) ); @@ -203,24 +205,25 @@ FFmpegExaminer::subtitle_packet (AVCodecContext* context, shared_ptr= 0 && frame_finished) { + string id = subtitle_id (sub); FFmpegSubtitlePeriod const period = subtitle_period (sub); LastSubtitleMap::iterator last = _last_subtitle_start.find (stream); if (last != _last_subtitle_start.end() && last->second) { /* We have seen the start of a subtitle but not yet the end. Whatever this is finishes the previous subtitle, so add it */ - stream->add_subtitle (ContentTimePeriod (last->second.get (), period.from)); + stream->add_subtitle (last->second->id, ContentTimePeriod (last->second->time, period.from)); if (sub.num_rects == 0) { /* This is a `proper' end-of-subtitle */ - _last_subtitle_start[stream] = optional (); + _last_subtitle_start[stream] = optional (); } else { /* This is just another subtitle, so we start again */ - _last_subtitle_start[stream] = period.from; + _last_subtitle_start[stream] = SubtitleStart (id, period.from); } } else if (sub.num_rects == 1) { if (period.to) { - stream->add_subtitle (ContentTimePeriod (period.from, period.to.get ())); + stream->add_subtitle (id, ContentTimePeriod (period.from, period.to.get ())); } else { - _last_subtitle_start[stream] = period.from; + _last_subtitle_start[stream] = SubtitleStart (id, period.from); } } avsubtitle_free (&sub);