av1/h264_metadata, filter_units: Count down when deleting units
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Mon, 17 Jun 2019 03:42:12 +0000 (05:42 +0200)
committerMark Thompson <sw@jkqxz.net>
Sun, 7 Jul 2019 21:17:07 +0000 (22:17 +0100)
commit36fcdc3fbe089bc01066e2afa5645f383025f0ec
tree9dd8747ccdaac0cb1997903678f6436871948b51
parentb0810454e473dd321a27c43de2d0e9d02fdba556
av1/h264_metadata, filter_units: Count down when deleting units

When testing whether a particular unit should be kept or discarded, it
is best to start at the very last unit of a fragment and count down,
because that way a unit that will eventually be deleted won't be
memmoved during earlier deletions; and frag/au->nb_units need only be
evaluated once in this case and the counter is automatically correct
when a unit got deleted.

It also works for double loops, i.e. when looping over all SEI messages
in all SEI units of an access unit.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/av1_metadata_bsf.c
libavcodec/filter_units_bsf.c
libavcodec/h264_metadata_bsf.c