[Libav-user] Using Video Toolbox hardware decoding

Info || Non-Lethal Applications info at non-lethal-applications.com
Mon Nov 2 11:31:37 CET 2015


> On 02 Nov 2015, at 11:22, Jean-Yves Avenard <jyavenard at gmail.com> wrote:
> 
> 
> 
> Le vendredi 23 octobre 2015, Isaksson Jörgen <jogga at bitfield.se <mailto: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.

And what is the constant that needs to be set and where?
Do you know if it’s still worth using it?
Will the decoding be faster than FFmpeg’s standard software decoding?


Thanks!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20151102/0e7ba7b2/attachment.html>


More information about the Libav-user mailing list