Commit e8f8cd2c authored by Nicolas Dufresne's avatar Nicolas Dufresne

v4l2videoenc: Don't set colorimetry on capture

The colorimetry will be set along with the raw format and those fields
will then be copied from sink to src caps by the gst encoder.

https://bugzilla.gnome.org/show_bug.cgi?id=791471
parent 3a9d15bb
...@@ -813,6 +813,7 @@ gst_v4l2_video_enc_decide_allocation (GstVideoEncoder * ...@@ -813,6 +813,7 @@ gst_v4l2_video_enc_decide_allocation (GstVideoEncoder *
{ {
GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder); GstV4l2VideoEnc *self = GST_V4L2_VIDEO_ENC (encoder);
GstVideoCodecState *state = gst_video_encoder_get_output_state (encoder); GstVideoCodecState *state = gst_video_encoder_get_output_state (encoder);
GstCaps *caps;
GstV4l2Error error = GST_V4L2_ERROR_INIT; GstV4l2Error error = GST_V4L2_ERROR_INIT;
GstClockTime latency; GstClockTime latency;
gboolean ret = FALSE; gboolean ret = FALSE;
...@@ -821,11 +822,15 @@ gst_v4l2_video_enc_decide_allocation (GstVideoEncoder * ...@@ -821,11 +822,15 @@ gst_v4l2_video_enc_decide_allocation (GstVideoEncoder *
* GstVideoEncoder have set the width, height and framerate into the state * GstVideoEncoder have set the width, height and framerate into the state
* caps. These are needed by the driver to calculate the buffer size and to * caps. These are needed by the driver to calculate the buffer size and to
* implement bitrate adaptation. */ * implement bitrate adaptation. */
if (!gst_v4l2_object_set_format (self->v4l2capture, state->caps, &error)) { caps = gst_caps_copy (state->caps);
gst_structure_remove_field (gst_caps_get_structure (caps, 0), "colorimetry");
if (!gst_v4l2_object_set_format (self->v4l2capture, caps, &error)) {
gst_v4l2_error (self, &error); gst_v4l2_error (self, &error);
gst_caps_unref (caps);
ret = FALSE; ret = FALSE;
goto done; goto done;
} }
gst_caps_unref (caps);
if (gst_v4l2_object_decide_allocation (self->v4l2capture, query)) { if (gst_v4l2_object_decide_allocation (self->v4l2capture, query)) {
GstVideoEncoderClass *enc_class = GST_VIDEO_ENCODER_CLASS (parent_class); GstVideoEncoderClass *enc_class = GST_VIDEO_ENCODER_CLASS (parent_class);
......
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