From: Sebastian Dröge Date: Sun, 31 Jan 2016 00:08:38 +0000 (+1100) Subject: rtpjpegpay: Allow different quantization tables for components 2 and 3 X-Git-Tag: 1.10.4~488 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3549aa79248927aa8d2a8fb2b1d12727d9b7d373;p=platform%2Fupstream%2Fgst-plugins-good.git 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 --- 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 */