v4l2videodec: treat MPEG 1 format as MPEG 2
authorHou Qi <qi.hou@nxp.com>
Tue, 6 Jun 2023 01:24:37 +0000 (09:24 +0800)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 6 Jun 2023 18:56:40 +0000 (20:56 +0200)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4787>

subprojects/gst-plugins-good/sys/v4l2/gstv4l2videodec.c

index facaf65..6a702fa 100644 (file)
@@ -1384,12 +1384,20 @@ G_STMT_START { \
     gint mpegversion = 0;
     gst_structure_get_int (s, "mpegversion", &mpegversion);
 
-    if (mpegversion == 2) {
-      SET_META ("MPEG2");
-      cdata->codec = gst_v4l2_mpeg2_get_codec ();
-    } else {
-      SET_META ("MPEG4");
-      cdata->codec = gst_v4l2_mpeg4_get_codec ();
+    switch (mpegversion) {
+        /* MPEG 2 decoders supports MPEG 1 format */
+      case 1:
+      case 2:
+        SET_META ("MPEG2");
+        cdata->codec = gst_v4l2_mpeg2_get_codec ();
+        break;
+      case 4:
+        SET_META ("MPEG4");
+        cdata->codec = gst_v4l2_mpeg4_get_codec ();
+        break;
+      default:
+        g_warning ("Unsupported MPEG Video version %i", mpegversion);
+        break;
     }
   } else if (gst_structure_has_name (s, "video/x-h263")) {
     SET_META ("H263");