summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTSaaristo <tero.saaristo@gmail.com>2018-07-05 17:12:46 +0300
committerJan Ekström <jeebjp@gmail.com>2018-09-29 23:06:49 +0300
commitc994a81aa48737b2b9d40c651f50f9fd3c9d648b (patch)
treee312718f92c3b89cae179fccd1f3834d2d3f8a2a
parent5ae13ad13b0a9c56bc1d0ff48ebea3f84d58df28 (diff)
downloadmpv-c994a81aa48737b2b9d40c651f50f9fd3c9d648b.tar.bz2
mpv-c994a81aa48737b2b9d40c651f50f9fd3c9d648b.tar.xz
encode: fix expected streams when using --lavfi-complex
mpctx->current_track[0][STREAM_VIDEO] (and STREAM_AUDIO) are empty when using --lavfi-complex. Moving the muxer stream hinting after audio/video chain initialization and checking if the chains exist fixes encoding with --lavfi-complex. Previously, the output audio/video streams did not get prepared and the encode would fail due to unexpected stream addition. (cherry picked from commit 3744d0bda93d63a8ceb489a04f6c07817ce57d10)
-rw-r--r--player/loadfile.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/player/loadfile.c b/player/loadfile.c
index 56aca7d30c..81fd52f861 100644
--- a/player/loadfile.c
+++ b/player/loadfile.c
@@ -1296,21 +1296,21 @@ static void play_current_file(struct MPContext *mpctx)
update_demuxer_properties(mpctx);
+ update_playback_speed(mpctx);
+
+ reinit_video_chain(mpctx);
+ reinit_audio_chain(mpctx);
+ reinit_sub_all(mpctx);
+
if (mpctx->encode_lavc_ctx) {
- if (mpctx->current_track[0][STREAM_VIDEO])
+ if (mpctx->vo_chain)
encode_lavc_expect_stream(mpctx->encode_lavc_ctx, STREAM_VIDEO);
- if (mpctx->current_track[0][STREAM_AUDIO])
+ if (mpctx->ao_chain)
encode_lavc_expect_stream(mpctx->encode_lavc_ctx, STREAM_AUDIO);
encode_lavc_set_metadata(mpctx->encode_lavc_ctx,
mpctx->demuxer->metadata);
}
- update_playback_speed(mpctx);
-
- reinit_video_chain(mpctx);
- reinit_audio_chain(mpctx);
- reinit_sub_all(mpctx);
-
if (!mpctx->vo_chain && !mpctx->ao_chain && opts->stream_auto_sel) {
MP_FATAL(mpctx, "No video or audio streams selected.\n");
mpctx->error_playing = MPV_ERROR_NOTHING_TO_PLAY;