mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
x265enc: add accept-caps handling
Ovewrite default handling to avoid doing a caps query. Check the received caps against the possible formats supported by the x265 library.
This commit is contained in:
parent
f2aabb9f89
commit
9e99102b48
1 changed files with 27 additions and 0 deletions
|
@ -297,6 +297,32 @@ gst_x265_enc_get_supported_input_caps (void)
|
|||
return caps;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_x265_enc_sink_query (GstVideoEncoder * enc, GstQuery * query)
|
||||
{
|
||||
gboolean res;
|
||||
|
||||
switch (GST_QUERY_TYPE (query)) {
|
||||
case GST_QUERY_ACCEPT_CAPS:{
|
||||
GstCaps *acceptable, *caps;
|
||||
|
||||
acceptable = gst_x265_enc_get_supported_input_caps ();
|
||||
gst_query_parse_accept_caps (query, &caps);
|
||||
|
||||
gst_query_set_accept_caps_result (query,
|
||||
gst_caps_is_subset (caps, acceptable));
|
||||
gst_caps_unref (acceptable);
|
||||
res = TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
res = GST_VIDEO_ENCODER_CLASS (parent_class)->sink_query (enc, query);
|
||||
break;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
gst_x265_enc_sink_getcaps (GstVideoEncoder * enc, GstCaps * filter)
|
||||
{
|
||||
|
@ -336,6 +362,7 @@ gst_x265_enc_class_init (GstX265EncClass * klass)
|
|||
gstencoder_class->flush = GST_DEBUG_FUNCPTR (gst_x265_enc_flush);
|
||||
gstencoder_class->finish = GST_DEBUG_FUNCPTR (gst_x265_enc_finish);
|
||||
gstencoder_class->getcaps = GST_DEBUG_FUNCPTR (gst_x265_enc_sink_getcaps);
|
||||
gstencoder_class->sink_query = GST_DEBUG_FUNCPTR (gst_x265_enc_sink_query);
|
||||
gstencoder_class->propose_allocation =
|
||||
GST_DEBUG_FUNCPTR (gst_x265_enc_propose_allocation);
|
||||
|
||||
|
|
Loading…
Reference in a new issue