[Ffmpeg-devel] [PATCH] - fix for missing audio stream in dvr-ms asf files

John Donaghy johnfdonaghy
Fri Jan 20 23:54:49 CET 2006


Here's an updated patch including the changes you asked for.

John

On 1/20/06, Michael Niedermayer <michaelni at gmx.at> wrote:
> Hi
>
> On Fri, Jan 20, 2006 at 01:17:29PM -0600, John Donaghy wrote:
> > The attached patch is for asf.c/asf.h and enables the code to find the
> > audio stream in dvr-ms files. The audio stream is embedded in the
> > header extension object (head1_guid) so I took out the '#if 0' like
> > that causes that whole section to be skipped. It took a bit of
> > guesswork to discover the audio stream but I knew it had to be there
> > somewhere. The associated guids for it have not been published so the
> > names I gave the new guids may not properly convey their meaning.
> > A dvr-ms file has a couple of extended stream properties objects
> > embedded in the header extension object. One is the audio and the
> > other is probably the subtitles but this code only recognises the
> > audio. Once an extended stream properties is parsed there is a
> > optional stream object immediately following. Hence I included some
> > code to just parse the extended stream properties object up to the
> > start of the optional stream object. That way the stream object gets
> > picked up on the next iteration if it is present. Since the guid is
> > not the regular audio guid I added code to process it as an audio
> > stream header if it matched the right guid.
> > It all seems to work fine in mplayer and I've also used mencoder to
> > successfully convert these files into a couple of other formats. I did
> > all development in mingw and I havent test it in any other
> > environment. I also havent checked if the changes didnt break regular
> > asf files cause I dont have any but I can do some of this if required
> > later.
>
> >             get_guid(pb, &g);
> >+
> >+            int test_for_ext_stream_audio;
> >
>
> mixing declarations and statements breaks gcc 2.95
>
>
> > };
> >
> >+
> >+
> > static const GUID audio_conceal_none = {
>
> whitespace only change
>
>
> theres also some trailing whitespace added at a few points
>
> [...]
> --
> Michael
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> http://mplayerhq.hu/mailman/listinfo/ffmpeg-devel
>
-------------- next part --------------
SW5kZXg6IGxpYmF2Zm9ybWF0L2FzZi5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2c3Jvb3QvZmZtcGVnL2ZmbXBlZy9saWJhdmZvcm1hdC9hc2YuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTANCmRpZmYgLXUgLXIxLjkwIGFzZi5jDQotLS0gbGliYXZmb3JtYXQvYXNmLmMJMTIgSmFuIDIwMDYgMjI6NDM6MjIgLTAwMDAJMS45MA0KKysrIGxpYmF2Zm9ybWF0L2FzZi5jCTIwIEphbiAyMDA2IDIyOjQ5OjExIC0wMDAwDQpAQCAtNjAsNiArNjAsMTAgQEANCiAgICAgZWxzZSBQUklOVF9JRl9HVUlEKGcsIGhlYWQxX2d1aWQpOw0KICAgICBlbHNlIFBSSU5UX0lGX0dVSUQoZywgaGVhZDJfZ3VpZCk7DQogICAgIGVsc2UgUFJJTlRfSUZfR1VJRChnLCBteV9ndWlkKTsNCisgICAgZWxzZSBQUklOVF9JRl9HVUlEKGcsIGV4dF9zdHJlYW1faGVhZGVyKTsNCisgICAgZWxzZSBQUklOVF9JRl9HVUlEKGcsIGV4dGVuZGVkX2NvbnRlbnRfaGVhZGVyKTsNCisgICAgZWxzZSBQUklOVF9JRl9HVUlEKGcsIGV4dF9zdHJlYW1fZW1iZWRfc3RyZWFtX2hlYWRlcik7DQorICAgIGVsc2UgUFJJTlRfSUZfR1VJRChnLCBleHRfc3RyZWFtX2F1ZGlvX3N0cmVhbSk7DQogICAgIGVsc2UNCiAgICAgICAgIHByaW50ZigiKEdVSUQ6IHVua25vd24pICIpOw0KICAgICBwcmludGYoIjB4JTA4eCwgMHglMDR4LCAweCUwNHgsIHsiLCBnLT52MSwgZy0+djIsIGctPnYzKTsNCkBAIC0xODYsNiArMTkwLDcgQEANCiAgICAgICAgICAgICBpbnQgdHlwZSwgdG90YWxfc2l6ZSwgdHlwZV9zcGVjaWZpY19zaXplLCBzaXplWDsNCiAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGFnMTsNCiAgICAgICAgICAgICBpbnQ2NF90IHBvczEsIHBvczI7DQorICAgICAgICAgICAgaW50IHRlc3RfZm9yX2V4dF9zdHJlYW1fYXVkaW87DQogDQogICAgICAgICAgICAgcG9zMSA9IHVybF9mdGVsbChwYik7DQogDQpAQCAtMjAxLDEyICsyMDYsMTcgQEANCiAgICAgICAgICAgICBzdC0+ZHVyYXRpb24gPSBhc2YtPmhkci5zZW5kX3RpbWUgLw0KICAgICAgICAgICAgICAgICAoMTAwMDAwMDAgLyAxMDAwKSAtIHN0LT5zdGFydF90aW1lOw0KICAgICAgICAgICAgIGdldF9ndWlkKHBiLCAmZyk7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgdGVzdF9mb3JfZXh0X3N0cmVhbV9hdWRpbyA9IDA7DQogICAgICAgICAgICAgaWYgKCFtZW1jbXAoJmcsICZhdWRpb19zdHJlYW0sIHNpemVvZihHVUlEKSkpIHsNCiAgICAgICAgICAgICAgICAgdHlwZSA9IENPREVDX1RZUEVfQVVESU87DQogICAgICAgICAgICAgfSBlbHNlIGlmICghbWVtY21wKCZnLCAmdmlkZW9fc3RyZWFtLCBzaXplb2YoR1VJRCkpKSB7DQogICAgICAgICAgICAgICAgIHR5cGUgPSBDT0RFQ19UWVBFX1ZJREVPOw0KICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW1lbWNtcCgmZywgJmNvbW1hbmRfc3RyZWFtLCBzaXplb2YoR1VJRCkpKSB7DQogICAgICAgICAgICAgICAgIHR5cGUgPSBDT0RFQ19UWVBFX1VOS05PV047DQorICAgICAgICAgICAgfSBlbHNlIGlmICghbWVtY21wKCZnLCAmZXh0X3N0cmVhbV9lbWJlZF9zdHJlYW1faGVhZGVyLCBzaXplb2YoR1VJRCkpKSB7DQorICAgICAgICAgICAgICAgIHRlc3RfZm9yX2V4dF9zdHJlYW1fYXVkaW8gPSAxOw0KKyAgICAgICAgICAgICAgICB0eXBlID0gQ09ERUNfVFlQRV9VTktOT1dOOw0KICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsNCiAgICAgICAgICAgICB9DQpAQCAtMjE5LDYgKzIyOSwyMCBAQA0KICAgICAgICAgICAgIGFzZi0+YXNmaWQyYXZpZFtzdC0+aWRdID0gcy0+bmJfc3RyZWFtcyAtIDE7DQogDQogICAgICAgICAgICAgZ2V0X2xlMzIocGIpOw0KKw0KKyAgICAgICAgICAgIGlmICh0ZXN0X2Zvcl9leHRfc3RyZWFtX2F1ZGlvKSB7DQorICAgICAgICAgICAgICAgIGdldF9ndWlkKHBiLCAmZyk7DQorICAgICAgICAgICAgICAgIGlmICghbWVtY21wKCZnLCAmZXh0X3N0cmVhbV9hdWRpb19zdHJlYW0sIHNpemVvZihHVUlEKSkpIHsNCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBDT0RFQ19UWVBFX0FVRElPOw0KKyAgICAgICAgICAgICAgICAgICAgZ2V0X2d1aWQocGIsICZnKTsNCisgICAgICAgICAgICAgICAgICAgIGdldF9sZTMyKHBiKTsNCisgICAgICAgICAgICAgICAgICAgIGdldF9sZTMyKHBiKTsNCisgICAgICAgICAgICAgICAgICAgIGdldF9sZTMyKHBiKTsNCisgICAgICAgICAgICAgICAgICAgIGdldF9ndWlkKHBiLCAmZyk7DQorICAgICAgICAgICAgICAgICAgICBnZXRfbGUzMihwYik7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorDQogICAgICAgICAgICAgc3QtPmNvZGVjLT5jb2RlY190eXBlID0gdHlwZTsNCiAgICAgICAgICAgICBpZiAodHlwZSA9PSBDT0RFQ19UWVBFX0FVRElPKSB7DQogICAgICAgICAgICAgICAgIGdldF93YXZfaGVhZGVyKHBiLCBzdC0+Y29kZWMsIHR5cGVfc3BlY2lmaWNfc2l6ZSk7DQpAQCAtMjU5LDcgKzI4Myw3IEBADQogICAgICAgICAgICAgICAgICAgICBzdC0+Y29kZWMtPmZyYW1lX3NpemUgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBDT0RFQ19UWVBFX1ZJREVPKSB7DQogICAgICAgICAgICAgICAgIGdldF9sZTMyKHBiKTsNCiAgICAgICAgICAgICAgICAgZ2V0X2xlMzIocGIpOw0KICAgICAgICAgICAgICAgICBnZXRfYnl0ZShwYik7DQpAQCAtMzQ5LDEyICszNzMsNDkgQEANCiAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgYXZfZnJlZShuYW1lKTsNCiAgICAgICAgICAgICAgICAgfQ0KLSNpZiAwDQorICAgICAgICB9IGVsc2UgaWYgKCFtZW1jbXAoJmcsICZleHRfc3RyZWFtX2hlYWRlciwgc2l6ZW9mKEdVSUQpKSkgew0KKyAgICAgICAgICAgIGludCBleHRfbGVuLCBwYXlsb2FkX2V4dF9jdCwgc3RyZWFtX2N0Ow0KKyAgICAgICAgICAgIHVpbnQzMl90IGV4dF9kOw0KKyAgICAgICAgICAgIGludDY0X3QgcG9zX2V4X3N0LCBwb3NfY3VycjsNCisgICAgICAgICAgICBwb3NfZXhfc3QgPSB1cmxfZnRlbGwocGIpOw0KKyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIGdldF9sZTY0KHBiKTsNCisgICAgICAgICAgICBnZXRfbGU2NChwYik7DQorICAgICAgICAgICAgZ2V0X2xlMzIocGIpOw0KKyAgICAgICAgICAgIGdldF9sZTMyKHBiKTsNCisgICAgICAgICAgICBnZXRfbGUzMihwYik7DQorICAgICAgICAgICAgZ2V0X2xlMzIocGIpOw0KKyAgICAgICAgICAgIGdldF9sZTMyKHBiKTsNCisgICAgICAgICAgICBnZXRfbGUzMihwYik7DQorICAgICAgICAgICAgZ2V0X2xlMzIocGIpOw0KKyAgICAgICAgICAgIGdldF9sZTMyKHBiKTsNCisgICAgICAgICAgICBnZXRfbGUxNihwYik7DQorICAgICAgICAgICAgZ2V0X2xlMTYocGIpOw0KKyAgICAgICAgICAgIGdldF9sZTY0KHBiKTsNCisgICAgICAgICAgICBzdHJlYW1fY3QgPSBnZXRfbGUxNihwYik7DQorICAgICAgICAgICAgcGF5bG9hZF9leHRfY3QgPSBnZXRfbGUxNihwYik7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgZm9yIChpPTA7IGk8c3RyZWFtX2N0OyBpKyspew0KKyAgICAgICAgICAgICAgICBnZXRfbGUxNihwYik7DQorICAgICAgICAgICAgICAgIGV4dF9sZW4gPSBnZXRfbGUxNihwYik7DQorICAgICAgICAgICAgICAgIHVybF9mc2VlayhwYiwgZXh0X2xlbiwgU0VFS19DVVIpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICANCisgICAgICAgICAgICBmb3IgKGk9MDsgaTxwYXlsb2FkX2V4dF9jdDsgaSsrKXsNCisgICAgICAgICAgICAgICAgZ2V0X2d1aWQocGIsICZnKTsNCisgICAgICAgICAgICAgICAgZXh0X2Q9Z2V0X2xlMTYocGIpOw0KKyAgICAgICAgICAgICAgICBleHRfbGVuPWdldF9sZTMyKHBiKTsNCisgICAgICAgICAgICAgICAgdXJsX2ZzZWVrKHBiLCBleHRfbGVuLCBTRUVLX0NVUik7DQorICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGEgb3B0aW9uYWwgc3RyZWFtIHByb3BlcnRpZXMgb2JqZWN0IHRvIGZvbGxvdw0KKyAgICAgICAgICAgIC8vIGlmIHNvIHRoZSBuZXh0IGl0ZXJhdGlvbiB3aWxsIHBpY2sgaXQgdXANCiAgICAgICAgIH0gZWxzZSBpZiAoIW1lbWNtcCgmZywgJmhlYWQxX2d1aWQsIHNpemVvZihHVUlEKSkpIHsNCiAgICAgICAgICAgICBpbnQgdjEsIHYyOw0KICAgICAgICAgICAgIGdldF9ndWlkKHBiLCAmZyk7DQogICAgICAgICAgICAgdjEgPSBnZXRfbGUzMihwYik7DQogICAgICAgICAgICAgdjIgPSBnZXRfbGUxNihwYik7DQorI2lmIDANCiAgICAgICAgIH0gZWxzZSBpZiAoIW1lbWNtcCgmZywgJmNvZGVjX2NvbW1lbnRfaGVhZGVyLCBzaXplb2YoR1VJRCkpKSB7DQogICAgICAgICAgICAgaW50IGxlbiwgdjEsIG4sIG51bTsNCiAgICAgICAgICAgICBjaGFyIHN0clsyNTZdLCAqcTsNCkluZGV4OiBsaWJhdmZvcm1hdC9hc2YuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnNyb290L2ZmbXBlZy9mZm1wZWcvbGliYXZmb3JtYXQvYXNmLmgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjY5DQpkaWZmIC11IC1yMS42OSBhc2YuaA0KLS0tIGxpYmF2Zm9ybWF0L2FzZi5oCTEyIEphbiAyMDA2IDIyOjQzOjIyIC0wMDAwCTEuNjkNCisrKyBsaWJhdmZvcm1hdC9hc2YuaAkyMCBKYW4gMjAwNiAyMjo0OToxNCAtMDAwMA0KQEAgLTE0Myw2ICsxNDMsMTAgQEANCiAgICAgMHhCN0RDMDc5MSwgMHhBOUI3LCAweDExQ0YsIHsgMHg4RSwgMHhFNiwgMHgwMCwgMHhDMCwgMHgwQywgMHgyMCwgMHg1MywgMHg2NSB9LA0KIH07DQogDQorc3RhdGljIGNvbnN0IEdVSUQgZXh0X3N0cmVhbV9oZWFkZXIgPSB7DQorICAgIDB4MTRFNkE1Q0IsIDB4QzY3MiwgMHg0MzMyLCB7IDB4ODMsIDB4OTksIDB4QTksIDB4NjksIDB4NTIsIDB4MDYsIDB4NUIsIDB4NUEgfSwNCit9Ow0KKw0KIHN0YXRpYyBjb25zdCBHVUlEIGF1ZGlvX3N0cmVhbSA9IHsNCiAgICAgMHhGODY5OUU0MCwgMHg1QjRELCAweDExQ0YsIHsgMHhBOCwgMHhGRCwgMHgwMCwgMHg4MCwgMHg1RiwgMHg1QywgMHg0NCwgMHgyQiB9LA0KIH07DQpAQCAtMjAwLDYgKzIwNCwxNCBAQA0KICAgICAgICAgMHgzMzAwMDg5MCwgMHhFNUIxLCAweDExQ0YsIHsgMHg4OSwgMHhGNCwgMHgwMCwgMHhBMCwgMHhDOSwgMHgwMywgMHg0OSwgMHhDQiB9LA0KIH07DQogDQorc3RhdGljIGNvbnN0IEdVSUQgZXh0X3N0cmVhbV9lbWJlZF9zdHJlYW1faGVhZGVyID0gew0KKyAgICAgICAgMHgzYWZiNjVlMiwgMHg0N2VmLCAweDQwZjIsIHsgMHhhYywgMHgyYywgMHg3MCwgMHhhOSwgMHgwZCwgMHg3MSwgMHhkMywgMHg0M30NCit9Ow0KKw0KK3N0YXRpYyBjb25zdCBHVUlEIGV4dF9zdHJlYW1fYXVkaW9fc3RyZWFtID0gew0KKyAgICAgICAgMHgzMTE3OGM5ZCwgMHgwM2UxLCAweDQ1MjgsIHsgMHhiNSwgMHg4MiwgMHgzZCwgMHhmOSwgMHhkYiwgMHgyMiwgMHhmNSwgMHgwM30NCit9Ow0KKw0KIC8qIEkgYW0gbm90IGEgbnVtYmVyICEhISBUaGlzIEdVSUQgaXMgdGhlIG9uZSBmb3VuZCBvbiB0aGUgUEMgdXNlZCB0bw0KICAgIGdlbmVyYXRlIHRoZSBzdHJlYW0gKi8NCiBzdGF0aWMgY29uc3QgR1VJRCBteV9ndWlkID0gew0K



More information about the ffmpeg-devel mailing list