Builds again.
authorCarl Hetherington <cth@carlh.net>
Wed, 26 Jun 2013 10:04:28 +0000 (11:04 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 26 Jun 2013 10:04:28 +0000 (11:04 +0100)
src/lib/ffmpeg_decoder.cc
src/lib/player.cc
src/wx/film_viewer.cc

index d897aef9d8c93750799893f6ea87d0e9aaa34e76..1d8a00866e0627fa82dc583cd664e02573335b83 100644 (file)
@@ -272,7 +272,6 @@ FFmpegDecoder::seek_back ()
        }
        
        do_seek (_next_video_frame - 1, true, true);
-       VideoDecoder::seek_back ();
 }
 
 void
index 79f1c3b97a91496b979e50d8af2d9844e4bc1e4e..241b43a5549256938f98af3fe3337ddcccad0dbd 100644 (file)
@@ -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 */
index db2ab9dfe2e6009decb499f40559fb3c36e9795a..0ed9a5cb0b3a03b207adec44f741350be6053665 100644 (file)
@@ -445,7 +445,6 @@ FilmViewer::forward_clicked (wxCommandEvent &)
                return;
        }
 
-       _player->seek_forward ();
        get_frame ();
        _panel->Refresh ();
        _panel->Update ();