index cd43018ceabe8c8e198f1edb5e46f4f1c2d53c5f..5ee040dd7eb58cb2351d61dea377db8b51d8f568 100644 (file)
--- a/src/gstducatimpeg4enc.c
+++ b/src/gstducatimpeg4enc.c
gst_ducati_mpeg4enc_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
gst_ducati_mpeg4enc_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
- GstDucatiMPEG4Enc *self = GST_DUCATIMPEG4ENC (object);
+ GstDucatiMPEG4Enc *self;
g_return_if_fail (GST_IS_DUCATIMPEG4ENC (object));
self = GST_DUCATIMPEG4ENC (object);
g_return_if_fail (GST_IS_DUCATIMPEG4ENC (object));
self = GST_DUCATIMPEG4ENC (object);
gst_ducati_mpeg4enc_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
gst_ducati_mpeg4enc_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
- GstDucatiMPEG4Enc *self = GST_DUCATIMPEG4ENC (object);
+ GstDucatiMPEG4Enc *self;
g_return_if_fail (GST_IS_DUCATIMPEG4ENC (object));
self = GST_DUCATIMPEG4ENC (object);
g_return_if_fail (GST_IS_DUCATIMPEG4ENC (object));
self = GST_DUCATIMPEG4ENC (object);
}
}
}
}
+static const char *
+get_profile_name (guint profile)
+{
+ switch (profile) {
+ case GST_DUCATI_MPEG4ENC_PROFILE_SIMPLE:
+ return "simple";
+ default:
+ return NULL;
+ }
+}
+
static gboolean
gst_ducati_mpeg4enc_configure (GstDucatiVidEnc * videnc)
{
GstDucatiMPEG4Enc *self = GST_DUCATIMPEG4ENC (videnc);
static gboolean
gst_ducati_mpeg4enc_configure (GstDucatiVidEnc * videnc)
{
GstDucatiMPEG4Enc *self = GST_DUCATIMPEG4ENC (videnc);
+ const GstVideoState *state;
+ GstCaps *caps;
+ const char *s;
+ gboolean ret = TRUE;
if (!GST_DUCATIVIDENC_CLASS (parent_class)->configure (videnc))
return FALSE;
if (!GST_DUCATIVIDENC_CLASS (parent_class)->configure (videnc))
return FALSE;
videnc->dynParams->mvAccuracy = IVIDENC2_MOTIONVECTOR_HALFPEL;
videnc->dynParams->interFrameInterval = 0;
videnc->dynParams->mvAccuracy = IVIDENC2_MOTIONVECTOR_HALFPEL;
videnc->dynParams->interFrameInterval = 0;
- return TRUE;
+ state = gst_base_video_encoder_get_state (GST_BASE_VIDEO_ENCODER (videnc));
+ caps = gst_caps_new_simple ("video/mpeg",
+ "mpegversion", G_TYPE_INT, 4,
+ "systemstream", G_TYPE_BOOLEAN, FALSE,
+ "width", G_TYPE_INT, videnc->rect.w,
+ "height", G_TYPE_INT, videnc->rect.h,
+ "framerate", GST_TYPE_FRACTION, state->fps_n, state->fps_d,
+ "pixel-aspect-ratio", GST_TYPE_FRACTION, state->par_n, state->par_d,
+ NULL);
+ s = get_profile_name (self->profile);
+ if (s)
+ gst_caps_set_simple (caps, "profile", G_TYPE_STRING, s, NULL);
+ ret = gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (self), caps);
+
+ return ret;
}
static gboolean
}
static gboolean