mirror of https://github.com/mpv-player/mpv
ad_lavc: increase number of packets for initial decode
Apparently just 5 packets is not enough for the initial audio decode (which is needed to find the format). The old code (before the recent refactor) appeared to use 5 packets, but there were apparently other code paths which in the end amounted to more than 5 packets being read. The sample that failed (see github issue #368) needed 9 packets. Fixes #368.
This commit is contained in:
parent
bdd00d8b65
commit
8846a2f95c
|
@ -263,9 +263,12 @@ static int init(struct dec_audio *da, const char *decoder)
|
||||||
// Decode at least 1 sample: (to get header filled)
|
// Decode at least 1 sample: (to get header filled)
|
||||||
for (int tries = 1; ; tries++) {
|
for (int tries = 1; ; tries++) {
|
||||||
int x = decode_new_packet(da);
|
int x = decode_new_packet(da);
|
||||||
if (x >= 0 && ctx->frame.samples > 0)
|
if (x >= 0 && ctx->frame.samples > 0) {
|
||||||
|
mp_msg(MSGT_DECAUDIO, MSGL_V,
|
||||||
|
"Initial decode succeeded after %d packets.\n", tries);
|
||||||
break;
|
break;
|
||||||
if (tries >= 5) {
|
}
|
||||||
|
if (tries >= 50) {
|
||||||
mp_msg(MSGT_DECAUDIO, MSGL_ERR,
|
mp_msg(MSGT_DECAUDIO, MSGL_ERR,
|
||||||
"ad_lavc: initial decode failed\n");
|
"ad_lavc: initial decode failed\n");
|
||||||
uninit(da);
|
uninit(da);
|
||||||
|
|
Loading…
Reference in New Issue