[FFmpeg-devel] [PATCH 0/5] avutil/qsv add hwcontext_qsv

Mark Thompson sw at jkqxz.net
Mon Jun 6 11:40:51 CEST 2016


On 06/06/16 09:25, nablet developer wrote:
> ping. any feedback?

Perhaps you could comment on the merits and functionality of your version as
compared with the one here
<https://lists.libav.org/pipermail/libav-devel/2016-May/077126.html> (with
associated series) posted at roughly the same time?

Obviously they collide, which is somewhat unfortunate.  The libav one looks more
complete to me (hwframe support with surface upload and download, notably), but
I am not a libmfx expert so there might be something significant that I have missed.

- Mark


>> On 25 May 2016, at 19:20, nablet developer <sdk at nablet.com> wrote:
>>
>> added hwcontext_qsv (Intel QuickSync video)
>> it will handle MFX session initialization and deinitialization,
>> and will allow to share that code between libavcodec and libavfilter
>> without adding new API calls for QSV, and also using similar approach
>> to CUDA & VAAPI
>> (VPP filter patch is postponded with suggestion to implementa hwcontext_qsv)
>>
>> nablet developer (5):
>>  avutil/qsv: move ff_qsv_error function from libavcodec into libavutil,
>>    because it's going to be shared between libavcodec (existing QSV
>>    encoders & decoders), libavfilter (upcoming QSV VPP filter) and
>>    libavutil itself (upcoming hwcontext_qsv implementation). prefix
>>    changed to avpriv since it's now shared between multiple libraries.
>>  avutil/qsv: add hwcontext_qsv (QuickSync Video)
>>  avcodec/qsvdec: use hwcontext_qsv instead of
>>    ff_qsv_init_internal_session
>>  avcodec/qsvenc: use hwcontext_qsv instead of
>>    ff_qsv_init_internal_session
>>  avcodec/qsv: remove no longer needed functions
>>    ff_qsv_init_internal_session & ff_qsv_close_internal_session,
>>    structure QSVSession, since they are now replaced by
>>    avutil/hwcontext_qsv
>>
>> libavcodec/qsv.c               | 221 +----------------------------------
>> libavcodec/qsv_internal.h      |  35 ------
>> libavcodec/qsvdec.c            |  36 ++++--
>> libavcodec/qsvdec.h            |   4 +-
>> libavcodec/qsvenc.c            |  40 +++++--
>> libavcodec/qsvenc.h            |   3 +-
>> libavutil/Makefile             |   4 +
>> libavutil/hwcontext.c          |   3 +
>> libavutil/hwcontext.h          |   1 +
>> libavutil/hwcontext_internal.h |   1 +
>> libavutil/hwcontext_qsv.c      | 255 +++++++++++++++++++++++++++++++++++++++++
>> libavutil/hwcontext_qsv.h      |  45 ++++++++
>> libavutil/qsv_internal.c       |  58 ++++++++++
>> libavutil/qsv_internal.h       |  27 +++++
>> 14 files changed, 452 insertions(+), 281 deletions(-)
>> create mode 100644 libavutil/hwcontext_qsv.c
>> create mode 100644 libavutil/hwcontext_qsv.h
>> create mode 100644 libavutil/qsv_internal.c
>> create mode 100644 libavutil/qsv_internal.h
>>
>> -- 
>> 1.8.3.1



More information about the ffmpeg-devel mailing list