I don't understand why, but libswscale has one copy of yv12toyuy2 symbol, and mplayer has another. Only the former variable is initialized:

$ gdb /usr/bin/mplayer
[snip]
Breakpoint 1, put_image (vf=0x858ad18, mpi=0x85915f8, pts=0.039999999105930328) 
at libmpcodecs/vf_yuy2.c:45
45          yv12toyuy2(mpi->planes[0],mpi->planes[1],mpi->planes[2], 
dmpi->planes[0],
(gdb) print yv12toyuy2
$1 = (void (*)(const uint8_t *, const uint8_t *, const uint8_t *, uint8_t *, 
long int, long int, long int, long int, long int)) 0
(gdb) print &yv12toyuy2
$2 = (void (**)(const uint8_t *, const uint8_t *, const uint8_t *, uint8_t *, 
long int, long int, long int, long int, long int)) 0x84c5e30
(gdb) up
#1  0x0814b86a in filter_video (sh_video=0x858aa40, frame=0x85915f8, 
pts=0.039999999105930328) at libmpcodecs/dec_video.c:416
416         int ret = vf->put_image(vf, mpi, pts);
(gdb) print yv12toyuy2
$3 = (void (*)(const uint8_t *, const uint8_t *, const uint8_t *, uint8_t *, long 
int, long int, long int, long int, long int)) 0xb61cda20 <yv12toyuy2_MMX2>
(gdb) print &yv12toyuy2
$4 = (void (**)(const uint8_t *, const uint8_t *, const uint8_t *, uint8_t *, 
long int, long int, long int, long int, long int)) 0xb61f04b0

--
Jakub Wilk



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to