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 743338 - gstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS
gstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
Other Linux
: Normal normal
: 1.5.2
Assigned To: Philipp Zabel
GStreamer Maintainers
Depends on:
Reported: 2015-01-22 11:17 UTC by Philipp Zabel
Modified: 2015-06-10 01:58 UTC
See Also:
GNOME target: ---
GNOME version: ---

gstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS (3.30 KB, patch)
2015-01-22 11:17 UTC, Philipp Zabel
committed Details | Review

Description Philipp Zabel 2015-01-22 11:17:04 UTC
Created attachment 295160 [details] [review]
gstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS

At the media summit at ELC-E 2014, we agreed that for mem2mem decoders, additionally to setting a (not yet specified) flag for the last buffer, VIDIOC_DQBUF should return -EPIPE after the last buffer has been dequeued on the capture queue. We can use this in the V4L2 decoder to signal EOS after -EPIPE was received.
Comment 1 Nicolas Dufresne (ndufresne) 2015-01-25 16:32:39 UTC
Review of attachment 295160 [details] [review]:

This patch look good. There has been no object so far on the media mailing list. I'll give it a little time, but it seems like a good way to handle EOS. Also it's backward compatible, which makes this even nicer.
Comment 2 Robert Schwebel 2015-02-19 08:15:39 UTC
Seems like there are no further comments...
Comment 3 Philipp Zabel 2015-05-12 07:40:21 UTC
The related kernel patch is queued in the media tree as c16218402a00 ("[media] videobuf2: return -EPIPE from DQBUF after the last buffer") now:
Comment 4 Nicolas Dufresne (ndufresne) 2015-05-12 12:58:02 UTC
Great news ! Thanks for the update, I'll soon try to find time to review and merge this.
Comment 5 Nicolas Dufresne (ndufresne) 2015-06-09 22:54:31 UTC
Note, I have imported latest headers from media tree. You can read _LAST flag now, even though EPIPE in general should do.
Comment 6 Nicolas Dufresne (ndufresne) 2015-06-10 01:29:08 UTC
Looking at the kernel patch, we really don't need to care about the flag.
Comment 7 Nicolas Dufresne (ndufresne) 2015-06-10 01:34:39 UTC
Review of attachment 295160 [details] [review]:

gstv4l2allocator.c: In function 'gst_v4l2_allocator_dqbuf':
gstv4l2allocator.c:1300:12: error: incompatible types when returning type 'void *' but 'GstFlowReturn {aka enum <anonymous>}' was expected
     return NULL;
Comment 8 Nicolas Dufresne (ndufresne) 2015-06-10 01:57:17 UTC
Attachment 295160 [details] pushed as 95bab88 - gstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS
Comment 9 Nicolas Dufresne (ndufresne) 2015-06-10 01:58:19 UTC
I fixed it myself before pushing. Please, don't disable gst-indent or build warning when submitting patches.