[XviD-devel] PATCH: Per slices rendering

Alban Bedel xvid-devel@xvid.org
Sun, 7 Jul 2002 14:58:30 +0200


This is a multi-part message in MIME format.

--Multipart_Sun__7_Jul_2002_14:58:30_+0200_081da7e8
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


Hi all,

I'm working on MPlayer and recently found that your decoder was now as fast as
libavcodec (even faster in some case). So I wanted to add somekind of direct
rendering in xvid. I implemented what we call "slices" rendering wich alredy give
a little speedup. Comments are welcome.

	Albeu
--Multipart_Sun__7_Jul_2002_14:58:30_+0200_081da7e8
Content-Type: application/octet-stream;
 name="slices.patch"
Content-Disposition: attachment;
 filename="slices.patch"
Content-Transfer-Encoding: base64

ZGlmZiAtTnVyIC14ICp+IC14ICoubyAteCAqLnNvIC14ICouYSAteCBDVlMgLXggTWFrZWZpbGUq
IGN2cy9zcmMvZGVjb2Rlci5jIGRldi9zcmMvZGVjb2Rlci5jCi0tLSBjdnMvc3JjL2RlY29kZXIu
YwlXZWQgSnVsICAzIDE0OjMyOjUwIDIwMDIKKysrIGRldi9zcmMvZGVjb2Rlci5jCVN1biBKdWwg
IDcgMTQ6MzE6MzEgMjAwMgpAQCAtNDE5LDYgKzQxOSw0MSBAQAogCXN0b3BfdHJhbnNmZXJfdGlt
ZXIoKTsKIH0KIAorc3RhdGljIHZvaWQgX19pbmxpbmUKK2NvcHlfc2xpY2UoREVDT0RFUiAqIGRl
YyxpbnQgbWJ4LCBpbnQgbWJ5LGludCBtYmwpIHsKKyAgdWludDhfdCAqZFksKmRVLCpkViwqc1ks
KnNVLCpzVjsKKyAgaW50IHN0ZCA9IGRlYy0+ZWRnZWRfd2lkdGgsIHN0ZDIgPSBkZWMtPmVkZ2Vk
X3dpZHRoID4+IDE7CisgIGludCB3ID0gbWJsIDw8IDQsIHcyLGk7CisKKyAgaWYodyA+IGRlYy0+
d2lkdGgpCisgICAgdyA9IGRlYy0+d2lkdGg7CisgIHcyID0gdyA+PiAxOworCisgIGRZID0gZGVj
LT5vdXRfZnJtLT55ICsgKG1ieSA8PCA0KSAqIGRlYy0+b3V0X2ZybS0+c3RyaWRlX3kgKyAobWJ4
IDw8IDQpOworICBkVSA9IGRlYy0+b3V0X2ZybS0+dSArIChtYnkgPDwgMykgKiBkZWMtPm91dF9m
cm0tPnN0cmlkZV91ICsgKG1ieCA8PCAzKTsKKyAgZFYgPSBkZWMtPm91dF9mcm0tPnYgKyAobWJ5
IDw8IDMpICogZGVjLT5vdXRfZnJtLT5zdHJpZGVfdiArIChtYnggPDwgMyk7CisgIHNZID0gZGVj
LT5jdXIueSArIChtYnkgPDwgNCkgKiBzdGQgKyAobWJ4IDw8IDQpOworICBzVSA9IGRlYy0+Y3Vy
LnUgKyAobWJ5IDw8IDMpICogc3RkMiArIChtYnggPDwgMyk7CisgIHNWID0gZGVjLT5jdXIudiAr
IChtYnkgPDwgMykgKiBzdGQyICsgKG1ieCA8PCAzKTsKKworICBmb3IoaSA9IDAgOyBpIDwgMTYg
OyBpKyspIHsKKyAgICBtZW1jcHkoZFksc1ksdyk7CisgICAgZFkgKz0gZGVjLT5vdXRfZnJtLT5z
dHJpZGVfeTsKKyAgICBzWSArPSBzdGQ7CisgIH0KKyAgZm9yKGkgPSAwIDsgaSA8IDggOyBpKysp
IHsKKyAgICBtZW1jcHkoZFUsc1UsdzIpOworICAgIGRVICs9IGRlYy0+b3V0X2ZybS0+c3RyaWRl
X3U7CisgICAgc1UgKz0gc3RkMjsKKyAgfQorICBmb3IoaSA9IDAgOyBpIDwgOCA7IGkrKykgewor
ICAgIG1lbWNweShkVixzVix3Mik7CisgICAgZFYgKz0gZGVjLT5vdXRfZnJtLT5zdHJpZGVfdjsK
KyAgICBzViArPSBzdGQyOworICB9CisKK30KKwogCiB2b2lkCiBkZWNvZGVyX2lmcmFtZShERUNP
REVSICogZGVjLApAQCAtNDgwLDYgKzUxNSw4IEBACiAJCQlkZWNvZGVyX21iaW50cmEoZGVjLCBt
YiwgeCwgeSwgYWNwcmVkX2ZsYWcsIGNicCwgYnMsIHF1YW50LAogCQkJCQkJCWludHJhX2RjX3Ro
cmVzaG9sZCwgYm91bmQpOwogCQl9CisJCWlmKGRlYy0+b3V0X2ZybSkKKwkJICBjb3B5X3NsaWNl
KGRlYywwLHksZGVjLT5tYl93aWR0aCk7CiAJfQogCiB9CkBAIC01NDMsNiArNTgwLDcgQEAKIAog
CXVpbnQzMl90IHgsIHk7CiAJdWludDMyX3QgYm91bmQ7CisJaW50IGNwX21iID0gMCxzdF9tYiA9
IDA7CiAKIAlzdGFydF90aW1lcigpOwogCWltYWdlX3NldGVkZ2VzKCZkZWMtPnJlZm5bMF0sIGRl
Yy0+ZWRnZWRfd2lkdGgsIGRlYy0+ZWRnZWRfaGVpZ2h0LApAQCAtNTUyLDYgKzU5MCw3IEBACiAJ
Ym91bmQgPSAwOwogCiAJZm9yICh5ID0gMDsgeSA8IGRlYy0+bWJfaGVpZ2h0OyB5KyspIHsKKwkJ
Y3BfbWIgPSBzdF9tYiA9IDA7CiAJCWZvciAoeCA9IDA7IHggPCBkZWMtPm1iX3dpZHRoOyB4Kysp
IHsKIAkJCU1BQ1JPQkxPQ0sgKm1iOwogCkBAIC01NzksNiArNjE4LDcgQEAKIAkJCQl1aW50MzJf
dCBjYnA7CiAJCQkJdWludDMyX3QgaW50cmE7CiAKKwkJCQljcF9tYisrOwogCQkJCW1jYnBjID0g
Z2V0X21jYnBjX2ludGVyKGJzKTsKIAkJCQltYi0+bW9kZSA9IG1jYnBjICYgNzsKIAkJCQljYnBj
ID0gKG1jYnBjID4+IDQpOwpAQCAtNzA3LDggKzc0NywxNSBAQAogCQkJCQkJCQkgZGVjLT5lZGdl
ZF93aWR0aCAvIDIpOwogCiAJCQkJc3RvcF90cmFuc2Zlcl90aW1lcigpOworCQkJCWlmKGRlYy0+
b3V0X2ZybSAmJiBjcF9tYiA+IDApIHsKKwkJCQkgIGNvcHlfc2xpY2UoZGVjLHN0X21iLHksY3Bf
bWIpOworCQkJCSAgY3BfbWIgPSAwOworCQkJCX0KKwkJCQlzdF9tYiA9IHgrMTsKIAkJCX0KIAkJ
fQorCQlpZihkZWMtPm91dF9mcm0gJiYgY3BfbWIgPiAwKQorCQkgIGNvcHlfc2xpY2UoZGVjLHN0
X21iLHksY3BfbWIpOwogCX0KIH0KIApAQCAtMTIzMiw3ICsxMjc5LDcgQEAKIH0KIAogLy8gc3dh
cCB0d28gTUFDUk9CTE9DSyBhcnJheQotdm9pZAordm9pZCBfX2lubGluZQogbWJfc3dhcChNQUNS
T0JMT0NLICoqIG1iMSwKIAkJTUFDUk9CTE9DSyAqKiBtYjIpCiB7CkBAIC0xMjU3LDYgKzEzMDQs
NyBAQAogCiAJc3RhcnRfZ2xvYmFsX3RpbWVyKCk7CiAKKwlkZWMtPm91dF9mcm0gPSAoZnJhbWUt
PmNvbG9yc3BhY2UgPT0gWFZJRF9DU1BfRVhURVJOKSA/IGZyYW1lLT5pbWFnZSA6IE5VTEw7CiAJ
Qml0c3RyZWFtSW5pdCgmYnMsIGZyYW1lLT5iaXRzdHJlYW0sIGZyYW1lLT5sZW5ndGgpOwogCiAJ
Ly8gYWRkIGJ5IGNoZW5tMDAxIDxjaGVubTAwMUAxNjMuY29tPgpkaWZmIC1OdXIgLXggKn4gLXgg
Ki5vIC14ICouc28gLXggKi5hIC14IENWUyAteCBNYWtlZmlsZSogY3ZzL3NyYy9kZWNvZGVyLmgg
ZGV2L3NyYy9kZWNvZGVyLmgKLS0tIGN2cy9zcmMvZGVjb2Rlci5oCVRodSBKdW4gMTMgMjM6NTM6
MDggMjAwMgorKysgZGV2L3NyYy9kZWNvZGVyLmgJU3VuIEp1bCAgNyAxMjoxMDoyMiAyMDAyCkBA
IC05Niw2ICs5Niw4IEBACiAJdWludDMyX3QgdGltZV9wcDsKIAl1aW50MzJfdCB0aW1lX2JwOwog
CXVpbnQ4X3QgbG93X2RlbGF5OwkJCS8vIGxvd19kZWxheSBmbGFnZSAoMSBtZWFucyBubyBCX1ZP
UCkKKworCVhWSURfREVDX1BJQ1RVUkUqIG91dF9mcm07ICAgICAgICAgICAgICAgIC8vIFRoaXMg
aXMgdXNlZCBmb3Igc2xpY2UgcmVuZGVyaW5nCiB9CiBERUNPREVSOwogCmRpZmYgLU51ciAteCAq
fiAteCAqLm8gLXggKi5zbyAteCAqLmEgLXggQ1ZTIC14IE1ha2VmaWxlKiBjdnMvc3JjL2Rpdng0
LmMgZGV2L3NyYy9kaXZ4NC5jCi0tLSBjdnMvc3JjL2Rpdng0LmMJTW9uIEp1biAyNCAxMTo1Mzox
NyAyMDAyCisrKyBkZXYvc3JjL2Rpdng0LmMJU2F0IEp1bCAgNiAxNToxNDo1MCAyMDAyCkBAIC00
Niw2ICs0Niw4IEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIAor
I2lmbmRlZiBESVNBQkxFX0RJVlg0CisKICNpbmNsdWRlICJ4dmlkLmgiCiAjaW5jbHVkZSAiZGl2
eDQuaCIKICNpbmNsdWRlICJkZWNvZGVyLmgiCkBAIC02ODMsMyArNjg1LDUgQEAKIAkJcmV0dXJu
IC0xOwogCX0KIH0KKworI2VuZGlmCmRpZmYgLU51ciAteCAqfiAteCAqLm8gLXggKi5zbyAteCAq
LmEgLXggQ1ZTIC14IE1ha2VmaWxlKiBjdnMvc3JjL2ltYWdlL2ltYWdlLmMgZGV2L3NyYy9pbWFn
ZS9pbWFnZS5jCi0tLSBjdnMvc3JjL2ltYWdlL2ltYWdlLmMJRnJpIEp1biAyMSAxODoxMjo0OCAy
MDAyCisrKyBkZXYvc3JjL2ltYWdlL2ltYWdlLmMJU2F0IEp1bCAgNiAxNTo0MjoxNiAyMDAyCkBA
IC01ODUsNiArNTg1LDcgQEAKIAkJcmV0dXJuIDA7CiAKIAljYXNlIFhWSURfQ1NQX05VTEw6CisJ
Y2FzZSBYVklEX0NTUF9FWFRFUk46CiAJCXJldHVybiAwOwogCiAJfQpkaWZmIC1OdXIgLXggKn4g
LXggKi5vIC14ICouc28gLXggKi5hIC14IENWUyAteCBNYWtlZmlsZSogY3ZzL3NyYy9wcmVkaWN0
aW9uL21icHJlZGljdGlvbi5oIGRldi9zcmMvcHJlZGljdGlvbi9tYnByZWRpY3Rpb24uaAotLS0g
Y3ZzL3NyYy9wcmVkaWN0aW9uL21icHJlZGljdGlvbi5oCVdlZCBKdWwgIDMgMTQ6MzI6NTAgMjAw
MgorKysgZGV2L3NyYy9wcmVkaWN0aW9uL21icHJlZGljdGlvbi5oCVNhdCBKdWwgIDYgMjM6MDc6
NTEgMjAwMgpAQCAtMzk3LDcgKzM5Nyw3IEBACiAgICAgaW50IHR4LCB0eSwgdHo7ICAgICAgICAg
LyogdG9wICovCiAgICAgaW50IHJ4LCByeSwgcno7ICAgICAgICAgLyogdG9wLXJpZ2h0ICovCiAg
ICAgaW50IGxwb3MsIHRwb3MsIHJwb3M7Ci0gICAgaW50IG51bV9jYW5kLCBsYXN0X2NhbmQ7Cisg
ICAgaW50IG51bV9jYW5kLCBsYXN0X2NhbmQ9MDsKIAogCVZFQ1RPUiBwbXZbNF07CS8qIGxlZnQg
bmVpZ2hib3VyLCB0b3AgbmVpZ2hib3VyLCB0b3AtcmlnaHQgbmVpZ2hib3VyICovCiAKZGlmZiAt
TnVyIC14ICp+IC14ICoubyAteCAqLnNvIC14ICouYSAteCBDVlMgLXggTWFrZWZpbGUqIGN2cy9z
cmMveHZpZC5oIGRldi9zcmMveHZpZC5oCi0tLSBjdnMvc3JjL3h2aWQuaAlTdW4gSnVuIDIzIDA1
OjU4OjMyIDIwMDIKKysrIGRldi9zcmMveHZpZC5oCVN1biBKdWwgIDcgMTI6MjE6NDUgMjAwMgpA
QCAtNzMsNiArNzMsNyBAQAogI2RlZmluZSBYVklEX0NTUF9SR0I1NTUJMTAKICNkZWZpbmUgWFZJ
RF9DU1BfUkdCNTY1CTExCiAjZGVmaW5lIFhWSURfQ1NQX1VTRVIJMTIKKyNkZWZpbmUgWFZJRF9D
U1BfRVhURVJOICAgICAgMTAwNCAgLy8gcGVyIHNsaWNlIHJlbmRlcmluZwogI2RlZmluZSBYVklE
X0NTUF9ZVllVCTEwMDIKICNkZWZpbmUgWFZJRF9DU1BfUkdCMzIgCTEwMDAKICNkZWZpbmUgWFZJ
RF9DU1BfTlVMTCAJOTk5OQpAQCAtMTU0LDYgKzE1NSwxNCBAQAogCQlpbnQgY29sb3JzcGFjZTsK
IAl9CiAJWFZJRF9ERUNfRlJBTUU7CisKKworCS8vIFRoaXMgc3RydWN0IGlzIHVzZWQgZm9yIHBl
ciBzbGljZSByZW5kZXJpbmcKKwl0eXBlZGVmIHN0cnVjdCAKKwl7CisJCXZvaWQgKnksKnUsKnY7
CisJCWludCBzdHJpZGVfeSwgc3RyaWRlX3Usc3RyaWRlX3Y7CisJfSBYVklEX0RFQ19QSUNUVVJF
OwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo=

--Multipart_Sun__7_Jul_2002_14:58:30_+0200_081da7e8--