[FFmpeg-devel] [PATCH]Autodetect raw flac files

Michael Niedermayer michaelni at gmx.at
Fri Apr 10 02:24:12 CEST 2015


On Fri, Apr 10, 2015 at 12:13:28AM +0200, Carl Eugen Hoyos wrote:
> On Thursday 09 April 2015 03:46:42 pm Michael Niedermayer wrote:
> > On Thu, Apr 09, 2015 at 01:21:32PM +0200, Carl Eugen Hoyos wrote:
> > > Hi!
> > >
> > > Attached patch allows to autodetect headerless flac files.
> > >
> > > Please comment, Carl Eugen
> > >
> > >  flacdec.c |    2 ++
> > >  1 file changed, 2 insertions(+)
> > > 393c746cefb2dd386719591734f01d6df2ca124c  patchflac.diff
> > > diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
> >
> > i would slightly prefer if more bytes are checked
> 
> New patch attached.
> 
> Please review, Carl Eugen

>  flacdec.c |    8 ++++++++
>  1 file changed, 8 insertions(+)
> d7ff2f6ba64db8feab2032208f61d998aadd00bf  patchflac2.diff
> diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
> index 1a8dc19..f3d0689 100644
> --- a/libavformat/flacdec.c
> +++ b/libavformat/flacdec.c
> @@ -178,6 +178,14 @@ fail:
>  
>  static int flac_probe(AVProbeData *p)
>  {
> +    if (   (AV_RB16(p->buf) & 0xFFFE) == 0xFFF8
> +        && p->buf[2] & 0xF0        // blocksize code != 0
> +        && p->buf[2] & 0x0F ^ 0x0F // sample rate code < 15
> +        && (p->buf[3] & 0xF0) < FLAC_MAX_CHANNELS + FLAC_CHMODE_MID_SIDE << 4
> +        // channel mode < 11
> +        && p->buf[3] & 0x06 ^ 0x06 // bits per sample code valid

> +        && p->buf[3] ^ 1)          // reserved bit not set

is this missing a "& 1" ?
just guessing from "bit" in the comment

also maybe write it as seperate function
so that it can be written as a series of if() instead of a long
chain of &&, should be looking cleaner

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

DNS cache poisoning attacks, popular search engine, Google internet authority
dont be evil, please
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150410/a29da938/attachment.asc>


More information about the ffmpeg-devel mailing list