foxtrotter
19th December 2005, 03:50
Hi guys,
Background:
First of all, I'm using xvidcore-1.1.0-beta2 (from xvid.org) on a laptop with a mobile Athlon XP2800, and 192MB of RAM, running WinXP Pro. I have built it w/ visual Studio 2003, and have had good success in getting the example decoder to work. I'm actually only interested in decoding for my application.
The MPEG-4 stream to be decoded will (eventually) be encoded by hardware, and transmitted over a network to my application, which will decode it, and display it on my GUI.
My GUI application is written in C#, and I've written a wrapper class, to allow me to use xvid to decode the mp4 stream that the GUI is receiving. To help simplify things, I've taken a clip from a movie trailer, and I've used it to debug my GUI. I've been successful in getting xvid to decode the clip up to a point. Thinking I had a bug in my wrapper class (in the buffering), I decided to run the clip through xvid_decraw.exe, and I'm seeing the same results.
Problemo:
I'm basically running xvid_decraw.exe on the clip, and after exactly 178 frames have been successfully decoded, an exception is thrown from xvid, and I'm getting the debug error that "non-rectangular shapes are not supported" and "data_partitioned not supported". Is this a problem with Xvid, or is it an error in the encoding by Quicktime?
The mp4 clip that I'm using is located at the link below:
I generated this clip with Quicktime Pro, at 30fps, 1 keyframe every frame (I think this means I-frames only, and no P-frames), and 2Mbps.
http://www363.pair.com/robotics/movies/mpeg_4/cars_30fps_1kf_2Mbps.mp4
Xvid Invocation:
C:\Xvid\xvidcore-1.1.0-beta2\build\win32\bin>xvid_decraw.exe -asm -debug 1 -i c:\mpeg4\cars_30fps_1kf_2Mbps.mp4 -d -c rgb24 -f tga
I've traced the place where the exception occurs down to the decoder_mbintra() method in decoder.c.
Debug output: Note: I've shortened the debug output to show the pertinent info, and xvid debug output is bold
non-rectangular shapes are not supported
data_partitioned not supported
decoder_iframe()
idct()
idct()
idct()
idct()
idct()
idct()
xxx
t16to8
...
idct()
idct()
idct()
idct()
idct()
fatal: invalid run
idct()
xxx
...
t16to8
idct()
idct()
idct()
idct()
<exception thrown here>
Question 1:
Could someone please shed some light on the problem, and why I'm getting these errors?
If it's a Quicktime error, then I'm not so concerned, but if it's an Xvid problem, I wanted to expose it so that it could possibly get fixed.
Question 2:
If I generate an mp4 clip with Quicktime using 30fps, and 1 keyframe ever 30 frames (I assume this is an I-frame, followed by 30 P-frames, and then another I-frame, etc), and a bitrate of 2Mbps, and try to decode it w/ xvid_decraw.exe, it enters an immediate infinite loop.
Any ideas why? Again, is the mp4 encoding from Quicktime have errors? I've tried this on several machines, and I get the same results.
Here's a link to that clip if anyone wants to try decoding it:
http://www363.pair.com/robotics/movies/mpeg_4/cars_30fps_30kf_2Mbps.mp4
Thanks for any responses,
Jason
Background:
First of all, I'm using xvidcore-1.1.0-beta2 (from xvid.org) on a laptop with a mobile Athlon XP2800, and 192MB of RAM, running WinXP Pro. I have built it w/ visual Studio 2003, and have had good success in getting the example decoder to work. I'm actually only interested in decoding for my application.
The MPEG-4 stream to be decoded will (eventually) be encoded by hardware, and transmitted over a network to my application, which will decode it, and display it on my GUI.
My GUI application is written in C#, and I've written a wrapper class, to allow me to use xvid to decode the mp4 stream that the GUI is receiving. To help simplify things, I've taken a clip from a movie trailer, and I've used it to debug my GUI. I've been successful in getting xvid to decode the clip up to a point. Thinking I had a bug in my wrapper class (in the buffering), I decided to run the clip through xvid_decraw.exe, and I'm seeing the same results.
Problemo:
I'm basically running xvid_decraw.exe on the clip, and after exactly 178 frames have been successfully decoded, an exception is thrown from xvid, and I'm getting the debug error that "non-rectangular shapes are not supported" and "data_partitioned not supported". Is this a problem with Xvid, or is it an error in the encoding by Quicktime?
The mp4 clip that I'm using is located at the link below:
I generated this clip with Quicktime Pro, at 30fps, 1 keyframe every frame (I think this means I-frames only, and no P-frames), and 2Mbps.
http://www363.pair.com/robotics/movies/mpeg_4/cars_30fps_1kf_2Mbps.mp4
Xvid Invocation:
C:\Xvid\xvidcore-1.1.0-beta2\build\win32\bin>xvid_decraw.exe -asm -debug 1 -i c:\mpeg4\cars_30fps_1kf_2Mbps.mp4 -d -c rgb24 -f tga
I've traced the place where the exception occurs down to the decoder_mbintra() method in decoder.c.
Debug output: Note: I've shortened the debug output to show the pertinent info, and xvid debug output is bold
non-rectangular shapes are not supported
data_partitioned not supported
decoder_iframe()
idct()
idct()
idct()
idct()
idct()
idct()
xxx
t16to8
...
idct()
idct()
idct()
idct()
idct()
fatal: invalid run
idct()
xxx
...
t16to8
idct()
idct()
idct()
idct()
<exception thrown here>
Question 1:
Could someone please shed some light on the problem, and why I'm getting these errors?
If it's a Quicktime error, then I'm not so concerned, but if it's an Xvid problem, I wanted to expose it so that it could possibly get fixed.
Question 2:
If I generate an mp4 clip with Quicktime using 30fps, and 1 keyframe ever 30 frames (I assume this is an I-frame, followed by 30 P-frames, and then another I-frame, etc), and a bitrate of 2Mbps, and try to decode it w/ xvid_decraw.exe, it enters an immediate infinite loop.
Any ideas why? Again, is the mp4 encoding from Quicktime have errors? I've tried this on several machines, and I get the same results.
Here's a link to that clip if anyone wants to try decoding it:
http://www363.pair.com/robotics/movies/mpeg_4/cars_30fps_30kf_2Mbps.mp4
Thanks for any responses,
Jason