From 23191e4f9e7330d6c6c83a8022ade098bee9c486 Mon Sep 17 00:00:00 2001 From: jstebbins Date: Sun, 16 May 2010 23:30:12 +0000 Subject: [PATCH] slightly improve avi seek patch only changes behavior when seeking backwards. git-svn-id: svn://localhost/HandBrake/trunk@3297 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- contrib/ffmpeg/A05-avi-seek.patch | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/contrib/ffmpeg/A05-avi-seek.patch b/contrib/ffmpeg/A05-avi-seek.patch index a1dec93c..e5df7316 100644 --- a/contrib/ffmpeg/A05-avi-seek.patch +++ b/contrib/ffmpeg/A05-avi-seek.patch @@ -19,22 +19,32 @@ Index: libavformat/avidec.c for(i = 0; i < s->nb_streams; i++) { AVStream *st2 = s->streams[i]; AVIStream *ast2 = st2->priv_data; -@@ -1129,10 +1130,12 @@ +@@ -1129,10 +1130,20 @@ index=0; if(!avi->non_interleaved){ -+ while(index+1 < st2->nb_index_entries && st2->index_entries[index].pos < pos) -+ index++; - while(index>0 && st2->index_entries[index].pos > pos) - index--; +- while(index>0 && st2->index_entries[index].pos > pos) +- index--; - while(index+1 < st2->nb_index_entries && st2->index_entries[index].pos < pos) - index++; -+ if (st2->index_entries[index].pos < min_pos) -+ min_pos = st2->index_entries[index].pos; ++ if (flags & AVSEEK_FLAG_BACKWARD) { ++ while(index+1 < st2->nb_index_entries && st2->index_entries[index].pos < pos) ++ index++; ++ while(index>0 && st2->index_entries[index].pos > pos) ++ index--; ++ if (st2->index_entries[index].pos < min_pos) ++ min_pos = st2->index_entries[index].pos; ++ } ++ else { ++ while(index>0 && st2->index_entries[index].pos > pos) ++ index--; ++ while(index+1 < st2->nb_index_entries && st2->index_entries[index].pos < pos) ++ index++; ++ } } // av_log(s, AV_LOG_DEBUG, "%"PRId64" %d %"PRId64"\n", timestamp, index, st2->index_entries[index].timestamp); -@@ -1141,7 +1144,7 @@ +@@ -1141,7 +1152,7 @@ } /* do the seek */ -- 2.11.0