[FFmpeg-devel] MJPG decoder: 24: Found EOI before any SOF (and other issues)
Tue Feb 23 07:31:29 CET 2010
1) I'm using avcodec to decode MJPG encoded frames from Tandberg precision hd web camera.
I noticed that avcodec rejects some of the frames for some reason. After I updated to the latest svn I see that I'm getting now bad results. Some frames occasionally flash with incorrect/brocken pictures or something like that. Any ideas, why I'm getting that EOI before any SOF in the first place and why I started to get bad frames from decoder (I'll try maybe to save them later, so I can send in broken frames).
I may try to decode frames using libjpeg to see if it chokes or decodes them ok
2) Another issue I had was related to
MPV_frame_start in mpegvideo.c
I always get this assert:
assert(s->last_picture_ptr==NULL || s->out_format != FMT_H264 || s->codec_id == CODEC_ID_SVQ3);
with s->codec_id == H264
I simply dropped a mov file snapped with an IPhone to ffplay.exe and got the assert. After I commented out the assert it plays the file (but in a very broken way: video is too quick compared to sound, and at the end of the clip sound gets stuck in some sort of loop and makes noise). The same file plays perfectly OK with other players that were capable to handle it. I tried another clip made with IPhone - same problem.
3)It seems that there is a problem related to new additions to avutil. All that cluttered new macro like: AV_WN, AV_RN, AV_XYZ etc I was getting a compilation error and it was really not easy to track down what is where, because AV_ABC is defined as AV_AA(32, ...) and AV_AA defined as AV_BB(16, ...) etc etc. It seems that the error is:
Iside elif HAVE_FAST_UNALIGNED
# define AV_WN(s, p, v) (((uint##s##_t*)(p))->u##s = (v))
Has to be
# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v))
I build latest svn avcodec and make test passed.
More information about the ffmpeg-devel