jpegdec: Enable packetized if sink caps contains parsed as true.
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Sun, 22 May 2022 08:46:12 +0000 (10:46 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 12 Dec 2022 12:02:35 +0000 (12:02 +0000)
jpegdec is capable to parse input frames, but if jpegparse is before,
there's no need to reparse frames. This patch configure jpegdec as
packetized, skipping parsing, if negotiated sink caps has the boolean
field 'parsed' as true.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2464>

subprojects/gst-plugins-good/ext/jpeg/gstjpegdec.c

index b251abc..a87c297 100644 (file)
@@ -601,11 +601,17 @@ static gboolean
 gst_jpeg_dec_set_format (GstVideoDecoder * dec, GstVideoCodecState * state)
 {
   GstJpegDec *jpeg = GST_JPEG_DEC (dec);
+  GstStructure *structure;
+  gboolean parsed = FALSE;
 
   if (jpeg->input_state)
     gst_video_codec_state_unref (jpeg->input_state);
   jpeg->input_state = gst_video_codec_state_ref (state);
 
+  structure = gst_caps_get_structure (state->caps, 0);
+  gst_structure_get_boolean (structure, "parsed", &parsed);
+  gst_video_decoder_set_packetized (dec, parsed);
+
   return TRUE;
 }