You've already forked libopenshot
mirror of
https://github.com/OpenShot/libopenshot.git
synced 2026-03-02 08:53:52 -08:00
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:
@@ -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(); };
|
||||
|
||||
|
||||
@@ -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.
|
||||
///
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
13
src/Main.cpp
13
src/Main.cpp
@@ -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
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user