You've already forked libopenshot
mirror of
https://github.com/OpenShot/libopenshot.git
synced 2026-03-02 08:53:52 -08:00
More tweaks to the seeking code, to increase stability while seeking.
This commit is contained in:
@@ -701,8 +701,6 @@ bool FFmpegReader::CheckSeek(bool is_video)
|
||||
is_seeking = false;
|
||||
seeking_frame = 0;
|
||||
seeking_pts = -1;
|
||||
//seek_audio_frame_found = 0; // used to detect which frames to throw away after a seek
|
||||
//seek_video_frame_found = 0; // used to detect which frames to throw away after a seek
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1380,8 +1378,8 @@ bool FFmpegReader::IsPartialFrame(int requested_frame) {
|
||||
int max_seeked_frame = seek_audio_frame_found; // determine max seeked frame
|
||||
if (seek_video_frame_found > max_seeked_frame)
|
||||
max_seeked_frame = seek_video_frame_found;
|
||||
if ((info.has_audio && seek_audio_frame_found && max_seeked_frame >= requested_frame) ||
|
||||
(info.has_video && seek_video_frame_found && max_seeked_frame >= requested_frame))
|
||||
if ((info.has_audio && seek_audio_frame_found && max_seeked_frame > requested_frame) ||
|
||||
(info.has_video && seek_video_frame_found && max_seeked_frame > requested_frame))
|
||||
seek_trash = true;
|
||||
|
||||
return seek_trash;
|
||||
|
||||
20
src/Main.cpp
20
src/Main.cpp
@@ -45,19 +45,15 @@ int main(int argc, char* argv[])
|
||||
sinelReader.debug = true;
|
||||
sinelReader.Open();
|
||||
|
||||
sinelReader.GetFrame(300)->Display();
|
||||
sinelReader.GetFrame(301)->Display();
|
||||
// Seek test
|
||||
int frames[15] = {1,624,585,222,333};
|
||||
for (int x = 0; x<6; x++) {
|
||||
tr1::shared_ptr<Frame> f = sinelReader.GetFrame(frames[x]);
|
||||
f->AddOverlayNumber(frames[x]);
|
||||
f->Display();
|
||||
}
|
||||
|
||||
sinelReader.GetFrame(100)->Display();
|
||||
sinelReader.GetFrame(101)->Display();
|
||||
|
||||
sinelReader.GetFrame(600)->Display();
|
||||
sinelReader.GetFrame(601)->Display();
|
||||
|
||||
sinelReader.GetFrame(380)->Display();
|
||||
sinelReader.GetFrame(381)->Display();
|
||||
|
||||
cout << sinelReader.OutputDebugJSON() << endl;;
|
||||
cout << sinelReader.OutputDebugJSON() << endl;
|
||||
sinelReader.Close();
|
||||
return 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user