[FFmpeg-cvslog] mpegts: only calculate stat index when its needed during probe
Michael Niedermayer
git at videolan.org
Sat Nov 9 16:22:07 CET 2013
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Nov 9 16:09:26 2013 +0100| [e624df5dc33fb1ded7b8b23a72565f882dbb0387] | committer: Michael Niedermayer
mpegts: only calculate stat index when its needed during probe
40% faster probe
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e624df5dc33fb1ded7b8b23a72565f882dbb0387
---
libavformat/mpegts.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index bded171..e73209c 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -452,22 +452,19 @@ static void mpegts_close_filter(MpegTSContext *ts, MpegTSFilter *filter)
static int analyze(const uint8_t *buf, int size, int packet_size, int *index){
int stat[TS_MAX_PACKET_SIZE];
int i;
- int x=0;
int best_score=0;
memset(stat, 0, packet_size*sizeof(*stat));
- for(x=i=0; i<size-3; i++){
+ for(i=0; i<size-3; i++){
if(buf[i] == 0x47 && !(buf[i+1] & 0x80) && buf[i+3] != 0x47){
+ int x = i % packet_size;
stat[x]++;
if(stat[x] > best_score){
best_score= stat[x];
if(index) *index= x;
}
}
-
- x++;
- if(x == packet_size) x= 0;
}
return best_score;
More information about the ffmpeg-cvslog
mailing list