summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2020-07-06 22:13:55 -0400
committerThibault Saunier <tsaunier@igalia.com>2020-07-10 08:47:29 -0400
commitde77207bfa57b8d884a4ac6f3dfe59badca92723 (patch)
tree048d9bd3a588dcc0c8b5c0c664f74be9c8f38340
parent9c1aacb6351c3823b6c4b438abd0aead20a65aa2 (diff)
x264enc: Forward downstream colorimetry and chroma-site upstream
So that the value can be used by upstream converters when necessary. This whole logic has been copied from `__gst_video_element_proxy_caps` but those 2 fields were missing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/60>
-rw-r--r--ext/x264/gstx264enc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c
index d28c6bdc..ad1dbd41 100644
--- a/ext/x264/gstx264enc.c
+++ b/ext/x264/gstx264enc.c
@@ -829,6 +829,8 @@ gst_x264_enc_sink_getcaps (GstVideoEncoder * enc, GstCaps * filter)
const GValue *val;
GstStructure *s;
+ /* FIXME Find a way to reuse gst_video_encoder_proxy_getcaps so that
+ * we do not need to copy that logic */
s = gst_structure_new_id_empty (q_name);
if ((val = gst_structure_get_value (allowed_s, "width")))
gst_structure_set_value (s, "width", val);
@@ -838,6 +840,10 @@ gst_x264_enc_sink_getcaps (GstVideoEncoder * enc, GstCaps * filter)
gst_structure_set_value (s, "framerate", val);
if ((val = gst_structure_get_value (allowed_s, "pixel-aspect-ratio")))
gst_structure_set_value (s, "pixel-aspect-ratio", val);
+ if ((val = gst_structure_get_value (allowed_s, "colorimetry")))
+ gst_structure_set_value (s, "colorimetry", val);
+ if ((val = gst_structure_get_value (allowed_s, "chroma-site")))
+ gst_structure_set_value (s, "chroma-site", val);
if ((val = gst_structure_get_value (allowed_s, "profile"))) {
gboolean has_420 = FALSE;