After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 728184 - v4l2: Not enumerating all the possible frame sizes when the device uses V4L2_FRMIVAL_TYPE_STEPWISE
v4l2: Not enumerating all the possible frame sizes when the device uses V4L2_...
Status: RESOLVED DUPLICATE of bug 724521
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
unspecified
Other Linux
: Normal major
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-04-14 14:15 UTC by Ricardo Ribalda
Modified: 2014-04-14 14:21 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ricardo Ribalda 2014-04-14 14:15:07 UTC
gst_v4l2_object_probe_caps_for_format_and_size finds out all the possible frame sizes for a specific device.

The device enumerates the possible frame sizes with this ioctl http://linuxtv.org/downloads/v4l-dvb-apis/vidioc-enum-framesizes.html

When the devices provides a V4L2_FRMIVAL_TYPE_STEPWISE type of enumeration, a minimum, a maximum and a step is provided.

The current code considers that the valid frames sizes are obtained adding step to minimum until maximum is reached when the correct interpretation of the standard takes independently the step with and step height.

To make it more clear:


With the current code the list of frames is obtained like this (pseudocode)

size.x=minsize.x
size.y=minsize.y

while size < maxsize:
    addsize(size)
    size.x += step.x
    size.y += step.y

But it should look like:

size.x=minsize.x

while size.x < maxsize.x:
  size.y=minsize=y
  while size.y < maxsize.y:
     addsize(size)
     size.y += step.y
  size.x += step.y
Comment 1 Ricardo Ribalda 2014-04-14 14:21:29 UTC

*** This bug has been marked as a duplicate of bug 724521 ***