# HG changeset patch # User bellard # Date 1068477676 0 # Node ID 0d2b59cf9f45afe5bfcc442b291365ce1cb11fc2 # Parent d29e96720e21449ee121a999bbd1717a0bb81762 exported mpa_decode_header for new parser API diff -r d29e96720e21 -r 0d2b59cf9f45 mpegaudio.h --- a/mpegaudio.h Mon Nov 10 15:19:05 2003 +0000 +++ b/mpegaudio.h Mon Nov 10 15:21:16 2003 +0000 @@ -19,6 +19,7 @@ #define MPA_MONO 3 int l2_select_table(int bitrate, int nb_channels, int freq, int lsf); +int mpa_decode_header(AVCodecContext *avctx, uint32_t head); extern const uint16_t mpa_bitrate_tab[2][3][15]; extern const uint16_t mpa_freq_tab[3]; diff -r d29e96720e21 -r 0d2b59cf9f45 mpegaudiodec.c --- a/mpegaudiodec.c Mon Nov 10 15:19:05 2003 +0000 +++ b/mpegaudiodec.c Mon Nov 10 15:21:16 2003 +0000 @@ -1207,15 +1207,10 @@ } /* useful helper to get mpeg audio stream infos. Return -1 if error in - header */ -int mp_decode_header(int *sample_rate_ptr, - int *nb_channels_ptr, - int *coded_frame_size_ptr, - int *decoded_frame_size_ptr, - uint32_t head) + header, otherwise the coded frame size in bytes */ +int mpa_decode_header(AVCodecContext *avctx, uint32_t head) { MPADecodeContext s1, *s = &s1; - int decoded_frame_size; if (check_header(head) != 0) return -1; @@ -1226,25 +1221,25 @@ switch(s->layer) { case 1: - decoded_frame_size = 384; + avctx->frame_size = 384; break; case 2: - decoded_frame_size = 1152; + avctx->frame_size = 1152; break; default: case 3: if (s->lsf) - decoded_frame_size = 576; + avctx->frame_size = 576; else - decoded_frame_size = 1152; + avctx->frame_size = 1152; break; } - *sample_rate_ptr = s->sample_rate; - *nb_channels_ptr = s->nb_channels; - *coded_frame_size_ptr = s->frame_size; - *decoded_frame_size_ptr = decoded_frame_size * 2 * s->nb_channels; - return 0; + avctx->sample_rate = s->sample_rate; + avctx->channels = s->nb_channels; + avctx->bit_rate = s->bit_rate; + avctx->sub_id = s->layer; + return s->frame_size; } /* return the number of decoded frames */