diff --git a/src/FFmpegReader.cpp b/src/FFmpegReader.cpp index 7182ddaf..1711fc29 100644 --- a/src/FFmpegReader.cpp +++ b/src/FFmpegReader.cpp @@ -4,7 +4,7 @@ using namespace openshot; FFmpegReader::FFmpegReader(string path) throw(InvalidFile, NoStreamsFound, InvalidCodec) : last_frame(0), is_seeking(0), seeking_pts(0), seeking_frame(0), - audio_pts_offset(99999), video_pts_offset(99999), working_cache(12), final_cache(12), path(path), + audio_pts_offset(99999), video_pts_offset(99999), working_cache(12), final_cache(24), path(path), is_video_seek(true), check_interlace(false), check_fps(false), enable_seek(true), rescaler_position(0), num_of_rescalers(32) { @@ -313,8 +313,8 @@ Frame* FFmpegReader::ReadStream(int requested_frame) int packet_error = -1; // Minimum number of packets to process (for performance reasons) - int packets_processed = 0; - int minimum_packets = 12; + int frames_processed = 0; + int minimum_frames = 8; //omp_set_num_threads(1); #pragma omp parallel @@ -387,9 +387,6 @@ Frame* FFmpegReader::ReadStream(int requested_frame) ProcessAudioPacket(requested_frame, location.frame, location.sample_start); } - // Count processed packets - packets_processed++; - // Check if working frames are 'finished' bool is_cache_found = false; #pragma omp critical (openshot_cache) @@ -399,10 +396,13 @@ Frame* FFmpegReader::ReadStream(int requested_frame) // Check if requested 'final' frame is available is_cache_found = final_cache.Exists(requested_frame); + + // Increment frames processed + frames_processed++; } // Break once the frame is found - if (is_cache_found && packets_processed >= minimum_packets) + if (is_cache_found && frames_processed >= minimum_frames) break; } // end while diff --git a/src/Main.cpp b/src/Main.cpp index 14feda26..ed84601d 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -20,9 +20,9 @@ int main() // openshot::FFmpegReader r("../../src/examples/piano.wav"); // openshot::FFmpegReader r("/home/jonathan/Videos/big-buck-bunny_trailer.webm"); - // openshot::FFmpegReader r("/home/jonathan/Videos/sintel-1024-stereo.mp4"); + openshot::FFmpegReader r("/home/jonathan/Videos/sintel-1024-stereo.mp4"); // openshot::FFmpegReader r("/home/jonathan/Videos/OpenShot_Now_In_3d.mp4"); - openshot::FFmpegReader r("/home/jonathan/Videos/sintel_trailer-720p.mp4"); + // openshot::FFmpegReader r("/home/jonathan/Videos/sintel_trailer-720p.mp4"); // openshot::FFmpegReader r("/home/jonathan/Aptana Studio Workspace/OpenShotLibrary/src/examples/piano.wav"); // openshot::FFmpegReader r("/home/jonathan/Music/Army of Lovers/Crucified/Army of Lovers - Crucified [Single Version].mp3"); // openshot::FFmpegReader r("/home/jonathan/Documents/OpenShot Art/test.jpeg"); @@ -67,7 +67,7 @@ int main() //Frame *f = r.GetFrame(1); - for (int frame = 1; frame <= 1000; frame++) + for (int frame = 1; frame <= 2000; frame++) { Frame *f = r.GetFrame(frame); @@ -80,7 +80,6 @@ int main() // Write frame cout << "queue frame " << frame << endl; w.WriteFrame(f); - } // Write Footer