[FFmpeg-cvslog] r13689 - in trunk/libavcodec: ac3.h ac3_parser.c ac3dec.c

jbr subversion
Sun Jun 8 00:29:11 CEST 2008


Author: jbr
Date: Sun Jun  8 00:29:11 2008
New Revision: 13689

Log:
get substreamid from ac3 parser


Modified:
   trunk/libavcodec/ac3.h
   trunk/libavcodec/ac3_parser.c
   trunk/libavcodec/ac3dec.c

Modified: trunk/libavcodec/ac3.h
==============================================================================
--- trunk/libavcodec/ac3.h	(original)
+++ trunk/libavcodec/ac3.h	Sun Jun  8 00:29:11 2008
@@ -85,6 +85,7 @@ typedef struct {
     uint8_t channel_mode;
     uint8_t lfe_on;
     uint8_t frame_type;
+    int substreamid;                        ///< substream identification
     int center_mix_level;                   ///< Center mix level index
     int surround_mix_level;                 ///< Surround mix level index
     uint16_t channel_map;

Modified: trunk/libavcodec/ac3_parser.c
==============================================================================
--- trunk/libavcodec/ac3_parser.c	(original)
+++ trunk/libavcodec/ac3_parser.c	Sun Jun  8 00:29:11 2008
@@ -99,6 +99,7 @@ int ff_ac3_parse_header(GetBitContext *g
         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->frame_type = EAC3_FRAME_TYPE_AC3_CONVERT; //EAC3_FRAME_TYPE_INDEPENDENT;
+        hdr->substreamid = 0;
     } else {
         /* Enhanced AC-3 */
         hdr->crc1 = 0;
@@ -106,7 +107,7 @@ int ff_ac3_parse_header(GetBitContext *g
         if(hdr->frame_type == EAC3_FRAME_TYPE_RESERVED)
             return AC3_PARSE_ERROR_FRAME_TYPE;
 
-        skip_bits(gbc, 3); // skip substream id
+        hdr->substreamid = get_bits(gbc, 3);
 
         hdr->frame_size = (get_bits(gbc, 11) + 1) << 1;
         if(hdr->frame_size < AC3_HEADER_SIZE)

Modified: trunk/libavcodec/ac3dec.c
==============================================================================
--- trunk/libavcodec/ac3dec.c	(original)
+++ trunk/libavcodec/ac3dec.c	Sun Jun  8 00:29:11 2008
@@ -134,6 +134,7 @@ typedef struct {
 
     int sample_rate;                        ///< sample frequency, in Hz
     int bit_rate;                           ///< stream bit rate, in bits-per-second
+    int substreamid;                        ///< substream identification
     int frame_size;                         ///< current frame size, in bytes
 
     int channels;                           ///< number of total channels
@@ -326,6 +327,7 @@ static int ac3_parse_header(AC3DecodeCon
     s->center_mix_level             = hdr.center_mix_level;
     s->surround_mix_level           = hdr.surround_mix_level;
     s->num_blocks                   = hdr.num_blocks;
+    s->substreamid                  = hdr.substreamid;
 
     if(s->lfe_on) {
         s->start_freq[s->lfe_ch] = 0;




More information about the ffmpeg-cvslog mailing list