[Libav-user] Using Video Toolbox hardware decoding

Jean-Yves Avenard jyavenard at gmail.com
Mon Nov 2 11:22:55 CET 2015


Le vendredi 23 octobre 2015, Isaksson Jörgen <jogga at bitfield.se> a écrit :

> Hi all,
>
> I’m new to this list so forgive me if this has been answered before.
>
> With version 2.8 of the libraries I saw the addition of Video Toolbox
> hardware decoding support (on Mac OS X that is).
>
> But I can’t find much documentation on how to use it. There are some clues
> in the header files on how to set it up, but there’s no docs on how to do
> the actual decoding.
>
> I have compiled version 2.8.1 of the libraries and I can confirm that the
> Video Toolbox hwaccels are there:
>
> Enabled hwaccels:
> h263_videotoolbox       mpeg1_videotoolbox      mpeg4_videotoolbox
> h264_videotoolbox       mpeg2_videotoolbox
>
> In my player app I have setup an AVVideotoolboxContext like described in
> the headers.
>
> if (self.codecContext->codec_id == AV_CODEC_ID_H264) {
>         _videoToolboxContext = av_videotoolbox_alloc_context();
>         int result = av_videotoolbox_default_init2(self.codecContext,
> self.videoToolboxContext);
>         if (result != 0) {
>             NSLog(@"Failed to init video toolbox");
>             _videoToolboxContext = NULL;
>         }
>  }
>
> _codec = avcodec_find_decoder(self.codecContext->codec_id);
>
> Everything seems to work fine and the _videoToolboxContext is properly
> allocated.
>
> But how do I go about actually decoding using it?
>
> Anyone with any experience from this?
>
> VideoToolbox is for decoding only, just like VDA

>From 10.9; to get HW decoding the only thing that needs to be set is a
constant. And this is just a hint. Vat won't use HW for vertical resolution
< 300 typically.

Note that ffmpeg doesn't enable async decoding, so the performance are
poor, nowhere near as fast as what it could be.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20151102/b3dbf8dc/attachment.html>


More information about the Libav-user mailing list