#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_filter.h>
+#include <vlc_cpu.h>
#include "filter_picture.h"
#define Q_TEXT N_("Post processing quality")
#define Q_LONGTEXT N_( \
- "Quality of post processing. Valid range is 0 to 6\n" \
- "Higher levels require considerable more CPU power, but produce " \
- "better looking pictures." )
+ "Quality of post processing. Valid range is 0 (disabled) to 6 (highest)\n" \
+ "Higher levels require more CPU power, but produce higher quality pictures.\n" \
+ "With default filter chain, the values map to the following filters:\n" \
+ "1: hb, 2-4: hb+vb, 5-6: hb+vb+dr" )
#define NAME_TEXT N_("FFmpeg post processing filter chains")
#define NAME_LONGTEXT NAME_TEXT
vlc_module_begin ()
set_description( N_("Video post processing filter") )
set_shortname( N_("Postproc" ) )
- add_shortcut( "postprocess" ) /* name is "postproc" */
- add_shortcut( "pp" )
+ add_shortcut( "postprocess", "pp" ) /* name is "postproc" */
set_category( CAT_VIDEO )
set_subcategory( SUBCAT_VIDEO_VFILTER )
set_callbacks( OpenPostproc, ClosePostproc )
add_integer_with_range( FILTER_PREFIX "q", PP_QUALITY_MAX, 0,
- PP_QUALITY_MAX, NULL, Q_TEXT, Q_LONGTEXT, false )
- add_deprecated_alias( "ffmpeg-pp-q" )
+ PP_QUALITY_MAX, Q_TEXT, Q_LONGTEXT, false )
change_safe()
- add_string( FILTER_PREFIX "name", "default", NULL, NAME_TEXT,
+ add_string( FILTER_PREFIX "name", "default", NAME_TEXT,
NAME_LONGTEXT, true )
- add_deprecated_alias( "ffmpeg-pp-name" )
vlc_module_end ()
static const char *const ppsz_filter_options[] = {
struct filter_sys_t
{
/* Never changes after init */
- pp_context_t *pp_context;
+ pp_context *pp_context;
/* Set to NULL if post processing is disabled */
- pp_mode_t *pp_mode;
+ pp_mode *pp_mode;
/* Set to true if previous pic had a quant matrix
(used to prevent spamming warning messages) */
i_flags |= PP_FORMAT_420;
break;
default:
- msg_Err( p_filter, "Unsupported input chroma (%4s)",
+ msg_Err( p_filter, "Unsupported input chroma (%4.4s)",
(char*)&p_filter->fmt_in.video.i_chroma );
return VLC_EGENERIC;
}
config_ChainParse( p_filter, FILTER_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
- var_Create( p_filter, FILTER_PREFIX "q",
- VLC_VAR_INTEGER | VLC_VAR_HASCHOICE | VLC_VAR_DOINHERIT |
- VLC_VAR_ISCOMMAND );
- /* For some obscure reason the VLC_VAR_ISCOMMAND isn't taken into account
- in during var_Create */
- var_Change( p_filter, FILTER_PREFIX "q", VLC_VAR_SETISCOMMAND, NULL, NULL );
+ var_Create( p_filter, FILTER_PREFIX "q", VLC_VAR_INTEGER |
+ VLC_VAR_HASCHOICE | VLC_VAR_DOINHERIT | VLC_VAR_ISCOMMAND );
text.psz_string = _("Post processing");
var_Change( p_filter, FILTER_PREFIX "q", VLC_VAR_SETTEXT, &text, NULL );
{
msg_Err( p_filter, "Error while creating post processing mode." );
free( val.psz_string );
- var_Destroy( p_filter, FILTER_PREFIX "q" );
pp_free_context( p_sys->pp_context );
free( p_sys );
return VLC_EGENERIC;
vlc_mutex_lock( &p_sys->lock );
if( i_quality > 0 )
{
- pp_mode_t *pp_mode = pp_get_mode_by_name_and_quality( psz_name ?
+ pp_mode *pp_mode = pp_get_mode_by_name_and_quality( psz_name ?
psz_name :
"default",
i_quality );