mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 15:08:53 +00:00
wrappercamerabinsrc: Add video-source-filter during construction
By adding the video-source-filter during construction time, rather then patching it in later (*), we can greatly reduce the amount of caps involved in negotation, speeding up pipeline creation. I wrote this while working on speeding up the startup of cheese. My cheese has been modified to add a capsfilter, filtering for only the configured resolution, with that cheese patch + this patch, the pipeline creation time goes from aprox 1.1 seconds to aprox 350ms. This is with a Logitech 9000 pro camera, which supports lots of different resolutions at many different framerates per resolution, causing a caps "explosion" if not filtered. *) Note the code for this is left in, as it is still necessary if the video-source-filter is changed between a stop + re-start. https://bugzilla.gnome.org/show_bug.cgi?id=701953
This commit is contained in:
parent
5732c53c81
commit
28e64d1031
1 changed files with 10 additions and 0 deletions
|
@ -552,6 +552,16 @@ gst_wrapper_camera_bin_src_construct_pipeline (GstBaseCameraSrc * bcamsrc)
|
||||||
"src-videoconvert"))
|
"src-videoconvert"))
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
|
if (self->app_vid_filter) {
|
||||||
|
self->video_filter = gst_object_ref (self->app_vid_filter);
|
||||||
|
|
||||||
|
if (!gst_camerabin_add_element (cbin, self->video_filter))
|
||||||
|
goto done;
|
||||||
|
if (!gst_camerabin_create_and_add_element (cbin, "videoconvert",
|
||||||
|
"filter-videoconvert"))
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
if (!(self->src_filter =
|
if (!(self->src_filter =
|
||||||
gst_camerabin_create_and_add_element (cbin, "capsfilter",
|
gst_camerabin_create_and_add_element (cbin, "capsfilter",
|
||||||
"src-capsfilter")))
|
"src-capsfilter")))
|
||||||
|
|
Loading…
Reference in a new issue