mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 05:16:13 +00:00
h264parse: use upstream width/height when given
The upstream width and height should override the dimension detected in the file. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683142
This commit is contained in:
parent
0d15c8a7a5
commit
0e0dd05fd6
1 changed files with 15 additions and 3 deletions
|
@ -1196,12 +1196,24 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps)
|
||||||
if (G_UNLIKELY (modified)) {
|
if (G_UNLIKELY (modified)) {
|
||||||
gint fps_num = h264parse->fps_num;
|
gint fps_num = h264parse->fps_num;
|
||||||
gint fps_den = h264parse->fps_den;
|
gint fps_den = h264parse->fps_den;
|
||||||
|
gint width, height;
|
||||||
GstClockTime latency;
|
GstClockTime latency;
|
||||||
|
|
||||||
caps = gst_caps_copy (sink_caps);
|
caps = gst_caps_copy (sink_caps);
|
||||||
/* sps should give this */
|
|
||||||
gst_caps_set_simple (caps, "width", G_TYPE_INT, sps->width,
|
/* sps should give this but upstream overrides */
|
||||||
"height", G_TYPE_INT, sps->height, NULL);
|
if (s && gst_structure_has_field (s, "width"))
|
||||||
|
gst_structure_get_int (s, "width", &width);
|
||||||
|
else
|
||||||
|
width = sps->width;
|
||||||
|
|
||||||
|
if (s && gst_structure_has_field (s, "height"))
|
||||||
|
gst_structure_get_int (s, "height", &height);
|
||||||
|
else
|
||||||
|
height = sps->height;
|
||||||
|
|
||||||
|
gst_caps_set_simple (caps, "width", G_TYPE_INT, width,
|
||||||
|
"height", G_TYPE_INT, height, NULL);
|
||||||
|
|
||||||
/* upstream overrides */
|
/* upstream overrides */
|
||||||
if (s && gst_structure_has_field (s, "framerate"))
|
if (s && gst_structure_has_field (s, "framerate"))
|
||||||
|
|
Loading…
Reference in a new issue