QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 950|回复: 1

一个mplayer的怪问题

[复制链接]
发表于 2003-2-6 22:18:40 | 显示全部楼层 |阅读模式
我的mplayer总是安装不成功。
系统:
   无论在debian stable还是sid的kde2.2 kde3.1 gnome2 gnome2.2

安装方法:
   自己编译还是通过源安装
deb http://marillat.free.fr/ stable main

deb http://marillat.free.fr/ unstable main

现象:
    运行mplayer在字符模式可以正常播放。但运行gmplayer的时候都
出现以下错误:


    不知那位能帮我解决这个问题。
     以前在SuSE 8.0中曾经成功编译过和正常运行过mplayer。
在Debian中从来就没有成功过。
 楼主| 发表于 2003-2-9 20:27:46 | 显示全部楼层
问题已经解决!

1、通过源码分析出错原因在:
void wsCreateImage( wsTWindow * win,int Width,int Height )
{
int CompletionType = -1;
if ( wsUseXShm )
  {
   CompletionType=XShmGetEventBase( wsDisplay ) + ShmCompletion;
   win->xImage=XShmCreateImage( wsDisplay,win->VisualInfo.visual,
                   win->VisualInfo.depth,ZPixmap,NULL,&win->Shminfo,Width,Height );
   if ( win->xImage == NULL )
    {
     mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error1.\n" );
     exit( 0 );
    }
//函数shmget引起的错误
   win->Shminfo.shmid=shmget( IPC_PRIVATE,win->xImage->bytes_per_line * win->xImage->height,IPC_CREAT|0777 );
   if ( win->Shminfo.shmid < 0 )
    {
     XDestroyImage( win->xImage );
     mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error2.\n" );
     exit( 0 );
    }
   win->Shminfo.shmaddr=(char *)shmat( win->Shminfo.shmid,0,0 );

   if ( win->Shminfo.shmaddr == ((char *) -1) )
    {
     XDestroyImage( win->xImage );
     if ( win->Shminfo.shmaddr != ((char *) -1) ) shmdt( win->Shminfo.shmaddr );
     mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error3.\n" );
     exit( 0 );
    }

2、查找函数shmget发现其使用了System V IPC。原来我在编译内核
的时候把System V IPC去掉。重新编译内核加进System V IPC后,
一切正常。

在此提醒各位编译内核时要小心啊!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-12-3 07:26 , Processed in 0.038290 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表