mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-22 23:28:16 +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"))
|
||||
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 =
|
||||
gst_camerabin_create_and_add_element (cbin, "capsfilter",
|
||||
"src-capsfilter")))
|
||||
|
|
Loading…
Reference in a new issue