Mercurial > libavcodec.hg
changeset 1612:0d2b59cf9f45 libavcodec
exported mpa_decode_header for new parser API
author | bellard |
---|---|
date | Mon, 10 Nov 2003 15:21:16 +0000 |
parents | d29e96720e21 |
children | 0279c6c61f11 |
files | mpegaudio.h mpegaudiodec.c |
diffstat | 2 files changed, 12 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- 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];
--- 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 */