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

nablet developer sdk at nablet.com
Mon Jun 6 12:25:41 CEST 2016


> On 06 Jun 2016, at 16:40, Mark Thompson <sw at jkqxz.net> wrote:
> 
> 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?
> 

as I have understood so far, hwcontext in general handles two tasks:
1. context management (context initialisation and cleanup)
2. hardware frame management (initialisation, cleanup and transfer data from/to system memory)

patch from libav handles both 1) and 2).
my patches just handle 1) - context management.
frame management can be added as well as additional patch set, that's no problem.
for my task (VPP filter) just context management was enough for now.

so yes, changes from libav are more complete in term of feature set.

> 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
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel



More information about the ffmpeg-devel mailing list