jpegparse: Parse AVI1 tag in app0.
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Wed, 15 Feb 2023 18:02:35 +0000 (19:02 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 18 Jul 2023 10:30:57 +0000 (12:30 +0200)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5053>

subprojects/gst-plugins-bad/gst/jpegformat/gstjpegparse.c

index a7965bf..8286718 100644 (file)
@@ -50,6 +50,7 @@
  *  + APP3 -- meta (same as exif)
  *  + APP12 -- Photoshop Save for Web: Ducky / Picture info
  *  + APP13 -- Adobe IRB
+ *  + check for interlaced mjpeg
  */
 
 #ifdef HAVE_CONFIG_H
@@ -436,6 +437,18 @@ gst_jpeg_parse_app0 (GstJpegParse * parse, GstJpegSegment * seg)
     return TRUE;
   }
 
+  /* https://exiftool.org/TagNames/JPEG.html#AVI1 */
+  if (g_strcmp0 (id_str, "AVI1") == 0) {
+    /* polarity */
+    if (!gst_byte_reader_get_uint8 (&reader, &unit))
+      return FALSE;
+
+    /* TODO: update caps for interlaced MJPEG */
+    GST_DEBUG_OBJECT (parse, "MJPEG interleaved field: %d", unit);
+
+    return TRUE;
+  }
+
   return FALSE;
 }