[FFmpeg-devel] [PATCH] Bink file demuxer and audio decoder

Daniel Verkamp daniel
Wed Jan 14 18:35:14 CET 2009


On Wed, Jan 14, 2009 at 5:03 AM, Diego Biurrun <diego at biurrun.de> wrote:
>> - ATI/* has various chunks of files; appending the
>> --append.this.to.complete.bik to the end of the un-suffixed file
>> produces the full video, which works;
>
> IOW, these should be merged back together, right?

Yes, i.e. 'cat ATI-9700-Animusic-Movie-v1.0.bik
ATI-9700-Animusic-Movie-v1.0.bik--append.this.to.complete.bik >
complete.bik'  - this should result in a file with md5sum
f36b8b7fb3ee45f33e9a0a158845b085.

>> the .x file is just another truncated part of the video
>
> Truncated part of which video exactly?

The same as the other files in the dir; if the complete movie is
concatenated as above, this file (and the other partial files) can
just be removed.  I assume they are just a result of uploads that
failed part of the way through...

>
>> --- /dev/null
>> +++ b/libavcodec/dct.c
>> @@ -0,0 +1,39 @@
>> +#include "dsputil.h"
>> +#include "fft4g.h"
>
> license header

>> --- /dev/null
>> +++ b/libavcodec/rdft.c
>> @@ -0,0 +1,39 @@
>> +#include "dsputil.h"
>> +#include "fft4g.h"
>
> license header

These files are not intended to be committed as-is, since they are
just wrappers around the fft4g functions, which are incompatibly
licensed; I can add the license header, but really these files should
be replaced outright before any commit.

>> +    s->nbits = nbits;
>> +    s->inverse = inverse;
>> +    s->w = av_malloc(sizeof(double) * n * 5 / 4);
>> +    s->data_dbl = av_malloc(sizeof(double) * n);
>
> This could be aligned.

>> +    s->nbits = nbits;
>> +    s->inverse = inverse;
>> +    s->w = av_malloc(sizeof(double) * n / 2);
>> +    s->data_dbl = av_malloc(sizeof(double) * n);
>
> alignment

Similarly to above, these files are just temporary hacks until someone
writes a real implementation based on the internal FFT.

>> --- a/libavcodec/avcodec.h
>> +++ b/libavcodec/avcodec.h
>> @@ -310,6 +310,7 @@ enum CodecID {
>>      CODEC_ID_MP1,
>> +    CODEC_ID_BINKAUDIO,
>
> Why not just BINK instead of BINKAUDIO?

As Kostya noted, eventually BINKVIDEO will (hopefully) exist as well.

>> --- /dev/null
>> +++ b/libavcodec/binkaudio.c
>> @@ -0,0 +1,285 @@
>> +// from wmadata.h
>
> Ahem :)

Indeed, I noticed the duplication, but I don't know how to fix it -
including wmadata.h directly causes a bunch of duplicated definitions
at link time (perhaps some of the tables need to be made static?).  I
will look into this before the next iteration of the patch.

>> +        sample_rate *= avctx->channels;
>> +        s->frame_len *= avctx->channels;
>
> alignment
>
>> +    s->overlap_len = s->frame_len / 16;
>> +    sample_rate_half = (sample_rate + 1) / 2;
>> +    s->root = 2.0 / sqrt(s->frame_len);
>
> ditto
>
>> +static int binkaudio_decode_frame(AVCodecContext *avctx, void *outdata, int *outdata_size, const uint8_t *buf, int buf_size)
>
> Maybe you could shorten such long lines..

Will fix the above for next iteration...

>> --- /dev/null
>> +++ b/libavformat/bink.c
>> @@ -0,0 +1,254 @@
>> +/*
>> + * Bink file Demuxer
>
> demuxer
>
> Documentation and changelog updates are missing from your patches.

Sorry, didn't notice these needed to be updated; will something like
the attached work?

Thanks,
-- Daniel Verkamp
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-Bink-demuxer-and-audio-decoder-docs-and-changelog.txt
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090114/bc2379df/attachment.txt>



More information about the ffmpeg-devel mailing list