On Sat, Sep 30, 2017 at 08:46:28PM +0200, Carl Eugen Hoyos wrote: > 2017-09-30 3:19 GMT+02:00 Michael Niedermayer <mich...@niedermayer.cc>: > > On Fri, Sep 29, 2017 at 07:23:17PM +0200, Carl Eugen Hoyos wrote: > >> Hi! > >> > >> The G.729 bit auto-detection has never worked, patch attached. > >> > >> Please comment, Carl Eugen > > > >> bit.c | 23 +++++++++++++---------- > >> 1 file changed, 13 insertions(+), 10 deletions(-) > >> 1eaabbb2e56d350949d0c8c439a2ba49513069f2 > >> 0001-lavf-bit-Fix-the-G.729-bit-probe-function.patch > >> From 2521a9bd86d807a3e18fe930b35039beb7674b3e Mon Sep 17 00:00:00 2001 > >> From: Carl Eugen Hoyos <ceffm...@gmail.com> > >> Date: Fri, 29 Sep 2017 19:10:46 +0200 > >> Subject: [PATCH] lavf/bit: Fix the G.729 bit auto-detection. > >> > >> --- > >> libavformat/bit.c | 23 +++++++++++++---------- > >> 1 file changed, 13 insertions(+), 10 deletions(-) > >> > >> diff --git a/libavformat/bit.c b/libavformat/bit.c > >> index d742a5b..f90e4a7 100644 > >> --- a/libavformat/bit.c > >> +++ b/libavformat/bit.c > >> @@ -32,20 +32,23 @@ > >> #if CONFIG_BIT_DEMUXER > >> static int probe(AVProbeData *p) > >> { > >> - int i, j; > >> + int i = 0, j, valid = 0; > >> > >> - if(p->buf_size < 0x40) > >> - return 0; > >> - > >> - for(i=0; i+3<p->buf_size && i< 10*0x50; ){ > >> - if(AV_RL16(&p->buf[0]) != SYNC_WORD) > >> + while (2 * i + 3 < p->buf_size){ > >> + if (AV_RL16(&p->buf[2 * i++]) != SYNC_WORD) > >> return 0; > >> - j=AV_RL16(&p->buf[2]); > >> - if(j!=0x40 && j!=0x50) > >> + j = AV_RL16(&p->buf[2 * i++]); > >> + if (j != 0 && j != 0x10 && j != 0x40 && j != 0x50) > >> return 0; > >> - i+=j; > >> + if (j) > >> + valid++; > >> + i += j; > >> } > >> - return AVPROBE_SCORE_EXTENSION; > >> + if (valid > 10) > >> + return AVPROBE_SCORE_MAX; > > > > this looks like a g729 stream encapsulated i another container could > > return AVPROBE_SCORE_MAX. This may be sub optimal > > SYNC_WORD only exists in BIT streams, not in raw g.729 streams > as muxed in other formats.
i dont think assuming the non existance of one kind of container to ever be put in another is a safe assumtation. also theres tar and other generic containers. still this checks the files first few bytes so its probably ok as most other containrs wouldnt match here [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Many things microsoft did are stupid, but not doing something just because microsoft did it is even more stupid. If everything ms did were stupid they would be bankrupt already.
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel