mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 04:56:24 +00:00
openh264enc: Add support for GstVideoMeta
This will allow upstream elements to work more efficiently.
This commit is contained in:
parent
2285cbaa45
commit
f3cabe3cc3
1 changed files with 11 additions and 1 deletions
|
@ -100,6 +100,7 @@ static gboolean gst_openh264enc_stop(GstVideoEncoder *encoder);
|
|||
static gboolean gst_openh264enc_set_format(GstVideoEncoder *encoder, GstVideoCodecState *state);
|
||||
static GstFlowReturn gst_openh264enc_handle_frame(GstVideoEncoder *encoder,
|
||||
GstVideoCodecFrame *frame);
|
||||
static gboolean gst_openh264enc_propose_allocation (GstVideoEncoder * encoder, GstQuery * query);
|
||||
static void gst_openh264enc_set_usage_type (GstOpenh264Enc *openh264enc, gint usage_type);
|
||||
static void gst_openh264enc_set_rate_control (GstOpenh264Enc *openh264enc, gint rc_mode);
|
||||
|
||||
|
@ -150,7 +151,7 @@ struct _GstOpenh264EncPrivate
|
|||
static GstStaticPadTemplate gst_openh264enc_sink_template = GST_STATIC_PAD_TEMPLATE("sink",
|
||||
GST_PAD_SINK,
|
||||
GST_PAD_ALWAYS,
|
||||
GST_STATIC_CAPS(GST_VIDEO_CAPS_MAKE("{ I420 }"))
|
||||
GST_STATIC_CAPS(GST_VIDEO_CAPS_MAKE("I420"))
|
||||
);
|
||||
|
||||
static GstStaticPadTemplate gst_openh264enc_src_template = GST_STATIC_PAD_TEMPLATE("src",
|
||||
|
@ -188,6 +189,7 @@ static void gst_openh264enc_class_init(GstOpenh264EncClass *klass)
|
|||
video_encoder_class->stop = GST_DEBUG_FUNCPTR(gst_openh264enc_stop);
|
||||
video_encoder_class->set_format = GST_DEBUG_FUNCPTR(gst_openh264enc_set_format);
|
||||
video_encoder_class->handle_frame = GST_DEBUG_FUNCPTR(gst_openh264enc_handle_frame);
|
||||
video_encoder_class->propose_allocation = GST_DEBUG_FUNCPTR(gst_openh264enc_propose_allocation);
|
||||
|
||||
/* define properties */
|
||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_USAGE_TYPE,
|
||||
|
@ -550,6 +552,14 @@ static gboolean gst_openh264enc_set_format(GstVideoEncoder *encoder, GstVideoCod
|
|||
return gst_video_encoder_negotiate (encoder);
|
||||
}
|
||||
|
||||
static gboolean gst_openh264enc_propose_allocation (GstVideoEncoder * encoder, GstQuery * query)
|
||||
{
|
||||
gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL);
|
||||
|
||||
return GST_VIDEO_ENCODER_CLASS (gst_openh264enc_parent_class)->propose_allocation (encoder,
|
||||
query);
|
||||
}
|
||||
|
||||
static GstFlowReturn gst_openh264enc_handle_frame(GstVideoEncoder *encoder, GstVideoCodecFrame *frame)
|
||||
{
|
||||
GstOpenh264Enc *openh264enc = GST_OPENH264ENC(encoder);
|
||||
|
|
Loading…
Reference in a new issue