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 */