[vlc-devel] [PATCH] mmal: update the code from the one actually used in Raspbian

Steve Lhomme robux4 at ycbcr.xyz
Thu Jan 16 09:52:13 CET 2020


Hi,

On 2020-01-15 18:27, Rémi Denis-Courmont wrote:
> Le keskiviikkona 15. tammikuuta 2020, 17.46.31 EET Steve Lhomme a écrit :
>> From: John Cox <jc at kynesim.co.uk>
>>
>> Tested with basic video playback on a RPI 3B+
>>
>> This is the code from the Raspbian patch ported to the 4.0 architecture.
>> It includes an OpenGL interop module and some NEON optimizations.
> 
> I don't think it's appropriate to make a big code dump. That's too hard to
> review properly.

I could split the code in smaller patches. In the end it will be exactly 
the same amount of code to review, if not more given patches include 
unchanged lines and changes might affect the same lines multiple times.

I already removed a big chunk of the original sources to just pick the 
parts we need to have something working.

> And it's questionable why to merge the code at all. If the author could not be

We have non working MMAL support in master. So either we drop support 
completely or we fix it.

If we decide to keep supporting MMAL (I'm OK to do it) then we should 
(re)start from the code that people actually use in Raspbian, the 
default RPI distribution. This code was also sponsored by Raspberry Pi.

That code is made to work on 3.0.8 but I imported it in 4.0 and modified 
it so it compiles and use the proper new APIs. I started working on a 
decoder device and video context but it's not ready yet.

The old MMAL code we have makes use of the display pool which won't work 
anymore, so we have to do something about it. That's why I wanted to 
clean this code so we can finally remove the last vd->pool in the code.

> bothered to submit it themselves, then there's no reason to believe that it

It's designed for 3.0. Porting decoder/vout code to 4.0 is not an easy 
thing.

> won't immediately bit-rot, and the same problems won't occur again and again.

If we decide to support it I'd like to add a Raspbian target in the 
buildbot so we don't forget to update/break it in the future.

The current status is that we have code, that barely compiles and 
doesn't work. This code is also not used by anyone. Replacing it with 
something else won't make it worse.

>> diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c
>> index 9b4ea14c31b..ef83ac3b4ad 100644
>> --- a/src/misc/fourcc.c
>> +++ b/src/misc/fourcc.c
>> @@ -816,8 +816,13 @@ static const struct
>>       { { VLC_CODEC_VDPAU_VIDEO_420, VLC_CODEC_VDPAU_VIDEO_422,
>>           VLC_CODEC_VDPAU_VIDEO_444, VLC_CODEC_VDPAU_OUTPUT },
>>                                                  FAKE_FMT() },
>> -    { { VLC_CODEC_ANDROID_OPAQUE, VLC_CODEC_MMAL_OPAQUE,
>> -        VLC_CODEC_D3D9_OPAQUE,    VLC_CODEC_D3D11_OPAQUE },
>> +    { { VLC_CODEC_ANDROID_OPAQUE },            FAKE_FMT() },
>> +    { { VLC_CODEC_MMAL_OPAQUE, VLC_CODEC_MMAL_ZC_SAND30   },
>> +                                               FAKE_FMT() },
>> +    { { VLC_CODEC_MMAL_ZC_I420,   VLC_CODEC_MMAL_ZC_SAND8,
>> +        VLC_CODEC_MMAL_ZC_SAND10, VLC_CODEC_MMAL_ZC_RGB32 },
>> +                                               FAKE_FMT() },
>> +    { { VLC_CODEC_D3D9_OPAQUE,    VLC_CODEC_D3D11_OPAQUE },
> 
> That's a lot of entries for a single piece of hardware. We don't normally
> expose specific hardware pixel formats.
> 
>>                                                  FAKE_FMT() },
>>       { { VLC_CODEC_D3D11_OPAQUE_10B, VLC_CODEC_D3D9_OPAQUE_10B,
>>           VLC_CODEC_D3D11_OPAQUE_RGBA, VLC_CODEC_D3D11_OPAQUE_BGRA },
> 
> 
> -- 
> Rémi Denis-Courmont
> http://www.remlab.net/
> 
> 
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list