[FFmpeg-devel] [PATCH] avcodec: add new Videotoolbox hwaccel.

Clément Bœsch u at pkh.me
Mon Jul 27 14:14:19 CEST 2015


On Mon, Jul 27, 2015 at 06:13:30PM +0800, Zhang Rui wrote:
> 2015-07-15 21:51 GMT+08:00 Clément Bœsch <u at pkh.me>:
> > On Sat, Jun 20, 2015 at 01:33:00PM +0200, Sebastien Zwickert wrote:
> >> Old videtotoolbox patch rebased and updated to target the new HWAccel API.
> >> As VDA is a wrapper of VideoToolbox framework, the changes base vda implementation
> >> upon the videotoolbox implementation to factorize common part of code.
> >>
> >> ---
> >>  Changelog                    |   1 +
> >>  MAINTAINERS                  |   1 +
> >>  Makefile                     |   5 +-
> >>  configure                    |  19 +-
> >>  ffmpeg.h                     |   2 +
> >>  ffmpeg_opt.c                 |   5 +-
> >>  ffmpeg_vda.c                 | 134 --------
> >>  ffmpeg_videotoolbox.c        | 147 +++++++++
> >>  libavcodec/Makefile          |  12 +-
> >>  libavcodec/allcodecs.c       |   5 +
> >>  libavcodec/h263dec.c         |   3 +
> >>  libavcodec/h264_slice.c      |   4 +
> >>  libavcodec/mpeg12dec.c       |   3 +
> >>  libavcodec/vda.c             |   2 +-
> >>  libavcodec/vda_h264.c        | 154 +---------
> >>  libavcodec/vda_internal.h    |  33 --
> >>  libavcodec/vda_vt_internal.h |  57 ++++
> >>  libavcodec/version.h         |   2 +-
> >>  libavcodec/videotoolbox.c    | 705 +++++++++++++++++++++++++++++++++++++++++++
> >>  libavcodec/videotoolbox.h    | 126 ++++++++
> >>  libavutil/pixdesc.c          |   4 +
> >>  libavutil/pixfmt.h           |   2 +
> >
> > I tried on iOS (iPhone 6+ so last one unless I'm mistaken) with a 240fps
> > footage, and it seems the decode calls take more than 5ms, which seems not
> > enough. Do you have any idea what could cause this? (I'm running a timer
> > after/before avcodec_decode_video*())
> 
> 1. kVTDecodeFrame_EnableAsynchronousDecompression can make it faster,
> but not suitable for sync-style API (avcodec_decode_video*())

not suitable in the sense that it wouldn't work, or it would have
undesirable side effects?

> 2. memcpy is murder (in av_image_copy()), but zero-copy needs some
> kind of custom AVFrame.

I wasn't counting av_image_copy(), unless you're refering to one involved
in avcodec_decode_video()?

[...]

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150727/de67572a/attachment.sig>


More information about the ffmpeg-devel mailing list