Message ID | 20210506212215.7931-1-jeebjp@gmail.com |
---|---|
State | Accepted |
Commit | ec20b8130269260f3ae1e4642da26ba556814f84 |
Headers | show |
Series | [FFmpeg-devel] ffmpeg: return no chosen output if an uninitialized stream is unavailable | expand |
Context | Check | Description |
---|---|---|
andriy/x86_make | success | Make finished |
andriy/x86_make_fate | success | Make fate finished |
andriy/PPC64_make | success | Make finished |
andriy/PPC64_make_fate | success | Make fate finished |
On Fri, May 7, 2021 at 12:22 AM Jan Ekström <jeebjp@gmail.com> wrote: > > Otherwise the rate emulation logic in `transcode_step` never gets > hit, and the unavailability flag never gets reset, leading to an > eternal loop. > > Fixes #9160 > --- I will be double-checking after $dayjob whether there is another area where the fix for this issue would be more applicable, but if I cannot come up with a better way of dealing with this - as at least one user has confirmed that this fixes all of his issues with relation to -re and -ss (among other things) - I will be applying this to master and release/4.4, both of which are affected. Jan
On Fri, May 7, 2021 at 12:22 AM Jan Ekström <jeebjp@gmail.com> wrote: > > Otherwise the rate emulation logic in `transcode_step` never gets > hit, and the unavailability flag never gets reset, leading to an > eternal loop. > > Fixes #9160 > --- > fftools/ffmpeg.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c > index 3ad11452da..b3658d8f65 100644 > --- a/fftools/ffmpeg.c > +++ b/fftools/ffmpeg.c > @@ -3958,7 +3958,7 @@ static OutputStream *choose_output(void) > ost->st->index, ost->st->id, ost->initialized, ost->inputs_done, ost->finished); > > if (!ost->initialized && !ost->inputs_done) > - return ost; > + return ost->unavailable ? NULL : ost; > > if (!ost->finished && opts < opts_min) { > opts_min = opts; > -- > 2.31.1 > Added some extra explanation on the commit message and applied as ec20b8130269260f3ae1e4642da26ba556814f84 to master. Will also cherry-pick this to release/4.4 as it is also affected. Jan
On Thu, May 13, 2021 at 6:11 PM Jan Ekström <jeebjp@gmail.com> wrote: > > On Fri, May 7, 2021 at 12:22 AM Jan Ekström <jeebjp@gmail.com> wrote: > > > > Otherwise the rate emulation logic in `transcode_step` never gets > > hit, and the unavailability flag never gets reset, leading to an > > eternal loop. > > > > Fixes #9160 > > --- > > fftools/ffmpeg.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c > > index 3ad11452da..b3658d8f65 100644 > > --- a/fftools/ffmpeg.c > > +++ b/fftools/ffmpeg.c > > @@ -3958,7 +3958,7 @@ static OutputStream *choose_output(void) > > ost->st->index, ost->st->id, ost->initialized, ost->inputs_done, ost->finished); > > > > if (!ost->initialized && !ost->inputs_done) > > - return ost; > > + return ost->unavailable ? NULL : ost; > > > > if (!ost->finished && opts < opts_min) { > > opts_min = opts; > > -- > > 2.31.1 > > > > Added some extra explanation on the commit message and applied as > ec20b8130269260f3ae1e4642da26ba556814f84 to master. > > Will also cherry-pick this to release/4.4 as it is also affected. Cherry-picked into release/4.4 as 70405dd7e31cd436e9ffa252124537df253a5dc3 . Jan
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 3ad11452da..b3658d8f65 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -3958,7 +3958,7 @@ static OutputStream *choose_output(void) ost->st->index, ost->st->id, ost->initialized, ost->inputs_done, ost->finished); if (!ost->initialized && !ost->inputs_done) - return ost; + return ost->unavailable ? NULL : ost; if (!ost->finished && opts < opts_min) { opts_min = opts;