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));