[PR] avformat/hls: refresh stale playlist when seeking (PR #23942)

Kacper Michajłow via ffmpeg-devel <[email protected]> Tue, 28 Jul 2026 19:53:42 -0000
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178526842298.51.10453190037553219897@29965ddac10e>
UFIgIzIzOTQyIG9wZW5lZCBieSBLYWNwZXIgTWljaGFqxYJvdyAoa2FzcGVyOTMpClVSTDogaHR0
cHM6Ly9jb2RlLmZmbXBlZy5vcmcvRkZtcGVnL0ZGbXBlZy9wdWxscy8yMzk0MgpQYXRjaCBVUkw6
IGh0dHBzOi8vY29kZS5mZm1wZWcub3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjM5NDIucGF0Y2gK
CgpGcm9tIDVhYmI2YzdmMTdmNGI3ZDMzZjBkMTZiY2UxYzI5Y2M0ZjBkNjM2NGEgTW9uIFNlcCAx
NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89
IDxrYXNwZXI5M0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgOCBKdWwgMjAyNiAwNzo0MToxNSArMDIw
MApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBhdmZvcm1hdC9obHM6IG1lYXN1cmUgcGxheWxpc3QgcmVs
b2FkIGludGVydmFsIGZyb20gbG9hZAogc3RhcnQKClJGQyA4MjE2IDYuMy40IG1lYXN1cmVzIHJl
bG9hZCB3YWl0cyBmcm9tIHRoZSB0aW1lIHRoZSBjbGllbnQgYmVnYW4KbG9hZGluZyB0aGUgcGxh
eWxpc3QsIG5vdCBmcm9tIHdoZW4gdGhlIGxvYWQgZmluaXNoZWQuCi0tLQogbGliYXZmb3JtYXQv
aGxzLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2hscy5jIGIvbGliYXZmb3JtYXQvaGxz
LmMKaW5kZXggZTg1MzNhYTkzZi4uZTY3NzIyOTJiNCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQv
aGxzLmMKKysrIGIvbGliYXZmb3JtYXQvaGxzLmMKQEAgLTg0OSw2ICs4NDksNyBAQCBzdGF0aWMg
aW50IHBhcnNlX3BsYXlsaXN0KEhMU0NvbnRleHQgKmMsIGNvbnN0IGNoYXIgKnVybCwKICAgICBz
dHJ1Y3Qgc2VnbWVudCAqKnByZXZfc2VnbWVudHMgPSBOVUxMOwogICAgIGludCBwcmV2X25fc2Vn
bWVudHMgPSAwOwogICAgIGludDY0X3QgcHJldl9zdGFydF9zZXFfbm8gPSAtMTsKKyAgICBpbnQ2
NF90IGxvYWRfc3RhcnQgPSBhdl9nZXR0aW1lX3JlbGF0aXZlKCk7CiAKICAgICBpZiAoaXNfaHR0
cCAmJiAhaW4gJiYgYy0+aHR0cF9wZXJzaXN0ZW50ICYmIGMtPnBsYXlsaXN0X3BiKSB7CiAgICAg
ICAgIGluID0gYy0+cGxheWxpc3RfcGI7CkBAIC0xMTU5LDEwICsxMTYwLDEwIEBAIHN0YXRpYyBp
bnQgcGFyc2VfcGxheWxpc3QoSExTQ29udGV4dCAqYywgY29uc3QgY2hhciAqdXJsLAogICAgICAg
ICBmcmVlX3NlZ21lbnRfZHluYXJyYXkocHJldl9zZWdtZW50cywgcHJldl9uX3NlZ21lbnRzKTsK
ICAgICAgICAgYXZfZnJlZXAoJnByZXZfc2VnbWVudHMpOwogICAgIH0KLSAgICBpZiAocGxzKQot
ICAgICAgICBwbHMtPmxhc3RfbG9hZF90aW1lID0gYXZfZ2V0dGltZV9yZWxhdGl2ZSgpOwogCiBm
YWlsOgorICAgIGlmIChwbHMpCisgICAgICAgIHBscy0+bGFzdF9sb2FkX3RpbWUgPSBsb2FkX3N0
YXJ0OwogICAgIGF2X2ZyZWUobmV3X3VybCk7CiAgICAgaWYgKGNsb3NlX2luKQogICAgICAgICBm
Zl9mb3JtYXRfaW9fY2xvc2UoYy0+Y3R4LCAmaW4pOwotLSAKMi41Mi4wCgoKRnJvbSAzMmJlN2Yz
OTVlOTM2MDM0OWE2NzJkYzYzYjM4MjZjMDY4YzQ2YWNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw
MQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/PSA8a2FzcGVyOTNAZ21h
aWwuY29tPgpEYXRlOiBXZWQsIDggSnVsIDIwMjYgMDc6NDI6NTggKzAyMDAKU3ViamVjdDogW1BB
VENIIDIvMl0gYXZmb3JtYXQvaGxzOiByZWZyZXNoIHN0YWxlIHBsYXlsaXN0IHdoZW4gc2Vla2lu
ZwoKU2Vla2luZyB1c2VkIG9ubHkgdGhlIGxvYWRlZCBzZWdtZW50IGxpc3QuIExpdmUgYW5kIEVW
RU5UIHBsYXlsaXN0cyBjYW4KZ2FpbiBzZWdtZW50cyBhZnRlciBsb2FkaW5nLCBhbmQgc2xpZGlu
Zy13aW5kb3cgcGxheWxpc3RzIGNhbiBhbHNvCmV4cGlyZSB0aGVtLCBzbyBhIHNlZWsgdGFyZ2V0
IG1heSBsaWUgb3V0c2lkZSB0aGUgbG9hZGVkIHdpbmRvdyBldmVuCndoZW4gaXQgaXMgd2l0aGlu
IHRoZSBhY3R1YWwgcHJlc2VudGF0aW9uLiBSZWZyZXNoIHRoZSB0YXJnZXQgcGxheWxpc3QKYmVm
b3JlIHJlc29sdmluZyB0aGUgc2VlayB3aGVuIHRoZSB0YXJnZXQgbWF5IGZhbGwgb3V0c2lkZSB0
aGUgd2luZG93LgpSYXRlLWxpbWl0ZWQgdG8gb25lLWhhbGYgdGhlIHRhcmdldCBkdXJhdGlvbiwg
dGhlIG1pbmltdW0gcmVsb2FkCmludGVydmFsIG9mIFJGQyA4MjE2IDYuMy40LgotLS0KIGxpYmF2
Zm9ybWF0L2hscy5jIHwgMjYgKysrKysrKysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFu
Z2VkLCAyMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2
Zm9ybWF0L2hscy5jIGIvbGliYXZmb3JtYXQvaGxzLmMKaW5kZXggZTY3NzIyOTJiNC4uNWI4MmM5
YjdkZiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvaGxzLmMKKysrIGIvbGliYXZmb3JtYXQvaGxz
LmMKQEAgLTI5NDUsOSArMjk0NSw2IEBAIHN0YXRpYyBpbnQgaGxzX3JlYWRfc2VlayhBVkZvcm1h
dENvbnRleHQgKnMsIGludCBzdHJlYW1faW5kZXgsCiAgICAgaWYgKChmbGFncyAmIEFWU0VFS19G
TEFHX0JZVEUpIHx8IChjLT5jdHgtPmN0eF9mbGFncyAmIEFWRk1UQ1RYX1VOU0VFS0FCTEUpKQog
ICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9TWVMpOwogCi0gICAgZmlyc3RfdGltZXN0YW1wID0g
Yy0+Zmlyc3RfdGltZXN0YW1wID09IEFWX05PUFRTX1ZBTFVFID8KLSAgICAgICAgICAgICAgICAg
ICAgICAwIDogYy0+Zmlyc3RfdGltZXN0YW1wOwotCiAgICAgc2Vla190aW1lc3RhbXAgPSBhdl9y
ZXNjYWxlX3Ffcm5kKHRpbWVzdGFtcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcy0+c3RyZWFtc1tzdHJlYW1faW5kZXhdLT50aW1lX2Jhc2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1RJTUVfQkFTRV9RLCBBVl9ST1VORF9ET1dOKTsK
QEAgLTI5NjYsNiArMjk2MywyOSBAQCBzdGF0aWMgaW50IGhsc19yZWFkX3NlZWsoQVZGb3JtYXRD
b250ZXh0ICpzLCBpbnQgc3RyZWFtX2luZGV4LAogICAgIGlmICghc2Vla19wbHMpCiAgICAgICAg
IHJldHVybiBBVkVSUk9SKEVJTyk7CiAKKyAgICAvKiBMaXZlIGFuZCBFVkVOVCBwbGF5bGlzdHMg
bWF5IGhhdmUgZ2FpbmVkIHNlZ21lbnRzIHNpbmNlIHRoZSBsYXN0IGxvYWQsCisgICAgICogYW5k
IHNsaWRpbmctd2luZG93IHBsYXlsaXN0cyBtYXkgYWxzbyBoYXZlIGV4cGlyZWQgc29tZS4gUmVm
cmVzaCBiZWZvcmUKKyAgICAgKiByZXNvbHZpbmcgYSBzZWVrIHRoYXQgbWF5IGZhbGwgb3V0c2lk
ZSB0aGUgbG9hZGVkIHdpbmRvdywgcmF0ZSBsaW1pdGVkCisgICAgICogdG8gb25lLWhhbGYgdGhl
IHRhcmdldCBkdXJhdGlvbiAoUkZDIDgyMTYgNi4zLjQpLiAqLworICAgIGlmICghc2Vla19wbHMt
PmZpbmlzaGVkKSB7CisgICAgICAgIGludDY0X3QgZWxhcHNlZCA9IGF2X2dldHRpbWVfcmVsYXRp
dmUoKSAtIHNlZWtfcGxzLT5sYXN0X2xvYWRfdGltZTsKKyAgICAgICAgaW50NjRfdCBzdGFydCA9
IGMtPmZpcnN0X3RpbWVzdGFtcCA9PSBBVl9OT1BUU19WQUxVRSA/CisgICAgICAgICAgICAgICAg
ICAgICAgICAwIDogYy0+Zmlyc3RfdGltZXN0YW1wOworICAgICAgICBpbnQ2NF90IGVuZCA9IHN0
YXJ0OworICAgICAgICBpbnQgbmVlZF9yZWZyZXNoOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwg
c2Vla19wbHMtPm5fc2VnbWVudHM7IGkrKykKKyAgICAgICAgICAgIGVuZCArPSBzZWVrX3Bscy0+
c2VnbWVudHNbaV0tPmR1cmF0aW9uOworICAgICAgICBuZWVkX3JlZnJlc2ggPSBzZWVrX3RpbWVz
dGFtcCA+PSBlbmQ7CisgICAgICAgIGlmIChzZWVrX3Bscy0+dHlwZSA9PSBQTFNfVFlQRV9VTlNQ
RUNJRklFRCkKKyAgICAgICAgICAgIG5lZWRfcmVmcmVzaCB8PSBzZWVrX3RpbWVzdGFtcCA8IHN0
YXJ0ICsgZWxhcHNlZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWVrX3Bscy0+dGFyZ2V0X2R1cmF0aW9uOworICAgICAgICBpZiAobmVlZF9yZWZyZXNo
ICYmIGVsYXBzZWQgPj0gc2Vla19wbHMtPnRhcmdldF9kdXJhdGlvbiAvIDIpCisgICAgICAgICAg
ICBwYXJzZV9wbGF5bGlzdChjLCBzZWVrX3Bscy0+dXJsLCBzZWVrX3BscywgTlVMTCk7CisgICAg
fQorCisgICAgZmlyc3RfdGltZXN0YW1wID0gYy0+Zmlyc3RfdGltZXN0YW1wID09IEFWX05PUFRT
X1ZBTFVFID8KKyAgICAgICAgICAgICAgICAgICAgICAwIDogYy0+Zmlyc3RfdGltZXN0YW1wOwor
CiAgICAgZHVyYXRpb24gPSBzLT5kdXJhdGlvbiA9PSBBVl9OT1BUU19WQUxVRSA/CiAgICAgICAg
ICAgICAgICAwIDogcy0+ZHVyYXRpb247CiAKLS0gCjIuNTIuMAoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAt
LSBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRv
IGZmbXBlZy1kZXZlbC1sZWF2ZUBmZm1wZWcub3JnCg==