summaryrefslogtreecommitdiffstats
path: root/filters
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-10-02 21:09:30 +0200
committerwm4 <wm4@nowhere>2019-10-02 21:09:30 +0200
commit61961d03f6aed7eb77eca34840e90342b86e92c9 (patch)
tree351d87eb358834633206c93ff7ef3c5f2b1b9244 /filters
parent95e13e3d3e3f00ee574477e3abe3c2f497e341cb (diff)
downloadmpv-61961d03f6aed7eb77eca34840e90342b86e92c9.tar.bz2
mpv-61961d03f6aed7eb77eca34840e90342b86e92c9.tar.xz
filters: add another dumb helper
Can be used with mp_chain_filters() to combine multiple filters into a single one. This is a bit silly, but whatever. I'm making it an explicit separate filter, because it lets the user access mp_filter.ppins against all conventions.
Diffstat (limited to 'filters')
-rw-r--r--filters/f_utils.c16
-rw-r--r--filters/f_utils.h6
2 files changed, 22 insertions, 0 deletions
diff --git a/filters/f_utils.c b/filters/f_utils.c
index 826f527a0b..1b5b0e548e 100644
--- a/filters/f_utils.c
+++ b/filters/f_utils.c
@@ -178,6 +178,22 @@ struct mp_filter *mp_bidir_nop_filter_create(struct mp_filter *parent)
return f;
}
+static const struct mp_filter_info bidir_dummy_filter = {
+ .name = "dummy",
+};
+
+struct mp_filter *mp_bidir_dummy_filter_create(struct mp_filter *parent)
+{
+ struct mp_filter *f = mp_filter_create(parent, &bidir_dummy_filter);
+ if (!f)
+ return NULL;
+
+ mp_filter_add_pin(f, MP_PIN_IN, "in");
+ mp_filter_add_pin(f, MP_PIN_OUT, "out");
+
+ return f;
+}
+
struct fixed_aframe_size_priv {
int samples;
bool pad_silence;
diff --git a/filters/f_utils.h b/filters/f_utils.h
index 6ab288bcea..76f85baca6 100644
--- a/filters/f_utils.h
+++ b/filters/f_utils.h
@@ -71,6 +71,12 @@ bool mp_subfilter_drain_destroy(struct mp_subfilter *sub);
// A bidrectional filter which passes through all data.
struct mp_filter *mp_bidir_nop_filter_create(struct mp_filter *parent);
+// A bidrectional filter which does not connect its pins. Instead, the user is,
+// by convention, allowed to access the filter's private pins, and use them
+// freely. (This is sometimes convenient, such as when you need to pass a single
+// filter instance to other code, and you don't need a full "proper" filter.)
+struct mp_filter *mp_bidir_dummy_filter_create(struct mp_filter *parent);
+
// A filter which repacks audio frame to fixed frame sizes with the given
// number of samples. On hard format changes (sample format/channels/srate),
// the frame can be shorter, unless pad_silence is true. Fails on non-aframes.