[Bug 661348] qtkitvideosrc: implement the property probe interface [PATCH]

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Aug 27 11:13:16 PDT 2012


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

--- Comment #9 from Andres Colubri <andres.colubri at gmail.com> 2012-08-27 18:13:13 UTC ---
I've been doing some additional work with qtkitvideosrc which resulted in two
sets of patches, both against  the version included in gst-plugins-bad 0.10.23:

1) In the first set, the hard-coded resolutions in the src_template were
replaced by ranges:

GST_STATIC_CAPS (
  "video/x-raw-yuv, "
  "format = (fourcc) " DEVICE_YUV_FOURCC ", "
  "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ], "
  "framerate = [0/1, 100/1]") 

which allows to create capture streams at arbitrary resolutions, this work
because:

"QTKit will automatically adjust the camera resolution to best accommodate the
requirements of all the outputs connected to a particular session. For example,
if you set the compression options of a movie file output or the pixel buffer
attributes of a decompressed video output, you can cause the camera resolution
to be adjusted for optimal performance. In general, if you are interested in
configuring the camera because you want your output video to be at a specific
resolution, it makes more sense to configure your outputs directly and not
worry about the camera settings, which is the functionality currently provided
by QTKit."

(from
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/QTKitApplicationProgrammingGuide/UsingQTKit/UsingQTKit.html,
in the "Configuring Cameras for Capture" section towards the end)

2) In this second set, I implemented a pre-roll check, based on the technique
described by Philip Lamb:
(http://lists.apple.com/archives/quicktime-api/2011/Jan/msg00014.html) that
queries each capture device for its native (maximum) resolution. QTKit doesn't
include any functionality to properly get and/or set the device's capabilities
programmatically:

http://lists.apple.com/archives/quicktime-api/2008/Feb/msg00074.html

So what I do in this patch is to populate the caps with a list of "supported"
resolutions by taking the native values and dividing them repeatedly by 2 until
they go below a certain threshold. This list is kind of arbitrary since QTKit
will allow you to generate capture streams from any device at arbitrary
resolutions. But I need this list for an application where we want the users to
select resolutions from a predefined list. 

Both patches incorporate the modifications from
https://bugzilla.gnome.org/show_bug.cgi?id=645567 to support Firewire/DV
cameras, although I didn't have the chance to test them.

-- 
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