Mercurial > mplayer.hg
changeset 28944:cb18135338dd
Add chroma-deint option to vo vdpau (nochroma-deint speeds up deinterlacing).
author | cehoyos |
---|---|
date | Mon, 16 Mar 2009 23:03:18 +0000 |
parents | cf087cb82252 |
children | 486844bc3b84 |
files | DOCS/man/en/mplayer.1 libvo/vo_vdpau.c |
diffstat | 2 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1 Mon Mar 16 20:04:32 2009 +0000 +++ b/DOCS/man/en/mplayer.1 Mon Mar 16 23:03:18 2009 +0000 @@ -3474,6 +3474,11 @@ Motion adaptive temporal deinterlacing with edge-guided spatial interpolation (currently only working with software-decoded video). .RE +.IPs chroma\-deint +Makes temporal deinterlacers operate both on luma and chroma (default). +Use nochroma\-deint to solely use luma and speed up advanced deinterlacing. +Useful with slow video memory. +.RE .IPs pullup Try to apply inverse telecine, needs temporal deinterlacing. .RE
--- a/libvo/vo_vdpau.c Mon Mar 16 20:04:32 2009 +0000 +++ b/libvo/vo_vdpau.c Mon Mar 16 23:03:18 2009 +0000 @@ -157,6 +157,7 @@ static int pullup; static float denoise; static float sharpen; +static int chroma_deint; static int top_field_first; static VdpDecoder decoder; @@ -398,6 +399,9 @@ const void * const denoise_value[] = {&denoise}; static const VdpVideoMixerAttribute sharpen_attrib[] = {VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL}; const void * const sharpen_value[] = {&sharpen}; + static const VdpVideoMixerAttribute skip_chroma_attrib[] = {VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE}; + const uint8_t skip_chroma_value = 1; + const void * const skip_chroma_value_ptr[] = {&skip_chroma_value}; static const VdpVideoMixerParameter parameters[VDP_NUM_MIXER_PARAMETER] = { VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH, VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT, @@ -433,6 +437,8 @@ vdp_video_mixer_set_attribute_values(video_mixer, 1, denoise_attrib, denoise_value); if (sharpen) vdp_video_mixer_set_attribute_values(video_mixer, 1, sharpen_attrib, sharpen_value); + if (!chroma_deint) + vdp_video_mixer_set_attribute_values(video_mixer, 1, skip_chroma_attrib, skip_chroma_value_ptr); return 0; } @@ -964,6 +970,7 @@ static const opt_t subopts[] = { {"deint", OPT_ARG_INT, &deint, (opt_test_f)int_non_neg}, + {"chroma-deint", OPT_ARG_BOOL, &chroma_deint, NULL}, {"pullup", OPT_ARG_BOOL, &pullup, NULL}, {"denoise", OPT_ARG_FLOAT, &denoise, NULL}, {"sharpen", OPT_ARG_FLOAT, &sharpen, NULL}, @@ -980,6 +987,9 @@ " 2: bob deinterlacing (current fallback for hardware decoding)\n" " 3: temporal deinterlacing (only works with software codecs)\n" " 4: temporal-spatial deinterlacing (only works with software codecs)\n" + " chroma-deint\n" + " Operate on luma and chroma when using temporal deinterlacing (default)\n" + " Use nochroma-deint to speed up temporal deinterlacing\n" " pullup\n" " Try to apply inverse-telecine (needs temporal deinterlacing)\n" " denoise\n" @@ -997,6 +1007,7 @@ deint = 0; deint_type = 3; deint_counter = 0; + chroma_deint = 1; pullup = 0; denoise = 0; sharpen = 0;