Log in

View Full Version : AVI my code wrote plays in VLC but not WMP. Why?


blueshift
15th November 2007, 17:10
Hi, I am writing an AVI muxing program for an embedded device.

I have demuxed an original AVI and remuxed it successfuly using an idx1 legacy type index, however I want to use interleaved OpenDML style indexes, for memory usage reasons as well as to try and have a shot at a valid file if the file is not closed correctly (power removed, etc).

The version with the idx1 index played in Windows Media Player, but my "indx" style one with interleaved ix00 / ix01 index chunks appears as a grey window (of the correct size and duration). It does however play fine in VLC media player.

If I run it through virtualdub or avimuxgui and save it back out, it plays correctly in Media Player (but the indexes are completely changed).

How can I tell what is wrong with my file that is stopping Media Player from being able to play it?

What I am after ideally is some kind of very pedantic AVI parser that will complain at me.

Thanks for any help,

LoRd_MuldeR
15th November 2007, 17:49
Did you try MPlayer or Media Player Classic's internal AVI splitter?

blueshift
15th November 2007, 18:06
I didn't. Like I said, it plays fine in VLC media player..

What I'm hoping is that someone can tell me a way to determine why Media Player doesn't like it.

LoRd_MuldeR
15th November 2007, 18:26
I didn't. Like I said, it plays fine in VLC media player..

What I'm hoping is that someone can tell me a way to determine why Media Player doesn't like it.

I though MPlayer (not Windows Media Player) might print out some useful info in it's log file. Just an idea!

Also it could be interesting to know if Media Player Classic's internal AVI Splitter likes your AVI file.
Media Player Classic can use both: it's own internal AVI Splitter or Micro$oft's....

blueshift
15th November 2007, 18:50
Ah, ok thanks. I'll try tomorrow.

I was hoping to be able to avoid learning about splitters and things.. hey ho

blueshift
16th November 2007, 11:59
Thanks for the help, after various fiddling I sat down with a hex editor for a while and realised all the duration entries in my indx chunks were 0. I am a noob. Fixed that and now all is fine :)