[XviD-devel] Slice rendering : 2 edition

Alban Bedel xvid-devel@xvid.org
Wed, 10 Jul 2002 02:13:16 +0200


This is a multi-part message in MIME format.

--Multipart_Wed__10_Jul_2002_02:13:16_+0200_0823c278
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


Hi all,

I redone my patch. The main the change is to move the copy function to image.c as
requested. I also added the possiblity to render at the MB level. Here rendering
at the MB a level is a little bit slower (~1 sec more to decode 2500 frame) but
ymmv. As usual comments are awaited with impatience ;)
	Albeu
--Multipart_Wed__10_Jul_2002_02:13:16_+0200_0823c278
Content-Type: application/octet-stream;
 name="slices4"
Content-Disposition: attachment;
 filename="slices4"
Content-Transfer-Encoding: base64

SW5kZXg6IHNyYy9kZWNvZGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3h2aWQveHZpZGNvcmUv
c3JjL2RlY29kZXIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNgpkaWZmIC11IC1yMS4yNiBk
ZWNvZGVyLmMKLS0tIHNyYy9kZWNvZGVyLmMJOSBKdWwgMjAwMiAwMTozNzoyMiAtMDAwMAkxLjI2
CisrKyBzcmMvZGVjb2Rlci5jCTkgSnVsIDIwMDIgMjM6NDc6NDcgLTAwMDAKQEAgLTI5NCw2ICsy
OTQsOCBAQAogCXRyYW5zZmVyXzE2dG84Y29weShwVV9DdXIsICZkYXRhWzQgKiA2NF0sIHN0cmlk
ZTIpOwogCXRyYW5zZmVyXzE2dG84Y29weShwVl9DdXIsICZkYXRhWzUgKiA2NF0sIHN0cmlkZTIp
OwogCXN0b3BfdHJhbnNmZXJfdGltZXIoKTsKKwlpZihkZWMtPm91dF9mcm0gJiYgKGRlYy0+Zmxh
Z3MgJiBYVklEX01CX1NMSUNFKSkKKwkgIG91dHB1dF9tYihwWV9DdXIscFVfQ3VyLHBWX0N1cixk
ZWMtPmVkZ2VkX3dpZHRoLGRlYy0+b3V0X2ZybSx4X3Bvcyx5X3Bvcyk7CiB9CiAKIApAQCAtNDE3
LDYgKzQxOSw4IEBACiAJaWYgKGNicCAmIDEpCiAJCXRyYW5zZmVyXzE2dG84YWRkKHBWX0N1ciwg
JmRhdGFbNSAqIDY0XSwgc3RyaWRlMik7CiAJc3RvcF90cmFuc2Zlcl90aW1lcigpOworCWlmKGRl
Yy0+b3V0X2ZybSAmJiAoZGVjLT5mbGFncyAmIFhWSURfTUJfU0xJQ0UpKQorCSAgb3V0cHV0X21i
KHBZX0N1cixwVV9DdXIscFZfQ3VyLGRlYy0+ZWRnZWRfd2lkdGgsZGVjLT5vdXRfZnJtLHhfcG9z
LHlfcG9zKTsKIH0KIAogCkBAIC00ODAsNiArNDg0LDkgQEAKIAkJCWRlY29kZXJfbWJpbnRyYShk
ZWMsIG1iLCB4LCB5LCBhY3ByZWRfZmxhZywgY2JwLCBicywgcXVhbnQsCiAJCQkJCQkJaW50cmFf
ZGNfdGhyZXNob2xkLCBib3VuZCk7CiAJCX0KKwkJaWYoZGVjLT5vdXRfZnJtICYmICEoZGVjLT5m
bGFncyAmIFhWSURfTUJfU0xJQ0UpKQorCQkgIG91dHB1dF9zbGljZSgmZGVjLT5jdXIsIGRlYy0+
ZWRnZWRfd2lkdGgsZGVjLT53aWR0aCxkZWMtPm91dF9mcm0sMCx5LGRlYy0+bWJfd2lkdGgpOwor
CiAJfQogCiB9CkBAIC01NDMsNiArNTUwLDcgQEAKIAogCXVpbnQzMl90IHgsIHk7CiAJdWludDMy
X3QgYm91bmQ7CisJaW50IGNwX21iLCBzdF9tYjsKIAogCXN0YXJ0X3RpbWVyKCk7CiAJaW1hZ2Vf
c2V0ZWRnZXMoJmRlYy0+cmVmblswXSwgZGVjLT5lZGdlZF93aWR0aCwgZGVjLT5lZGdlZF9oZWln
aHQsCkBAIC01NTIsNiArNTYwLDcgQEAKIAlib3VuZCA9IDA7CiAKIAlmb3IgKHkgPSAwOyB5IDwg
ZGVjLT5tYl9oZWlnaHQ7IHkrKykgeworCQljcF9tYiA9IHN0X21iID0gMDsKIAkJZm9yICh4ID0g
MDsgeCA8IGRlYy0+bWJfd2lkdGg7IHgrKykgewogCQkJTUFDUk9CTE9DSyAqbWI7CiAKQEAgLTU3
OSw2ICs1ODgsNyBAQAogCQkJCXVpbnQzMl90IGNicDsKIAkJCQl1aW50MzJfdCBpbnRyYTsKIAor
CQkJCWNwX21iKys7CiAJCQkJbWNicGMgPSBnZXRfbWNicGNfaW50ZXIoYnMpOwogCQkJCW1iLT5t
b2RlID0gbWNicGMgJiA3OwogCQkJCWNicGMgPSAobWNicGMgPj4gNCk7CkBAIC03MDUsMTAgKzcx
NSwxNiBAQAogCQkJCQkJCQkgZGVjLT5yZWZuWzBdLnYgKwogCQkJCQkJCQkgKDggKiB5KSAqIGRl
Yy0+ZWRnZWRfd2lkdGggLyAyICsgKDggKiB4KSwKIAkJCQkJCQkJIGRlYy0+ZWRnZWRfd2lkdGgg
LyAyKTsKLQogCQkJCXN0b3BfdHJhbnNmZXJfdGltZXIoKTsKKwkJCQlpZihkZWMtPm91dF9mcm0g
JiYgIShkZWMtPmZsYWdzICYgWFZJRF9NQl9TTElDRSkgJiYgY3BfbWIgPiAwKSB7CisJCQkJICBv
dXRwdXRfc2xpY2UoJmRlYy0+Y3VyLCBkZWMtPmVkZ2VkX3dpZHRoLGRlYy0+d2lkdGgsZGVjLT5v
dXRfZnJtLHN0X21iLHksY3BfbWIpOworCQkJCSAgY3BfbWIgPSAwOworCQkJCX0KKwkJCQlzdF9t
YiA9IHgrMTsKIAkJCX0KIAkJfQorCQlpZihkZWMtPm91dF9mcm0gJiYgIShkZWMtPmZsYWdzICYg
WFZJRF9NQl9TTElDRSkgJiYgY3BfbWIgPiAwKQorCQkgIG91dHB1dF9zbGljZSgmZGVjLT5jdXIs
IGRlYy0+ZWRnZWRfd2lkdGgsZGVjLT53aWR0aCxkZWMtPm91dF9mcm0sc3RfbWIseSxjcF9tYik7
CiAJfQogfQogCkBAIC0xMjU2LDYgKzEyNzIsOSBAQAogCXVpbnQzMl90IHZvcF90eXBlOwogCiAJ
c3RhcnRfZ2xvYmFsX3RpbWVyKCk7CisKKwlkZWMtPmZsYWdzID0gZnJhbWUtPmdlbmVyYWw7CisJ
ZGVjLT5vdXRfZnJtID0gKGZyYW1lLT5jb2xvcnNwYWNlID09IFhWSURfQ1NQX0VYVEVSTikgPyBm
cmFtZS0+aW1hZ2UgOiBOVUxMOwogCiAJQml0c3RyZWFtSW5pdCgmYnMsIGZyYW1lLT5iaXRzdHJl
YW0sIGZyYW1lLT5sZW5ndGgpOwogCkluZGV4OiBzcmMvZGVjb2Rlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC94dmlkL3h2aWRjb3JlL3NyYy9kZWNvZGVyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuOQpkaWZmIC11IC1yMS45IGRlY29kZXIuaAotLS0gc3JjL2RlY29kZXIuaAk5IEp1bCAyMDAy
IDAxOjM3OjIyIC0wMDAwCTEuOQorKysgc3JjL2RlY29kZXIuaAk5IEp1bCAyMDAyIDIzOjQ3OjQ3
IC0wMDAwCkBAIC05Niw2ICs5Niw5IEBACiAJdWludDMyX3QgdGltZV9wcDsKIAl1aW50MzJfdCB0
aW1lX2JwOwogCXVpbnQ4X3QgbG93X2RlbGF5OwkJCS8vIGxvd19kZWxheSBmbGFnZSAoMSBtZWFu
cyBubyBCX1ZPUCkKKworCVhWSURfREVDX1BJQ1RVUkUqIG91dF9mcm07ICAgICAgICAgICAgICAg
IC8vIFRoaXMgaXMgdXNlZCBmb3Igc2xpY2UgcmVuZGVyaW5nCisJaW50IGZsYWdzOwogfQogREVD
T0RFUjsKIApJbmRleDogc3JjL3h2aWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAveHZpZC94dmlk
Y29yZS9zcmMveHZpZC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYgLXUgLXIxLjEz
IHh2aWQuaAotLS0gc3JjL3h2aWQuaAkyMyBKdW4gMjAwMiAwMzo1ODozMiAtMDAwMAkxLjEzCisr
KyBzcmMveHZpZC5oCTkgSnVsIDIwMDIgMjM6NDc6NDcgLTAwMDAKQEAgLTczLDYgKzczLDcgQEAK
ICNkZWZpbmUgWFZJRF9DU1BfUkdCNTU1CTEwCiAjZGVmaW5lIFhWSURfQ1NQX1JHQjU2NQkxMQog
I2RlZmluZSBYVklEX0NTUF9VU0VSCTEyCisjZGVmaW5lIFhWSURfQ1NQX0VYVEVSTiAgICAgIDEw
MDQgIC8vIHBlciBzbGljZSByZW5kZXJpbmcKICNkZWZpbmUgWFZJRF9DU1BfWVZZVQkxMDAyCiAj
ZGVmaW5lIFhWSURfQ1NQX1JHQjMyIAkxMDAwCiAjZGVmaW5lIFhWSURfQ1NQX05VTEwgCTk5OTkK
QEAgLTEyOSw2ICsxMzAsOCBAQAogCiAvKiBGbGFncyBmb3IgWFZJRF9ERUNfRlJBTUUuZ2VuZXJh
bCAqLwogI2RlZmluZSBYVklEX1FVSUNLX0RFQ09ERQkJMHgwMDAwMDAxMAorLy8gV3JpdGUgTUIg
MSBieSAxIGluc3RlYWQgb2YgcGVyIHJvdworI2RlZmluZSBYVklEX01CX1NMSUNFIDB4MDAwMDAw
MDEKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBEZWNvZGVyIHN0cnVjdHVyZXMKQEAgLTE1
NCw2ICsxNTcsMTQgQEAKIAkJaW50IGNvbG9yc3BhY2U7CiAJfQogCVhWSURfREVDX0ZSQU1FOwor
CisKKwkvLyBUaGlzIHN0cnVjdCBpcyB1c2VkIGZvciBwZXIgc2xpY2UgcmVuZGVyaW5nCisJdHlw
ZWRlZiBzdHJ1Y3QgCisJeworCQl2b2lkICp5LCp1LCp2OworCQlpbnQgc3RyaWRlX3ksIHN0cmlk
ZV91LHN0cmlkZV92OworCX0gWFZJRF9ERUNfUElDVFVSRTsKIAogCiAvKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKSW5kZXg6IHNyYy9pbWFnZS9pbWFnZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC94dmlk
L3h2aWRjb3JlL3NyYy9pbWFnZS9pbWFnZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE3CmRp
ZmYgLXUgLXIxLjE3IGltYWdlLmMKLS0tIHNyYy9pbWFnZS9pbWFnZS5jCTIxIEp1biAyMDAyIDE2
OjEyOjQ4IC0wMDAwCTEuMTcKKysrIHNyYy9pbWFnZS9pbWFnZS5jCTkgSnVsIDIwMDIgMjM6NDc6
NDcgLTAwMDAKQEAgLTU4NSw2ICs1ODUsNyBAQAogCQlyZXR1cm4gMDsKIAogCWNhc2UgWFZJRF9D
U1BfTlVMTDoKKwljYXNlIFhWSURfQ1NQX0VYVEVSTjoKIAkJcmV0dXJuIDA7CiAKIAl9CkBAIC03
NDgsNCArNzQ5LDY1IEBACiAJCQlzdW0gKz0gQUJTKGltZzEtPnZbeCArIHkgKiBzdHJpZGUyXSAt
IGltZzItPnZbeCArIHkgKiBzdHJpZGUyXSk7CiAKIAlyZXR1cm4gKGZsb2F0KSBzdW0gLyAod2lk
dGggKiBoZWlnaHQgKiAzIC8gMik7Cit9CisKK3ZvaWQgX19pbmxpbmUKK291dHB1dF9tYih1aW50
OF90ICpzWSx1aW50OF90ICpzVSx1aW50OF90ICpzVixpbnQgc3RkLFhWSURfREVDX1BJQ1RVUkUq
IG91dF9mcm0sIGludCBtYngsIGludCBtYnkpIHsKKyAgdWludDhfdCAqZFksKmRVLCpkVjsKKyAg
aW50IHN0ZDIgPSBzdGQgPj4gMSxpOworCisgIGRZID0gb3V0X2ZybS0+eSArIChtYnkgPDwgNCkg
KiBvdXRfZnJtLT5zdHJpZGVfeSArIChtYnggPDwgNCk7CisgIGRVID0gb3V0X2ZybS0+dSArICht
YnkgPDwgMykgKiBvdXRfZnJtLT5zdHJpZGVfdSArIChtYnggPDwgMyk7CisgIGRWID0gb3V0X2Zy
bS0+diArIChtYnkgPDwgMykgKiBvdXRfZnJtLT5zdHJpZGVfdiArIChtYnggPDwgMyk7CisKKyAg
Zm9yKGkgPSAwIDsgaSA8IDE2IDsgaSsrKSB7CisgICAgbWVtY3B5KGRZLHNZLDE2KTsKKyAgICBk
WSArPSBvdXRfZnJtLT5zdHJpZGVfeTsKKyAgICBzWSArPSBzdGQ7CisgIH0KKworICBmb3IoaSA9
IDAgOyBpIDwgOCA7IGkrKykgeworICAgIG1lbWNweShkVSxzVSw4KTsKKyAgICBkVSArPSBvdXRf
ZnJtLT5zdHJpZGVfdTsKKyAgICBzVSArPSBzdGQyOworICB9CisgIGZvcihpID0gMCA7IGkgPCA4
IDsgaSsrKSB7CisgICAgbWVtY3B5KGRWLHNWLDgpOworICAgIGRWICs9IG91dF9mcm0tPnN0cmlk
ZV92OworICAgIHNWICs9IHN0ZDI7CisgIH0KK30KKwordm9pZCBfX2lubGluZQorb3V0cHV0X3Ns
aWNlKElNQUdFICogY3VyLCBpbnQgc3RkLCBpbnQgd2lkdGgsIFhWSURfREVDX1BJQ1RVUkUqIG91
dF9mcm0sIGludCBtYngsIGludCBtYnksaW50IG1ibCkgeworICB1aW50OF90ICpkWSwqZFUsKmRW
LCpzWSwqc1UsKnNWOworICBpbnQgc3RkMiA9IHN0ZCA+PiAxOworICBpbnQgdyA9IG1ibCA8PCA0
LCB3MixpOworCisgIGlmKHcgPiB3aWR0aCkKKyAgICB3ID0gd2lkdGg7CisgIHcyID0gdyA+PiAx
OworCisgIGRZID0gb3V0X2ZybS0+eSArIChtYnkgPDwgNCkgKiBvdXRfZnJtLT5zdHJpZGVfeSAr
IChtYnggPDwgNCk7CisgIGRVID0gb3V0X2ZybS0+dSArIChtYnkgPDwgMykgKiBvdXRfZnJtLT5z
dHJpZGVfdSArIChtYnggPDwgMyk7CisgIGRWID0gb3V0X2ZybS0+diArIChtYnkgPDwgMykgKiBv
dXRfZnJtLT5zdHJpZGVfdiArIChtYnggPDwgMyk7CisgIHNZID0gY3VyLT55ICsgKG1ieSA8PCA0
KSAqIHN0ZCArIChtYnggPDwgNCk7CisgIHNVID0gY3VyLT51ICsgKG1ieSA8PCAzKSAqIHN0ZDIg
KyAobWJ4IDw8IDMpOworICBzViA9IGN1ci0+diArIChtYnkgPDwgMykgKiBzdGQyICsgKG1ieCA8
PCAzKTsKKworICBmb3IoaSA9IDAgOyBpIDwgMTYgOyBpKyspIHsKKyAgICBtZW1jcHkoZFksc1ks
dyk7CisgICAgZFkgKz0gb3V0X2ZybS0+c3RyaWRlX3k7CisgICAgc1kgKz0gc3RkOworICB9Cisg
IGZvcihpID0gMCA7IGkgPCA4IDsgaSsrKSB7CisgICAgbWVtY3B5KGRVLHNVLHcyKTsKKyAgICBk
VSArPSBvdXRfZnJtLT5zdHJpZGVfdTsKKyAgICBzVSArPSBzdGQyOworICB9CisgIGZvcihpID0g
MCA7IGkgPCA4IDsgaSsrKSB7CisgICAgbWVtY3B5KGRWLHNWLHcyKTsKKyAgICBkViArPSBvdXRf
ZnJtLT5zdHJpZGVfdjsKKyAgICBzViArPSBzdGQyOworICB9CiB9CkluZGV4OiBzcmMvaW1hZ2Uv
aW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAveHZpZC94dmlkY29yZS9zcmMvaW1hZ2UvaW1h
Z2UuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXUgLXIxLjYgaW1hZ2UuaAotLS0g
c3JjL2ltYWdlL2ltYWdlLmgJMTIgSnVuIDIwMDIgMjA6Mzg6NDAgLTAwMDAJMS42CisrKyBzcmMv
aW1hZ2UvaW1hZ2UuaAk5IEp1bCAyMDAyIDIzOjQ3OjQ4IC0wMDAwCkBAIC0zLDggKzMsMTEgQEAK
IAogI2luY2x1ZGUgIi4uL3BvcnRhYi5oIgogI2luY2x1ZGUgImNvbG9yc3BhY2UuaCIKKyNpbmNs
dWRlICIuLi94dmlkLmgiCiAKKyNpZm5kZWYgRURHRV9TSVpFCiAjZGVmaW5lIEVER0VfU0laRSAg
MzIKKyNlbmRpZgogCiAKIHR5cGVkZWYgc3RydWN0CkBAIC03OSw1ICs4MiwxMSBAQAogCQkJCXVp
bnQzMl90IHN0cmlkZSwKIAkJCQl1aW50MzJfdCB3aWR0aCwKIAkJCQl1aW50MzJfdCBoZWlnaHQp
OworCit2b2lkIF9faW5saW5lCitvdXRwdXRfbWIodWludDhfdCAqc1ksdWludDhfdCAqc1UsdWlu
dDhfdCAqc1YsaW50IHN0cmlkZSwgWFZJRF9ERUNfUElDVFVSRSogb3V0X2ZybSwgaW50IG1ieCwg
aW50IG1ieSk7CisKK3ZvaWQgX19pbmxpbmUKK291dHB1dF9zbGljZShJTUFHRSAqIGN1ciwgaW50
IGVkZ2VkX3dpZHRoLCBpbnQgd2lkdGgsIFhWSURfREVDX1BJQ1RVUkUqIG91dF9mcm0sIGludCBt
YngsIGludCBtYnksaW50IG1ibCk7CiAKICNlbmRpZgkJCQkJCQkvKiBfSU1BR0VfSF8gKi8K

--Multipart_Wed__10_Jul_2002_02:13:16_+0200_0823c278--