summaryrefslogtreecommitdiffstats
path: root/libavfilter/avfilter.c
diff options
context:
space:
mode:
authorMichael Niedermayer <[email protected]>2013-03-20 21:41:22 +0100
committerMichael Niedermayer <[email protected]>2013-03-20 21:41:26 +0100
commit426ebdf923f9826e456bb734299fa2d2b6199524 (patch)
treef30fd4ac99579f87dec2bb4df06e30cbb0ee8859 /libavfilter/avfilter.c
parentb853103fe0e59edc8970462abc6c181610ad9216 (diff)
parent2753d4ebf067593070ca4e9b3ea1dbe6ace23ba3 (diff)
Merge remote-tracking branch 'cigaes/master'
* cigaes/master: lavfi/vf_yadif: use standard options parsing. lavfi/vf_unsharp: use standard options parsing. lavfi/vf_transpose: use standard options parsing. lavfi/vf_pad: use standard options parsing. lavfi/vf_fps: use standard options parsing. lavfi/vf_fade: use standard options parsing. lavi/vf_drawbox: use standard options parsing. lavfi/vf_delogo: use standard options parsing. lavfi/vf_decimate: use standard options parsing. lavfi/vf_crop: use standard options parsing. lavfi/af_volume: use standard options parsing. lavfi/vf_tile: use standard options parsing. lavfi/avf_concat: use standard options parsing. lavfi: add common code to handle options parsing. lavf/vobsub: free index pseudo-packet. ffmpeg: fix freeing of sub2video frame. lavfi: add sine audio source. lavu/opt: add AV_OPT_TYPE_DURATION. lavfi/concat: fix silence duration computation. lavf/concatdec: support seeking. Merged-by: Michael Niedermayer <[email protected]>
Diffstat (limited to 'libavfilter/avfilter.c')
-rw-r--r--libavfilter/avfilter.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 1d278178fe..8a907dc085 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -24,6 +24,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/imgutils.h"
+#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/rational.h"
#include "libavutil/samplefmt.h"
@@ -556,6 +557,8 @@ void avfilter_free(AVFilterContext *filter)
if (filter->filter->uninit)
filter->filter->uninit(filter);
+ if (filter->filter->shorthand)
+ av_opt_free(filter->priv);
for (i = 0; i < filter->nb_inputs; i++) {
if ((link = filter->inputs[i])) {
@@ -600,6 +603,17 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque
{
int ret=0;
+ if (filter->filter->shorthand) {
+ av_assert0(filter->priv);
+ av_assert0(filter->filter->priv_class);
+ *(const AVClass **)filter->priv = filter->filter->priv_class;
+ av_opt_set_defaults(filter->priv);
+ ret = av_opt_set_from_string(filter->priv, args,
+ filter->filter->shorthand, "=", ":");
+ if (ret < 0)
+ return ret;
+ args = NULL;
+ }
if (filter->filter->init_opaque)
ret = filter->filter->init_opaque(filter, args, opaque);
else if (filter->filter->init)