auto interpolate_from orig_id fix, move brender set_video_map update to write_frame_done
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / filethread.C
index 84b20fcdd45fbf289833c9c8dd6623143f8b2ba4..8fadbeea9fd45e64835bb66d1fec285d0950b11e 100644 (file)
@@ -277,16 +277,20 @@ void FileThread::run()
                                        else
                                        if(do_video)
                                        {
-                                               if(compressed)
-                                               {
-                                                       for(j = 0; j < file->asset->layers && !result; j++)
-                                                               for(i = 0; i < output_size[local_buffer] && !result; i++)
-                                                                       result = file->write_compressed_frame(video_buffer[local_buffer][j][i]);
+                                               int layers = 1, count = output_size[local_buffer];
+                                               VFrame ***frames = video_buffer[local_buffer];
+                                               if( compressed ) {
+                                                       layers = file->asset->layers;
+                                                       for( j=0; j<layers && !result; ++j )
+                                                               for( i=0; i<count && !result; ++i )
+                                                                       result = file->write_compressed_frame(frames[j][i]);
                                                }
                                                else
-                                               {
-                                                       result = file->write_frames(video_buffer[local_buffer],
-                                                               output_size[local_buffer]);
+                                                       result = file->write_frames(frames, count);
+                                               if( !result ) {
+                                                       for( j=0; j<layers && !result; ++j )
+                                                               for( i=0; i<count && !result; ++i )
+                                                                       file->write_frame_done(frames[j][i]->get_number());
                                                }
                                        }