[XviD-devel] bframes+2pass working

peter ross xvid-devel@xvid.org
Fri, 29 Nov 2002 22:27:24 +1100


This is a multi-part message in MIME format.

------=_NextPart_000_1efc_24c8_387a
Content-Type: text/plain; format=flowed

hi,

here is my bframes+2pass patch; the encoder will now do what it is told.

foxers code needs some refinement; specifically, vfw should NOT ask
xvidcore to generate DELAY (0x7f) or PAD (divx not-coded-vops) frames.
vfw should only request the desired coding type (i/p/b) for the
current frame.

to get arround foxers code (gotta meet thos foxer chap someday...),
ive modified codec.c such that these frames are not requested:

        while (codec_2pass_get_quant(codec, &frame) == 2) ;


ive attached the diffs. to apply them under windows try this:

c:\cvs\xvidcore> c:\progra~1\wincvs\patch < c:\download\xvidcore.diff
c:\cvs\vfw> c:\progra~1\wincvs\patch < c:\download\vfw.diff

-- pete

_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE* 
http://join.msn.com/?page=features/virus

------=_NextPart_000_1efc_24c8_387a
Content-Type: application/octet-stream; name="vfw.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="vfw.diff"

SW5kZXg6IHNyYy8ycGFzcy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS
Q1MgZmlsZTogL3h2aWQvdmZ3L3NyYy8ycGFzcy5jLHYNCnJldHJpZXZpbmcg
cmV2aXNpb24gMS43LjIuNQ0KZGlmZiAtcjEuNy4yLjUgMnBhc3MuYw0KOTkx
Yzk5MQ0KPCAJCXR3b3Bhc3MtPm5uc19hcnJheV9wb3MgPSAwOw0KLS0tDQo+
IAkJLyp0d29wYXNzLT5ubnNfYXJyYXlfcG9zID0gMDsqLw0KSW5kZXg6IHNy
Yy9jb2RlYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTog
L3h2aWQvdmZ3L3NyYy9jb2RlYy5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g
MS4yMy4yLjEwDQpkaWZmIC1yMS4yMy4yLjEwIGNvZGVjLmMNCjQ4NWM0ODUN
CjwgCQlpZiAoY29kZWNfMnBhc3NfZ2V0X3F1YW50KGNvZGVjLCAmZnJhbWUp
ID09IElDRVJSX0VSUk9SKQ0KLS0tDQo+IAkJLyppZiAoY29kZWNfMnBhc3Nf
Z2V0X3F1YW50KGNvZGVjLCAmZnJhbWUpID09IElDRVJSX0VSUk9SKQ0KNDg4
YTQ4OSw0OTANCj4gCQkqLw0KPiAJCXdoaWxlIChjb2RlY18ycGFzc19nZXRf
cXVhbnQoY29kZWMsICZmcmFtZSkgPT0gMikgOw0K


------=_NextPart_000_1efc_24c8_387a
Content-Type: application/octet-stream; name="xvidcore.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xvidcore.diff"

SW5kZXg6IHNyYy9lbmNvZGVyLmMNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
ClJDUyBmaWxlOiAveHZpZC94dmlkY29yZS9zcmMvZW5jb2Rlci5jLHYNCnJl
dHJpZXZpbmcgcmV2aXNpb24gMS43Ni4yLjIzDQpkaWZmIC1yMS43Ni4yLjIz
IGVuY29kZXIuYw0KNzZjNzYNCjwgI2RlZmluZSBTV0FQKEEsQikgICAgeyB2
b2lkICogdG1wID0gQTsgQSA9IEI7IEIgPSB0bXA7IH0NCi0tLQ0KPiAjZGVm
aW5lIFNXQVAoQSxCKSAgICB7IHZvaWQgKiB0bXAgPSAodm9pZCopQTsgQSA9
IEI7ICh2b2lkKilCID0gdG1wOyB9DQozODNjMzgzDQo8IAkJCXh2aWRfbWFs
bG9jKHBFbmMtPm1iUGFyYW0ubWF4X2JmcmFtZXMgKiBzaXplb2YoSU1BR0Up
LA0KLS0tDQo+IAkJCXh2aWRfbWFsbG9jKHBFbmMtPm1iUGFyYW0ubWF4X2Jm
cmFtZXMgKiBzaXplb2YoUVVFVUVJTkZPKSwNCjM5MGMzOTANCjwgCQkJaW1h
Z2VfbnVsbCgmcEVuYy0+cXVldWVbbl0pOw0KLS0tDQo+IAkJCWltYWdlX251
bGwoJnBFbmMtPnF1ZXVlW25dLmltYWdlKTsNCjM5NGMzOTQNCjwgCQkJCSgm
cEVuYy0+cXVldWVbbl0sIHBFbmMtPm1iUGFyYW0uZWRnZWRfd2lkdGgsDQot
LS0NCj4gCQkJCSgmcEVuYy0+cXVldWVbbl0uaW1hZ2UsIHBFbmMtPm1iUGFy
YW0uZWRnZWRfd2lkdGgsDQo0MzVjNDM1DQo8IAkJCWltYWdlX2Rlc3Ryb3ko
JnBFbmMtPnF1ZXVlW2ldLCBwRW5jLT5tYlBhcmFtLmVkZ2VkX3dpZHRoLA0K
LS0tDQo+IAkJCWltYWdlX2Rlc3Ryb3koJnBFbmMtPnF1ZXVlW2ldLmltYWdl
LCBwRW5jLT5tYlBhcmFtLmVkZ2VkX3dpZHRoLA0KNTI3YzUyNw0KPCAJCQlp
bWFnZV9kZXN0cm95KCZwRW5jLT5xdWV1ZVtpXSwgcEVuYy0+bWJQYXJhbS5l
ZGdlZF93aWR0aCwNCi0tLQ0KPiAJCQlpbWFnZV9kZXN0cm95KCZwRW5jLT5x
dWV1ZVtpXS5pbWFnZSwgcEVuYy0+bWJQYXJhbS5lZGdlZF93aWR0aCwNCjYw
MmE2MDMsNjI0DQo+IC8qIHN3YXBzIHR3byBxdWV1ZSBlbGVtZW50czsgZXhj
bGR1aW5nIHRoZSBpbWFnZSAqLw0KPiB2b2lkDQo+IHF1ZXVlX3N3YXAoUVVF
VUVJTkZPICphLCBRVUVVRUlORk8gKmIpDQo+IHsNCj4gCVNXQVAoYS0+aW50
cmEsIGItPmludHJhKTsNCj4gCVNXQVAoYS0+cXVhbnQsIGItPnF1YW50KTsN
Cj4gCVNXQVAoYS0+YnF1YW50LCBiLT5icXVhbnQpOw0KPiAJU1dBUChhLT5n
ZW5lcmFsLCBiLT5nZW5lcmFsKTsNCj4gCVNXQVAoYS0+bW90aW9uLCBiLT5t
b3Rpb24pOw0KPiB9DQo+IA0KPiB2b2lkDQo+IHF1ZXVlX3NldChRVUVVRUlO
Rk8gKnEsIFhWSURfRU5DX0ZSQU1FICogcEZyYW1lKQ0KPiB7DQo+IAlxLT5p
bnRyYSA9IHBGcmFtZS0+aW50cmE7DQo+IAlxLT5xdWFudCA9IHBGcmFtZS0+
cXVhbnQ7DQo+IAlxLT5icXVhbnQgPSBwRnJhbWUtPmJxdWFudDsNCj4gCXEt
PmdlbmVyYWwgPSBwRnJhbWUtPmdlbmVyYWw7DQo+IAlxLT5tb3Rpb24gPSBw
RnJhbWUtPm1vdGlvbjsNCj4gfQ0KPiANCj4gDQo2MTZhNjM5DQo+IAlxdWV1
ZV9zZXQoJnBFbmMtPnF1ZXVlW3BFbmMtPnF1ZXVlX3RhaWxdLCBwRnJhbWUp
Ow0KNjE5YzY0Mg0KPCAJCSgmcEVuYy0+cXVldWVbcEVuYy0+cXVldWVfdGFp
bF0sIHBFbmMtPm1iUGFyYW0ud2lkdGgsIHBFbmMtPm1iUGFyYW0uaGVpZ2h0
LA0KLS0tDQo+IAkJKCZwRW5jLT5xdWV1ZVtwRW5jLT5xdWV1ZV90YWlsXS5p
bWFnZSwgcEVuYy0+bWJQYXJhbS53aWR0aCwgcEVuYy0+bWJQYXJhbS5oZWln
aHQsDQo2MjNhNjQ3DQo+IA0KNjY4YTY5Mw0KPiAJUVVFVUVJTkZPIGluZm87
DQo2ODBhNzA2LDcxMQ0KPiAJLyp7DQo+IAkJCWNoYXIgeFsxMDBdOw0KPiAJ
CQl3c3ByaW50Zih4LCAiLS0laS0tXG4iLCBwRnJhbWUtPmludHJhKTsNCj4g
CQkJT3V0cHV0RGVidWdTdHJpbmcoeCk7DQo+IAkJfSovDQo+IA0KODAwYzgz
MSw4MzINCjwgDQotLS0NCj4gCQkNCj4gCQlxdWV1ZV9zZXQoJmluZm8sIHBG
cmFtZSk7DQo4MDhhODQxDQo+IA0KODE0Yzg0Nyw4NDkNCjwgCQkJaW1hZ2Vf
c3dhcCgmcEVuYy0+Y3VycmVudC0+aW1hZ2UsICZwRW5jLT5xdWV1ZVtwRW5j
LT5xdWV1ZV90YWlsXSk7DQotLS0NCj4gCQkJaW1hZ2Vfc3dhcCgmcEVuYy0+
Y3VycmVudC0+aW1hZ2UsICZwRW5jLT5xdWV1ZVtwRW5jLT5xdWV1ZV90YWls
XS5pbWFnZSk7DQo+IAkJCXF1ZXVlX3N3YXAoJmluZm8sICZwRW5jLT5xdWV1
ZVtwRW5jLT5xdWV1ZV90YWlsXSk7DQo+IA0KODE3Yzg1Miw4NTMNCjwgCQkJ
CWltYWdlX3N3YXAoJnBFbmMtPmN1cnJlbnQtPmltYWdlLCAmcEVuYy0+cXVl
dWVbcEVuYy0+cXVldWVfaGVhZF0pOw0KLS0tDQo+IAkJCQlpbWFnZV9zd2Fw
KCZwRW5jLT5jdXJyZW50LT5pbWFnZSwgJnBFbmMtPnF1ZXVlW3BFbmMtPnF1
ZXVlX2hlYWRdLmltYWdlKTsNCj4gCQkJCXF1ZXVlX3N3YXAoJmluZm8sICZw
RW5jLT5xdWV1ZVtwRW5jLT5xdWV1ZV9oZWFkXSk7DQo4MjdjODYzLDg2NA0K
PCAJCWltYWdlX3N3YXAoJnBFbmMtPmN1cnJlbnQtPmltYWdlLCAmcEVuYy0+
cXVldWVbcEVuYy0+cXVldWVfaGVhZF0pOw0KLS0tDQo+IAkJaW1hZ2Vfc3dh
cCgmcEVuYy0+Y3VycmVudC0+aW1hZ2UsICZwRW5jLT5xdWV1ZVtwRW5jLT5x
dWV1ZV9oZWFkXS5pbWFnZSk7DQo+IAkJcXVldWVfc3dhcCgmaW5mbywgJnBF
bmMtPnF1ZXVlW3BFbmMtPnF1ZXVlX2hlYWRdKTsNCjg1NGE4OTIsODk4DQo+
IA0KPiANCj4gDQo+IC8vIF5eXl5eXl4gZnJvbSBoZXJlIG9ud2FyZHMsIHBF
bmMtPmN1cnJlbnQgYW5kIGluZm8gcmVmZXIgdG8gdGhlIGN1cnJlbnQgZnJh
bWUNCj4gLy8gICAgICAgICBmcmFtZXMgYXJlIHByb2Nlc3NlZCBoZXJlIGlu
IGZyYW1lIG9yZGVyLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgZHg1MGJ2b3Ag
aGFuZGxpbmcNCj4gDQo+IA0KODU4YzkwMg0KPCAJCWlmIChwRnJhbWUtPnF1
YW50ID09IDApDQotLS0NCj4gCQlpZiAoaW5mby5xdWFudCA9PSAwKQ0KODYx
YzkwNQ0KPCAJCQlwRW5jLT5jdXJyZW50LT5xdWFudCA9IHBGcmFtZS0+cXVh
bnQ7DQotLS0NCj4gCQkJcEVuYy0+Y3VycmVudC0+cXVhbnQgPSBpbmZvLnF1
YW50Ow0KODY5LDg3MGM5MTMsOTE0DQo8IAkJcEVuYy0+Y3VycmVudC0+Z2xv
YmFsX2ZsYWdzID0gcEZyYW1lLT5nZW5lcmFsOw0KPCAJCXBFbmMtPmN1cnJl
bnQtPm1vdGlvbl9mbGFncyA9IHBGcmFtZS0+bW90aW9uOw0KLS0tDQo+IAkJ
cEVuYy0+Y3VycmVudC0+Z2xvYmFsX2ZsYWdzID0gaW5mby5nZW5lcmFsOw0K
PiAJCXBFbmMtPmN1cnJlbnQtPm1vdGlvbl9mbGFncyA9IGluZm8ubW90aW9u
Ow0KOTMxLDkzN2M5NzUsOTk4DQo8IAlpZiAocEVuYy0+aUZyYW1lTnVtID09
IDAgfHwgcEZyYW1lLT5pbnRyYSA9PSAxIHx8IHBFbmMtPmJmcmFtZW51bV9k
eDUwYnZvcCA+PSAwIHx8DQo8IAkJKHBGcmFtZS0+aW50cmEgPCAwICYmIHBF
bmMtPmlNYXhLZXlJbnRlcnZhbCA+IDAgJiYNCjwgCQkgcEVuYy0+aUZyYW1l
TnVtID49IHBFbmMtPmlNYXhLZXlJbnRlcnZhbCkNCjwgCQl8fCAyID09ICht
b2RlID0gTUVhbmFseXNpcygmcEVuYy0+cmVmZXJlbmNlLT5pbWFnZSwgcEVu
Yy0+Y3VycmVudCwNCjwgCQkJCQkJCQkJJnBFbmMtPm1iUGFyYW0sIHBFbmMt
PmlNYXhLZXlJbnRlcnZhbCwNCjwgCQkJCQkJCQkJKHBGcmFtZS0+aW50cmEg
PCAwKSA/IHBFbmMtPmlGcmFtZU51bSA6IDAsDQo8IAkJCQkJCQkJCWJmcmFt
ZXNfY291bnQrKykpKSB7DQotLS0NCj4gCQkNCj4gDQo+IAlpZiAoaW5mby5p
bnRyYSA8IDApCQkvKiBwZXJmb3JtIGF1dG8gZnJhbWUgdHlwZSBzZWxlY3Rp
b24gICovDQo+IAl7DQo+IAkJaWYgKHBFbmMtPmlGcmFtZU51bSA9PSAwIHx8
IHBFbmMtPmJmcmFtZW51bV9keDUwYnZvcCA+PSAwIHx8DQo+IAkJCShwRW5j
LT5pTWF4S2V5SW50ZXJ2YWwgPiAwICYmIHBFbmMtPmlGcmFtZU51bSA+PSBw
RW5jLT5pTWF4S2V5SW50ZXJ2YWwpKQ0KPiAJCXsNCj4gCQkJbW9kZSA9IElf
Vk9QOw0KPiAJCX1lbHNlew0KPiAJCQltb2RlID0gTUVhbmFseXNpcygmcEVu
Yy0+cmVmZXJlbmNlLT5pbWFnZSwgcEVuYy0+Y3VycmVudCwNCj4gCQkJCQkJ
CSAgJnBFbmMtPm1iUGFyYW0sIHBFbmMtPmlNYXhLZXlJbnRlcnZhbCwNCj4g
CQkJCQkJCSAoaW5mby5pbnRyYSA8IDApID8gcEVuYy0+aUZyYW1lTnVtIDog
MCwNCj4gCQkJCQkJCSBiZnJhbWVzX2NvdW50KTsNCj4gCQkJYmZyYW1lc19j
b3VudCsrOwkvKiB3dGY/ICovDQo+IAkJfQ0KPiAJfWVsc2V7CQkJCQkvKiBt
YW51YWwgZnJhbWUtdHlwZSBzZWxlY3Rpb24gKi8NCj4gCQlpZiAoaW5mby5p
bnRyYSA9PSAxKSANCj4gCQkJbW9kZSA9IElfVk9QOw0KPiAJCWVsc2UgaWYg
KGluZm8uaW50cmEgPT0gMCkgDQo+IAkJCW1vZGUgPSBQX1ZPUDsNCj4gCQll
bHNlIA0KPiAJCQltb2RlID0gQl9WT1A7DQo+IA0KPiAJfQ0KOTM4YTEwMDAN
Cj4gCWlmIChtb2RlID09IElfVk9QKSB7DQoxMDAyLDEwMDNjMTA2NA0KPCAJ
fSBlbHNlIGlmIChwRW5jLT5iZnJhbWVudW1fdGFpbCA+PSBwRW5jLT5tYlBh
cmFtLm1heF9iZnJhbWVzIHx8IG1vZGUgIT0gMCkgew0KPCAvLyAJfSBlbHNl
IGlmIChwRnJhbWUtPmludHJhID09IDAgfHwgcEVuYy0+YmZyYW1lbnVtX3Rh
aWwgPj0gcEVuYy0+bWJQYXJhbS5tYXhfYmZyYW1lcyB8fCBtb2RlICE9IDAp
IHsgDQotLS0NCj4gCX0gZWxzZSBpZiAobW9kZSA9PSBQX1ZPUCB8fCBwRW5j
LT5iZnJhbWVudW1fdGFpbCA+PSBwRW5jLT5tYlBhcmFtLm1heF9iZnJhbWVz
KSB7DQoxMDI3YzEwODgNCjwgCX0gZWxzZSB7DQotLS0NCj4gCX0gZWxzZSB7
CS8qIG1vZGUgPT0gQl9WT1AgKi8NCjEwMzZjMTA5Nw0KPCAJCWlmIChwRnJh
bWUtPmJxdWFudCA8IDEpIHsNCi0tLQ0KPiAJCWlmIChpbmZvLmJxdWFudCA8
IDEpIHsNCjEwNDFjMTEwMg0KPCAJCQlwRW5jLT5jdXJyZW50LT5xdWFudCA9
IHBGcmFtZS0+YnF1YW50Ow0KLS0tDQo+IAkJCXBFbmMtPmN1cnJlbnQtPnF1
YW50ID0gaW5mby5icXVhbnQ7DQpJbmRleDogc3JjL2VuY29kZXIuaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC94dmlkL3h2aWRjb3Jl
L3NyYy9lbmNvZGVyLmgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE4LjIu
NQ0KZGlmZiAtcjEuMTguMi41IGVuY29kZXIuaA0KMTU1YzE1NSwxNjMNCjwg
DQotLS0NCj4gdHlwZWRlZiBzdHJ1Y3QNCj4gew0KPiAJaW50IGludHJhOw0K
PiAJaW50IHF1YW50Ow0KPiAJaW50IGJxdWFudDsNCj4gCWludCBnZW5lcmFs
Ow0KPiAJaW50IG1vdGlvbjsNCj4gCUlNQUdFIGltYWdlOw0KPiB9IFFVRVVF
SU5GTzsNCjE4OWMxOTcNCjwgCUlNQUdFICpxdWV1ZTsNCi0tLQ0KPiAJUVVF
VUVJTkZPICpxdWV1ZTsNCkluZGV4OiBzcmMvcG9ydGFiLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAveHZpZC94dmlkY29yZS9zcmMv
cG9ydGFiLmgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjI2LjIuMg0KZGlm
ZiAtcjEuMjYuMi4yIHBvcnRhYi5oDQoyMGMyMA0KPCAjZGVmaW5lIERQUklO
VEZfTEVWRUwJCTB4MA0KLS0tDQo+ICNkZWZpbmUgRFBSSU5URl9MRVZFTAkJ
MHg4MDAwMDAwMA0KSW5kZXg6IHNyYy9tb3Rpb24vbW90aW9uX2VzdC5jDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3h2aWQveHZpZGNv
cmUvc3JjL21vdGlvbi9tb3Rpb25fZXN0LmMsdg0KcmV0cmlldmluZyByZXZp
c2lvbiAxLjQ0LjIuMjgNCmRpZmYgLXIxLjQ0LjIuMjggbW90aW9uX2VzdC5j
DQoyMDkxYzIwOTENCjwgCQkJCQlpZiAoKytpbnRyYSA+IChwUGFyYW0tPm1i
X2hlaWdodC0yKSoocFBhcmFtLT5tYl93aWR0aC0yKS8yKSByZXR1cm4gMjsg
IC8vIEkgZnJhbWUNCi0tLQ0KPiAJCQkJCWlmICgrK2ludHJhID4gKHBQYXJh
bS0+bWJfaGVpZ2h0LTIpKihwUGFyYW0tPm1iX3dpZHRoLTIpLzIpIHJldHVy
biBJX1ZPUDsgIC8vIEkgZnJhbWUNCjIwOThjMjA5OA0KPCAJaWYgKHNTQUQg
PiBJbnRlclRocmVzaCApIHJldHVybiAxOyAvL1AgZnJhbWUNCi0tLQ0KPiAJ
aWYgKHNTQUQgPiBJbnRlclRocmVzaCApIHJldHVybiBQX1ZPUDsgLy9QIGZy
YW1lDQoyMTAwYzIxMDANCjwgCXJldHVybiAwOyAvLyBCIGZyYW1lDQotLS0N
Cj4gCXJldHVybiBCX1ZPUDsgLy8gQiBmcmFtZQ0K


------=_NextPart_000_1efc_24c8_387a--