[FFmpeg-devel] [PATCH] add E-AC-3 support to AC-3 decoder

Michael Niedermayer michaelni
Sat Jun 7 17:38:23 CEST 2008


On Sat, Jun 07, 2008 at 10:30:31AM -0400, Justin Ruggles wrote:
> Hi,
> 
> Here is a patch set to incrementally add support for E-AC-3 to the AC-3
> decoder.  There are 32 total patches.  I'm just attaching them all in
> this email instead of doing the git-send-email thing.

lets hope we wont get entangled in the approved, commented and not yet
reviewed patches ...


> 
> Commit log messages:
> 

> [PATCH 01/32] get the number of blocks from the ac3 parser and use in
> the ac3 decoder.

comments below


> [PATCH 02/32] get substreamid from ac3 parser

ok


> [PATCH 03/32] read frame type from header info into decode context

ok


> [PATCH 04/32] skip unsupported frame types and substream id's

ok


> **/32 cosmetics: indent

ok


> [PATCH 06/32] set default mix levels regardless of bitstream id

ok


> [PATCH 07/32] pass bap table to ff_ac3_bit_alloc_calc_bap()

not reviewed yet


> [PATCH 08/32] add more gain levels and adjust mix level tables accordingly.

ok


> [PATCH 09/32] move mix level tables from parser to decoder. have parser
> read bitstream value instead of using an index to a table in the decoder.

ok


> [PATCH 10/32] move the decode context and some macro constants to a new
> file, ac3dec.h

ok


> [PATCH 11/32] cosmetics: reorder decode context fields into logical groups

comment below


> **/32 cosmetics: vertical align

ok

rest not reviewed yet


[...]
> @@ -49,7 +49,6 @@ static const uint8_t surround_levels[4] = { 2, 4, 0, 4 };
>  int ff_ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr)
>  {
>      int frame_size_code;
> -    int num_blocks;
>  
>      memset(hdr, 0, sizeof(*hdr));
>  
> @@ -97,6 +96,7 @@ int ff_ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr)
>          hdr->bit_rate = (ff_ac3_bitrate_tab[frame_size_code>>1] * 1000) >> hdr->sr_shift;
>          hdr->channels = ff_ac3_channels_tab[hdr->channel_mode] + hdr->lfe_on;
>          hdr->frame_size = ff_ac3_frame_size_tab[frame_size_code][hdr->sr_code] * 2;
> +        hdr->num_blocks = 6;
>          hdr->frame_type = EAC3_FRAME_TYPE_AC3_CONVERT; //EAC3_FRAME_TYPE_INDEPENDENT;
>      } else {
>          /* Enhanced AC-3 */
> @@ -118,9 +118,9 @@ int ff_ac3_parse_header(GetBitContext *gbc, AC3HeaderInfo *hdr)
>                  return AC3_PARSE_ERROR_SAMPLE_RATE;
>              hdr->sample_rate = ff_ac3_sample_rate_tab[sr_code2] / 2;
>              hdr->sr_shift = 1;
> -            num_blocks = 6;
> +            hdr->num_blocks = 6;

cant these = 6 be factored out before the if/elses?

[...]
>      int phase_flags_in_use;                 ///< phase flags in use
>      int phase_flags[18];                    ///< phase flags
> +    int   num_cpl_subbands;                 ///< number of coupling sub bands
> +    int   num_cpl_bands;                    ///< number of coupling bands
>      int cpl_band_struct[18];                ///< coupling band structure

funny whitespace, this also applies to a few others

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I am the wisest man alive, for I know one thing, and that is that I know
nothing. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080607/5db70101/attachment.pgp>



More information about the ffmpeg-devel mailing list