[FFmpeg-devel] [PATCH] Core Audio Format demuxer

Baptiste Coudurier baptiste.coudurier
Mon Aug 10 00:40:28 CEST 2009


Hi Peter,

First, thanks a lot for doing this.

On 8/9/2009 2:41 AM, Peter Ross wrote:
 > [...]
>
>       get_be32(pb); /* version + flags */
> -    len = mp4_read_descr(c, pb,&tag);
> +    len = mp4_read_descr(fc, pb,&tag);

Take the opportunity to add a space here, before & :)

>       if (tag == MP4ESDescrTag) {
>           get_be16(pb); /* ID */
>           get_byte(pb); /* priority */
>       } else
>           get_be16(pb); /* ID */
>
> -    len = mp4_read_descr(c, pb,&tag);
> +    len = mp4_read_descr(fc, pb,&tag);

Same.

>       if (tag == MP4DecConfigDescrTag) {
>           int object_type_id = get_byte(pb);
>           get_byte(pb); /* stream type */
> @@ -419,10 +419,10 @@ static int mov_read_esds(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
>           get_be32(pb); /* avg bitrate */
>
>           st->codec->codec_id= ff_codec_get_id(ff_mp4_obj_type, object_type_id);
> -        dprintf(c->fc, "esds object type id %d\n", object_type_id);
> -        len = mp4_read_descr(c, pb,&tag);
> +        dprintf(fc, "esds object type id %d\n", object_type_id);
> +        len = mp4_read_descr(fc, pb,&tag);

Ditto.

 > [...]
 >
> @@ -454,6 +454,11 @@ static int mov_read_esds(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
>       return 0;
>   }
>
> +static int mov_read_esds(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
> +{
> +    return ff_mov_read_esds(c->fc, pb);

I'd prefer if ff_mv_read_esds would take the size of the atom as 
parameter, even if it is not checked yet.

Except that I'm ok with the patch to mov.c

 > [...]
 >
> +  /* FIXME: use dv demuxer, as done in mov */
> +  /*{ CODEC_ID_DVAUDIO,         MKBETAG('v','d','v','a') },*/
> +  /*{ CODEC_ID_DVAUDIO,         MKBETAG('d','v','c','a') },*/

Or a parser that extract audio from the dvvideo frame :)

> +    { CODEC_ID_ADPCM_IMA_QT,    MKBETAG('i','m','a','4') },
> +    { CODEC_ID_MACE3,           MKBETAG('M','A','C','3') },
> +    { CODEC_ID_MACE6,           MKBETAG('M','A','C','6') },
> +    { CODEC_ID_MP3,             MKBETAG('.','m','p','3') },
> +    { CODEC_ID_MP3,             MKBETAG('.','m','p','2') }, // mp2 decoding

CODEC_ID_MP2

> +    { CODEC_ID_MP3,             MKBETAG('.','m','p','1') },

CODEC_ID_MP1

> +    { CODEC_ID_MP2,             MKBETAG('.','m','p','2') }, // mp2 encoding

Duplicate ?

 > [...]
 >
> +    { CODEC_ID_PCM_S8,          MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_S16BE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_S16LE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_S24BE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_S24LE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_S32BE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_S32LE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_F32BE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_F32LE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_F64BE,       MKBETAG('l','p','c','m') },
> +    { CODEC_ID_PCM_F64LE,       MKBETAG('l','p','c','m') },

If only demuxer is implemented you don't need all these 'lpcm' entries yet.

[...]

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer                                  http://www.ffmpeg.org



More information about the ffmpeg-devel mailing list