mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-11-06 05:17:42 +00:00
Streams that carry one independent slice per tile cannot take the row order added in the previous commit, because every slice is decoded as it arrives while the picture is only known to be complete once the last one has been parsed. Collect those slices instead and decode them together in row major order once the picture is complete, which is at the start of the next picture or at the end of the packet. A slice that cannot be deferred, one starting inside a tile or a dependent one, first flushes what was collected so that the original order is preserved. A deferred slice remembers the frame it belongs to and is dropped rather than decoded into a foreign one. Deciding what to filter now asks first_nal_type rather than nal_unit_type, since the deferred slices are decoded when the latter holds the type of the last NAL unit of the packet. Without it, skip_loop_filter nokey leaves an IDR picture that is followed by a suffix SEI unfiltered. Signed-off-by: YoungSoo Lee <youngsoo.lee@navercorp.com>