rtpjpegpay: Allow different quantization tables for components 2 and 3
authorSebastian Dröge <sebastian@centricular.com>
Sun, 31 Jan 2016 00:08:38 +0000 (11:08 +1100)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 25 Mar 2016 10:52:56 +0000 (12:52 +0200)
RFC 2435 mentions in section 4.1 that U/V use table number 1, but this seems
just like an example. Some encoders are not following that and there seems to
be no reason to reject their streams.

https://bugzilla.gnome.org/show_bug.cgi?id=761345

gst/rtp/gstrtpjpegpay.c

index a37c18b..7940cb6 100644 (file)
@@ -558,21 +558,6 @@ gst_rtp_jpeg_pay_read_sof (GstRtpJPEGPay * pay, const guint8 * data,
   if (!(info[2].samp == 0x11))
     goto invalid_comp;
 
-  /* the other components are free to use any quant table but they have to
-   * have the same table id */
-  if (info[1].qt != info[2].qt) {
-    /* Some MJPG (like the one from the Logitech C-920 camera) uses different
-     * quant tables for component 1 and 2 but both tables contain the exact
-     * same data, so we could consider them as being the same tables */
-    if (!(info[1].qt < tables_elements &&
-            info[2].qt < tables_elements &&
-            tables[info[1].qt].size > 0 &&
-            tables[info[1].qt].size == tables[info[2].qt].size &&
-            memcmp (tables[info[1].qt].data, tables[info[2].qt].data,
-                tables[info[1].qt].size) == 0))
-      goto invalid_comp;
-  }
-
   return TRUE;
 
   /* ERRORS */