Don't go into an infinite loop when recovering from a previous run in which the even...
authorCarl Hetherington <cth@carlh.net>
Sun, 6 Dec 2015 15:54:53 +0000 (15:54 +0000)
committerCarl Hetherington <cth@carlh.net>
Sun, 6 Dec 2015 15:54:53 +0000 (15:54 +0000)
src/lib/reel_writer.cc

index b26ff80640bd83d35e4a8f9d4e0c87218d648fd7..609ea8437b28a1ec377319563dcc1cd70655c2a2 100644 (file)
@@ -51,6 +51,7 @@
 
 using std::list;
 using std::string;
+using std::cout;
 using boost::shared_ptr;
 using boost::optional;
 using boost::dynamic_pointer_cast;
@@ -198,7 +199,7 @@ ReelWriter::check_existing_picture_asset ()
 
        bool ok = false;
 
-       while (!ok) {
+       while (!ok && _first_nonexistant_frame > 0) {
                /* Read the data from the info file; for 3D we just check the left
                   frames until we find a good one.
                */
@@ -227,7 +228,7 @@ ReelWriter::check_existing_picture_asset ()
                }
        }
 
-       if (!_film->three_d ()) {
+       if (!_film->three_d() && ok) {
                /* If we are doing 3D we might have found a good L frame with no R, so only
                   do this if we're in 2D and we've just found a good B(oth) frame.
                */