File ffmpeg-codec-choice.diff of Package ffmpeg-5

From: Jan Engelhardt <jengelh@inai.de>

Edit the default codec selection such that

	ffmpeg -i youtube.blah.webm foobar.mkv

without any further arguments can produce a result even on a
reduced codec selection list.

---
 libavformat/matroskaenc.c |   20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

Index: ffmpeg-5.1.3/libavformat/matroskaenc.c
===================================================================
--- ffmpeg-5.1.3.orig/libavformat/matroskaenc.c
+++ ffmpeg-5.1.3/libavformat/matroskaenc.c
@@ -3316,16 +3316,25 @@ static int mkv_query_codec(enum AVCodecI
     return 0;
 }
 
+#define PREFAUDIO \
+	CONFIG_LIBOPUS_ENCODER ? AV_CODEC_ID_OPUS : \
+	CONFIG_AAC_ENCODER ? AV_CODEC_ID_AAC : \
+	CONFIG_VORBIS_ENCODER ? AV_CODEC_ID_VORBIS : \
+	AV_CODEC_ID_AC3
+
 const AVOutputFormat ff_matroska_muxer = {
     .name              = "matroska",
     .long_name         = NULL_IF_CONFIG_SMALL("Matroska"),
     .mime_type         = "video/x-matroska",
     .extensions        = "mkv",
     .priv_data_size    = sizeof(MatroskaMuxContext),
-    .audio_codec       = CONFIG_LIBVORBIS_ENCODER ?
-                         AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
-    .video_codec       = CONFIG_LIBX264_ENCODER ?
-                         AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4,
+    .audio_codec       = PREFAUDIO,
+    .video_codec       =
+	CONFIG_LIBVPX_VP9_ENCODER ? AV_CODEC_ID_VP9 : \
+	CONFIG_LIBX264_ENCODER ? AV_CODEC_ID_H264 : \
+	CONFIG_LIBVPX_VP8_ENCODER ? AV_CODEC_ID_VP8 : \
+	CONFIG_MPEG4_ENCODER ? AV_CODEC_ID_MPEG4 : \
+	AV_CODEC_ID_THEORA,
     .init              = mkv_init,
     .deinit            = mkv_deinit,
     .write_header      = mkv_write_header,
@@ -3383,8 +3392,7 @@ const AVOutputFormat ff_matroska_audio_m
     .mime_type         = "audio/x-matroska",
     .extensions        = "mka",
     .priv_data_size    = sizeof(MatroskaMuxContext),
-    .audio_codec       = CONFIG_LIBVORBIS_ENCODER ?
-                         AV_CODEC_ID_VORBIS : AV_CODEC_ID_AC3,
+    .audio_codec       = PREFAUDIO,
     .video_codec       = AV_CODEC_ID_NONE,
     .init              = mkv_init,
     .deinit            = mkv_deinit,
openSUSE Build Service is sponsored by