[MPlayer-dev-eng] [BUG] bug in vo_png?
Arpi
arpi at thot.banki.hu
Tue May 14 00:40:58 CEST 2002
Hi,
> > and iyuv==i420==yv12 in the viewpoint of mplayer code
> > so remove all not only 1 of 3
> > but do not remove all, rather fix them or at leats debug why does it crash
>
> Well, I'm not sure exactly what the right thing to do is.
> Here's a series of changes to vo_png and the errors they produce.
>
> First, using mplayer -vo png i263.avi we get things like this:
> http://joey.yunamusic.com/mplayer/bad_color.png (the sky should be blue)
>
> So, I assume that the colorspace conversion inside the plugin is bad,
> and make this change to find out (forgive the non-attached patches):
try to remove this bad code:
/* hack: swap planes for I420 ;) -- alex */
if ((image_format == IMGFMT_IYUV) || (image_format == IMGFMT_I420))
{
uint8_t *src_i420[3];
src_i420[0] = src[0];
src_i420[1] = src[2];
src_i420[2] = src[1];
src = src_i420;
}
it swaps U<->V while it shouldn't, according to DOCS/tech/colorspaces.txt
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1024 (LWP 18105)]
> 0x1001a9c5 in ?? () at eval.c:41
> 41 eval.c: No such file or directory.
> (gdb) bt
> #0 0x1001a9c5 in ?? () at eval.c:41
> Cannot access memory at address 0x0
it crashed inside the codec DLL.
maybe some memory alignment etc problem, somehow triggered by the 32->24
converter?
try to change this:
image_data = malloc(image_width*image_height*3);
to:
image_data = malloc(image_width*image_height*3+16);
afair Michael's 24bpp converters write a bit too much, pass the limits
it's workarounded in vfilter layer, it explains why does external csp
conversion work
A'rpi / Astral & ESP-team
--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu
More information about the MPlayer-dev-eng
mailing list