mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
wrappercamerabinsrc: Add converters for viewfinder branch
Viewfinder branch should have converters as it has to work always anyway.
This commit is contained in:
parent
7ed49bda4f
commit
2513e9f01b
1 changed files with 12 additions and 1 deletions
|
@ -235,6 +235,7 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc)
|
||||||
GstBin *cbin = GST_BIN (bcamsrc);
|
GstBin *cbin = GST_BIN (bcamsrc);
|
||||||
GstElement *tee;
|
GstElement *tee;
|
||||||
gboolean ret = FALSE;
|
gboolean ret = FALSE;
|
||||||
|
GstElement *videoscale;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (self, "constructing pipeline");
|
GST_DEBUG_OBJECT (self, "constructing pipeline");
|
||||||
|
|
||||||
|
@ -279,6 +280,17 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
self->tee_vf_srcpad = gst_element_get_request_pad (tee, "src%d");
|
self->tee_vf_srcpad = gst_element_get_request_pad (tee, "src%d");
|
||||||
|
g_object_set (tee, "alloc-pad", self->tee_vf_srcpad, NULL);
|
||||||
|
|
||||||
|
/* the viewfinder should always work, so we add some converters to it */
|
||||||
|
if (!gst_camerabin_create_and_add_element (cbin, "ffmpegcolorspace"))
|
||||||
|
goto done;
|
||||||
|
if (!(videoscale = gst_camerabin_create_and_add_element (cbin, "videoscale")))
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
gst_object_unref (self->tee_vf_srcpad);
|
||||||
|
self->tee_vf_srcpad = gst_element_get_static_pad (videoscale, "src");
|
||||||
|
|
||||||
self->tee_image_srcpad = gst_element_get_request_pad (tee, "src%d");
|
self->tee_image_srcpad = gst_element_get_request_pad (tee, "src%d");
|
||||||
self->tee_video_srcpad = gst_element_get_request_pad (tee, "src%d");
|
self->tee_video_srcpad = gst_element_get_request_pad (tee, "src%d");
|
||||||
|
|
||||||
|
@ -287,7 +299,6 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc)
|
||||||
gst_pad_add_buffer_probe (self->tee_video_srcpad,
|
gst_pad_add_buffer_probe (self->tee_video_srcpad,
|
||||||
G_CALLBACK (gst_wrapper_camera_bin_src_vidsrc_probe), self);
|
G_CALLBACK (gst_wrapper_camera_bin_src_vidsrc_probe), self);
|
||||||
|
|
||||||
g_object_set (tee, "alloc-pad", self->tee_vf_srcpad, NULL);
|
|
||||||
|
|
||||||
/* hook-up the ghostpads */
|
/* hook-up the ghostpads */
|
||||||
gst_ghost_pad_set_target (GST_GHOST_PAD (self->vfsrc), self->tee_vf_srcpad);
|
gst_ghost_pad_set_target (GST_GHOST_PAD (self->vfsrc), self->tee_vf_srcpad);
|
||||||
|
|
Loading…
Reference in a new issue