Skip to contentSkip to conversation

Regression: in v4l2 converter does not set the buffer.length anymore

DISCUSSION Nicolas Dufresne 2 participants 2 messages Sep 29, 2014 – Sep 30, 2014 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

This was initially reported to GStreamer project:
https://bugzilla.gnome.org/show_bug.cgi?id=737521

We track this down to be a regression introduced in v4l2-utils from version 1.4.0. In recent GStreamer we make sure the buffer.length field (retreived with QUERYBUF) is bigger or equal to the expected sizeimage (as obtained in S_FMT). This is to fail cleanly and avoid buffer overflow if a driver (or libv4l2) endup doing a short allocation. Since 1.4.0, this field is always 0 if an emulated format is selected.

Reverting patch 10213c brings back normal behaviour:
http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=10213c975afdfcc90aa7de39e66c40cd7e8a57f7

This currently makes use of any emulated format impossible in GStreamer. v4l2-utils 1.4.0 is being shipped at least in debian/unstable at the moment.

cheers,
Nicolas

#1 lore raw

Hi,

Quoted 9 lines · Nicolas Dufresne

This was initially reported to GStreamer project:
https://bugzilla.gnome.org/show_bug.cgi?id=737521

We track this down to be a regression introduced in v4l2-utils from version 1.4.0. In recent GStreamer we make sure the buffer.length field (retreived with QUERYBUF) is bigger or equal to the expected sizeimage (as obtained in S_FMT). This is to fail cleanly and avoid buffer overflow if a driver (or libv4l2) endup doing a short allocation. Since 1.4.0, this field is always 0 if an emulated format is selected.

Reverting patch 10213c brings back normal behaviour:
http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=10213c975afdfcc90aa7de39e66c40cd7e8a57f7

This currently makes use of any emulated format impossible in GStreamer. v4l2-utils 1.4.0 is being shipped at least in debian/unstable at the moment.

Oops, thanks for the bug report.

I've created a 3 patch patch-set fixing this, which I'll send right after this mail. The actual fix is in the 2nd patch, the first patch and third patches fix 2 unrelated bugs which I noticed while working on this.

Regards,

Hans