mirror of https://github.com/mpv-player/mpv
vf_pp: use option parser
This commit is contained in:
parent
a605fae6fa
commit
fabfb23232
|
@ -177,7 +177,7 @@ Command Line Switches
|
|||
``-af volnorm`` ``--af=drc`` (renamed)
|
||||
``-zoom`` Inverse available as ``--video-unscaled``
|
||||
``-panscanrange`` ``--video-zoom``, ``--video-pan-x/y``
|
||||
``-pp`` ``-vf=pp``
|
||||
``-pp`` ``'--vf=[pp]'``
|
||||
``-pphelp`` ``--vf=pp:help``
|
||||
=========================== ========================================
|
||||
|
||||
|
|
|
@ -241,7 +241,7 @@ Available filters are:
|
|||
``<fmt>``
|
||||
Format name, e.g. rgb15, bgr24, 420p, etc. (default: 420p).
|
||||
|
||||
``pp[=filter1[:option1[:option2...]]/[-]filter2...]``
|
||||
``pp[=[filter1[:option1[:option2...]]/[-]filter2...]]``
|
||||
Enables the specified chain of postprocessing subfilters. Subfilters must
|
||||
be separated by '/' and can be disabled by prepending a '-'. Each
|
||||
subfilter and some options have a short and a long name that can be used
|
||||
|
@ -261,6 +261,11 @@ Available filters are:
|
|||
|
||||
``--vf=pp:help`` shows a list of available subfilters.
|
||||
|
||||
.. note::
|
||||
|
||||
Unlike in MPlayer or in earlier versions, you must quote the pp string
|
||||
if it contains ``:`` characters, e.g. ``'--vf=pp=[...]'``.
|
||||
|
||||
Available subfilters are:
|
||||
|
||||
``hb/hdeblock[:difference[:flatness]]``
|
||||
|
@ -373,10 +378,10 @@ Available filters are:
|
|||
``--vf=pp=de/-al``
|
||||
default filters without brightness/contrast correction
|
||||
|
||||
``--vf=pp=default/tmpnoise:1:2:3``
|
||||
``--vf=pp=[default/tmpnoise:1:2:3]``
|
||||
Enable default filters & temporal denoiser.
|
||||
|
||||
``--vf=pp=hb:y/vb:a``
|
||||
``--vf=pp=[hb:y/vb:a]``
|
||||
Horizontal deblocking on luminance only, and switch vertical
|
||||
deblocking on or off automatically depending on available CPU time.
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "config.h"
|
||||
#include "mpvcore/mp_msg.h"
|
||||
#include "mpvcore/cpudetect.h"
|
||||
#include "mpvcore/m_option.h"
|
||||
|
||||
#include "video/img_format.h"
|
||||
#include "video/mp_image.h"
|
||||
|
@ -37,6 +38,7 @@ struct vf_priv_s {
|
|||
pp_mode *ppMode[PP_QUALITY_MAX+1];
|
||||
void *context;
|
||||
unsigned int outfmt;
|
||||
char *arg;
|
||||
};
|
||||
|
||||
//===========================================================================//
|
||||
|
@ -132,17 +134,13 @@ static int vf_open(vf_instance_t *vf, char *args){
|
|||
vf->config=config;
|
||||
vf->filter=filter;
|
||||
vf->uninit=uninit;
|
||||
vf->priv=malloc(sizeof(struct vf_priv_s));
|
||||
vf->priv->context=NULL;
|
||||
|
||||
// check csp:
|
||||
vf->priv->outfmt=vf_match_csp(&vf->next,fmt_list,IMGFMT_420P);
|
||||
if(!vf->priv->outfmt) return 0; // no csp match :(
|
||||
|
||||
char *name = args ? args : "de";
|
||||
|
||||
for(i=0; i<=PP_QUALITY_MAX; i++){
|
||||
vf->priv->ppMode[i]= pp_get_mode_by_name_and_quality(name, i);
|
||||
vf->priv->ppMode[i]= pp_get_mode_by_name_and_quality(vf->priv->arg, i);
|
||||
if(vf->priv->ppMode[i]==NULL) return -1;
|
||||
}
|
||||
|
||||
|
@ -153,13 +151,24 @@ static int vf_open(vf_instance_t *vf, char *args){
|
|||
static void print_help(void)
|
||||
{
|
||||
mp_msg(MSGT_CFGPARSER, MSGL_INFO, "%s", pp_help);
|
||||
mp_msg(MSGT_CFGPARSER, MSGL_INFO,
|
||||
"Don't forget to quote the filter list, e.g.: '--vf=pp=[tn:64:128:256]'\n\n");
|
||||
}
|
||||
|
||||
#define OPT_BASE_STRUCT struct vf_priv_s
|
||||
const vf_info_t vf_info_pp = {
|
||||
.description = "postprocessing",
|
||||
.name = "pp",
|
||||
.open = vf_open,
|
||||
.print_help = print_help,
|
||||
.priv_size = sizeof(struct vf_priv_s),
|
||||
.priv_defaults = &(const struct vf_priv_s){
|
||||
.arg = "de",
|
||||
},
|
||||
.options = (const struct m_option[]){
|
||||
OPT_STRING("filters", arg, 0),
|
||||
{0}
|
||||
},
|
||||
};
|
||||
|
||||
//===========================================================================//
|
||||
|
|
Loading…
Reference in New Issue