avformat/hlsenc: fix handling of delete_segments when %v is present
authorBela Bodecs <bodecsb@vivanet.hu>
Wed, 11 Apr 2018 03:15:54 +0000 (11:15 +0800)
committerSteven Liu <lq@chinaffmpeg.org>
Wed, 11 Apr 2018 03:15:54 +0000 (11:15 +0800)
commit9825f77ac7ab102783aad4d2e0c42584a0dde466
tree33b50e8bed742f8696e1737b411ba0d120dc5839
parent62c1cfcc35a7772d9634fb9d2d1e74952843c108
avformat/hlsenc: fix handling of delete_segments when %v is present

When var_stream_map option is used, %v must appear either in segment
name template or in the directory path. This latter case currently is
not handled and delete_segments flag of hls_flags is broken now. This
patch fix this. The root cause of the bug was that HLSSegment struct
only stores the final filename part, but not the final directory path.
Most of the cases, final path info is unneded, It only necessary when
you want to delete old segments (e.g in case of live streaming).
Without variant streams it was unnecessary to store the final directory
path, because all segment were stored into the same directory. But
introducing %v in directory names either require to store the final
directory path into HLSSegment or associate segments with their variant
streams to be able deleting them later. I have choosen the second
solution and introduced a variant index data member into the segment
struct.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Steven Liu <lq@onvideo.cn>
libavformat/hlsenc.c