X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcodec%2Frawvideo.c;h=dbb8fdeae64d095f89a0f5823168979a2887bab9;hb=f0582d9d61ddac10d431d61103eb5c49024094f1;hp=5691eb4cd1a6e3a82eaf5cba19a69e311ddd5bec;hpb=d466fd4185ffd791413658e948205e2676d2f470;p=vlc diff --git a/modules/codec/rawvideo.c b/modules/codec/rawvideo.c index 5691eb4cd1..dbb8fdeae6 100644 --- a/modules/codec/rawvideo.c +++ b/modules/codec/rawvideo.c @@ -92,9 +92,13 @@ static int OpenDecoder( vlc_object_t *p_this ) { /* Planar YUV */ case VLC_CODEC_I444: + case VLC_CODEC_J444: case VLC_CODEC_I422: + case VLC_CODEC_J422: case VLC_CODEC_I420: + case VLC_CODEC_J420: case VLC_CODEC_YV12: + case VLC_CODEC_YV9: case VLC_CODEC_I411: case VLC_CODEC_I410: case VLC_CODEC_GREY: @@ -161,8 +165,14 @@ static int OpenDecoder( vlc_object_t *p_this ) p_dec->fmt_in.video.i_height, p_dec->fmt_in.video.i_sar_num, p_dec->fmt_in.video.i_sar_den ); - p_sys->i_raw_size = p_dec->fmt_out.video.i_bits_per_pixel * - p_dec->fmt_out.video.i_width * p_dec->fmt_out.video.i_height / 8; + picture_t picture; + picture_Setup( &picture, p_dec->fmt_out.i_codec, + p_dec->fmt_in.video.i_width, + p_dec->fmt_in.video.i_height, 0, 1 ); + p_sys->i_raw_size = 0; + for( int i = 0; i < picture.i_planes; i++ ) + p_sys->i_raw_size += picture.p[i].i_visible_pitch * + picture.p[i].i_visible_lines; if( !p_dec->fmt_in.video.i_sar_num || !p_dec->fmt_in.video.i_sar_den ) {