From cbca79b95baa2b2cf39b72d0a0b2b3de0725959a Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sun, 12 Mar 2023 12:39:05 +0100 Subject: [PATCH] Fix v4l2 sink The codec id to write as codec parameters is the one from the v4l2 encoder, not from the decoder. Regression introduced by be985b8242e0626288674b84c5039725170f8f0c. Fixes #3795 --- app/src/v4l2_sink.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/v4l2_sink.c b/app/src/v4l2_sink.c index 717d2bd5..3b3eb8d0 100644 --- a/app/src/v4l2_sink.c +++ b/app/src/v4l2_sink.c @@ -210,6 +210,9 @@ sc_v4l2_sink_open(struct sc_v4l2_sink *vs, const AVCodecContext *ctx) { goto error_avformat_free_context; } + // The codec is from the v4l2 encoder, not from the decoder + ostream->codecpar->codec_id = encoder->id; + int ret = avio_open(&vs->format_ctx->pb, vs->device_name, AVIO_FLAG_WRITE); if (ret < 0) { LOGE("Failed to open output device: %s", vs->device_name);