]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
AAC: Don't write an illegal sampling_index in a PCE to the MPEG4AudioConfig
authorsuperdump <superdump@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 21 Dec 2008 05:08:32 +0000 (05:08 +0000)
committersuperdump <superdump@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 21 Dec 2008 05:08:32 +0000 (05:08 +0000)
member

Patch by Alex Converse (alex converse gmail com)

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16249 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/aac.c

index 8fbf964d279f3e049f3f8d6ca800ef857230c679..62d4ba5d82c14850664ab4dd8e0b2363b8b6d4c3 100644 (file)
@@ -167,15 +167,16 @@ static void decode_channel_map(enum ChannelPosition *cpe_map,
  */
 static int decode_pce(AACContext * ac, enum ChannelPosition new_che_pos[4][MAX_ELEM_ID],
         GetBitContext * gb) {
-    int num_front, num_side, num_back, num_lfe, num_assoc_data, num_cc;
+    int num_front, num_side, num_back, num_lfe, num_assoc_data, num_cc, sampling_index;
 
     skip_bits(gb, 2);  // object_type
 
-    ac->m4ac.sampling_index = get_bits(gb, 4);
-    if(ac->m4ac.sampling_index > 11) {
+    sampling_index = get_bits(gb, 4);
+    if(sampling_index > 11) {
         av_log(ac->avccontext, AV_LOG_ERROR, "invalid sampling rate index %d\n", ac->m4ac.sampling_index);
         return -1;
     }
+    ac->m4ac.sampling_index = sampling_index;
     ac->m4ac.sample_rate = ff_mpeg4audio_sample_rates[ac->m4ac.sampling_index];
     num_front       = get_bits(gb, 4);
     num_side        = get_bits(gb, 4);