[Bug 677698] New: PATCH: camerabin: Set src_filter and zoom_src_filter caps while creating the pipeline

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Jun 8 05:03:22 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=677698
  GStreamer | gst-plugins-bad | unspecified

           Summary: PATCH: camerabin: Set src_filter and zoom_src_filter
                    caps while  creating the pipeline
    Classification: Platform
           Product: GStreamer
           Version: unspecified
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: jwrdegoede at fedoraproject.org
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=215939)
 View: https://bugzilla.gnome.org/attachment.cgi?id=215939
 Review: https://bugzilla.gnome.org/review?bug=677698&attachment=215939

gstcamerabin: Fix spelling error in debug logging

We (Fedora) have been receiving bug reports for cheese, about cheese taking
30-60 seconds before showing video, and pausing the same amount of time when
changing the resolution for example.

I've managed to reproduce this with a Logitech Webcam Pro 9000, which supports
a large list of resolutions at about 5 different framerates / resolution, in my
case with an unmodified gst-plugins-bad-0.10.23, the
camerabin_create_src_elements function takes approx 7 seconds.

Running under gdb and interrupting the execution during these 7 seconds
consistenly points to gst_caps_intersect_full.

Part of the problem is cheese setting the
GST_CAMERABIN_FLAG_SOURCE_COLOR_CONVERSION flag, which means that after the
first ffmpegcsp element in the pipe the total number of caps is
x resolutions * y framerates * z formats, where both x (due to the camera) and
z (due to ffmpegcsp) being large. intersecting this with the capabilities of
other parts of the pipeline simply leads to an explosion of combinations  which
pegs my core i5 CPU @3.1GHz for 7 seconds!

This patch-set fixes this issue by setting up the capsfilter elements in the
pipe with an initial filter, greatly reducing the number of combinations when
doing cap intersecting.

This reduces the time spend in camerabin_create_src_elements from approx 7 to
0.2 seconds. And when patching cheese to use the default camerabin flags, (so
removing the first ffmpegcsp element) from approx 0.7 to 0.04 seconds .  

This patch set consists of 4 patches, the first one fixes an unrelated spelling
error I noticed while working on this, 2 and 3 are preparation patches and 4
contains the actual fix.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list