summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/decode/ad_lavc.c11
-rw-r--r--audio/decode/ad_spdif.c20
2 files changed, 5 insertions, 26 deletions
diff --git a/audio/decode/ad_lavc.c b/audio/decode/ad_lavc.c
index b5a4ee1ef8..2495012e47 100644
--- a/audio/decode/ad_lavc.c
+++ b/audio/decode/ad_lavc.c
@@ -344,7 +344,6 @@ static int control(sh_audio_t *sh, int cmd, void *arg)
switch (cmd) {
case ADCTRL_RESYNC_STREAM:
avcodec_flush_buffers(ctx->avctx);
- ds_clear_parser(sh->ds);
ctx->previous_data_left = 0;
ctx->output_left = 0;
return CONTROL_TRUE;
@@ -384,10 +383,7 @@ static int decode_new_packet(struct sh_audio *sh)
if (!mpkt) {
assert(!priv->previous_data_left);
start = NULL;
- insize = 0;
- ds_parse(sh->ds, &start, &insize, pts, 0);
- if (insize <= 0)
- return -1; // error or EOF
+ return -1; // error or EOF
} else {
assert(mpkt->len >= priv->previous_data_left);
if (!priv->previous_data_left) {
@@ -396,8 +392,7 @@ static int decode_new_packet(struct sh_audio *sh)
}
insize = priv->previous_data_left;
start = mpkt->buffer + mpkt->len - priv->previous_data_left;
- int consumed = ds_parse(sh->ds, &start, &insize, pts, 0);
- priv->previous_data_left -= consumed;
+ priv->previous_data_left -= insize;
priv->previous_data_left = FFMAX(priv->previous_data_left, 0);
}
@@ -420,7 +415,7 @@ static int decode_new_packet(struct sh_audio *sh)
return -1;
}
// The "insize >= ret" test is sanity check against decoder overreads
- if (!sh->parser && insize >= ret)
+ if (insize >= ret)
priv->previous_data_left = insize - ret;
if (!got_frame)
return 0;
diff --git a/audio/decode/ad_spdif.c b/audio/decode/ad_spdif.c
index 1314110062..49b7d9a0d8 100644
--- a/audio/decode/ad_spdif.c
+++ b/audio/decode/ad_spdif.c
@@ -132,20 +132,8 @@ static int init(sh_audio_t *sh, const char *decoder)
pts = MP_NOPTS_VALUE;
x = 0;
}
- ds_parse(sh->ds, &start, &x, pts, 0);
srate = 48000; //fake value
bps = 768000/8; //fake value
- if (x && sh->avctx) { // we have parser and large enough buffer
- if (sh->avctx->sample_rate < 44100) {
- mp_msg(MSGT_DECAUDIO,MSGL_INFO,
- "This stream sample_rate[%d Hz] may be broken. "
- "Force reset 48000Hz.\n",
- sh->avctx->sample_rate);
- srate = 48000; //fake value
- } else
- srate = sh->avctx->sample_rate;
- bps = sh->avctx->bit_rate/8;
- }
sh->ds->buffer_pos -= in_size;
int num_channels = 0;
@@ -239,14 +227,10 @@ static int decode_audio(sh_audio_t *sh, unsigned char *buf,
break;
x = ds_get_packet_pts(sh->ds, &start, &pts);
if (x <= 0) {
- x = 0;
- ds_parse(sh->ds, &start, &x, MP_NOPTS_VALUE, 0);
- if (x == 0)
- continue; // END_NOT_FOUND
- in_size = x;
+ continue; // END_NOT_FOUND
} else {
in_size = x;
- consumed = ds_parse(sh->ds, &start, &x, pts, 0);
+ consumed = x;
if (x == 0) {
mp_msg(MSGT_DECAUDIO,MSGL_V,
"start[%p] in_size[%d] consumed[%d] x[%d].\n",