]> git.sesse.net Git - ffmpeg/commit
lavc/h2645_parse: Don't automatically remove nuh_layer_id > 0 packets
authorAndriy Gelman <andriy.gelman@gmail.com>
Fri, 6 Dec 2019 03:15:41 +0000 (22:15 -0500)
committerJames Almer <jamrial@gmail.com>
Fri, 17 Jan 2020 20:43:52 +0000 (17:43 -0300)
commitad326379c6634505c9ebc46964057441761008bc
tree75af00b336830dbbfc9a1038511f00306d8df23b
parent5b7e90b252f765d677de6882bc65a362205638fa
lavc/h2645_parse: Don't automatically remove nuh_layer_id > 0 packets

HEVC standard supports multi-layer streams (ITU-T H.265 02/2018 Annex
F). Each NAL unit belongs to a particular layer defined by nuh_layer_id
in the header.

Currently, all NAL units that do not belong to a base layer are
automatically removed in ff_h2645_packet_split(). Some data may
therefore be lost when future filters/decoders are designed to support
multi-layer streams.

A better approach is to forward nuh_layer_id > 0 packets and let blocks
down the chain decide how to process them. The condition to remove
packets has been moved to hevcdec and cbs.

Found-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/cbs_h2645.c
libavcodec/h2645_parse.c
libavcodec/h2645_parse.h
libavcodec/hevc_parse.c
libavcodec/hevc_parser.c
libavcodec/hevcdec.c