Removed some unneeded methods, due to the previous refactor involving shared_ptr objects. They no longer require some special overloads which "delete" the objects in the cache.

This commit is contained in:
Jonathan Thomas
2012-10-14 21:09:22 -05:00
parent 617088cebf
commit 48bef6b566
7 changed files with 15 additions and 52 deletions

View File

@@ -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(); };

View File

@@ -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.
///

View File

@@ -80,7 +80,7 @@ tr1::shared_ptr<Frame> 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<Frame> 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<int>::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();

View File

@@ -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<Frame> 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;

View File

@@ -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;
}

View File

@@ -16,9 +16,6 @@ void FrameReady(int number)
int main()
{
shared_ptr<Frame> 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<Frame> f = r.GetFrame(frame);
// //f->AddOverlayNumber(0);
// f->AddOverlayNumber(0);
// //f->Display();
//
// // Write frame

View File

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