Merge commit '462d5e8e6c050eae7cbb1f2d5c34628088bd0eb6'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 12 Feb 2014 13:59:00 +0000 (14:59 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 12 Feb 2014 14:00:03 +0000 (15:00 +0100)
* commit '462d5e8e6c050eae7cbb1f2d5c34628088bd0eb6':
  aacdec: set AVFrame sample_rate

Conflicts:
libavcodec/aacdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/aacdec.c

@@@ -3029,12 -2892,12 +3014,31 @@@ static int aac_decode_frame_int(AVCodec
          ac->oc[1].status = OC_LOCKED;
      }
  
 -    }
 +    if (multiplier) {
 +        int side_size;
 +        const uint8_t *side = av_packet_get_side_data(avpkt, AV_PKT_DATA_SKIP_SAMPLES, &side_size);
 +        if (side && side_size>=4)
 +            AV_WL32(side, 2*AV_RL32(side));
 +    }
++
++    *got_frame_ptr = !!samples;
+     if (samples) {
+         ac->frame->nb_samples = samples;
+         ac->frame->sample_rate = avctx->sample_rate;
++    } else
++        av_frame_unref(ac->frame);
+     *got_frame_ptr = !!samples;
++    /* for dual-mono audio (SCE + SCE) */
++    is_dmono = ac->dmono_mode && sce_count == 2 &&
++               ac->oc[1].channel_layout == (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT);
++    if (is_dmono) {
++        if (ac->dmono_mode == 1)
++            ((AVFrame *)data)->data[1] =((AVFrame *)data)->data[0];
++        else if (ac->dmono_mode == 2)
++            ((AVFrame *)data)->data[0] =((AVFrame *)data)->data[1];
++    }
++
      return 0;
  fail:
      pop_output_configuration(ac);