[vlc-devel] [PATCH]: fix regression in ImageReadUrl

Steve Lhomme robux4 at ycbcr.xyz
Wed Feb 20 14:40:02 CET 2019


On 20/02/2019 14:34, erwan.tulou at gmail.com wrote:
> Hi,
>
> On 20/02/2019 13:03, Steve Lhomme wrote:
>> Hi,
>>
>> On 19/02/2019 14:11, erwan.tulou at gmail.com wrote:
>>> Hello,
>>>
>>>    The patch is intended to fix i_codec (within es_format_t) no 
>>> longer properly initialized after some recent refactoring.
>>
>> The patch seems complicated for a single missing value.
>>
>> Instead of the es_format_InitFromVideo() you could just set the 
>> i_codec to the i_chroma value. Or set the i_codec value at the same 
>> time as the i_chroma is set in that function.
>>
>>
> Yes, i_codec can directly be set. It's just one additional line of code.
>
> The patch just opted to rely on the constructors/destructors available 
> for es_format_t and the likes. This helps stay away from what may 
> appear a detail of implementation (having two different variables to 
> initialize).
>
> But, either way is okay. If no one else objects to it, I'll follow 
> your remark.

I'll do a simpler version.

>
>>>
>>> 0001-image-fix-ImageReadUrl.patch
>>>
>>>  From 88bdf864f9b4d6c51c83933c6938c9fd5d15841f Mon Sep 17 00:00:00 2001
>>> From: Erwan Tulou <erwan10 at videolan.org>
>>> Date: Tue, 19 Feb 2019 13:08:58 +0100
>>> Subject: [PATCH] image: fix ImageReadUrl()
>>>
>>> i_codec (within es_format_t) was no longer properly initialized 
>>> after some
>>> recent refactoring, therefore failing to decode any image. This 
>>> accounted
>>> for the skins2 engine no longer able to display anything.
>>> ---
>>>   src/misc/image.c | 13 ++++++++-----
>>>   1 file changed, 8 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/src/misc/image.c b/src/misc/image.c
>>> index 52edd0ff67..a21b82f498 100644
>>> --- a/src/misc/image.c
>>> +++ b/src/misc/image.c
>>> @@ -301,22 +301,25 @@ static picture_t *ImageReadUrl( 
>>> image_handler_t *p_image, const char *psz_url,
>>>       if( p_block == NULL )
>>>           goto error;
>>>   -    es_format_t fmtin;
>>> -    es_format_Init( &fmtin, VIDEO_ES, 0 ); /* no chroma, the MIME 
>>> type of the picture will be used */
>>> +    video_format_t fmtvideo;
>>> +    video_format_Init( &fmtvideo, 0 );
>>>         char *psz_mime = stream_MimeType( p_stream );
>>>       if( psz_mime != NULL )
>>>       {
>>> -        fmtin.video.i_chroma = image_Mime2Fourcc( psz_mime );
>>> +        fmtvideo.i_chroma = image_Mime2Fourcc( psz_mime );
>>>           free( psz_mime );
>>>       }
>>> -    if( !fmtin.video.i_chroma )
>>> +    if( !fmtvideo.i_chroma )
>>>       {
>>>          /* Try to guess format from file name */
>>> -       fmtin.video.i_chroma = image_Ext2Fourcc( psz_url );
>>> +       fmtvideo.i_chroma = image_Ext2Fourcc( psz_url );
>>>       }
>>>       vlc_stream_Delete( p_stream );
>>>   +    es_format_t fmtin;
>>> +    es_format_InitFromVideo( &fmtin, &fmtvideo );
>>> +    video_format_Clean( &fmtvideo );
>>>         p_pic = ImageRead( p_image, p_block, &fmtin, p_fmt_out );
>>>   --
>>> 2.20.1
>>>
>>>
>>> _______________________________________________
>>> 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
> _______________________________________________
> 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