
int av_hwframe_ctx_init(AVBufferRef *ref)
{
    if (!ref || !ref->data)
        return AVERROR(EINVAL);
    
    AVHWFramesContext *ctx = (AVHWFramesContext*)ref->data;
    if (!ctx->internal || !ctx->internal->hw_type)
        return AVERROR(EINVAL);
    
    // Rest of the function remains the same
