Commit f5a11645 authored by Guillaume Desmottes's avatar Guillaume Desmottes 🐐

videodecoder: remove useless code in negotiate_default_caps()

gst_video_decoder_negotiate_default_caps() is meant to pick a default output
format when we need one earlier because of an incoming GAP.
It tries to use the input caps as a base if available and fallback to a default
format (I420 1280x720@30) for the missing fields.

But the framerate and pixel-aspect were not explicitly passed to
gst_video_decoder_set_output_state() which is solely relying on the input format
as reference to get the framerate anx pixel-aspect-ratio.
So there is no need to manually handling those two fields as
gst_video_decoder_set_output_state() will already use the ones from
upstream if available, and they will be ignored anyway if there are not.

This also prevent confusing debugging output where we claim to use a
specific framerate while actually none was set.
parent 2b8e09b4
Pipeline #17659 passed with stages
in 18 minutes and 41 seconds
......@@ -1001,8 +1001,6 @@ gst_video_decoder_negotiate_default_caps (GstVideoDecoder * decoder)
GstCaps *sinkcaps = decoder->priv->input_state->caps;
GstStructure *structure = gst_caps_get_structure (sinkcaps, 0);
gint width, height;
gint par_n, par_d;
gint fps_n, fps_d;
if (gst_structure_get_int (structure, "width", &width)) {
for (i = 0; i < caps_size; i++) {
......@@ -1017,26 +1015,11 @@ gst_video_decoder_negotiate_default_caps (GstVideoDecoder * decoder)
G_TYPE_INT, height, NULL);
if (gst_structure_get_fraction (structure, "framerate", &fps_n, &fps_d)) {
for (i = 0; i < caps_size; i++) {
gst_structure_set (gst_caps_get_structure (caps, i), "framerate",
GST_TYPE_FRACTION, fps_n, fps_d, NULL);
if (gst_structure_get_fraction (structure, "pixel-aspect-ratio", &par_n,
&par_d)) {
for (i = 0; i < caps_size; i++) {
gst_structure_set (gst_caps_get_structure (caps, i),
"pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, NULL);
for (i = 0; i < caps_size; i++) {
structure = gst_caps_get_structure (caps, i);
/* Random I420 1280x720@30 for fixation */
/* Random I420 1280x720 for fixation */
if (gst_structure_has_field (structure, "format"))
gst_structure_fixate_field_string (structure, "format", "I420");
......@@ -1051,20 +1034,6 @@ gst_video_decoder_negotiate_default_caps (GstVideoDecoder * decoder)
gst_structure_fixate_field_nearest_int (structure, "height", 720);
gst_structure_set (structure, "height", G_TYPE_INT, 720, NULL);
if (gst_structure_has_field (structure, "framerate"))
gst_structure_fixate_field_nearest_fraction (structure, "framerate", 30,
gst_structure_set (structure, "framerate", GST_TYPE_FRACTION, 30, 1,
if (gst_structure_has_field (structure, "pixel-aspect-ratio"))
gst_structure_fixate_field_nearest_fraction (structure,
"pixel-aspect-ratio", 1, 1);
gst_structure_set (structure, "pixel-aspect-ratio", GST_TYPE_FRACTION,
1, 1, NULL);
caps = gst_caps_fixate (caps);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment