X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_filter%2Frv32.c;h=68ef70f3469d67506a9aa072c80ac18991656e7a;hb=7ba508f8ef84047d1c1ed06ac0f3596e0ea1019d;hp=89c1aa2ef49582e3deed1173c138b4ddf2074496;hpb=5d3c921b102e46e416c8e1169d8ac604a8654ac1;p=vlc diff --git a/modules/video_filter/rv32.c b/modules/video_filter/rv32.c index 89c1aa2ef4..68ef70f346 100644 --- a/modules/video_filter/rv32.c +++ b/modules/video_filter/rv32.c @@ -53,11 +53,11 @@ static picture_t *Filter( filter_t *, picture_t * ); /***************************************************************************** * Module descriptor *****************************************************************************/ -vlc_module_begin(); - set_description( N_("RV32 conversion filter") ); - set_capability( "video filter2", 1 ); - set_callbacks( OpenFilter, CloseFilter ); -vlc_module_end(); +vlc_module_begin () + set_description( N_("RV32 conversion filter") ) + set_capability( "video filter2", 1 ) + set_callbacks( OpenFilter, CloseFilter ) +vlc_module_end () /***************************************************************************** * OpenFilter: probe the filter and return score @@ -69,11 +69,16 @@ static int OpenFilter( vlc_object_t *p_this ) /* XXX Only support RV24 -> RV32 conversion */ if( p_filter->fmt_in.video.i_chroma != VLC_FOURCC('R','V','2','4') || - p_filter->fmt_out.video.i_chroma != VLC_FOURCC('R', 'V', '3', '2') ) + (p_filter->fmt_out.video.i_chroma != VLC_FOURCC('R', 'V', '3', '2') && + p_filter->fmt_out.video.i_chroma != VLC_FOURCC('R', 'G', 'B', 'A')) ) { return VLC_EGENERIC; } + if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width + || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height ) + return -1; + /* Allocate the memory needed to store the decoder's structure */ if( ( p_filter->p_sys = p_sys = (filter_sys_t *)malloc(sizeof(filter_sys_t)) ) == NULL ) @@ -105,10 +110,9 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_pic ) unsigned int j; /* Request output picture */ - p_pic_dst = p_filter->pf_vout_buffer_new( p_filter ); + p_pic_dst = filter_NewPicture( p_filter ); if( !p_pic_dst ) { - msg_Warn( p_filter, "can't get output picture" ); picture_Release( p_pic ); return NULL; }