diff options
Diffstat (limited to 'src/lib/player.cc')
| -rw-r--r-- | src/lib/player.cc | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc index 7f500b3d6..184c9811f 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -235,7 +235,7 @@ Player::pass () _audio_position += _film->audio_frames_to_time (tb.audio->frames ()); } } - + return false; } @@ -259,7 +259,7 @@ Player::process_video (weak_ptr<Piece> weak_piece, shared_ptr<const Image> image shared_ptr<VideoContent> content = dynamic_pointer_cast<VideoContent> (piece->content); assert (content); - FrameRateConversion frc (content->video_frame_rate(), _film->video_frame_rate()); + FrameRateChange frc (content->video_frame_rate(), _film->video_frame_rate()); if (frc.skip && (frame % 2) == 1) { return; } @@ -420,16 +420,12 @@ Player::seek (Time t, bool accurate) (*i)->video_position = (*i)->audio_position = vc->position() + s; /* And seek the decoder */ - dynamic_pointer_cast<VideoDecoder>((*i)->decoder)->seek ( - vc->time_to_content_video_frames (s + vc->trim_start ()), accurate - ); - + dynamic_pointer_cast<VideoDecoder>((*i)->decoder)->seek (s + vc->trim_start (), accurate); (*i)->reset_repeat (); } _video_position = _audio_position = t; - - /* XXX: don't seek audio because we don't need to... */ + _audio_merger.clear (t); } void @@ -456,7 +452,7 @@ Player::setup_pieces () fd->Audio.connect (bind (&Player::process_audio, this, weak_ptr<Piece> (piece), _1, _2)); fd->Subtitle.connect (bind (&Player::process_subtitle, this, weak_ptr<Piece> (piece), _1, _2, _3, _4)); - fd->seek (fc->time_to_content_video_frames (fc->trim_start ()), true); + fd->seek (fc->trim_start (), true); piece->decoder = fd; } |
