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 722128 - v4l2: Implement video decoder
v4l2: Implement video decoder
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal enhancement
: 1.3.1
Assigned To: Nicolas Dufresne (ndufresne)
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-01-13 19:59 UTC by Nicolas Dufresne (ndufresne)
Modified: 2014-02-25 20:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Video Decoder (28.68 KB, patch)
2014-01-13 19:59 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
Latency (2.18 KB, patch)
2014-01-13 20:00 UTC, Nicolas Dufresne (ndufresne)
accepted-commit_now Details | Review
Create 1 element per device (12.26 KB, patch)
2014-01-13 20:01 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
[PATCH] v4l2videodec: Calculate latency from device information (2.23 KB, patch)
2014-02-25 19:24 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
[PATCH] v4l2videodec: Create one element per device (11.85 KB, patch)
2014-02-25 19:25 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
[PATCH] v4l2videodec: Implement v4l2videodec (28.60 KB, patch)
2014-02-25 19:25 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
[PATCH] v4l2videodec: Calculate latency from device information (2.23 KB, patch)
2014-02-25 19:25 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
[PATCH] v4l2videodec: Create one element per device (11.85 KB, patch)
2014-02-25 19:25 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
[PATCH] v4l2: CAPTURE_MPLANE is well tested now (962 bytes, patch)
2014-02-25 19:25 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
[PATCH] v4l2: Don't require parser for VP8 (1.17 KB, patch)
2014-02-25 19:25 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
[PATCH] v4l2videodec: Implement v4l2videodec (28.47 KB, patch)
2014-02-25 19:32 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review

Description Nicolas Dufresne (ndufresne) 2014-01-13 19:59:53 UTC
Created attachment 266193 [details] [review]
Video Decoder

The following patch introduce a decoder for V4L2 based drivers. This has been tested mostly on Exynos and should represent a good base for other paltforms.
Comment 1 Nicolas Dufresne (ndufresne) 2014-01-13 20:00:44 UTC
Created attachment 266194 [details] [review]
Latency

Calculate latency from driver buffering requirement.
Comment 2 Nicolas Dufresne (ndufresne) 2014-01-13 20:01:25 UTC
Created attachment 266195 [details] [review]
Create 1 element per device

This is to allow auto-plugin and support of multiple decoder drivers on the same platform.
Comment 3 Sebastian Dröge (slomo) 2014-01-14 10:35:22 UTC
Comment on attachment 266194 [details] [review]
Latency

Maybe also useful in the source element?
Comment 4 Nicolas Dufresne (ndufresne) 2014-01-15 22:34:02 UTC
(In reply to comment #3)
> (From update of attachment 266194 [details] [review])
> Maybe also useful in the source element?

I've grepped the kernel, and there is no driver that currently uses this in a source. Source latency is pretty much unknown at the moment.
Comment 5 Nicolas Dufresne (ndufresne) 2014-02-25 19:24:59 UTC
Created attachment 270309 [details] [review]
[PATCH] v4l2videodec: Calculate latency from device information


Decoders or other devices that expose a minimum buffers required produce
an first output. We use this information to calculate latency.

https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/gstv4l2object.c   | 1 +
 sys/v4l2/gstv4l2object.h   | 4 ++++
 sys/v4l2/gstv4l2videodec.c | 5 +++++
 3 files changed, 10 insertions(+)
Comment 6 Nicolas Dufresne (ndufresne) 2014-02-25 19:25:03 UTC
Created attachment 270310 [details] [review]
[PATCH] v4l2videodec: Create one element per device


For each videoCdevice probe it input/output capabilities
if it match with video decoder requirement register a new element.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>

https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/gstv4l2.c         |   3 +-
 sys/v4l2/gstv4l2object.c   |   2 +-
 sys/v4l2/gstv4l2object.h   |   2 +
 sys/v4l2/gstv4l2videodec.c | 219 +++++++++++++++++++++++++++++++++++++++++----
 sys/v4l2/gstv4l2videodec.h |   2 +
 5 files changed, 206 insertions(+), 22 deletions(-)
Comment 7 Nicolas Dufresne (ndufresne) 2014-02-25 19:25:20 UTC
Created attachment 270311 [details] [review]
[PATCH] v4l2videodec: Implement v4l2videodec


Implement an element that can driver V4L2 M2M decoder device.

https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/Makefile.am       |   2 +
 sys/v4l2/gstv4l2.c         |   3 +
 sys/v4l2/gstv4l2videodec.c | 758 +++++++++++++++++++++++++++++++++++++++++++++
 sys/v4l2/gstv4l2videodec.h |  82 +++++
 sys/v4l2/v4l2_calls.c      |  26 ++
 5 files changed, 871 insertions(+)
Comment 8 Nicolas Dufresne (ndufresne) 2014-02-25 19:25:24 UTC
Created attachment 270312 [details] [review]
[PATCH] v4l2videodec: Calculate latency from device information


Decoders or other devices that expose a minimum buffers required produce
an first output. We use this information to calculate latency.

https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/gstv4l2object.c   | 1 +
 sys/v4l2/gstv4l2object.h   | 4 ++++
 sys/v4l2/gstv4l2videodec.c | 5 +++++
 3 files changed, 10 insertions(+)
Comment 9 Nicolas Dufresne (ndufresne) 2014-02-25 19:25:29 UTC
Created attachment 270313 [details] [review]
[PATCH] v4l2videodec: Create one element per device


For each videoCdevice probe it input/output capabilities
if it match with video decoder requirement register a new element.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>

https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/gstv4l2.c         |   3 +-
 sys/v4l2/gstv4l2object.c   |   2 +-
 sys/v4l2/gstv4l2object.h   |   2 +
 sys/v4l2/gstv4l2videodec.c | 219 +++++++++++++++++++++++++++++++++++++++++----
 sys/v4l2/gstv4l2videodec.h |   2 +
 5 files changed, 206 insertions(+), 22 deletions(-)
Comment 10 Nicolas Dufresne (ndufresne) 2014-02-25 19:25:33 UTC
Created attachment 270314 [details] [review]
[PATCH] v4l2: CAPTURE_MPLANE is well tested now


https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/v4l2_calls.c | 3 ---
 1 file changed, 3 deletions(-)
Comment 11 Nicolas Dufresne (ndufresne) 2014-02-25 19:25:38 UTC
Created attachment 270316 [details] [review]
[PATCH] v4l2: Don't require parser for VP8


Until GStreamer has one (see bug722760), we should not require a parser for VP8.

https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/gstv4l2object.c | 5 +++++
 1 file changed, 5 insertions(+)
Comment 12 Nicolas Dufresne (ndufresne) 2014-02-25 19:32:03 UTC
Created attachment 270317 [details] [review]
[PATCH] v4l2videodec: Implement v4l2videodec


Implement an element that can driver V4L2 M2M decoder device.

https://bugzilla.gnome.org/show_bug.cgi?id=722128
---
 sys/v4l2/Makefile.am       |   2 +
 sys/v4l2/gstv4l2.c         |   3 +
 sys/v4l2/gstv4l2videodec.c | 757 +++++++++++++++++++++++++++++++++++++++++++++
 sys/v4l2/gstv4l2videodec.h |  81 +++++
 sys/v4l2/v4l2_calls.c      |  26 ++
 5 files changed, 869 insertions(+)
Comment 13 Nicolas Dufresne (ndufresne) 2014-02-25 20:03:21 UTC
commit 82f2bf052add2442244ff1cb553f8861e3dc4857
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Tue Feb 11 16:27:08 2014 -0500

    v4l2: Don't require parser for VP8
    
    Until GStreamer has one (see bug722760), we should not require a parser for VP8.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722128

commit a1db7e8c6cbac373ed925b62e35e0778dfc3b1df
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Mon Feb 10 17:08:25 2014 -0500

    v4l2: CAPTURE_MPLANE is well tested now
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722128

commit 2a870d7d9b8307ec510055f42937b359a53da0a5
Author: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Date:   Wed Dec 18 09:56:35 2013 +0100

    v4l2videodec: Create one element per device
    
    For each videoCdevice probe it input/output capabilities
    if it match with video decoder requirement register a new element.
    
    Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722128

commit bd51c37196e34f7085698ded049d2fad2b01db24
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Thu Dec 19 15:26:52 2013 -0500

    v4l2videodec: Calculate latency from device information
    
    Decoders or other devices that expose a minimum buffers required produce
    an first output. We use this information to calculate latency.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722128

commit 61183670c0d65f47d112fba344b7e0a729d6723a
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Thu Nov 28 17:14:18 2013 -0500

    v4l2videodec: Implement v4l2videodec
    
    Implement an element that can driver V4L2 M2M decoder device.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722128