1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-04-08 16:54:03 +02:00
FFmpeg/libavcodec
Jorge Ramirez-Ortiz 1ef7752d64 libavcodec: v4l2: add support for v4l2 mem2mem codecs
This patchset enhances Alexis Ballier's original patch and validates
    it using Qualcomm's Venus hardware (driver recently landed upstream
    [1]).

    This has been tested on Qualcomm's DragonBoard 410c and 820c
    Configure/make scripts have been validated on Ubuntu 10.04 and
    16.04.

    Tested decoders:
           - h264
           - h263
           - mpeg4
           - vp8
           - vp9
           - hevc

    Tested encoders:
           - h264
           - h263
           - mpeg4

    Tested transcoding (concurrent encoding/decoding)

    Some of the changes introduced:
        - v4l2: code cleanup and abstractions added
        - v4l2: follow the new encode/decode api.
        - v4l2: fix display size for NV12 output pool.
        - v4l2: handle EOS (EPIPE and draining)
        - v4l2: vp8 and mpeg4 decoding and encoding.
        - v4l2: hevc and vp9 support.
        - v4l2: generate EOF on dequeue errors.
        - v4l2: h264_mp4toannexb filtering.
        - v4l2: fixed make install and fate issues.
        - v4l2: codecs enabled/disabled depending on pixfmt defined
        - v4l2: pass timebase/framerate to the context
        - v4l2: runtime decoder reconfiguration.
        - v4l2: add more frame information
        - v4l2: free hardware resources on last reference being released
        - v4l2: encoding: disable b-frames for upstreaming (patch required)

    [1] https://lwn.net/Articles/697956/

    System Level view:
        v42l_m2m_enc/dec --> v4l2_m2m --> v4l2_context --> v4l2_buffers

    Reviewed-by: Jorge Ramirez <jorge.ramirez-ortiz@linaro.org>
    Reviewed-by: Alexis Ballier <aballier@gentoo.org>
    Tested-by: Jorge Ramirez <jorge.ramirez-ortiz@linaro.org>

Signed-off-by: wm4 <nfxjfg@googlemail.com>
2017-09-23 08:47:52 +02:00
..
2017-07-11 13:22:02 +07:00
2017-09-10 19:08:33 +02:00
2017-02-15 12:46:01 +01:00
2017-02-15 12:46:01 +01:00
2017-05-29 14:08:07 +02:00
2017-07-16 16:53:02 +02:00
2017-09-14 01:43:52 -03:00
2017-07-07 15:23:58 -04:00
2017-05-01 17:55:22 +02:00
2017-05-08 12:30:09 +02:00
2017-08-20 02:59:57 +02:00
2017-07-07 15:29:57 -04:00
2017-03-20 09:23:15 +01:00
2017-04-23 14:27:47 +07:00
2017-06-11 10:00:16 +02:00
2017-04-23 14:27:47 +07:00
2017-05-23 15:25:11 +02:00
2017-08-30 12:13:01 +02:00
2017-09-16 19:55:03 +02:00
2017-08-30 12:13:01 +02:00
2017-02-21 00:40:20 +01:00
2017-01-11 16:02:10 +01:00
2017-04-23 14:27:47 +07:00
2017-07-07 03:48:56 +02:00
2017-03-21 12:38:20 +01:00
2017-06-18 14:05:57 +02:00
2017-07-12 20:36:13 +02:00
2017-07-12 20:36:13 +02:00
2017-06-21 09:01:32 -04:00
2017-08-11 04:28:52 +02:00
2017-02-03 20:16:30 +01:00
2017-02-03 20:01:07 +01:00
2017-01-11 16:02:10 +01:00
2017-01-11 16:02:10 +01:00
2017-02-21 00:40:20 +01:00
2017-09-07 12:08:32 +02:00
2017-08-18 17:18:32 +01:00
2017-08-18 17:18:32 +01:00
2017-07-20 08:24:46 +01:00
2017-07-07 15:26:35 -04:00
2017-05-31 16:08:46 +02:00
2017-01-09 18:43:19 +01:00
2017-02-10 17:04:56 +01:00
2017-08-07 13:09:41 +02:00
2017-04-23 14:27:47 +07:00
2017-07-26 06:13:05 +07:00
2017-07-11 13:22:02 +07:00
2017-07-01 12:03:34 -03:00
2017-09-10 19:08:23 +02:00
2017-01-16 10:24:01 +01:00
2017-09-22 01:33:22 +02:00
2017-05-25 20:08:31 +02:00
2017-05-25 14:30:04 +02:00
2017-09-13 22:25:29 +01:00
2017-07-14 02:30:37 +02:00
2017-07-14 02:30:37 +02:00
2017-02-02 01:12:07 +01:00
2017-05-21 13:23:22 +02:00
2017-05-10 22:52:35 +02:00
2017-07-05 03:19:27 +02:00
2017-09-22 01:33:22 +02:00
2017-01-20 13:58:41 +01:00
2017-07-24 17:52:42 +02:00
2017-08-17 16:30:06 +02:00