summaryrefslogtreecommitdiffstats
path: root/ext/jpeg/gstjpegenc.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-07-06 20:49:52 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-07-06 20:49:52 +0000
commit292fec2a0bd1f221a46ad69c5100995d04c01057 (patch)
tree658db299e0e03b2454ff840730569d79539e67c4 /ext/jpeg/gstjpegenc.c
parenta8183e9a3fa87cf4247c7df16207f440ea4069c0 (diff)
New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as descri...
Original commit message from CVS: New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as described in the previous commit's document. Note: some plugins will break, some pipelines will break, expect HEAD to be broken or at least not 100% working for a few days, but don't forget to report bugs
Diffstat (limited to 'ext/jpeg/gstjpegenc.c')
-rw-r--r--ext/jpeg/gstjpegenc.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index b2a8fc1d..ccd5bbce 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -52,6 +52,8 @@ static void gst_jpegenc_class_init (GstJpegEnc *klass);
static void gst_jpegenc_init (GstJpegEnc *jpegenc);
static void gst_jpegenc_chain (GstPad *pad,GstBuffer *buf);
+static GstPadLinkReturn gst_jpegenc_link (GstPad *pad, GstCaps *caps);
+
static GstBuffer *gst_jpegenc_get (GstPad *pad);
static void gst_jpegenc_resync (GstJpegEnc *jpegenc);
@@ -123,6 +125,7 @@ gst_jpegenc_init (GstJpegEnc *jpegenc)
jpegenc->sinkpad = gst_pad_new("sink",GST_PAD_SINK);
gst_element_add_pad(GST_ELEMENT(jpegenc),jpegenc->sinkpad);
gst_pad_set_chain_function(jpegenc->sinkpad,gst_jpegenc_chain);
+ gst_pad_set_link_function(jpegenc->sinkpad, gst_jpegenc_link);
gst_pad_set_get_function(jpegenc->sinkpad,gst_jpegenc_get);
jpegenc->srcpad = gst_pad_new("src",GST_PAD_SRC);
gst_element_add_pad(GST_ELEMENT(jpegenc),jpegenc->srcpad);
@@ -151,6 +154,29 @@ gst_jpegenc_init (GstJpegEnc *jpegenc)
}
+static GstPadLinkReturn
+gst_jpegenc_link (GstPad *pad, GstCaps *caps)
+{
+ GstJpegEnc *jpegenc = GST_JPEGENC (gst_pad_get_parent (pad));
+
+ if (!GST_CAPS_IS_FIXED (caps))
+ return GST_PAD_LINK_DELAYED;
+
+ gst_caps_get (caps,
+ "framerate", &jpegenc->fps,
+ "width", &jpegenc->width,
+ "height", &jpegenc->height,
+ NULL);
+
+ caps = GST_CAPS_NEW ("jpegdec_srccaps",
+ "video/x-jpeg",
+ "width", GST_PROPS_INT (jpegenc->width),
+ "height", GST_PROPS_INT (jpegenc->height),
+ "framerate", GST_PROPS_FLOAT (jpegenc->fps));
+
+ return gst_pad_try_set_caps (jpegenc->srcpad, caps);
+}
+
static void
gst_jpegenc_resync (GstJpegEnc *jpegenc)
{