~vicamo/ubuntu/+source/v4l2loopback/+git/v4l2loopback:bug-2025204/fixup-bytesused/mantic

Last commit made on 2023-07-04
Get this branch:
git clone -b bug-2025204/fixup-bytesused/mantic https://git.launchpad.net/~vicamo/ubuntu/+source/v4l2loopback/+git/v4l2loopback
Only You-Sheng Yang can upload to this branch. If you are You-Sheng Yang please log in for upload directions.

Branch merges

Branch information

Name:
bug-2025204/fixup-bytesused/mantic
Repository:
lp:~vicamo/ubuntu/+source/v4l2loopback/+git/v4l2loopback

Recent commits

0a401ba... by You-Sheng Yang

Bug 2025204: v4l2loopback: Fixup bytesused field when writer sends a too large value

24616c1... by Hans de Goede <email address hidden>

v4l2loopback: Fixup bytesused field when writer sends a too large value

Gstreamer's v4l2sink is known to submit buffers with bytesused set to
the length of the buffer instead of the size of the actual image-data
within the buffer which is typically smaller due to buffer sizes
being rounded op to a page-size:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2532

Despite this being a long standing issue and their being 2 merge-reqs:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3713
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4527

to try and fix this it looks like this is not going to get fixed
in gst's v4l2sink anytime soon and even if once it is fixed many users
will likely be using an older v4l2sink which still has this bug.

These buffers with a too large bytes used value are causing issues
with various apps which reject these buffers when reading from
the v4l2loopback device, such as e.g. ffmpeg and firefox.

Add a pix_format_has_valid_sizeimage flag which gets set from
vidioc_s_fmt_out() if dev->pix_format.sizeimage is known to have just
been set to a valid, fixed size (so this e.g. won't be set for MJPG).

And then fix this issue by making vidioc_qbuf() truncate
V4L2_BUF_TYPE_VIDEO_OUTPUT buffer's bytes_used value to
dev->pix_format.sizeimage when this flag is set.

Closes #190
Closes #448
Obsoletes #435

(backported from commit 175adaf96d6d3784b922d3e0c77e9fd3e9ad8f53)
Signed-off-by: You-Sheng Yang <email address hidden>

f94def5... by Dimitri John Ledkov

0.12.7-2ubuntu3 (patches unapplied)

Imported using git-ubuntu import.

b37d72d... by Dimitri John Ledkov

0.12.7-2ubuntu2 (patches unapplied)

Imported using git-ubuntu import.

595ae56... by Dimitri John Ledkov

0.12.7-2ubuntu1 (patches unapplied)

Imported using git-ubuntu import.

e3473a6... by IOhannes m zmoelnig

0.12.7-2 (patches unapplied)

Imported using git-ubuntu import.

beb0813... by IOhannes m zmoelnig

0.12.7-1 (patches unapplied)

Imported using git-ubuntu import.

58d6a8f... by IOhannes m zmoelnig

0.12.5-1 (patches unapplied)

Imported using git-ubuntu import.

bf2be01... by IOhannes m zmoelnig

0.12.4-1 (patches unapplied)

Imported using git-ubuntu import.

558e2ec... by IOhannes m zmoelnig

0.12.3-1 (patches unapplied)

Imported using git-ubuntu import.