X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmisc%2Fes_format.c;h=d5eaa471f82ec94aca71863b0c710a8382366185;hb=abe9af559fb6df6931831e5ca757afb056669f7c;hp=e6a81cf95c08b7968339665c550281d076f26416;hpb=ec6a7b8ec1fc9f070d1d5242836b1d643f9f2dd8;p=vlc diff --git a/src/misc/es_format.c b/src/misc/es_format.c index e6a81cf95c..d5eaa471f8 100644 --- a/src/misc/es_format.c +++ b/src/misc/es_format.c @@ -128,6 +128,80 @@ void video_format_FixRgb( video_format_t *p_fmt ) p_fmt->i_bmask ); } +void video_format_Setup( video_format_t *p_fmt, vlc_fourcc_t i_chroma, int i_width, int i_height, int i_aspect ) +{ + p_fmt->i_chroma = vlc_fourcc_GetCodec( VIDEO_ES, i_chroma ); + p_fmt->i_width = + p_fmt->i_visible_width = i_width; + p_fmt->i_height = + p_fmt->i_visible_height = i_height; + p_fmt->i_x_offset = + p_fmt->i_y_offset = 0; + p_fmt->i_aspect = i_aspect; + + switch( p_fmt->i_chroma ) + { + case VLC_CODEC_YUVA: + p_fmt->i_bits_per_pixel = 32; + break; + case VLC_CODEC_I444: + case VLC_CODEC_J444: + p_fmt->i_bits_per_pixel = 24; + break; + case VLC_CODEC_I422: + case VLC_CODEC_YUYV: + case VLC_CODEC_YVYU: + case VLC_CODEC_UYVY: + case VLC_CODEC_VYUY: + case VLC_CODEC_J422: + p_fmt->i_bits_per_pixel = 16; + break; + case VLC_CODEC_I440: + case VLC_CODEC_J440: + p_fmt->i_bits_per_pixel = 16; + break; + case VLC_CODEC_I411: + case VLC_CODEC_YV12: + case VLC_CODEC_I420: + case VLC_CODEC_J420: + p_fmt->i_bits_per_pixel = 12; + break; + case VLC_CODEC_I410: + p_fmt->i_bits_per_pixel = 9; + break; + case VLC_CODEC_Y211: + p_fmt->i_bits_per_pixel = 8; + break; + case VLC_CODEC_YUVP: + p_fmt->i_bits_per_pixel = 8; + break; + + case VLC_CODEC_RGB32: + case VLC_CODEC_RGBA: + p_fmt->i_bits_per_pixel = 32; + break; + case VLC_CODEC_RGB24: + p_fmt->i_bits_per_pixel = 24; + break; + case VLC_CODEC_RGB15: + case VLC_CODEC_RGB16: + p_fmt->i_bits_per_pixel = 16; + break; + case VLC_CODEC_RGB8: + p_fmt->i_bits_per_pixel = 8; + break; + + case VLC_CODEC_GREY: + case VLC_CODEC_RGBP: + p_fmt->i_bits_per_pixel = 8; + break; + + default: + p_fmt->i_bits_per_pixel = 0; + break; + } +} + void es_format_Init( es_format_t *fmt, int i_cat, vlc_fourcc_t i_codec ) {