diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-05-27 02:09:22 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-05-27 02:09:22 +0100 |
| commit | 387304bc9147933b68eda2b38ba8cac0d250e87e (patch) | |
| tree | 0697a08182c94193a3424d44d5f7af4231f0ade3 /src/lib/ffmpeg_content.cc | |
| parent | fd2b1840496fa121727b7e835843c8beeaebd5eb (diff) | |
Untested use of Frame for video/audio content lengths.
Diffstat (limited to 'src/lib/ffmpeg_content.cc')
| -rw-r--r-- | src/lib/ffmpeg_content.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc index 187d61953..9acc883fd 100644 --- a/src/lib/ffmpeg_content.cc +++ b/src/lib/ffmpeg_content.cc @@ -249,14 +249,18 @@ FFmpegContent::set_audio_stream (shared_ptr<FFmpegAudioStream> s) signal_changed (FFmpegContentProperty::AUDIO_STREAM); } -ContentTime +Frame FFmpegContent::audio_length () const { if (!audio_stream ()) { - return ContentTime (); + return 0; } - return video_length (); + /* We're talking about the content's audio length here, at the content's frame + rate. We assume it's the same as the video's length, and we can just convert + using the content's rates. + */ + return (video_length () / video_frame_rate ()) * audio_frame_rate (); } int @@ -300,7 +304,8 @@ FFmpegContent::full_length () const { shared_ptr<const Film> film = _film.lock (); DCPOMATIC_ASSERT (film); - return DCPTime (video_length_after_3d_combine(), FrameRateChange (video_frame_rate (), film->video_frame_rate ())); + FrameRateChange const frc (video_frame_rate (), film->video_frame_rate ()); + return DCPTime::from_frames (rint (video_length_after_3d_combine() * frc.factor()), film->video_frame_rate()); } AudioMapping |
