ffmpeg12 error error concealment problem
I've uploaded the file ffmpeg12-bug.ts to mplayerhq incoming. Play it with mplayer ffmpeg12-bug.ts -tsprog 2 -vop field,crop=1408:1056:256:16 -nosound -vfm ffmpeg and watch the ugliness. Now try the same with -vfm libmpeg2, it looks much better. Zoli
Hi On Sunday 15 February 2004 21:50, Zoltan Hidvegi wrote:
I've uploaded the file ffmpeg12-bug.ts to mplayerhq incoming. Play it with
mplayer ffmpeg12-bug.ts -tsprog 2 -vop field,crop=1408:1056:256:16 -nosound -vfm ffmpeg
and watch the ugliness. Now try the same with -vfm libmpeg2, it looks much better. remove the crop filter, or add -noslices (or fix slices) btw, u also should set -lavdopts er=4
[...] -- Michael level[i]= get_vlc(); i+=get_vlc(); (violates patent EP0266049) median(mv[y-1][x], mv[y][x-1], mv[y+1][x+1]); (violates patent #5,905,535) buf[i]= qp - buf[i-1]; (violates patent #?) for more examples, see http://mplayerhq.hu/~michael/patent.html stop it, see http://petition.eurolinux.org & http://petition.ffii.org/eubsa/en
Michael Niedermayer wrote:
On Sunday 15 February 2004 21:50, Zoltan Hidvegi wrote:
I've uploaded the file ffmpeg12-bug.ts to mplayerhq incoming. Play it with
mplayer ffmpeg12-bug.ts -tsprog 2 -vop field,crop=1408:1056:256:16 -nosound -vfm ffmpeg
and watch the ugliness. Now try the same with -vfm libmpeg2, it looks much better. remove the crop filter, or add -noslices (or fix slices) btw, u also should set -lavdopts er=4
Thanks, I did not know that slices are broken. But even with -noslices, it does not look as good as libmpeg2. It seems that the same frame is repeated a few times before proceeding. And there seems to be an other problem: it coredumps with direct rendering, just try filmdint or pullup as the first filter. The reason is that put image is called twice on the same mpi without and get_image between the two calls. The first call clears the mpi->priv field, and when put_image is called again, it wants to use mpi->priv which is 0. When I added a check to not use mpi->priv if it is zero (add an extra condition to vf_filmdint.c:1145), it dumped in i386/dsputil_mmx.c:365. It may well be because of some buffers are not allocated the way vd_ffmpeg expects it. What are the exact rules for DR? The pullup and filmdint filters use DR to avoid copying but still have access to a limited history of previous frames, but it seems to work just by change instead of by design. E.g. the pullup filter does not work well for mpeg4 without b-frames, because ffmpeg assumes that get_image will return the same buffer at every second MP_IMGTYPE_IP type call, and maybe something similar is happening here. E.g., vf_filmdint will switch back and forth between two different temp frames when get_image is called with MP_IMGTYPE_IPB type and the MP_IMGFLAG_READABLE flag. This is different from the default get_image, which always returns the same temp image. Maybe that's causing the coredump? Zoli
Hi On Monday 16 February 2004 05:26, Zoltan Hidvegi wrote:
Michael Niedermayer wrote:
On Sunday 15 February 2004 21:50, Zoltan Hidvegi wrote:
I've uploaded the file ffmpeg12-bug.ts to mplayerhq incoming. Play it with
mplayer ffmpeg12-bug.ts -tsprog 2 -vop field,crop=1408:1056:256:16 -nosound -vfm ffmpeg
and watch the ugliness. Now try the same with -vfm libmpeg2, it looks much better.
remove the crop filter, or add -noslices (or fix slices) btw, u also should set -lavdopts er=4
Thanks, I did not know that slices are broken. But even with -noslices, it does not look as good as libmpeg2. It seems that the same frame is repeated a few times before proceeding. And there seems cvs up libavcodec i think i fixed that yesterday, the problem was that the sequence header was damaged but libavcodec didnt notice, but then failed to decode the following sequence extension header so it practically switched to mpeg1 which confused it somewhat as the following frames are mpeg2
[...] -- Michael level[i]= get_vlc(); i+=get_vlc(); (violates patent EP0266049) median(mv[y-1][x], mv[y][x-1], mv[y+1][x+1]); (violates patent #5,905,535) buf[i]= qp - buf[i-1]; (violates patent #?) for more examples, see http://mplayerhq.hu/~michael/patent.html stop it, see http://petition.eurolinux.org & http://petition.ffii.org/eubsa/en
Michael Niedermayer wrote:
Thanks, I did not know that slices are broken. But even with -noslices, it does not look as good as libmpeg2. It seems that the same frame is repeated a few times before proceeding. And there seems cvs up libavcodec i think i fixed that yesterday, the problem was that the sequence header was damaged but libavcodec didnt notice, but then failed to decode the following sequence extension header so it practically switched to mpeg1 which confused it somewhat as the following frames are mpeg2
Thanks, I did not realize that you changed something, but after cvs up it is indeed fixed, it's great, thanks for the quick response. Now finally I can stop using libmpeg2 (after applying the patch I've sent earlier abour passing RFF). Zoli
participants (2)
-
Michael Niedermayer -
Zoltan Hidvegi