[Libav-user] No AVHWFramesContext pool for videotoolbox

Kateryna K kmk32t at gmail.com
Wed May 1 02:02:21 EEST 2019


I am trying to use videotoolbox to encode yuv frames for macOS. I am able
to find the appropriate device and successfully create AVHWFramesContext. But
when trying to call av_hwframe_get_buffer, I always get the error (
AVERROR(EINVAL)) because my AVHWFramesContext pool is NULL.

Here is code to create device context:

ret = av_hwdevice_ctx_create(&deviceCtx_, hwType, nullptr, nullptr, 0);


And to create frame context:


framesCtx_ = av_hwframe_ctx_alloc(deviceCtx_);

if (!framesCtx_)

    return false;


 AVHWFramesContext *ctx = (AVHWFramesContext*)(framesCtx_->data);

 ctx->format = format_;

 ctx->sw_format = swFormat_;

 ctx->width = width;

 ctx->height = height;


 if ((ret = av_hwframe_ctx_init(framesCtx_)) < 0)

     av_buffer_unref(&framesCtx_);


Do I need to set the initial pool size when using videotoolbox? If I do, I
get error when calling av_hwframe_ctx_init. In this case, the internal pool
is NULL.

Do I need to manage the context pool myself or should it be done
automatically?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20190430/a85c0bc4/attachment.html>


More information about the Libav-user mailing list