Commit 11828b88 authored by Michael Niedermayer's avatar Michael Niedermayer

nellymoserdec: Use sidedata to support mid stream sample rate changes.

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 957a593c
...@@ -149,6 +149,7 @@ static int decode_tag(AVCodecContext * avctx, ...@@ -149,6 +149,7 @@ static int decode_tag(AVCodecContext * avctx,
void *data, int *data_size, void *data, int *data_size,
AVPacket *avpkt) { AVPacket *avpkt) {
const uint8_t *buf = avpkt->data; const uint8_t *buf = avpkt->data;
const uint8_t *side=av_packet_get_side_data(avpkt, 'F', NULL);
int buf_size = avpkt->size; int buf_size = avpkt->size;
NellyMoserDecodeContext *s = avctx->priv_data; NellyMoserDecodeContext *s = avctx->priv_data;
int data_max = *data_size; int data_max = *data_size;
...@@ -179,6 +180,8 @@ static int decode_tag(AVCodecContext * avctx, ...@@ -179,6 +180,8 @@ static int decode_tag(AVCodecContext * avctx,
* 22050 Hz - 4 * 22050 Hz - 4
* 44100 Hz - 8 * 44100 Hz - 8
*/ */
if(side && blocks>1 && avctx->sample_rate%11025==0 && (1<<((side[0]>>2)&3)) == blocks)
avctx->sample_rate= 11025*(blocks/2);
for (i=0 ; i<blocks ; i++) { for (i=0 ; i<blocks ; i++) {
if (avctx->sample_fmt == SAMPLE_FMT_FLT) { if (avctx->sample_fmt == SAMPLE_FMT_FLT) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment