Geoffrey Hausheer wrote:
It doesn't sound like an avcodec issue, but you can never be sure.
Please compare my video to yours, and see if they are different. If
they are the same, well...I can't explain it as it plays great for me,
so they'll be different. The question will be 'why'
One way to answer is to run through gdb with '-d 2' and set a
breakpoint in write_yuv. the first call will be the original frame,
the second, the reconstructed one. doing a print
*info->display_picture in both cases and compare the 'flags' value.
it should be 9 or 10 the first time write_yuv is called, and always be
'9' on the second call.
The flags looked right. They were indicating B->I B->I P->I, etc.
The cnv?.yuv files look great, the corresponding cnv?.yuv.enc and
cnv?.yuv.enc.yuv are garbage.
Since I was pulling my hair out on this, and not being all that
familiar with the avcodec API, I decided to try something on a whim:
disabling simd optimizations using
c->dsp_flags = 0xffff;
Bingo, everything looks great. I then tried enabling each optimization
individually. If I disable MMX, everything crisp. MMX optimizations
on, garbage. This is on a Pentium 4 2.4B, mmx sse sse2.
So points me to yet another libavcodec problem, this time with MMX
opts. Everything in mpeg2fix works great as long as I keep mmx disabled
for now. I've tried it on 5 PS streams and cutpoints all up and down
the file and every cut looks good. Really nice work!
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev