[PR] fix-h264-race (PR #23963)

Kacper Michajłow via ffmpeg-devel <[email protected]> Thu, 30 Jul 2026 15:32:49 -0000
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178542558815.51.162084858651966188@29965ddac10e>
UFIgIzIzOTYzIG9wZW5lZCBieSBLYWNwZXIgTWljaGFqxYJvdyAoa2FzcGVyOTMpClVSTDogaHR0
cHM6Ly9jb2RlLmZmbXBlZy5vcmcvRkZtcGVnL0ZGbXBlZy9wdWxscy8yMzk2MwpQYXRjaCBVUkw6
IGh0dHBzOi8vY29kZS5mZm1wZWcub3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjM5NjMucGF0Y2gK
CkZpeGVzOiBodHRwczovL2ZhdGUuZmZtcGVnLm9yZy9yZXBvcnQuY2dpP3Nsb3Q9eDg2XzY0LWFy
Y2hsaW51eC1nY2MtdGhyZWFkcy04JnRpbWU9MjAyNjA3MzAxMDUwNTkKCgpGcm9tIDAyOWM4MDkw
MGUyYjkyYTg0OTVlMzZhYTE5ZDdmYWM5YzU1Yjg0ODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx
CkZyb206ID0/VVRGLTg/cT9LYWNwZXI9MjBNaWNoYWo9QzU9ODJvdz89IDxrYXNwZXI5M0BnbWFp
bC5jb20+CkRhdGU6IFRodSwgMzAgSnVsIDIwMjYgMTc6MjU6NTIgKzAyMDAKU3ViamVjdDogW1BB
VENIIDEvMl0gYXZjb2RlYy9oMjY0X2RpcmVjdDogbW92ZSBjaGVjayBiZWZvcmUgbG9hZGluZyB0
aGluZ3MKCi0tLQogbGliYXZjb2RlYy9oMjY0X2RpcmVjdC5jIHwgNiArKystLS0KIDEgZmlsZSBj
aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGli
YXZjb2RlYy9oMjY0X2RpcmVjdC5jIGIvbGliYXZjb2RlYy9oMjY0X2RpcmVjdC5jCmluZGV4IDA5
ZTM4Y2NjOGUuLmMxNDk1YzljZGYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvaDI2NF9kaXJlY3Qu
YworKysgYi9saWJhdmNvZGVjL2gyNjRfZGlyZWN0LmMKQEAgLTE4NCwxMyArMTg0LDEzIEBAIHZv
aWQgZmZfaDI2NF9kaXJlY3RfcmVmX2xpc3RfaW5pdChjb25zdCBIMjY0Q29udGV4dCAqY29uc3Qg
aCwgSDI2NFNsaWNlQ29udGV4dCAqCiBzdGF0aWMgdm9pZCBhd2FpdF9yZWZlcmVuY2VfbWJfcm93
KGNvbnN0IEgyNjRDb250ZXh0ICpjb25zdCBoLCBIMjY0UmVmICpyZWYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBtYl95KQogeworICAgIGlmICghSEFWRV9USFJFQURT
IHx8ICEoaC0+YXZjdHgtPmFjdGl2ZV90aHJlYWRfdHlwZSAmIEZGX1RIUkVBRF9GUkFNRSkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIGludCByZWZfZmllbGQgICAgICAgICA9IHJlZi0+cmVmZXJl
bmNlIC0gMTsKICAgICBpbnQgcmVmX2ZpZWxkX3BpY3R1cmUgPSByZWYtPnBhcmVudC0+ZmllbGRf
cGljdHVyZTsKICAgICBpbnQgcmVmX2hlaWdodCAgICAgICAgPSAxNiAqIGgtPm1iX2hlaWdodCA+
PiByZWZfZmllbGRfcGljdHVyZTsKIAotICAgIGlmICghSEFWRV9USFJFQURTIHx8ICEoaC0+YXZj
dHgtPmFjdGl2ZV90aHJlYWRfdHlwZSAmIEZGX1RIUkVBRF9GUkFNRSkpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIC8qIEZJWE1FOiBJdCBjYW4gYmUgc2FmZSB0byBhY2Nlc3MgbWIgc3R1ZmYKICAg
ICAgKiBldmVuIGlmIHBpeGVscyBhcmVuJ3QgZGVibG9ja2VkIHlldC4gKi8KIAotLSAKMi41Mi4w
CgoKRnJvbSAyNzRjYjY3MzFiZDIwNGU5NTM3YTdlNTg4ZDRhMzQzNmZkZjUxYjkzIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/S2FjcGVyPTIwTWljaGFqPUM1PTgyb3c/
PSA8a2FzcGVyOTNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIEp1bCAyMDI2IDE3OjI3OjA5ICsw
MjAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIGF2Y29kZWMvaDI2NF9kaXJlY3Q6IGF3YWl0IGJvdGgg
ZmllbGRzIG9mIGEgY29sb2NhdGVkCiBmaWVsZCBwYWlyCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpXaGVuIGEgZnJhbWUgY29kZWQgcGljdHVyZSB1c2VzIGEgY29tcGxlbWVudGFy
eSBmaWVsZCBwYWlyIGFzIGl0cwpjb2xvY2F0ZWQgcGljdHVyZSwgZmZfaDI2NF9kaXJlY3RfcmVm
X2xpc3RfaW5pdCgpIHNlbGVjdHMgdGhlIGZpZWxkIHdob3NlClBPQyBpcyBjbG9zZXN0IHRvIHRo
ZSBjdXJyZW50IG9uZSBhbmQgc3RvcmVzIGl0IGluIGNvbF9wYXJpdHkuIFRoZSBkaXJlY3QKbW9k
ZSBzZXR1cCB0aGVuIHJlbWFwcyBtYl94eSB0byB0aGF0IHBhcml0eSBhbmQgcmVhZHMgdGhlIGNv
bG9jYXRlZAptYl90eXBlLCBtb3Rpb25fdmFsIGFuZCByZWZfaW5kZXggZnJvbSBpdC4KCmF3YWl0
X3JlZmVyZW5jZV9tYl9yb3coKSB3YWl0cyBvbiB0aGUgZmllbGQgZ2l2ZW4gYnkgInJlZl9maWVs
ZF9waWN0dXJlICYmCnJlZl9maWVsZCIsIHdoaWNoIGlzIDEgZm9yIGFueSBzdWNoIHJlZmVyZW5j
ZSwgc2luY2UgdGhlIHBhaXIgaXMKcmVmZXJlbmNlZCBhcyBhIGZyYW1lIGFuZCByZWYtPnJlZmVy
ZW5jZSBpcyAzLiBPbmx5IHRoZSBib3R0b20gZmllbGQgaXMKdGhlcmVmb3JlIGF3YWl0ZWQsIHdo
aWxlIHRoZSBkYXRhIGlzIGp1c3QgYXMgbGlrZWx5IHRvIGJlIHJlYWQgZnJvbSB0aGUKdG9wIG9u
ZS4gV2l0aCBmcmFtZSB0aHJlYWRpbmcgdGhlIHR3byBmaWVsZHMgYXJlIGRlY29kZWQgYnkgZGlm
ZmVyZW50CnRocmVhZHMsIHNvIHRoZSBjb2xvY2F0ZWQgZGF0YSBjYW4gYmUgcmVhZCB3aGlsZSB0
aGUgZmllbGQgaXQgYmVsb25ncyB0bwppcyBzdGlsbCBiZWluZyBkZWNvZGVkLCB5aWVsZGluZyBz
dGFsZSBtb3Rpb24gdmVjdG9ycyBhbmQgYSBjb3JydXB0CmZyYW1lLiBhd2FpdF9yZWZlcmVuY2Vz
KCkgYWxyZWFkeSBoYW5kbGVzIHRoZSBzYW1lIGNhc2UgY29ycmVjdGx5IGZvcgptb3Rpb24gY29t
cGVuc2F0aW9uLgoKRml4ZXMgc3BvcmFkaWMgZmFpbHVyZXMgb2YgZmF0ZS1oMjY0LWNvbmZvcm1h
bmNlLWNhYmFjX21vdF9waWNhZmYwX2Z1bGwsCndoZXJlIGRpc3BsYXkgZnJhbWUgMTQuCgpTaWdu
ZWQtb2ZmLWJ5OiBLYWNwZXIgTWljaGFqxYJvdyA8a2FzcGVyOTNAZ21haWwuY29tPgotLS0KIGxp
YmF2Y29kZWMvaDI2NF9kaXJlY3QuYyB8IDExICsrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg
OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv
aDI2NF9kaXJlY3QuYyBiL2xpYmF2Y29kZWMvaDI2NF9kaXJlY3QuYwppbmRleCBjMTQ5NWM5Y2Rm
Li5iZTM4OGFkYTNhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2gyNjRfZGlyZWN0LmMKKysrIGIv
bGliYXZjb2RlYy9oMjY0X2RpcmVjdC5jCkBAIC0xOTAsMTQgKzE5MCwxOSBAQCBzdGF0aWMgdm9p
ZCBhd2FpdF9yZWZlcmVuY2VfbWJfcm93KGNvbnN0IEgyNjRDb250ZXh0ICpjb25zdCBoLCBIMjY0
UmVmICpyZWYsCiAgICAgaW50IHJlZl9maWVsZCAgICAgICAgID0gcmVmLT5yZWZlcmVuY2UgLSAx
OwogICAgIGludCByZWZfZmllbGRfcGljdHVyZSA9IHJlZi0+cGFyZW50LT5maWVsZF9waWN0dXJl
OwogICAgIGludCByZWZfaGVpZ2h0ICAgICAgICA9IDE2ICogaC0+bWJfaGVpZ2h0ID4+IHJlZl9m
aWVsZF9waWN0dXJlOworICAgIGludCByb3cgICAgICAgICAgICAgICA9IEZGTUlOKDE2ICogbWJf
eSA+PiByZWZfZmllbGRfcGljdHVyZSwgcmVmX2hlaWdodCAtIDEpOwogCiAgICAgLyogRklYTUU6
IEl0IGNhbiBiZSBzYWZlIHRvIGFjY2VzcyBtYiBzdHVmZgogICAgICAqIGV2ZW4gaWYgcGl4ZWxz
IGFyZW4ndCBkZWJsb2NrZWQgeWV0LiAqLwogCi0gICAgZmZfdGhyZWFkX2F3YWl0X3Byb2dyZXNz
KCZyZWYtPnBhcmVudC0+dGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZGTUlOKDE2
ICogbWJfeSA+PiByZWZfZmllbGRfcGljdHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVmX2hlaWdodCAtIDEpLAorICAgIGZmX3RocmVhZF9hd2FpdF9wcm9ncmVzcygm
cmVmLT5wYXJlbnQtPnRmLCByb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9m
aWVsZF9waWN0dXJlICYmIHJlZl9maWVsZCk7CisKKyAgICAvKiBBIGZyYW1lIHJlZmVyZW5jZXMg
YSBmaWVsZCBwYWlyIGFzIGEgd2hvbGUsIHNvIHRoZSB3YWl0IGFib3ZlIGNvdmVycworICAgICAq
IGl0cyBib3R0b20gZmllbGQgb25seSwgd2hpbGUgdGhlIGNvbG9jYXRlZCBkYXRhIGlzIHJlYWQg
ZnJvbSB0aGUgZmllbGQKKyAgICAgKiBzZWxlY3RlZCBieSBjb2xfcGFyaXR5LiBUaGUgdHdvIGFy
ZSBkZWNvZGVkIGJ5IGRpZmZlcmVudCB0aHJlYWRzLiAqLworICAgIGlmIChyZWZfZmllbGRfcGlj
dHVyZSAmJiAhRklFTERfUElDVFVSRShoKSkKKyAgICAgICAgZmZfdGhyZWFkX2F3YWl0X3Byb2dy
ZXNzKCZyZWYtPnBhcmVudC0+dGYsIHJvdywgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHByZWRfc3Bh
dGlhbF9kaXJlY3RfbW90aW9uKGNvbnN0IEgyNjRDb250ZXh0ICpjb25zdCBoLCBIMjY0U2xpY2VD
b250ZXh0ICpzbCwKLS0gCjIuNTIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAtLSBmZm1wZWctZGV2ZWxA
ZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGZmbXBlZy1kZXZlbC1s
ZWF2ZUBmZm1wZWcub3JnCg==