[FFmpeg-cvslog] ffmpeg: return no chosen output if an uninitialized stream is unavailable

2021-05-13 Thread Jan Ekström
ffmpeg | branch: release/4.4 | Jan Ekström  | Thu May  6 
23:31:44 2021 +0300| [70405dd7e31cd436e9ffa252124537df253a5dc3] | committer: 
Jan Ekström

ffmpeg: return no chosen output if an uninitialized stream is unavailable

Otherwise the rate emulation logic in `transcode_step` never gets
hit, and the unavailability flag never gets reset, leading to an
eternal loop with some rate emulation use cases.

This change was missed during the rework of ffmpeg.c, in which
encoder initialization was moved further down the time line in
commit 67be1ce0c6de330b1c10d1d121819d8a74a7b1f5 . Previously,
as the encoder initialization had happened earlier, this state was
not possible (flow getting as far as hitting the rate emulation logic,
yet not having the encoder initialized yet).

Fixes #9160

(cherry picked from commit ec20b8130269260f3ae1e4642da26ba556814f84)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=70405dd7e31cd436e9ffa252124537df253a5dc3
---

 fftools/ffmpeg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 46bb014de8..7d533c3806 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -3950,7 +3950,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;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] ffmpeg: return no chosen output if an uninitialized stream is unavailable

2021-05-13 Thread Jan Ekström
ffmpeg | branch: master | Jan Ekström  | Thu May  6 23:31:44 
2021 +0300| [ec20b8130269260f3ae1e4642da26ba556814f84] | committer: Jan Ekström

ffmpeg: return no chosen output if an uninitialized stream is unavailable

Otherwise the rate emulation logic in `transcode_step` never gets
hit, and the unavailability flag never gets reset, leading to an
eternal loop with some rate emulation use cases.

This change was missed during the rework of ffmpeg.c, in which
encoder initialization was moved further down the time line in
commit 67be1ce0c6de330b1c10d1d121819d8a74a7b1f5 . Previously,
as the encoder initialization had happened earlier, this state was
not possible (flow getting as far as hitting the rate emulation logic,
yet not having the encoder initialized yet).

Fixes #9160

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ec20b8130269260f3ae1e4642da26ba556814f84
---

 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;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".