diff --git a/include/Cache.h b/include/Cache.h index cc9003c9..a3d58c4a 100644 --- a/include/Cache.h +++ b/include/Cache.h @@ -74,9 +74,6 @@ namespace openshot { /// Remove a specific frame void Remove(int frame_number); - /// Remove a specific frame - void Remove(int frame_number, bool delete_data); - /// Set maximum bytes to a different amount void SetMaxBytes(int64 number_of_bytes) { max_bytes = number_of_bytes; CleanUp(); }; diff --git a/include/FFmpegReader.h b/include/FFmpegReader.h index 26c0285e..b7c459f0 100644 --- a/include/FFmpegReader.h +++ b/include/FFmpegReader.h @@ -178,11 +178,8 @@ namespace openshot /// frame 1, or it throws one of the following exceptions. FFmpegReader(string path) throw(InvalidFile, NoStreamsFound, InvalidCodec); - /// Close File & clear cache - void Close(); - /// Close File - void Close(bool clear_cache); + void Close(); /// Get an openshot::Frame object for a specific frame number of this reader. /// diff --git a/src/Cache.cpp b/src/Cache.cpp index 6ae9e416..839b8dfd 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -80,7 +80,7 @@ tr1::shared_ptr Cache::GetSmallestFrame() } // Remove a specific frame -void Cache::Remove(int frame_number, bool delete_data) +void Cache::Remove(int frame_number) { // Get the frame (or throw exception) tr1::shared_ptr f = GetFrame(frame_number); @@ -100,21 +100,10 @@ void Cache::Remove(int frame_number, bool delete_data) } } - // Deallocate frame (if requested) - if (delete_data) - frames[frame_number].reset(); - // Remove frame from map frames.erase(frame_number); } -// Remove a specific frame -void Cache::Remove(int frame_number) -{ - // Remove and delete frame data - Remove(frame_number, true); -} - // Move frame to front of queue (so it lasts longer) void Cache::MoveToFront(int frame_number) { @@ -146,13 +135,8 @@ void Cache::Clear() { deque::iterator itr; for(itr = frame_numbers.begin(); itr != frame_numbers.end(); ++itr) - { - // Deallocate frame - frames[*itr].reset(); - // Remove frame from map frames.erase(*itr); - } // pop each of the frames from the queue... which empties the queue while(!frame_numbers.empty()) frame_numbers.pop_back(); diff --git a/src/FFmpegReader.cpp b/src/FFmpegReader.cpp index 8d92780f..dcc46855 100644 --- a/src/FFmpegReader.cpp +++ b/src/FFmpegReader.cpp @@ -138,12 +138,6 @@ void FFmpegReader::Open() throw(InvalidFile, NoStreamsFound, InvalidCodec) } void FFmpegReader::Close() -{ - // Close reader and clear cache - Close(true); -} - -void FFmpegReader::Close(bool clear_cache) { // Close all objects, if reader is 'open' if (is_open) @@ -163,11 +157,8 @@ void FFmpegReader::Close(bool clear_cache) avcodec_close(aCodecCtx); } - // Clear final cache (based on the parameter) - if (clear_cache) - final_cache.Clear(); - - // Always clear temp cache + // Clear final cache + final_cache.Clear(); working_cache.Clear(); // Close the video file @@ -336,7 +327,7 @@ tr1::shared_ptr FFmpegReader::GetFrame(int requested_frame) throw(ReaderC else if (!enable_seek && diff < 0) { // Start over, since we can't seek, and the requested frame is smaller than our position - Close(false); + Close(); Open(); } @@ -899,7 +890,7 @@ void FFmpegReader::Seek(int requested_frame) throw(TooManySeeks) if (requested_frame - buffer_amount <= 1) { // Close and re-open file (basically seeking to frame 1) - Close(false); // do not clear cache + Close(); Open(); // Not actually seeking, so clear these flags @@ -1146,7 +1137,7 @@ void FFmpegReader::CheckWorkingFrames(bool end_of_stream) final_cache.Add(f->number, f); // Remove frame from working cache - working_cache.Remove(f->number, false); + working_cache.Remove(f->number); // Update last frame processed last_frame = f->number; diff --git a/src/ImageReader.cpp b/src/ImageReader.cpp index 34daa22c..3e2a06f7 100644 --- a/src/ImageReader.cpp +++ b/src/ImageReader.cpp @@ -73,9 +73,6 @@ void ImageReader::Close() // Close all objects, if reader is 'open' if (is_open) { - // Deallocate frame - image_frame.reset(); - // Mark as "closed" is_open = false; } diff --git a/src/Main.cpp b/src/Main.cpp index 212ab96c..78a53a8c 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -16,9 +16,6 @@ void FrameReady(int number) int main() { - shared_ptr f(new Frame(1,2,2)); - - // Create timeline Timeline t(640, 360, Framerate(24,1)); @@ -118,10 +115,10 @@ int main() // openshot::FFmpegReader r("../../src/examples/test.mp4"); // openshot::FFmpegReader r("../../src/examples/test1.mp4"); - openshot::FFmpegReader r("../../src/examples/piano.wav"); + // 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/Aptana Studio Workspace/OpenShotLibrary/src/examples/piano.wav"); @@ -140,7 +137,7 @@ int main() // // // Set options // w.SetAudioOptions(true, "libvorbis", 44100, 2, 128000, false); -// //w.SetVideoOptions(true, "libvpx", Fraction(24, 1), 640, 360, Fraction(1,1), false, false, 2000000); +// w.SetVideoOptions(true, "libvpx", Fraction(24, 1), 640, 360, Fraction(1,1), false, false, 2000000); // // // Prepare Streams // w.PrepareStreams(); @@ -170,10 +167,10 @@ int main() // //Frame *f = r.GetFrame(1); // // //for (int frame = 131; frame >= 1; frame--) -// for (int frame = 1; frame <= 131; frame++) +// for (int frame = 1; frame <= 2000; frame++) // { // tr1::shared_ptr f = r.GetFrame(frame); -// //f->AddOverlayNumber(0); +// f->AddOverlayNumber(0); // //f->Display(); // // // Write frame diff --git a/tests/Cache_Tests.cpp b/tests/Cache_Tests.cpp index 37c0eaf8..70adb155 100644 --- a/tests/Cache_Tests.cpp +++ b/tests/Cache_Tests.cpp @@ -168,7 +168,7 @@ TEST(Cache_GetSmallest) CHECK_EQUAL(1, c.GetSmallestFrame()->number); // Erase frame 1 - c.Remove(1, false); + c.Remove(1); // Check if frame 2 is the front CHECK_EQUAL(2, c.GetSmallestFrame()->number); @@ -196,7 +196,7 @@ TEST(Cache_Remove) CHECK_EQUAL(true, c.Exists(2)); // Remove frame 2 - c.Remove(2, false); + c.Remove(2); // Check if frame 2 exists CHECK_EQUAL(false, c.Exists(2)); @@ -205,7 +205,7 @@ TEST(Cache_Remove) CHECK_EQUAL(2, c.Count()); // Remove frame 1 - c.Remove(1, false); + c.Remove(1); // Check if frame 1 exists CHECK_EQUAL(false, c.Exists(1));