Opened 10 years ago

Last modified 5 years ago

#617 new defect

Signal 8 when using xv

Reported by: marcdeslauriers@… Owned by: reimar
Priority: normal Component: vo
Version: 1.0rc1 Severity: normal
Keywords: Cc: kdekorte@…
Blocked By: Blocking:
Reproduced by developer: Analyzed by developer:


Using xv with -vid broke between pre7 and pre8, as discussed on the list here:

I know the man page says -vid is not supported with xv, but it used to work
fine, and now playing videos using mplayerplug-in is broken. x11 output uses too
much cpu to keep audio and video in sync.

I have traced the problem to this specific patch:

Any ideas how to fix this?


Change History (8)

comment:1 Changed 10 years ago by reimar

Maybe the window indicated via -wid is not visible or has 0-size when MPlayer is
started? IMO in that case it is not a MPlayer bug.

comment:2 Changed 10 years ago by kdekorte@…

I think I found a workaround to this... Adding and XFlush and an if block seems
to help this issue alot. The XFlush seemed to really help alot on this, as
perhaps the Window was not completely setup and visible yet.

XMapWindow(mDisplay, vo_window);
XGetGeometry(mDisplay, vo_window, &mRoot,

&drwX, &drwY, &vo_dwidth, &vo_dheight,
&drwBorderWidth, &drwDepth);

if (vo_dwidth > 0 && vo_dheight > 0) {

drwX = drwY = 0; coordinates need to be local to the window
aspect_save_prescale(vo_dwidth, vo_dheight);


comment:3 Changed 10 years ago by kdekorte@…

Hum, doesn't seem to solve the problem, but helps with other

comment:4 Changed 10 years ago by kdekorte@…

Ok, one more weird thing here...

in aspect.c in aspect_save_screenres. If I uncomment the #ifdef or I add a
simple printf(""); It works everytime. printf, must be doing something that
flushes a buffer... But I don't see anything obvious in that close other than
fflush(stdout), which doesn't really make sense as to why it would fix issues
with windows being drawn.

void aspect_save_screenres(int scrw, int scrh){

printf("aspect_save_screenres %dx%d \n",scrw,scrh);


aspdat.scrw = scrw;
aspdat.scrh = scrh;
if (monitor_pixel_aspect)

monitor_aspect = monitor_pixel_aspect * scrw / scrh;


comment:5 Changed 10 years ago by kdekorte@…

  • Cc kdekorte@… added

Also seems to work in aspect_save_prescale as well.

comment:6 Changed 10 years ago by kdekorte@…

I think I may have found a workaround in mplayerplug-in, in that I create the
drawing window as a 1x1 window and make it visible and then resize when mplayer
starts playing.

comment:7 Changed 10 years ago by reimar

How about adding
if (vo_dwidth <= 0)

vo_dwidth = d_width;

if (vo_height <= 0)

vo_dheight = d_height;

After XGetGeometry? That might be an acceptable workaround to even commit into

comment:8 Changed 5 years ago by compn

  • Owner changed from beastd to reimar
Note: See TracTickets for help on using tickets.