lists.zerezo.com



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MPlayer-dev-eng] [PATCH] vo_macosx: use mmap instead of shmat for MPlayerOSX



MPlayerOSX and vo_macosx use shmget and shmat for the internal video output
to get the video image to the GUI process.
OSX globally limits the shared memory to 4MB and if other applications
already use shared memory mplayer fails to initialize vo_macosx.

Steps to reproduce:
Either make an application use up most of the shared memory or lower the
limit using:
> sudo sysctl -w kern.sysv.shmall=1
(reset back to default with "sudo sysctl -w kern.sysv.shmall=1024")
Then try to play a video with MPlayerOSX with the internal video output.
Audio starts to play but there's no video. In the console following message
gets repeated:
> vo_mplayer shmget: : Cannot allocate memory
> FATAL: Cannot initialize video driver.

Solution (see attached patches):
Use shm_open and mmap instead of shmget and shmat.
This seems to be recommended by Apple over shmat and works even with the low
limit set above.

I'm not versed in this an made the patch mostly based on the example here:
http://www.opengroup.org/onlinepubs/007908799/xsh/shm_open.html
I've tested it on Leopard and will try to test it on Tiger next week.

The idea of this patch comes from the bug report by Camillo Lists:
http://bugzilla.mplayerhq.hu/show_bug.cgi?id=1295

Attachment: vo_macosx_shm.patch
Description: Binary data

Attachment: mplayerosx_shm.patch
Description: Binary data

_______________________________________________
MPlayer-dev-eng mailing list
MPlayer-dev-eng@xxxxxxxxxxxx
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng