[Libav-user] Using Video Toolbox hardware decoding

Isaksson Jörgen jogga at bitfield.se
Thu Oct 22 16:50:36 CEST 2015

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?

best regards / Jörgen Isaksson

More information about the Libav-user mailing list