[PR] avcodec/libsvtav1 : make eb_receive_packet drain available packets before demanding new input (PR #23979)

cdcxd via ffmpeg-devel <[email protected]> Sun, 02 Aug 2026 05:56:03 -0000
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <178565016411.59.15068952322405573249@29965ddac10e>
UFIgIzIzOTc5IG9wZW5lZCBieSBjZGN4ZApVUkw6IGh0dHBzOi8vY29kZS5mZm1wZWcub3JnL0ZG
bXBlZy9GRm1wZWcvcHVsbHMvMjM5NzkKUGF0Y2ggVVJMOiBodHRwczovL2NvZGUuZmZtcGVnLm9y
Zy9GRm1wZWcvRkZtcGVnL3B1bGxzLzIzOTc5LnBhdGNoCgojIFN1bW1hcnkgb2YgY2hhbmdlcw0K
DQpDaGFuZ2UgdGhlIGViX3JlY2VpdmVfcGFja2V0IHRvIGRyYWluIGF2YWlsYWJsZSBwYWNrZXQg
d2hlbiBwb3NzaWJsZSwgbm90IG9ubHkgYXR0ZW1wdCBhZnRlciBlYl9zZW5kX2ZyYW1lDQoNClJl
YXNvbjogDQoNClRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9ubHkgYXR0ZW1wdHMgc3Z0X2F2
MV9lbmNfZ2V0X3BhY2tldCBhZnRlciBzdWNjZXNzZnVsIGZmX2VuY29kZV9nZXRfZnJhbWUgKyBl
Yl9zZW5kX2ZyYW1lIC4gIE1lYW5pbmcgd2UgY2FuIG9ubHkgZ2V0IDAgb3IgMSBwYWNrZXQgYWZ0
ZXIgc2VuZGluZyBhIGZyYW1lLiBUaGUgdW5oYXJ2ZXN0ZWQgcGFja2V0IGNvdW50IHdpbGwgbmV2
ZXIgZGVjcmVhc2UuIEl0IHdvbid0IGNhdGNoIHVwIGJ1cnN0IG91dHB1dCBwYWNrZXRzIGVpdGhl
ci4gDQoNClNWVC1BVjEgcmVsZWFzZXMgcGFja2V0cyBpbiBtaW5pLUdPUCBzaXplZCBidXJzdHMg
4oCUIG1lYXN1cmVkIGF0IHVwIHRvIDM5IGF0IG9uY2Ugd2l0aCBgNjQweDM2MCwgbHA9MTpoaWVy
YXJjaGljYWwtbGV2ZWxzPTU6bG9va2FoZWFkPTEyMGAuIFNvIGZpbmlzaGVkIHBhY2tldHMgYXJl
IHdpdGhoZWxkIGZyb20gdGhlIGFwcGxpY2F0aW9uIHVudGlsIGl0IHN1cHBsaWVzIG1vcmUgaW5w
dXQuICBDYW4ndCBkcmFpbiBpdCBhc2FwLg0KDQpDaGFuZ2VzOg0KDQpJIGNoYW5nZWQgaXQgdG8g
YWx3YXlzIHRyeSBzdnRfYXYxX2VuY19nZXRfcGFja2V0IGlmIHBvc3NpYmxlLiAgSW4gdGhlIExP
V19ERUxBWSBhbmQgcnRjIG1vZGUgKGF2YWlsYWJsZSBzaW5jZSB2My4xLjApLCB0aGUgZnVuY3Rp
b24gd2lsbCBibG9jaywgc28gd2UgY2FuJ3QgYXR0ZW1wdCBpdC4gSWYgRUJfTm9FcnJvckVtcHR5
UXVldWUgaXMgcmV0dXJuZWQsIGl0IGZhbGx0aHJvdWdoIHRvIHRoZSBzZW5kIGZyYW1lIGFzIGJl
Zm9yZS4gIE90aGVyd2lzZSBpdCBqdXN0IHJldHVybnMgdGhlIHBhY2tldCBhbmQgd2FpdCBmb3Ig
bmV4dCBhdmNvZGVjX3JlY2VpdmVfcGFja2V0IGNhbGwgDQoNCiMgVmVyaWZpY2F0aW9uDQotIGZm
bXBlZyBjbGksIEkgYnVpbHQgdGhlIHBhdGNoZWQgb25lIGxvY2FsbHksIGFza2VkIGNvZGluZyBh
Z2VudCB0byBkcmFmdCBieXRlLWlkZW50aWNhbCBjb21wYXJpc29uLiBJdCBkaWQgcGFzcywgdGhl
IHNjcmlwdCBwcm92ZW5hbmNlIGlzICBodHRwczovL2NvZGUuZmZtcGVnLm9yZy9jZGN4ZC9GRm1w
ZWcvc3JjL2JyYW5jaC9saWJzdnRhdjEtZHJhaW4tZmlyc3QtcHJvdmVuYW5jZS92ZXJpZmljYXRp
b25fcHJvdmVuYW5jZS92ZXJpZnkuc2gNCg0KPCEtLQ0KSWYgdGhpcyBQUiByZXF1aXJlcyBuZXcg
RkFURSB0ZXN0IHNhbXBsZXMsIGF0dGFjaCB0aGVtIHRvIHRoZSBQUiBhbmQNCmxpc3QgdGhlaXIg
dGFyZ2V0IHBhdGhzIGJlbG93IChyZWxhdGl2ZSB0byB0aGUgZmF0ZS1zdWl0ZSByb290KS4NCg0K
QXR0YWNoZWQgZmlsZW5hbWVzIG11c3QgbWF0Y2ggdGhlIHNhbXBsZSdzIGZpbGVuYW1lOg0KDQpg
YGBmYXRlLXNhbXBsZXMNCiMgZS5nLiB2b3JiaXMvbmV3LXNhbXBsZS5vZ2cNCmBgYA0KLS0+DQoK
CgpGcm9tIDBmNDM1OTkyODk3MDFhNzI1NGE5ODQ2Y2MwYjgyMGEyY2FhODRmNTAgTW9uIFNlcCAx
NyAwMDowMDowMCAyMDAxCkZyb206IGNkb25nIDxjeGRvbmc5M0BnbWFpbC5jb20+CkRhdGU6IFNh
dCwgMSBBdWcgMjAyNiAyMjo1MDowMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGF2Y29kZWMvbGli
c3Z0YXYxIDogbWFrZSBlYl9yZWNlaXZlX3BhY2tldCBkcmFpbiBhdmFpbGFibGUKIHBhY2tldHMg
YmVmb3JlIGRlbWFuZGluZyBuZXcgaW5wdXQKCi0tLQogbGliYXZjb2RlYy9saWJzdnRhdjEuYyB8
IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNo
YW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp
YmF2Y29kZWMvbGlic3Z0YXYxLmMgYi9saWJhdmNvZGVjL2xpYnN2dGF2MS5jCmluZGV4IDBiY2Mx
NzYyNDMuLjNmZTI3YzViN2UgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvbGlic3Z0YXYxLmMKKysr
IGIvbGliYXZjb2RlYy9saWJzdnRhdjEuYwpAQCAtNjUzLDIyICs2NTMsNTMgQEAgc3RhdGljIGlu
dCBlYl9yZWNlaXZlX3BhY2tldChBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWUGFja2V0ICpwa3Qp
CiAgICAgRWJFcnJvclR5cGUgc3Z0X3JldDsKICAgICBBVkJ1ZmZlclJlZiAqcmVmOwogICAgIGlu
dCByZXQgPSAwOworICAgIGludCBkcmFpbl9wYWNrZXRfZmlyc3QsIGhhdmVfcGFja2V0ID0gMDsK
IAogICAgIGlmIChzdnRfZW5jLT5lb3NfZmxhZyA9PSBFT1NfUkVDRUlWRUQpCiAgICAgICAgIHJl
dHVybiBBVkVSUk9SX0VPRjsKIAotICAgIHJldCA9IGZmX2VuY29kZV9nZXRfZnJhbWUoYXZjdHgs
IGZyYW1lKTsKLSAgICBpZiAocmV0IDwgMCAmJiByZXQgIT0gQVZFUlJPUl9FT0YpCi0gICAgICAg
IHJldHVybiByZXQ7Ci0gICAgaWYgKHJldCA9PSBBVkVSUk9SX0VPRikKLSAgICAgICAgZnJhbWUg
PSBOVUxMOworICAgIC8qIFRha2UgYW55IGF2YWlsYWJsZSBwYWNrZXQsIGRvbid0IGxldCB0aGVt
IGFjY3VtdWxhdGUgaW4gb3V0cHV0IGZpZm8uCisgICAgICoKKyAgICAgKiBzdnRfYXYxX2VuY19n
ZXRfcGFja2V0KCkgaXMgZG9jdW1lbnRlZCBpbiBFYlN2dEF2MUVuYy5oIHRvIGJsb2NrIHdoZW4K
KyAgICAgKiBwaWNfc2VuZF9kb25lIGlzIHNldCBvciB3aGVuIHRoZSBsaWJyYXJ5IHJ1bnMgaW4g
bG93IGRlbGF5LCBzbyBvbmx5IHBvbGwKKyAgICAgKiBhaGVhZCBvZiBzZW5kaW5nIHdoZW4gaXQg
aXMgZ3VhcmFudGVlZCBub3QgdG8uIExvdyBkZWxheSBnYWluZWQgdGhhdAorICAgICAqIGJlaGF2
aW91ciBpbiB2Mi4zLjAsIHRlc3RpbmcgZm9yIGl0IG9uIG9sZGVyIHZlcnNpb25zIGlzIG1lcmVs
eQorICAgICAqIGNvbnNlcnZhdGl2ZS4gVGhlIGxpYnJhcnkncyBjb3B5X2FwaV9mcm9tX2FwcCgp
IGZvcmNlcyBsb3cgZGVsYXkgZm9yIHJ0YworICAgICAqIHdpdGhvdXQgcmVmbGVjdGluZyBpdCBp
biB0aGUgY29uZmlndXJhdGlvbiB3ZSBob2xkLCBoZW5jZSB0aGUgc2VwYXJhdGUKKyAgICAgKiBj
aGVjay4KKyAgICAgKi8KKyAgICBkcmFpbl9wYWNrZXRfZmlyc3QgPSBzdnRfZW5jLT5lb3NfZmxh
ZyA9PSBFT1NfTk9UX1JFQUNIRUQgJiYKKyNpZiBTVlRfQVYxX0NIRUNLX1ZFUlNJT04oNCwgMSwg
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdnRfZW5jLT5lbmNfcGFyYW1zLnByZWRfc3Ry
dWN0dXJlICE9IExPV19ERUxBWQorI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBM
T1dfREVMQVkgaXMgbm90IGV4cG9ydGVkIGJlZm9yZSB2NC4xLjAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICBzdnRfZW5jLT5lbmNfcGFyYW1zLnByZWRfc3RydWN0dXJlICE9IDEKKyNlbmRp
ZgorI2lmIFNWVF9BVjFfQ0hFQ0tfVkVSU0lPTigzLCAxLCAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICYmICFzdnRfZW5jLT5lbmNfcGFyYW1zLnJ0YworI2VuZGlmCisgICAgICAgICAgICAg
ICAgICAgICAgICAgOwogCi0gICAgcmV0ID0gZWJfc2VuZF9mcmFtZShhdmN0eCwgZnJhbWUpOwot
ICAgIGlmIChyZXQgPCAwKQotICAgICAgICByZXR1cm4gcmV0OwotICAgIGF2X2ZyYW1lX3VucmVm
KHN2dF9lbmMtPmZyYW1lKTsKKyAgICBpZiAoZHJhaW5fcGFja2V0X2ZpcnN0KSB7CisgICAgICAg
IHN2dF9yZXQgPSBzdnRfYXYxX2VuY19nZXRfcGFja2V0KHN2dF9lbmMtPnN2dF9oYW5kbGUsICZo
ZWFkZXJQdHIsIHN2dF9lbmMtPmVvc19mbGFnKTsKKyAgICAgICAgaGF2ZV9wYWNrZXQgPSBzdnRf
cmV0ICE9IEVCX05vRXJyb3JFbXB0eVF1ZXVlOworICAgIH0KKworICAgIGlmICghaGF2ZV9wYWNr
ZXQpIHsKKyAgICAgICAgcmV0ID0gZmZfZW5jb2RlX2dldF9mcmFtZShhdmN0eCwgZnJhbWUpOwor
ICAgICAgICBpZiAocmV0IDwgMCAmJiByZXQgIT0gQVZFUlJPUl9FT0YpCisgICAgICAgICAgICBy
ZXR1cm4gcmV0OworICAgICAgICBpZiAocmV0ID09IEFWRVJST1JfRU9GKQorICAgICAgICAgICAg
ZnJhbWUgPSBOVUxMOworCisgICAgICAgIHJldCA9IGViX3NlbmRfZnJhbWUoYXZjdHgsIGZyYW1l
KTsKKyAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAg
ICBhdl9mcmFtZV91bnJlZihzdnRfZW5jLT5mcmFtZSk7CisKKyAgICAgICAgc3Z0X3JldCA9IHN2
dF9hdjFfZW5jX2dldF9wYWNrZXQoc3Z0X2VuYy0+c3Z0X2hhbmRsZSwgJmhlYWRlclB0ciwgc3Z0
X2VuYy0+ZW9zX2ZsYWcpOworICAgIH0KIAotICAgIHN2dF9yZXQgPSBzdnRfYXYxX2VuY19nZXRf
cGFja2V0KHN2dF9lbmMtPnN2dF9oYW5kbGUsICZoZWFkZXJQdHIsIHN2dF9lbmMtPmVvc19mbGFn
KTsKICAgICBpZiAoc3Z0X3JldCA9PSBFQl9Ob0Vycm9yRW1wdHlRdWV1ZSkKICAgICAgICAgcmV0
dXJuIEFWRVJST1IoRUFHQUlOKTsKICAgICBlbHNlIGlmIChzdnRfcmV0ICE9IEVCX0Vycm9yTm9u
ZSkKLS0gCjIuNTIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAtLSBmZm1wZWctZGV2ZWxAZmZtcGVnLm9y
ZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGZmbXBlZy1kZXZlbC1sZWF2ZUBmZm1w
ZWcub3JnCg==