Opened 17 years ago

Last modified 13 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: no Analyzed by developer: no

Description

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

http://lists.mplayerhq.hu/pipermail/mplayer-users/2006-August/062007.html

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:

http://svn.mplayerhq.hu/mplayer/trunk/libvo/vo_xv.c?r1=15213&r2=15541

Any ideas how to fix this?

Thanks!

Change History (8)

comment:1 by reimar, 17 years ago

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 by kdekorte@…, 17 years ago

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);
XFlush(mDisplay);
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 by kdekorte@…, 17 years ago

Hum, doesn't seem to solve the www.24trailer.com problem, but helps with other
sites.

comment:4 by kdekorte@…, 17 years ago

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){
#ifdef ASPECT_DEBUG

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

#endif

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

monitor_aspect = monitor_pixel_aspect * scrw / scrh;

}

comment:5 by kdekorte@…, 17 years ago

Cc: kdekorte@… added

Also seems to work in aspect_save_prescale as well.

comment:6 by kdekorte@…, 17 years ago

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 by reimar, 17 years ago

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
MPlayer.

comment:8 by compn, 13 years ago

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