[FFmpeg-devel] [PATCH v2 0/4] Add hevc alpha layer decoding basic support

Anton Khirnov anton at khirnov.net
Tue Mar 14 15:30:17 EET 2023


Quoting zhilizhao(赵志立) (2023-03-02 11:41:30)
> 
> 
> > On Mar 2, 2023, at 18:11, Anton Khirnov <anton at khirnov.net> wrote:
> > 
> > Quoting zhilizhao(赵志立) (2023-02-28 10:00:15)
> >> 
> >>> On Jan 6, 2023, at 23:52, Zhao Zhili <quinkblack at foxmail.com> wrote:
> >>> 
> >>> From: Zhao Zhili <zhilizhao at tencent.com>
> >>> 
> >>> v2:
> >>> 1. Check vps_max_layers and vps_max_layer_id inside hevc decoder
> >>> 2. Add hevc_extract_layer bsf to do the job rather than modifing hevc_metadata,
> >>> 3. Check vps_max_layers_minus1 and vps_max_layer_id inside bsf
> >>> 4. Update vps_max_layers_minus1 and vps_max_layer_id when rewrite as base layer
> >>> 5. vps_extension should be updated rather than drop entirely, add a TODO
> >> 
> >> Will push soon if there's no objections.
> > 
> > Can't we do this without weird bitstream filtes and obscure options
> > leaking to the user? It's all signalled in the bitstream in a rather
> > straightforward way. Just extend hevcdec to decode it.
> 
> Yes we could.
> 
> 1. Add support to our software decoder is possible, with a big refactor.
> 2. Add support to hwaccel decoders like videotoolbox requires a refactor of
> hevcdec too.
> 
> I have asked in the RFC:
> 
> "Is there any plan/interesting to add fullly support inside our hevc
> decoder? If the answer is yes, then the patchset is less useful."
> 
> http://ffmpeg.org/pipermail/ffmpeg-devel/2023-January/305342.html
> 
> I indeed tried to refactor hevcdec first. But the mixing of long term
> states and temporary states inside HEVCContext makes it not easy to do.
> I’m glad to work on it (together) if someone has a clear idea.
> 
> By the way, other decoders which doesn’t support layered decoding could
> still benefit from the 'weird bitstream filter'.

My concern is that this "temporary hack" will get entrenched as the
solution everyone uses and will actively prevent proper solutions from
being implemented.

It should not be too complicated to split out per-layer state into its
own context.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list