[FFmpeg-devel] [PATCH v2 7/8] lavc/vvc_dec: Add hardware decode API

Anton Khirnov anton at khirnov.net
Mon Sep 23 07:37:07 EEST 2024


Quoting fei.w.wang-at-intel.com at ffmpeg.org (2024-09-18 09:10:30)
>  static void export_frame_params(VVCContext *s, const VVCFrameContext *fc)
>  {
>      AVCodecContext *c = s->avctx;
>      const VVCSPS *sps = fc->ps.sps;
>      const VVCPPS *pps = fc->ps.pps;
>  
> -    c->pix_fmt      = sps->pix_fmt;
> -    c->coded_width  = pps->width;
> -    c->coded_height = pps->height;
> -    c->width        = pps->width  - ((pps->r->pps_conf_win_left_offset + pps->r->pps_conf_win_right_offset) << sps->hshift[CHROMA]);
> -    c->height       = pps->height - ((pps->r->pps_conf_win_top_offset + pps->r->pps_conf_win_bottom_offset) << sps->vshift[CHROMA]);
> +    // Reset HW config if pix_fmt/w/h change.
> +    if (s->pix_fmt != sps->pix_fmt || c->coded_width != pps->width || c->coded_height != pps->height) {
> +        c->coded_width  = pps->width;
> +        c->coded_height = pps->height;
> +        c->pix_fmt      = get_format(c, sps);
> +        s->pix_fmt      = sps->pix_fmt;

????

Also, get_format() can fail and return AV_PIX_FMT_NONE.


-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list