diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-06-26 11:04:28 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-06-26 11:04:28 +0100 |
| commit | 5fa669bbfc7392d29c9ec94cf6527c56558fe43f (patch) | |
| tree | ef25173801acd4a98eceecd498a662b4a1a2c711 /src/lib | |
| parent | d0d584a7dde6de383302615634fdee17e9724fe8 (diff) | |
Builds again.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/ffmpeg_decoder.cc | 1 | ||||
| -rw-r--r-- | src/lib/player.cc | 23 |
2 files changed, 14 insertions, 10 deletions
diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index d897aef9d..1d8a00866 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -272,7 +272,6 @@ FFmpegDecoder::seek_back () } do_seek (_next_video_frame - 1, true, true); - VideoDecoder::seek_back (); } void diff --git a/src/lib/player.cc b/src/lib/player.cc index 79f1c3b97..241b43a55 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -50,6 +50,11 @@ using boost::dynamic_pointer_cast; struct Piece { + Piece (shared_ptr<Content> c) + : content (c) + , last_emission (0) + {} + Piece (shared_ptr<Content> c, shared_ptr<Decoder> d) : content (c) , decoder (d) @@ -350,7 +355,7 @@ Player::setup_pieces () for (Playlist::ContentList::iterator i = content.begin(); i != content.end(); ++i) { - shared_ptr<Decoder> decoder; + shared_ptr<Piece> piece (new Piece (*i)); /* XXX: into content? */ @@ -358,10 +363,10 @@ Player::setup_pieces () if (fc) { shared_ptr<FFmpegDecoder> fd (new FFmpegDecoder (_film, fc, _video, _audio)); - fd->Video.connect (bind (&Player::process_video, this, *i, _1, _2, _3)); - fd->Audio.connect (bind (&Player::process_audio, this, *i, _1, _2)); + fd->Video.connect (bind (&Player::process_video, this, piece, _1, _2, _3)); + fd->Audio.connect (bind (&Player::process_audio, this, piece, _1, _2)); - decoder = fd; + piece->decoder = fd; } shared_ptr<const ImageMagickContent> ic = dynamic_pointer_cast<const ImageMagickContent> (*i); @@ -378,21 +383,21 @@ Player::setup_pieces () if (!id) { id.reset (new ImageMagickDecoder (_film, ic)); - id->Video.connect (bind (&Player::process_video, this, *i, _1, _2, _3)); + id->Video.connect (bind (&Player::process_video, this, piece, _1, _2, _3)); } - decoder = id; + piece->decoder = id; } shared_ptr<const SndfileContent> sc = dynamic_pointer_cast<const SndfileContent> (*i); if (sc) { shared_ptr<AudioDecoder> sd (new SndfileDecoder (_film, sc)); - sd->Audio.connect (bind (&Player::process_audio, this, *i, _1, _2)); + sd->Audio.connect (bind (&Player::process_audio, this, piece, _1, _2)); - decoder = sd; + piece->decoder = sd; } - _pieces.push_back (shared_ptr<Piece> (new Piece (*i, decoder))); + _pieces.push_back (piece); } /* Fill in visual gaps with black and audio gaps with silence */ |
