[gst-cvs] gst-openmax: jpegenc: Forward upstream framerate in caps.
Felipe Contreras
felipec at kemper.freedesktop.org
Wed Mar 25 14:27:08 PDT 2009
Module: gst-openmax
Branch: master
Commit: 9e44ce92d2d7ada9d65a6495eacc8aa1d4f86375
URL: http://cgit.freedesktop.org/gstreamer/gst-openmax/commit/?id=9e44ce92d2d7ada9d65a6495eacc8aa1d4f86375
Author: René Stadler <rene.stadler at nokia.com>
Date: Mon Mar 23 14:25:23 2009 +0200
jpegenc: Forward upstream framerate in caps.
---
omx/gstomx_jpegenc.c | 17 ++++++++++++++++-
omx/gstomx_jpegenc.h | 2 ++
2 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/omx/gstomx_jpegenc.c b/omx/gstomx_jpegenc.c
index 0b75b79..991f948 100644
--- a/omx/gstomx_jpegenc.c
+++ b/omx/gstomx_jpegenc.c
@@ -198,10 +198,12 @@ static void
settings_changed_cb (GOmxCore *core)
{
GstOmxBaseFilter *omx_base;
+ GstOmxJpegEnc *self;
guint width;
guint height;
omx_base = core->client_data;
+ self = GST_OMX_JPEGENC (omx_base);
GST_DEBUG_OBJECT (omx_base, "settings changed");
@@ -229,7 +231,8 @@ settings_changed_cb (GOmxCore *core)
new_caps = gst_caps_new_simple ("image/jpeg",
"width", G_TYPE_INT, width,
"height", G_TYPE_INT, height,
- "framerate", GST_TYPE_FRACTION, 1, 1,
+ "framerate", GST_TYPE_FRACTION,
+ self->framerate_num, self->framerate_denom,
NULL);
GST_INFO_OBJECT (omx_base, "caps are: %" GST_PTR_FORMAT, new_caps);
@@ -243,12 +246,14 @@ sink_setcaps (GstPad *pad,
{
GstStructure *structure;
GstOmxBaseFilter *omx_base;
+ GstOmxJpegEnc *self;
GOmxCore *gomx;
OMX_COLOR_FORMATTYPE color_format = OMX_COLOR_FormatYUV420Planar;
gint width = 0;
gint height = 0;
omx_base = GST_OMX_BASE_FILTER (GST_PAD_PARENT (pad));
+ self = GST_OMX_JPEGENC (omx_base);
gomx = (GOmxCore *) omx_base->gomx;
GST_INFO_OBJECT (omx_base, "setcaps (sink): %" GST_PTR_FORMAT, caps);
@@ -260,6 +265,14 @@ sink_setcaps (GstPad *pad,
gst_structure_get_int (structure, "width", &width);
gst_structure_get_int (structure, "height", &height);
+ if (!gst_structure_get_fraction (structure, "framerate",
+ &self->framerate_num,
+ &self->framerate_denom))
+ {
+ self->framerate_num = 0;
+ self->framerate_denom = 1;
+ }
+
if (strcmp (gst_structure_get_name (structure), "video/x-raw-yuv") == 0)
{
guint32 fourcc;
@@ -371,6 +384,8 @@ type_instance_init (GTypeInstance *instance,
gst_pad_set_setcaps_function (omx_base->sinkpad, sink_setcaps);
+ self->framerate_num = 0;
+ self->framerate_denom = 1;
self->quality = DEFAULT_QUALITY;
}
diff --git a/omx/gstomx_jpegenc.h b/omx/gstomx_jpegenc.h
index 88b40da..b14a0d0 100644
--- a/omx/gstomx_jpegenc.h
+++ b/omx/gstomx_jpegenc.h
@@ -40,6 +40,8 @@ struct GstOmxJpegEnc
{
GstOmxBaseFilter omx_base;
+ gint framerate_num;
+ gint framerate_denom;
guint quality;
};
More information about the Gstreamer-commits
mailing list