File ffmpeg-codec-choice.diff of Package ffmpeg-4.openSUSE_Leap_15.0_Update

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 |   19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

Index: ffmpeg-4.0.1/libavformat/matroskaenc.c
===================================================================
--- ffmpeg-4.0.1.orig/libavformat/matroskaenc.c	2018-04-20 12:02:57.000000000 +0200
+++ ffmpeg-4.0.1/libavformat/matroskaenc.c	2018-06-30 00:17:17.773924594 +0200
@@ -2747,16 +2747,24 @@ static const AVClass matroska_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
+#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
 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,
     .write_header      = mkv_write_header,
     .write_packet      = mkv_write_flush_packet,
@@ -2815,8 +2823,7 @@ AVOutputFormat ff_matroska_audio_muxer =
     .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,
     .write_header      = mkv_write_header,
openSUSE Build Service is sponsored by