mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 19:20:35 +00:00
gst: encode: enable new type of property mechanism.
This commit is contained in:
parent
05643dadb5
commit
1256680486
9 changed files with 79 additions and 270 deletions
|
@ -1547,8 +1547,8 @@ error_operation_failed:
|
|||
}
|
||||
|
||||
/* Initialize default values for configurable properties */
|
||||
static void
|
||||
gst_vaapi_encoder_constructed (GObject * object)
|
||||
__attribute__ ((unused))
|
||||
static void gst_vaapi_encoder_constructed (GObject * object)
|
||||
{
|
||||
GstVaapiEncoder *encoder = GST_VAAPI_ENCODER (object);
|
||||
GstVaapiEncoderClass *const klass = GST_VAAPI_ENCODER_GET_CLASS (encoder);
|
||||
|
@ -1601,9 +1601,8 @@ enum
|
|||
|
||||
static GParamSpec *properties[ENCODER_N_PROPERTIES];
|
||||
|
||||
__attribute__ ((unused))
|
||||
static void
|
||||
_gst_vaapi_encoder_set_property (GObject * object, guint prop_id,
|
||||
static void
|
||||
_gst_vaapi_encoder_set_property (GObject * object, guint prop_id,
|
||||
const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncoder *encoder = GST_VAAPI_ENCODER (object);
|
||||
|
@ -1653,9 +1652,8 @@ __attribute__ ((unused))
|
|||
g_param_spec_get_name (pspec), status);
|
||||
}
|
||||
|
||||
__attribute__ ((unused))
|
||||
static void
|
||||
_gst_vaapi_encoder_get_property (GObject * object, guint prop_id,
|
||||
static void
|
||||
_gst_vaapi_encoder_get_property (GObject * object, guint prop_id,
|
||||
GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncoder *encoder = GST_VAAPI_ENCODER (object);
|
||||
|
@ -1730,8 +1728,9 @@ gst_vaapi_encoder_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapi_encoder_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
encoder_set_property (GObject * object, guint prop_id,
|
||||
__attribute__ ((unused))
|
||||
static void
|
||||
encoder_set_property (GObject * object, guint prop_id,
|
||||
const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncoder *encoder = GST_VAAPI_ENCODER (object);
|
||||
|
@ -1749,8 +1748,9 @@ encoder_set_property (GObject * object, guint prop_id,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
encoder_get_property (GObject * object, guint prop_id,
|
||||
__attribute__ ((unused))
|
||||
static void
|
||||
encoder_get_property (GObject * object, guint prop_id,
|
||||
GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncoder *encoder = GST_VAAPI_ENCODER (object);
|
||||
|
@ -1770,10 +1770,9 @@ gst_vaapi_encoder_class_init (GstVaapiEncoderClass * klass)
|
|||
{
|
||||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->set_property = encoder_set_property;
|
||||
object_class->get_property = encoder_get_property;
|
||||
object_class->set_property = _gst_vaapi_encoder_set_property;
|
||||
object_class->get_property = _gst_vaapi_encoder_get_property;
|
||||
object_class->finalize = gst_vaapi_encoder_finalize;
|
||||
object_class->constructed = gst_vaapi_encoder_constructed;
|
||||
|
||||
/**
|
||||
* GstVaapiDecoder:display:
|
||||
|
|
|
@ -578,8 +578,6 @@ static gboolean
|
|||
ensure_encoder (GstVaapiEncode * encode)
|
||||
{
|
||||
GstVaapiEncodeClass *klass = GST_VAAPIENCODE_GET_CLASS (encode);
|
||||
GstVaapiEncoderStatus status;
|
||||
GPtrArray *const prop_values = encode->prop_values;
|
||||
guint i;
|
||||
|
||||
g_return_val_if_fail (klass->alloc_encoder, FALSE);
|
||||
|
@ -592,15 +590,17 @@ ensure_encoder (GstVaapiEncode * encode)
|
|||
if (!encode->encoder)
|
||||
return FALSE;
|
||||
|
||||
if (prop_values) {
|
||||
for (i = 0; i < prop_values->len; i++) {
|
||||
PropValue *const prop_value = g_ptr_array_index (prop_values, i);
|
||||
status = gst_vaapi_encoder_set_property (encode->encoder, prop_value->id,
|
||||
&prop_value->value);
|
||||
if (status != GST_VAAPI_ENCODER_STATUS_SUCCESS)
|
||||
return FALSE;
|
||||
if (encode->prop_values && encode->prop_values->len) {
|
||||
for (i = 0; i < encode->prop_values->len; i++) {
|
||||
PropValue *const prop_value = g_ptr_array_index (encode->prop_values, i);
|
||||
g_object_set_property ((GObject *) encode->encoder,
|
||||
g_param_spec_get_name (prop_value->pspec), &prop_value->value);
|
||||
}
|
||||
/* clear alll the cache */
|
||||
g_ptr_array_unref (encode->prop_values);
|
||||
encode->prop_values = NULL;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ G_DEFINE_TYPE (GstVaapiEncodeH264, gst_vaapiencode_h264, GST_TYPE_VAAPIENCODE);
|
|||
static void
|
||||
gst_vaapiencode_h264_init (GstVaapiEncodeH264 * encode)
|
||||
{
|
||||
gst_vaapiencode_init_properties (GST_VAAPIENCODE_CAST (encode));
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -128,36 +128,6 @@ gst_vaapiencode_h264_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapiencode_h264_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_h264_set_property (GObject * object,
|
||||
guint prop_id, const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->set_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_h264_get_property (GObject * object,
|
||||
guint prop_id, GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->get_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static GstVaapiProfile
|
||||
gst_vaapiencode_h264_get_profile (GstCaps * caps)
|
||||
{
|
||||
|
@ -577,15 +547,15 @@ gst_vaapiencode_h264_class_init (GstVaapiEncodeH264Class * klass)
|
|||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_CLASS (klass);
|
||||
gpointer encoder_class;
|
||||
|
||||
GST_DEBUG_CATEGORY_INIT (gst_vaapi_h264_encode_debug,
|
||||
GST_PLUGIN_NAME, 0, GST_PLUGIN_DESC);
|
||||
|
||||
object_class->finalize = gst_vaapiencode_h264_finalize;
|
||||
object_class->set_property = gst_vaapiencode_h264_set_property;
|
||||
object_class->get_property = gst_vaapiencode_h264_get_property;
|
||||
object_class->set_property = gst_vaapiencode_set_property_subclass;
|
||||
object_class->get_property = gst_vaapiencode_get_property_subclass;
|
||||
|
||||
encode_class->get_properties = gst_vaapi_encoder_h264_get_default_properties;
|
||||
encode_class->get_profile = gst_vaapiencode_h264_get_profile;
|
||||
encode_class->set_config = gst_vaapiencode_h264_set_config;
|
||||
encode_class->get_caps = gst_vaapiencode_h264_get_caps;
|
||||
|
@ -605,5 +575,8 @@ gst_vaapiencode_h264_class_init (GstVaapiEncodeH264Class * klass)
|
|||
gst_element_class_add_static_pad_template (element_class,
|
||||
&gst_vaapiencode_h264_src_factory);
|
||||
|
||||
gst_vaapiencode_class_init_properties (encode_class);
|
||||
encoder_class = g_type_class_ref (GST_TYPE_VAAPI_ENCODER_H264);
|
||||
g_assert (encoder_class);
|
||||
gst_vaapiencode_class_install_properties (encode_class, encoder_class);
|
||||
g_type_class_unref (encoder_class);
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ G_DEFINE_TYPE (GstVaapiEncodeH264Fei, gst_vaapiencode_h264_fei,
|
|||
static void
|
||||
gst_vaapiencode_h264_fei_init (GstVaapiEncodeH264Fei * encode)
|
||||
{
|
||||
gst_vaapiencode_init_properties (GST_VAAPIENCODE_CAST (encode));
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -106,36 +106,6 @@ gst_vaapiencode_h264_fei_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapiencode_h264_fei_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_h264_fei_set_property (GObject * object,
|
||||
guint prop_id, const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->set_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_h264_fei_get_property (GObject * object,
|
||||
guint prop_id, GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->get_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GstVaapiProfile best_profile;
|
||||
|
@ -504,16 +474,15 @@ gst_vaapiencode_h264_fei_class_init (GstVaapiEncodeH264FeiClass * klass)
|
|||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_CLASS (klass);
|
||||
gpointer encoder_class;
|
||||
|
||||
GST_DEBUG_CATEGORY_INIT (gst_vaapi_h264_fei_encode_debug,
|
||||
GST_PLUGIN_NAME, 0, GST_PLUGIN_DESC);
|
||||
|
||||
object_class->finalize = gst_vaapiencode_h264_fei_finalize;
|
||||
object_class->set_property = gst_vaapiencode_h264_fei_set_property;
|
||||
object_class->get_property = gst_vaapiencode_h264_fei_get_property;
|
||||
object_class->set_property = gst_vaapiencode_set_property_subclass;
|
||||
object_class->get_property = gst_vaapiencode_get_property_subclass;
|
||||
|
||||
encode_class->get_properties =
|
||||
gst_vaapi_encoder_h264_fei_get_default_properties;
|
||||
encode_class->set_config = gst_vaapiencode_h264_fei_set_config;
|
||||
encode_class->get_caps = gst_vaapiencode_h264_fei_get_caps;
|
||||
encode_class->alloc_encoder = gst_vaapiencode_h264_fei_alloc_encoder;
|
||||
|
@ -537,5 +506,8 @@ gst_vaapiencode_h264_fei_class_init (GstVaapiEncodeH264FeiClass * klass)
|
|||
gst_element_class_add_static_pad_template (element_class,
|
||||
&gst_vaapiencode_h264_fei_src_factory);
|
||||
|
||||
gst_vaapiencode_class_init_properties (encode_class);
|
||||
encoder_class = g_type_class_ref (GST_TYPE_VAAPI_ENCODER_H264_FEI);
|
||||
g_assert (encoder_class);
|
||||
gst_vaapiencode_class_install_properties (encode_class, encoder_class);
|
||||
g_type_class_unref (encoder_class);
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ G_DEFINE_TYPE (GstVaapiEncodeH265, gst_vaapiencode_h265, GST_TYPE_VAAPIENCODE);
|
|||
static void
|
||||
gst_vaapiencode_h265_init (GstVaapiEncodeH265 * encode)
|
||||
{
|
||||
gst_vaapiencode_init_properties (GST_VAAPIENCODE_CAST (encode));
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -99,36 +99,6 @@ gst_vaapiencode_h265_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapiencode_h265_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_h265_set_property (GObject * object,
|
||||
guint prop_id, const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->set_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_h265_get_property (GObject * object,
|
||||
guint prop_id, GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->get_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static GstVaapiProfile
|
||||
gst_vaapiencode_h265_get_profile (GstCaps * caps)
|
||||
{
|
||||
|
@ -407,15 +377,15 @@ gst_vaapiencode_h265_class_init (GstVaapiEncodeH265Class * klass)
|
|||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_CLASS (klass);
|
||||
gpointer encoder_class;
|
||||
|
||||
GST_DEBUG_CATEGORY_INIT (gst_vaapi_h265_encode_debug,
|
||||
GST_PLUGIN_NAME, 0, GST_PLUGIN_DESC);
|
||||
|
||||
object_class->finalize = gst_vaapiencode_h265_finalize;
|
||||
object_class->set_property = gst_vaapiencode_h265_set_property;
|
||||
object_class->get_property = gst_vaapiencode_h265_get_property;
|
||||
object_class->set_property = gst_vaapiencode_set_property_subclass;
|
||||
object_class->get_property = gst_vaapiencode_get_property_subclass;
|
||||
|
||||
encode_class->get_properties = gst_vaapi_encoder_h265_get_default_properties;
|
||||
encode_class->get_profile = gst_vaapiencode_h265_get_profile;
|
||||
encode_class->set_config = gst_vaapiencode_h265_set_config;
|
||||
encode_class->get_caps = gst_vaapiencode_h265_get_caps;
|
||||
|
@ -436,5 +406,8 @@ gst_vaapiencode_h265_class_init (GstVaapiEncodeH265Class * klass)
|
|||
gst_element_class_add_static_pad_template (element_class,
|
||||
&gst_vaapiencode_h265_src_factory);
|
||||
|
||||
gst_vaapiencode_class_init_properties (encode_class);
|
||||
encoder_class = g_type_class_ref (GST_TYPE_VAAPI_ENCODER_H265);
|
||||
g_assert (encoder_class);
|
||||
gst_vaapiencode_class_install_properties (encode_class, encoder_class);
|
||||
g_type_class_unref (encoder_class);
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ G_DEFINE_TYPE (GstVaapiEncodeJpeg, gst_vaapiencode_jpeg, GST_TYPE_VAAPIENCODE);
|
|||
static void
|
||||
gst_vaapiencode_jpeg_init (GstVaapiEncodeJpeg * encode)
|
||||
{
|
||||
gst_vaapiencode_init_properties (GST_VAAPIENCODE_CAST (encode));
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -95,36 +95,6 @@ gst_vaapiencode_jpeg_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapiencode_jpeg_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_jpeg_set_property (GObject * object,
|
||||
guint prop_id, const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->set_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_jpeg_get_property (GObject * object,
|
||||
guint prop_id, GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->get_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
gst_vaapiencode_jpeg_get_caps (GstVaapiEncode * base_encode)
|
||||
{
|
||||
|
@ -148,15 +118,15 @@ gst_vaapiencode_jpeg_class_init (GstVaapiEncodeJpegClass * klass)
|
|||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_CLASS (klass);
|
||||
gpointer encoder_class;
|
||||
|
||||
GST_DEBUG_CATEGORY_INIT (gst_vaapi_jpeg_encode_debug,
|
||||
GST_PLUGIN_NAME, 0, GST_PLUGIN_DESC);
|
||||
|
||||
object_class->finalize = gst_vaapiencode_jpeg_finalize;
|
||||
object_class->set_property = gst_vaapiencode_jpeg_set_property;
|
||||
object_class->get_property = gst_vaapiencode_jpeg_get_property;
|
||||
object_class->set_property = gst_vaapiencode_set_property_subclass;
|
||||
object_class->get_property = gst_vaapiencode_get_property_subclass;
|
||||
|
||||
encode_class->get_properties = gst_vaapi_encoder_jpeg_get_default_properties;
|
||||
encode_class->get_caps = gst_vaapiencode_jpeg_get_caps;
|
||||
encode_class->alloc_encoder = gst_vaapiencode_jpeg_alloc_encoder;
|
||||
|
||||
|
@ -174,5 +144,8 @@ gst_vaapiencode_jpeg_class_init (GstVaapiEncodeJpegClass * klass)
|
|||
gst_element_class_add_static_pad_template (element_class,
|
||||
&gst_vaapiencode_jpeg_src_factory);
|
||||
|
||||
gst_vaapiencode_class_init_properties (encode_class);
|
||||
encoder_class = g_type_class_ref (GST_TYPE_VAAPI_ENCODER_JPEG);
|
||||
g_assert (encoder_class);
|
||||
gst_vaapiencode_class_install_properties (encode_class, encoder_class);
|
||||
g_type_class_unref (encoder_class);
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ G_DEFINE_TYPE (GstVaapiEncodeMpeg2, gst_vaapiencode_mpeg2,
|
|||
static void
|
||||
gst_vaapiencode_mpeg2_init (GstVaapiEncodeMpeg2 * encode)
|
||||
{
|
||||
gst_vaapiencode_init_properties (GST_VAAPIENCODE_CAST (encode));
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -98,36 +98,6 @@ gst_vaapiencode_mpeg2_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapiencode_mpeg2_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_mpeg2_set_property (GObject * object,
|
||||
guint prop_id, const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->set_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_mpeg2_get_property (GObject * object,
|
||||
guint prop_id, GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->get_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
gst_vaapiencode_mpeg2_get_caps (GstVaapiEncode * base_encode)
|
||||
{
|
||||
|
@ -152,15 +122,15 @@ gst_vaapiencode_mpeg2_class_init (GstVaapiEncodeMpeg2Class * klass)
|
|||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_CLASS (klass);
|
||||
gpointer encoder_class;
|
||||
|
||||
GST_DEBUG_CATEGORY_INIT (gst_vaapi_mpeg2_encode_debug,
|
||||
GST_PLUGIN_NAME, 0, GST_PLUGIN_DESC);
|
||||
|
||||
object_class->finalize = gst_vaapiencode_mpeg2_finalize;
|
||||
object_class->set_property = gst_vaapiencode_mpeg2_set_property;
|
||||
object_class->get_property = gst_vaapiencode_mpeg2_get_property;
|
||||
object_class->set_property = gst_vaapiencode_set_property_subclass;
|
||||
object_class->get_property = gst_vaapiencode_get_property_subclass;
|
||||
|
||||
encode_class->get_properties = gst_vaapi_encoder_mpeg2_get_default_properties;
|
||||
encode_class->get_caps = gst_vaapiencode_mpeg2_get_caps;
|
||||
encode_class->alloc_encoder = gst_vaapiencode_mpeg2_alloc_encoder;
|
||||
|
||||
|
@ -177,5 +147,8 @@ gst_vaapiencode_mpeg2_class_init (GstVaapiEncodeMpeg2Class * klass)
|
|||
gst_element_class_add_static_pad_template (element_class,
|
||||
&gst_vaapiencode_mpeg2_src_factory);
|
||||
|
||||
gst_vaapiencode_class_init_properties (encode_class);
|
||||
encoder_class = g_type_class_ref (GST_TYPE_VAAPI_ENCODER_MPEG2);
|
||||
g_assert (encoder_class);
|
||||
gst_vaapiencode_class_install_properties (encode_class, encoder_class);
|
||||
g_type_class_unref (encoder_class);
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ G_DEFINE_TYPE (GstVaapiEncodeVP8, gst_vaapiencode_vp8, GST_TYPE_VAAPIENCODE);
|
|||
static void
|
||||
gst_vaapiencode_vp8_init (GstVaapiEncodeVP8 * encode)
|
||||
{
|
||||
gst_vaapiencode_init_properties (GST_VAAPIENCODE_CAST (encode));
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -95,36 +95,6 @@ gst_vaapiencode_vp8_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapiencode_vp8_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_vp8_set_property (GObject * object,
|
||||
guint prop_id, const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->set_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_vp8_get_property (GObject * object,
|
||||
guint prop_id, GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->get_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
gst_vaapiencode_vp8_get_caps (GstVaapiEncode * base_encode)
|
||||
{
|
||||
|
@ -148,15 +118,15 @@ gst_vaapiencode_vp8_class_init (GstVaapiEncodeVP8Class * klass)
|
|||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_CLASS (klass);
|
||||
gpointer encoder_class;
|
||||
|
||||
GST_DEBUG_CATEGORY_INIT (gst_vaapi_vp8_encode_debug,
|
||||
GST_PLUGIN_NAME, 0, GST_PLUGIN_DESC);
|
||||
|
||||
object_class->finalize = gst_vaapiencode_vp8_finalize;
|
||||
object_class->set_property = gst_vaapiencode_vp8_set_property;
|
||||
object_class->get_property = gst_vaapiencode_vp8_get_property;
|
||||
object_class->set_property = gst_vaapiencode_set_property_subclass;
|
||||
object_class->get_property = gst_vaapiencode_get_property_subclass;
|
||||
|
||||
encode_class->get_properties = gst_vaapi_encoder_vp8_get_default_properties;
|
||||
encode_class->get_caps = gst_vaapiencode_vp8_get_caps;
|
||||
encode_class->alloc_encoder = gst_vaapiencode_vp8_alloc_encoder;
|
||||
|
||||
|
@ -174,5 +144,8 @@ gst_vaapiencode_vp8_class_init (GstVaapiEncodeVP8Class * klass)
|
|||
gst_element_class_add_static_pad_template (element_class,
|
||||
&gst_vaapiencode_vp8_src_factory);
|
||||
|
||||
gst_vaapiencode_class_init_properties (encode_class);
|
||||
encoder_class = g_type_class_ref (GST_TYPE_VAAPI_ENCODER_VP8);
|
||||
g_assert (encoder_class);
|
||||
gst_vaapiencode_class_install_properties (encode_class, encoder_class);
|
||||
g_type_class_unref (encoder_class);
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ G_DEFINE_TYPE (GstVaapiEncodeVP9, gst_vaapiencode_vp9, GST_TYPE_VAAPIENCODE);
|
|||
static void
|
||||
gst_vaapiencode_vp9_init (GstVaapiEncodeVP9 * encode)
|
||||
{
|
||||
gst_vaapiencode_init_properties (GST_VAAPIENCODE_CAST (encode));
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -95,36 +95,6 @@ gst_vaapiencode_vp9_finalize (GObject * object)
|
|||
G_OBJECT_CLASS (gst_vaapiencode_vp9_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_vp9_set_property (GObject * object,
|
||||
guint prop_id, const GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->set_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapiencode_vp9_get_property (GObject * object,
|
||||
guint prop_id, GValue * value, GParamSpec * pspec)
|
||||
{
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_GET_CLASS (object);
|
||||
GstVaapiEncode *const base_encode = GST_VAAPIENCODE_CAST (object);
|
||||
|
||||
switch (prop_id) {
|
||||
default:
|
||||
if (!encode_class->get_property (base_encode, prop_id, value))
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
gst_vaapiencode_vp9_get_caps (GstVaapiEncode * base_encode)
|
||||
{
|
||||
|
@ -148,15 +118,15 @@ gst_vaapiencode_vp9_class_init (GstVaapiEncodeVP9Class * klass)
|
|||
GObjectClass *const object_class = G_OBJECT_CLASS (klass);
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
GstVaapiEncodeClass *const encode_class = GST_VAAPIENCODE_CLASS (klass);
|
||||
gpointer encoder_class;
|
||||
|
||||
GST_DEBUG_CATEGORY_INIT (gst_vaapi_vp9_encode_debug,
|
||||
GST_PLUGIN_NAME, 0, GST_PLUGIN_DESC);
|
||||
|
||||
object_class->finalize = gst_vaapiencode_vp9_finalize;
|
||||
object_class->set_property = gst_vaapiencode_vp9_set_property;
|
||||
object_class->get_property = gst_vaapiencode_vp9_get_property;
|
||||
object_class->set_property = gst_vaapiencode_set_property_subclass;
|
||||
object_class->get_property = gst_vaapiencode_get_property_subclass;
|
||||
|
||||
encode_class->get_properties = gst_vaapi_encoder_vp9_get_default_properties;
|
||||
encode_class->get_caps = gst_vaapiencode_vp9_get_caps;
|
||||
encode_class->alloc_encoder = gst_vaapiencode_vp9_alloc_encoder;
|
||||
|
||||
|
@ -174,5 +144,8 @@ gst_vaapiencode_vp9_class_init (GstVaapiEncodeVP9Class * klass)
|
|||
gst_element_class_add_pad_template (element_class,
|
||||
gst_static_pad_template_get (&gst_vaapiencode_vp9_src_factory));
|
||||
|
||||
gst_vaapiencode_class_init_properties (encode_class);
|
||||
encoder_class = g_type_class_ref (GST_TYPE_VAAPI_ENCODER_VP9);
|
||||
g_assert (encoder_class);
|
||||
gst_vaapiencode_class_install_properties (encode_class, encoder_class);
|
||||
g_type_class_unref (encoder_class);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue