summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 2caf135)
raw | patch | inline | side by side (parent: 2caf135)
author | Martin Storsjo <martin@martin.st> | |
Wed, 2 May 2012 17:42:53 +0000 (20:42 +0300) | ||
committer | Alessandro Decina <alessandro.decina@collabora.co.uk> | |
Mon, 16 Jul 2012 08:24:40 +0000 (08:24 +0000) |
src/gstducatividenc.c | patch | blob | history | |
src/gstducatividenc.h | patch | blob | history |
diff --git a/src/gstducatividenc.c b/src/gstducatividenc.c
index 94ff04245450efdd5c30211215bb4102acf7cb9b..2c4371940a7be23ac4e3ba29cdc114a53a80fffe 100644 (file)
--- a/src/gstducatividenc.c
+++ b/src/gstducatividenc.c
#define DEFAULT_BITRATE 2048
#define DEFAULT_RATE_PRESET GST_DUCATI_VIDENC_RATE_PRESET_STORAGE
+#define DEFAULT_INTRA_INTERVAL 15
#define GST_TYPE_DUCATI_VIDENC_RATE_PRESET (gst_ducati_videnc_rate_preset_get_type ())
{
PROP_0,
PROP_BITRATE,
- PROP_RATE_PRESET
+ PROP_RATE_PRESET,
+ PROP_INTRA_INTERVAL
};
static void gst_ducati_videnc_set_property (GObject * object, guint prop_id,
"H.264 Rate Control",
GST_TYPE_DUCATI_VIDENC_RATE_PRESET, DEFAULT_RATE_PRESET,
G_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class, PROP_INTRA_INTERVAL,
+ g_param_spec_int ("intra-interval", "Intra-frame interval", "Interval between intra frames (keyframes)", 0,
+ INT_MAX, DEFAULT_INTRA_INTERVAL, G_PARAM_READWRITE));
}
static void
self->bitrate = DEFAULT_BITRATE * 1000;
self->rate_preset = DEFAULT_RATE_PRESET;
+ self->intra_interval = DEFAULT_INTRA_INTERVAL;
}
static gboolean
case PROP_RATE_PRESET:
self->rate_preset = g_value_get_enum (value);
break;
+ case PROP_INTRA_INTERVAL:
+ self->intra_interval = g_value_get_int (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
case PROP_RATE_PRESET:
g_value_set_enum (value, self->rate_preset);
break;
+ case PROP_INTRA_INTERVAL:
+ g_value_set_int (value, self->intra_interval);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
dynParams->inputWidth = self->rect.w;
dynParams->inputHeight = self->rect.h;
dynParams->targetBitRate = self->bitrate;
- dynParams->intraFrameInterval = 15;
+ dynParams->intraFrameInterval = self->intra_interval;
dynParams->captureWidth = dynParams->inputWidth;
dynParams->forceFrame = IVIDEO_NA_FRAME;
diff --git a/src/gstducatividenc.h b/src/gstducatividenc.h
index c0feb8c1583788bf3ede68fbdcff4d5bbf67d616..d77304aa08603ab4c66c054f56eb10a17db6ecf2 100644 (file)
--- a/src/gstducatividenc.h
+++ b/src/gstducatividenc.h
gint bitrate;
guint rate_preset;
+ guint intra_interval;
};
struct _GstDucatiVidEncClass