summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorNicolas George <george@nsup.org>2020-08-14 11:21:39 +0200
committerNicolas George <george@nsup.org>2020-08-20 12:49:08 +0200
commitf103731e21e14efbc5efea32f1504eb99f45b10e (patch)
tree6bacf17a16c497e654a7a9568e5c608f8f0219ba /libavfilter
parent1f12b7b1d35e9b7f77fee1475883cae357ac50e1 (diff)
lavfi/buffersink: add a summary documentation of the API.
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/buffersink.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/libavfilter/buffersink.h b/libavfilter/buffersink.h
index c0e6b5386f..65d0cca747 100644
--- a/libavfilter/buffersink.h
+++ b/libavfilter/buffersink.h
@@ -31,6 +31,42 @@
* @defgroup lavfi_buffersink Buffer sink API
* @ingroup lavfi
* @{
+ *
+ * The buffersink and abuffersink filters are there to connect filter graphs
+ * to applications. They have a single input, connected to the graph, and no
+ * output. Frames must be extracted using av_buffersink_get_frame() or
+ * av_buffersink_get_samples().
+ *
+ * The format negotiated by the graph during configuration can be obtained
+ * using the accessor functions:
+ * - av_buffersink_get_time_base(),
+ * - av_buffersink_get_format(),
+ * - av_buffersink_get_frame_rate(),
+ * - av_buffersink_get_w(),
+ * - av_buffersink_get_h(),
+ * - av_buffersink_get_sample_aspect_ratio(),
+ * - av_buffersink_get_channels(),
+ * - av_buffersink_get_channel_layout(),
+ * - av_buffersink_get_sample_rate().
+ *
+ * The format can be constrained by setting options, using av_opt_set() and
+ * related functions with the AV_OPT_SEARCH_CHILDREN flag.
+ * - pix_fmts (int list),
+ * - sample_fmts (int list),
+ * - sample_rates (int list),
+ * - channel_layouts (int64_t),
+ * - channel_counts (int list),
+ * - all_channel_counts (bool).
+ * Most of these options are of type binary, and should be set using
+ * av_opt_set_int_list() or av_opt_set_bin(). If they are not set, all
+ * corresponding formats are accepted.
+ *
+ * As a special case, if neither channel_layouts nor channel_counts is set,
+ * all valid channel layouts are accepted, but channel counts without a
+ * layout are not, unless all_channel_counts is set.
+ * Also, channel_layouts must not contain a channel layout already accepted
+ * by a value in channel_counts; for example, if channel_counts contains 2,
+ * then channel_layouts must not contain stereo.
*/
/**