Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: mplayer generates X11 errors and no longer renders video
To:
Matthieu Herrb <matthieu@openbsd.org>
Cc:
<bugs@openbsd.org>, <ports@openbsd.org>
Date:
Sun, 01 Dec 2024 17:12:16 -0500

Download raw body.

Thread

On December 1, 2024 9:58:13 a.m. Matthieu Herrb <matthieu@openbsd.org> wrote:

> On Fri, Nov 29, 2024 at 09:07:16PM -0500, Brad Smith wrote:
>> On 2024-11-29 4:10 p.m., Stuart Henderson wrote:
>>> dmesg is missing. It would also be helpful to include pkg_info to see
>>> which packages are installed (both for version numbers of things, and
>>> to see if anything vaapi-related is there).
>>
>>
>> The last part is not relevant for MPlayer, but more details are necessary.
>
> Hi Brad,
>
> I can reproduce this with mplayer-20240803. This is caused by mplayer
> still using the 20th century XSHM api and having changed shmget() to
> create the shared memory segment with mode 0600 instead of 0777.
>
> The patch below to the mplayer port should fix it.
>
> ok ?

Sure, go ahead.

> Index: Makefile
> ===================================================================
> RCS file: /local/cvs/ports/x11/mplayer/Makefile,v
> diff -u -p -u -r1.332 Makefile
> --- Makefile 29 Nov 2024 09:52:09 -0000 1.332
> +++ Makefile 1 Dec 2024 14:56:36 -0000
> @@ -3,7 +3,7 @@ COMMENT= movie player supporting many fo
> V= 20240803
> FFMPEG_V= 6.1.2
> DISTNAME= mplayer-${V}
> -REVISION= 0
> +REVISION= 1
> CATEGORIES= x11 multimedia
> SITES= https://comstyle.com/source/
> EXTRACT_SUFX= .tar.xz
> Index: patches/patch-libvo_vo_x11_c
> ===================================================================
> RCS file: patches/patch-libvo_vo_x11_c
> diff -N patches/patch-libvo_vo_x11_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-libvo_vo_x11_c 1 Dec 2024 14:56:36 -0000
> @@ -0,0 +1,12 @@
> +Index: libvo/vo_x11.c
> +--- libvo/vo_x11.c.orig
> ++++ libvo/vo_x11.c
> +@@ -150,7 +150,7 @@ static void getMyXImage(void)
> +         }
> +         Shminfo[0].shmid = shmget(IPC_PRIVATE,
> +                                   myximage->bytes_per_line *
> +-                                  myximage->height, IPC_CREAT | SHM_R | 
> SHM_W);
> ++                                  myximage->height, IPC_CREAT | 0777);
> +         if (Shminfo[0].shmid < 0)
> +         {
> +             XDestroyImage(myximage);
> Index: patches/patch-libvo_vo_xv_c
> ===================================================================
> RCS file: patches/patch-libvo_vo_xv_c
> diff -N patches/patch-libvo_vo_xv_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-libvo_vo_xv_c 1 Dec 2024 14:56:36 -0000
> @@ -0,0 +1,12 @@
> +Index: libvo/vo_xv.c
> +--- libvo/vo_xv.c.orig
> ++++ libvo/vo_xv.c
> +@@ -279,7 +279,7 @@ static void allocate_xvimage(int foo)
> +                                          &Shminfo[foo]);
> +
> +         Shminfo[foo].shmid =
> +-            shmget(IPC_PRIVATE, xvimage[foo]->data_size, IPC_CREAT | 
> SHM_R | SHM_W);
> ++            shmget(IPC_PRIVATE, xvimage[foo]->data_size, IPC_CREAT | 0777);
> +         Shminfo[foo].shmaddr = (char *) shmat(Shminfo[foo].shmid, 0, 0);
> +         Shminfo[foo].readOnly = False;
> +
>
> --
> Matthieu Herrb



Sent with Aqua Mail for Android