summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2016-02-16 16:32:38 +0100
committerEdward Hervey <bilboed@bilboed.com>2016-02-16 16:43:23 +0100
commite3cf542215519f882b7570a4b59aad75a8d2d27a (patch)
tree8d62d4ece8cf114860b38d09149fc52a0ee0755f
parent55fd9e362360dc717a34ace8caa7b2e880bc4cc1 (diff)
downloadgst-libav-e3cf542215519f882b7570a4b59aad75a8d2d27a.tar.gz
avcfg: rc-min-rate and rc-max-rate are now 64bit integers
Switch the gobject properties and internal handling to support that
-rw-r--r--ext/libav/gstavcfg.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/ext/libav/gstavcfg.c b/ext/libav/gstavcfg.c
index d38cce1..a361994 100644
--- a/ext/libav/gstavcfg.c
+++ b/ext/libav/gstavcfg.c
@@ -513,13 +513,19 @@ gst_ffmpeg_cfg_init (void)
gst_ffmpeg_add_pspec (pspec, config.rc_buffer_aggressivity, FALSE, mpeg,
NULL);
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT (57, 3, 0)
pspec = g_param_spec_int ("rc-max-rate", "Ratecontrol Maximum Bitrate",
"Ratecontrol Maximum Bitrate", 0, G_MAXINT, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+#else
+ pspec = g_param_spec_int64 ("rc-max-rate", "Ratecontrol Maximum Bitrate",
+ "Ratecontrol Maximum Bitrate", 0, G_MAXINT64, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+#endif
gst_ffmpeg_add_pspec (pspec, config.rc_max_rate, FALSE, mpeg, NULL);
- pspec = g_param_spec_int ("rc-min-rate", "Ratecontrol Minimum Bitrate",
- "Ratecontrol Minimum Bitrate", 0, G_MAXINT, 0,
+ pspec = g_param_spec_int64 ("rc-min-rate", "Ratecontrol Minimum Bitrate",
+ "Ratecontrol Minimum Bitrate", 0, G_MAXINT64, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
gst_ffmpeg_add_pspec (pspec, config.rc_min_rate, FALSE, mpeg, NULL);
@@ -770,6 +776,15 @@ gst_ffmpeg_cfg_install_property (GstFFMpegVidEncClass * klass, guint base)
: pint->default_value, pspec->flags);
break;
}
+ case G_TYPE_INT64:{
+ GParamSpecInt64 *pint = G_PARAM_SPEC_INT64 (pspec);
+
+ pspec = g_param_spec_int64 (name, nick, blurb,
+ pint->minimum, pint->maximum,
+ lavc_default ? G_STRUCT_MEMBER (gint64, ctx, ctx_offset)
+ : pint->default_value, pspec->flags);
+ break;
+ }
case G_TYPE_UINT:{
GParamSpecUInt *puint = G_PARAM_SPEC_UINT (pspec);
@@ -862,6 +877,11 @@ gst_ffmpeg_cfg_set_property (GObject * object,
G_STRUCT_MEMBER (gint, ffmpegenc, qdata->offset) =
g_value_get_int (value);
break;
+ case G_TYPE_INT64:
+ g_return_val_if_fail (qdata->size == sizeof (gint64), TRUE);
+ G_STRUCT_MEMBER (gint64, ffmpegenc, qdata->offset) =
+ g_value_get_int64 (value);
+ break;
case G_TYPE_FLOAT:
g_return_val_if_fail (qdata->size == sizeof (gfloat), TRUE);
G_STRUCT_MEMBER (gfloat, ffmpegenc, qdata->offset) =
@@ -924,6 +944,11 @@ gst_ffmpeg_cfg_get_property (GObject * object,
g_return_val_if_fail (qdata->size == sizeof (gint), TRUE);
g_value_set_int (value, G_STRUCT_MEMBER (gint, ffmpegenc, qdata->offset));
break;
+ case G_TYPE_INT64:
+ g_return_val_if_fail (qdata->size == sizeof (gint64), TRUE);
+ g_value_set_int64 (value, G_STRUCT_MEMBER (gint64, ffmpegenc,
+ qdata->offset));
+ break;
case G_TYPE_FLOAT:
g_return_val_if_fail (qdata->size == sizeof (gfloat), TRUE);
g_value_set_float (value,