OpenDML type AVIs does not work with avi_reader (and h264 codec table fix patch)
|Reported by:||herdemir||Owned by:||stippi|
|Component:||Audio & Video/Codecs||Version:||R1/Development|
Actually not just problems about the subject, but also some other problems during investigation:
- While avi_reader can handle standart AVI files, it cannot handle OpenDML type AVI files. Tested with some avi files with both types and seen that avi_reader can only hanlde 'AVI ' chunk(1-2MB), which shows ~ 5secs video/audio, then gets end of file error. In OpenDML after the 'AVI ' comes 'AVIX' chunk which rest of the stream (179 MB) is, cannot be played. As a temporary solution I switched to ffmpegs AVI reader and it was fine. So, it would be better for the time being to switch to ffmpegs avi reader, until avi_reader can handle it.
- While testing avi files, some of them was using H264 video codec, which should play normally, but wasn't working. After some investigation the H264 section of B_AVI_FORMAT_FAMILY in CodecTable was entered wrongly. After fixing it, I could watch them correctly. A fix is attached.
- Another problem was, while playing Standart AVI files(XVID & MP3), the sounds get muted after some time or after seeking. Tried with several combinations:
- avi_reader & ffmpeg mp3 decoder - ffmpeg avi reader & (native)mp3Decoder - ffmpeg avi reader & ffmpeg mp3 decoderstill it didn't solve the mute problem. I suspect it's related to MediaPlayer, not codec related.
- Last problem I could remember is related to ffmpeg. While using avi_reader with an h264 avi file, the video was playing in B_YCbCr422 colorspace. But when using with ffmpeg avi reader, the color space it was using was B_RGB32 and (in some avis, not all) half of the video was showing in green. Even tough some videos did show normal, the conversion to B_RGB32 then to Overlay was consuming much more CPU then B_YCbCr422 to Overlay. It is related either to the ffmpeg reader or MediaPlayer.
Sorry for writing it long. And just one question left. I'm trying to learn BeOS/Haiku API and its kit, to contribute in the future. I don't have much pratical experience(except Java & .Net), even though I'm computer engineering student :P. I'm trying to update mp3decoder with the mpg123 1.8.1 library. While trying to update i encountered with stack alignment problem. Is the stack alignment problem fixed in Haiku? If it is how can I clear this stack alignment problem? Some tips could be also enough. Again sorry for writing it sooo long.
Tested with hrev32270 GCC4. The stack alignment problem is tested with GCC2 one, didn't test with GCC4 one.