[vlc-devel] [PATCH 05/14] filter: allow the owner not to provide a buffer callback

Rémi Denis-Courmont remi at remlab.net
Wed Sep 18 13:32:01 CEST 2019


Hmm well yeah... in other words, it's not easy or at least not obvious in the general case.

Also how does should an OpenGL shader-based filter if the decoder device is, say, NVdec, and the video context is X11? It knows neither of them. Sure it'd solvable, but to me it's not obvious at all, and I'd rather sort it out in a workshop than over a mailing list.

Le 18 septembre 2019 12:15:30 GMT+03:00, Steve Lhomme <robux4 at ycbcr.xyz> a écrit :
>On input of filters it's easy, they get a video context (or NULL for
>CPU 
>based sources).
>
>The issue is when a filter needs to create a video context on its own. 
>For CPU to GPU filters it cannot use the input video context. Just like
>
>a decoder it should use the "decoder device" to create its output video
>
>context.
>
>So just like for the decoder, the owner of the filter provides a 
>"get_decoder_device" callback to get it.
>
>On 2019-09-18 10:39, Rémi Denis-Courmont wrote:
>> Hi,
>> 
>> I am not sure how hardware should be exposed to filters/converters. I
>don't recall covering that part of the puzzle at the February workshop.
>> 
>> Le 18 septembre 2019 09:00:41 GMT+03:00, Steve Lhomme
><robux4 at ycbcr.xyz> a écrit :
>>> On 2019-09-17 17:32, Rémi Denis-Courmont wrote:
>>>> Le tiistaina 17. syyskuuta 2019, 17.22.33 EEST Steve Lhomme a écrit
>:
>>>>> In this case we just allocate a picture from the filter output
>>> format.
>>>>> ---
>>>>>    include/vlc_filter.h | 7 ++++++-
>>>>>    1 file changed, 6 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/include/vlc_filter.h b/include/vlc_filter.h
>>>>> index 0c756ce10ec..0bc10e91997 100644
>>>>> --- a/include/vlc_filter.h
>>>>> +++ b/include/vlc_filter.h
>>>>> @@ -26,6 +26,7 @@
>>>>>    #define VLC_FILTER_H 1
>>>>>
>>>>>    #include <vlc_es.h>
>>>>> +#include <vlc_picture.h>
>>>>>
>>>>>    /**
>>>>>     * \defgroup filter Filters
>>>>> @@ -160,7 +161,11 @@ struct filter_t
>>>>>     */
>>>>>    static inline picture_t *filter_NewPicture( filter_t *p_filter
>)
>>>>>    {
>>>>> -    picture_t *pic = p_filter->owner.video->buffer_new( p_filter
>);
>>>>> +    picture_t *pic;
>>>>> +    if ( p_filter->owner.video != NULL &&
>>> p_filter->owner.video->buffer_new
>>>>> != NULL)
>>>>
>>>> Two checks look redundant, though anyway this callback should go
>away
>>>> altogether eventually.
>>>
>>> Yes, it will go away.
>>>
>>> The owner will have the "get_device" callback so it's possible at
>some
>>> point in the code to have one callback and not the other. But in the
>>> end
>>> this code won't be there anymore.
>>>
>>>>> +        pic = p_filter->owner.video->buffer_new( p_filter );
>>>>> +    else
>>>>> +        pic = picture_NewFromFormat( &p_filter->fmt_out.video );
>>>>>        if( pic == NULL )
>>>>>            msg_Warn( p_filter, "can't get output picture" );
>>>>>        return pic;
>>>>
>>>>
>>>> -- 
>>>> 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
>>>>
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>> 
>> -- 
>> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez
>excuser ma brièveté.
>> 
>> 
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>> 
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20190918/5afb9843/attachment.html>


More information about the vlc-devel mailing list