diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-12-20 00:27:18 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-12-20 00:27:18 +0000 |
| commit | 58bf77268a8e82e73d7f17ab2fe6dcd29370ade3 (patch) | |
| tree | 0ad0542a74a029920afac6f2eb74f05770d9d4b0 /src/lib/ffmpeg_decoder.cc | |
| parent | 7829cea9160cd562ed3da5ca1a0060de29edacf8 (diff) | |
| parent | 7faadda40c0ab027b992789329a558fbaf3ec0cc (diff) | |
Merge branch 'video-player' of /home/carl/git/dvdomatic into video-player
Diffstat (limited to 'src/lib/ffmpeg_decoder.cc')
| -rw-r--r-- | src/lib/ffmpeg_decoder.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index 60bb3271e..a19f26ad7 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -572,10 +572,8 @@ FFmpegDecoder::filter_and_emit_video (AVFrame* frame) list<shared_ptr<Image> > images = graph->process (frame); - double const st = av_frame_get_best_effort_timestamp(_frame) * av_q2d (_format_context->streams[_video_stream]->time_base); - for (list<shared_ptr<Image> >::iterator i = images.begin(); i != images.end(); ++i) { - emit_video (*i, st); + emit_video (*i, frame_time ()); } } @@ -694,7 +692,7 @@ FFmpegDecoder::out_with_sync () String::compose ( "Extra video frame inserted at %1s; source frame %2, source PTS %3 (at %4 fps)", out_pts_seconds, video_frame(), source_pts_seconds, frames_per_second() - ) + ) ); } } @@ -733,3 +731,9 @@ FFmpegDecoder::length () const return (double(_format_context->duration) / AV_TIME_BASE) * frames_per_second(); } +double +FFmpegDecoder::frame_time () const +{ + return av_frame_get_best_effort_timestamp(_frame) * av_q2d (_format_context->streams[_video_stream]->time_base); +} + |
