From 3549aa79248927aa8d2a8fb2b1d12727d9b7d373 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 31 Jan 2016 11:08:38 +1100 Subject: [PATCH] rtpjpegpay: Allow different quantization tables for components 2 and 3 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 | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c index a37c18b..7940cb6 100644 --- a/gst/rtp/gstrtpjpegpay.c +++ b/gst/rtp/gstrtpjpegpay.c @@ -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 */ -- 2.7.4