summaryrefslogtreecommitdiff
path: root/Externals/ffmpeg/dev/include
diff options
context:
space:
mode:
Diffstat (limited to 'Externals/ffmpeg/dev/include')
-rw-r--r--Externals/ffmpeg/dev/include/libavdevice/avdevice.h509
-rw-r--r--Externals/ffmpeg/dev/include/libavdevice/version.h50
-rw-r--r--Externals/ffmpeg/dev/include/libavfilter/asrc_abuffer.h91
-rw-r--r--Externals/ffmpeg/dev/include/libavfilter/avcodec.h69
-rw-r--r--Externals/ffmpeg/dev/include/libavfilter/avfilter.h1531
-rw-r--r--Externals/ffmpeg/dev/include/libavfilter/avfiltergraph.h28
-rw-r--r--Externals/ffmpeg/dev/include/libavfilter/buffersink.h204
-rw-r--r--Externals/ffmpeg/dev/include/libavfilter/buffersrc.h160
-rw-r--r--Externals/ffmpeg/dev/include/libavfilter/version.h80
-rw-r--r--Externals/ffmpeg/dev/include/libpostproc/postprocess.h107
-rw-r--r--Externals/ffmpeg/dev/include/libpostproc/version.h45
-rw-r--r--Externals/ffmpeg/dev/include/libswresample/swresample.h534
-rw-r--r--Externals/ffmpeg/dev/include/libswresample/version.h45
13 files changed, 0 insertions, 3453 deletions
diff --git a/Externals/ffmpeg/dev/include/libavdevice/avdevice.h b/Externals/ffmpeg/dev/include/libavdevice/avdevice.h
deleted file mode 100644
index 2d675b012d..0000000000
--- a/Externals/ffmpeg/dev/include/libavdevice/avdevice.h
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVDEVICE_AVDEVICE_H
-#define AVDEVICE_AVDEVICE_H
-
-#include "version.h"
-
-/**
- * @file
- * @ingroup lavd
- * Main libavdevice API header
- */
-
-/**
- * @defgroup lavd Special devices muxing/demuxing library
- * @{
- * Libavdevice is a complementary library to @ref libavf "libavformat". It
- * provides various "special" platform-specific muxers and demuxers, e.g. for
- * grabbing devices, audio capture and playback etc. As a consequence, the
- * (de)muxers in libavdevice are of the AVFMT_NOFILE type (they use their own
- * I/O functions). The filename passed to avformat_open_input() often does not
- * refer to an actually existing file, but has some special device-specific
- * meaning - e.g. for x11grab it is the display name.
- *
- * To use libavdevice, simply call avdevice_register_all() to register all
- * compiled muxers and demuxers. They all use standard libavformat API.
- * @}
- */
-
-#include "libavutil/log.h"
-#include "libavutil/opt.h"
-#include "libavutil/dict.h"
-#include "libavformat/avformat.h"
-
-/**
- * Return the LIBAVDEVICE_VERSION_INT constant.
- */
-unsigned avdevice_version(void);
-
-/**
- * Return the libavdevice build-time configuration.
- */
-const char *avdevice_configuration(void);
-
-/**
- * Return the libavdevice license.
- */
-const char *avdevice_license(void);
-
-/**
- * Initialize libavdevice and register all the input and output devices.
- * @warning This function is not thread safe.
- */
-void avdevice_register_all(void);
-
-/**
- * Audio input devices iterator.
- *
- * If d is NULL, returns the first registered input audio/video device,
- * if d is non-NULL, returns the next registered input audio/video device after d
- * or NULL if d is the last one.
- */
-AVInputFormat *av_input_audio_device_next(AVInputFormat *d);
-
-/**
- * Video input devices iterator.
- *
- * If d is NULL, returns the first registered input audio/video device,
- * if d is non-NULL, returns the next registered input audio/video device after d
- * or NULL if d is the last one.
- */
-AVInputFormat *av_input_video_device_next(AVInputFormat *d);
-
-/**
- * Audio output devices iterator.
- *
- * If d is NULL, returns the first registered output audio/video device,
- * if d is non-NULL, returns the next registered output audio/video device after d
- * or NULL if d is the last one.
- */
-AVOutputFormat *av_output_audio_device_next(AVOutputFormat *d);
-
-/**
- * Video output devices iterator.
- *
- * If d is NULL, returns the first registered output audio/video device,
- * if d is non-NULL, returns the next registered output audio/video device after d
- * or NULL if d is the last one.
- */
-AVOutputFormat *av_output_video_device_next(AVOutputFormat *d);
-
-typedef struct AVDeviceRect {
- int x; /**< x coordinate of top left corner */
- int y; /**< y coordinate of top left corner */
- int width; /**< width */
- int height; /**< height */
-} AVDeviceRect;
-
-/**
- * Message types used by avdevice_app_to_dev_control_message().
- */
-enum AVAppToDevMessageType {
- /**
- * Dummy message.
- */
- AV_APP_TO_DEV_NONE = MKBETAG('N','O','N','E'),
-
- /**
- * Window size change message.
- *
- * Message is sent to the device every time the application changes the size
- * of the window device renders to.
- * Message should also be sent right after window is created.
- *
- * data: AVDeviceRect: new window size.
- */
- AV_APP_TO_DEV_WINDOW_SIZE = MKBETAG('G','E','O','M'),
-
- /**
- * Repaint request message.
- *
- * Message is sent to the device when window has to be repainted.
- *
- * data: AVDeviceRect: area required to be repainted.
- * NULL: whole area is required to be repainted.
- */
- AV_APP_TO_DEV_WINDOW_REPAINT = MKBETAG('R','E','P','A'),
-
- /**
- * Request pause/play.
- *
- * Application requests pause/unpause playback.
- * Mostly usable with devices that have internal buffer.
- * By default devices are not paused.
- *
- * data: NULL
- */
- AV_APP_TO_DEV_PAUSE = MKBETAG('P', 'A', 'U', ' '),
- AV_APP_TO_DEV_PLAY = MKBETAG('P', 'L', 'A', 'Y'),
- AV_APP_TO_DEV_TOGGLE_PAUSE = MKBETAG('P', 'A', 'U', 'T'),
-
- /**
- * Volume control message.
- *
- * Set volume level. It may be device-dependent if volume
- * is changed per stream or system wide. Per stream volume
- * change is expected when possible.
- *
- * data: double: new volume with range of 0.0 - 1.0.
- */
- AV_APP_TO_DEV_SET_VOLUME = MKBETAG('S', 'V', 'O', 'L'),
-
- /**
- * Mute control messages.
- *
- * Change mute state. It may be device-dependent if mute status
- * is changed per stream or system wide. Per stream mute status
- * change is expected when possible.
- *
- * data: NULL.
- */
- AV_APP_TO_DEV_MUTE = MKBETAG(' ', 'M', 'U', 'T'),
- AV_APP_TO_DEV_UNMUTE = MKBETAG('U', 'M', 'U', 'T'),
- AV_APP_TO_DEV_TOGGLE_MUTE = MKBETAG('T', 'M', 'U', 'T'),
-
- /**
- * Get volume/mute messages.
- *
- * Force the device to send AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED or
- * AV_DEV_TO_APP_MUTE_STATE_CHANGED command respectively.
- *
- * data: NULL.
- */
- AV_APP_TO_DEV_GET_VOLUME = MKBETAG('G', 'V', 'O', 'L'),
- AV_APP_TO_DEV_GET_MUTE = MKBETAG('G', 'M', 'U', 'T'),
-};
-
-/**
- * Message types used by avdevice_dev_to_app_control_message().
- */
-enum AVDevToAppMessageType {
- /**
- * Dummy message.
- */
- AV_DEV_TO_APP_NONE = MKBETAG('N','O','N','E'),
-
- /**
- * Create window buffer message.
- *
- * Device requests to create a window buffer. Exact meaning is device-
- * and application-dependent. Message is sent before rendering first
- * frame and all one-shot initializations should be done here.
- * Application is allowed to ignore preferred window buffer size.
- *
- * @note: Application is obligated to inform about window buffer size
- * with AV_APP_TO_DEV_WINDOW_SIZE message.
- *
- * data: AVDeviceRect: preferred size of the window buffer.
- * NULL: no preferred size of the window buffer.
- */
- AV_DEV_TO_APP_CREATE_WINDOW_BUFFER = MKBETAG('B','C','R','E'),
-
- /**
- * Prepare window buffer message.
- *
- * Device requests to prepare a window buffer for rendering.
- * Exact meaning is device- and application-dependent.
- * Message is sent before rendering of each frame.
- *
- * data: NULL.
- */
- AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER = MKBETAG('B','P','R','E'),
-
- /**
- * Display window buffer message.
- *
- * Device requests to display a window buffer.
- * Message is sent when new frame is ready to be displayed.
- * Usually buffers need to be swapped in handler of this message.
- *
- * data: NULL.
- */
- AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER = MKBETAG('B','D','I','S'),
-
- /**
- * Destroy window buffer message.
- *
- * Device requests to destroy a window buffer.
- * Message is sent when device is about to be destroyed and window
- * buffer is not required anymore.
- *
- * data: NULL.
- */
- AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = MKBETAG('B','D','E','S'),
-
- /**
- * Buffer fullness status messages.
- *
- * Device signals buffer overflow/underflow.
- *
- * data: NULL.
- */
- AV_DEV_TO_APP_BUFFER_OVERFLOW = MKBETAG('B','O','F','L'),
- AV_DEV_TO_APP_BUFFER_UNDERFLOW = MKBETAG('B','U','F','L'),
-
- /**
- * Buffer readable/writable.
- *
- * Device informs that buffer is readable/writable.
- * When possible, device informs how many bytes can be read/write.
- *
- * @warning Device may not inform when number of bytes than can be read/write changes.
- *
- * data: int64_t: amount of bytes available to read/write.
- * NULL: amount of bytes available to read/write is not known.
- */
- AV_DEV_TO_APP_BUFFER_READABLE = MKBETAG('B','R','D',' '),
- AV_DEV_TO_APP_BUFFER_WRITABLE = MKBETAG('B','W','R',' '),
-
- /**
- * Mute state change message.
- *
- * Device informs that mute state has changed.
- *
- * data: int: 0 for not muted state, non-zero for muted state.
- */
- AV_DEV_TO_APP_MUTE_STATE_CHANGED = MKBETAG('C','M','U','T'),
-
- /**
- * Volume level change message.
- *
- * Device informs that volume level has changed.
- *
- * data: double: new volume with range of 0.0 - 1.0.
- */
- AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED = MKBETAG('C','V','O','L'),
-};
-
-/**
- * Send control message from application to device.
- *
- * @param s device context.
- * @param type message type.
- * @param data message data. Exact type depends on message type.
- * @param data_size size of message data.
- * @return >= 0 on success, negative on error.
- * AVERROR(ENOSYS) when device doesn't implement handler of the message.
- */
-int avdevice_app_to_dev_control_message(struct AVFormatContext *s,
- enum AVAppToDevMessageType type,
- void *data, size_t data_size);
-
-/**
- * Send control message from device to application.
- *
- * @param s device context.
- * @param type message type.
- * @param data message data. Can be NULL.
- * @param data_size size of message data.
- * @return >= 0 on success, negative on error.
- * AVERROR(ENOSYS) when application doesn't implement handler of the message.
- */
-int avdevice_dev_to_app_control_message(struct AVFormatContext *s,
- enum AVDevToAppMessageType type,
- void *data, size_t data_size);
-
-/**
- * Following API allows user to probe device capabilities (supported codecs,
- * pixel formats, sample formats, resolutions, channel counts, etc).
- * It is build on top op AVOption API.
- * Queried capabilities allows to set up converters of video or audio
- * parameters that fit to the device.
- *
- * List of capabilities that can be queried:
- * - Capabilities valid for both audio and video devices:
- * - codec: supported audio/video codecs.
- * type: AV_OPT_TYPE_INT (AVCodecID value)
- * - Capabilities valid for audio devices:
- * - sample_format: supported sample formats.
- * type: AV_OPT_TYPE_INT (AVSampleFormat value)
- * - sample_rate: supported sample rates.
- * type: AV_OPT_TYPE_INT
- * - channels: supported number of channels.
- * type: AV_OPT_TYPE_INT
- * - channel_layout: supported channel layouts.
- * type: AV_OPT_TYPE_INT64
- * - Capabilities valid for video devices:
- * - pixel_format: supported pixel formats.
- * type: AV_OPT_TYPE_INT (AVPixelFormat value)
- * - window_size: supported window sizes (describes size of the window size presented to the user).
- * type: AV_OPT_TYPE_IMAGE_SIZE
- * - frame_size: supported frame sizes (describes size of provided video frames).
- * type: AV_OPT_TYPE_IMAGE_SIZE
- * - fps: supported fps values
- * type: AV_OPT_TYPE_RATIONAL
- *
- * Value of the capability may be set by user using av_opt_set() function
- * and AVDeviceCapabilitiesQuery object. Following queries will
- * limit results to the values matching already set capabilities.
- * For example, setting a codec may impact number of formats or fps values
- * returned during next query. Setting invalid value may limit results to zero.
- *
- * Example of the usage basing on opengl output device:
- *
- * @code
- * AVFormatContext *oc = NULL;
- * AVDeviceCapabilitiesQuery *caps = NULL;
- * AVOptionRanges *ranges;
- * int ret;
- *
- * if ((ret = avformat_alloc_output_context2(&oc, NULL, "opengl", NULL)) < 0)
- * goto fail;
- * if (avdevice_capabilities_create(&caps, oc, NULL) < 0)
- * goto fail;
- *
- * //query codecs
- * if (av_opt_query_ranges(&ranges, caps, "codec", AV_OPT_MULTI_COMPONENT_RANGE)) < 0)
- * goto fail;
- * //pick codec here and set it
- * av_opt_set(caps, "codec", AV_CODEC_ID_RAWVIDEO, 0);
- *
- * //query format
- * if (av_opt_query_ranges(&ranges, caps, "pixel_format", AV_OPT_MULTI_COMPONENT_RANGE)) < 0)
- * goto fail;
- * //pick format here and set it
- * av_opt_set(caps, "pixel_format", AV_PIX_FMT_YUV420P, 0);
- *
- * //query and set more capabilities
- *
- * fail:
- * //clean up code
- * avdevice_capabilities_free(&query, oc);
- * avformat_free_context(oc);
- * @endcode
- */
-
-/**
- * Structure describes device capabilities.
- *
- * It is used by devices in conjunction with av_device_capabilities AVOption table
- * to implement capabilities probing API based on AVOption API. Should not be used directly.
- */
-typedef struct AVDeviceCapabilitiesQuery {
- const AVClass *av_class;
- AVFormatContext *device_context;
- enum AVCodecID codec;
- enum AVSampleFormat sample_format;
- enum AVPixelFormat pixel_format;
- int sample_rate;
- int channels;
- int64_t channel_layout;
- int window_width;
- int window_height;
- int frame_width;
- int frame_height;
- AVRational fps;
-} AVDeviceCapabilitiesQuery;
-
-/**
- * AVOption table used by devices to implement device capabilities API. Should not be used by a user.
- */
-extern const AVOption av_device_capabilities[];
-
-/**
- * Initialize capabilities probing API based on AVOption API.
- *
- * avdevice_capabilities_free() must be called when query capabilities API is
- * not used anymore.
- *
- * @param[out] caps Device capabilities data. Pointer to a NULL pointer must be passed.
- * @param s Context of the device.
- * @param device_options An AVDictionary filled with device-private options.
- * On return this parameter will be destroyed and replaced with a dict
- * containing options that were not found. May be NULL.
- * The same options must be passed later to avformat_write_header() for output
- * devices or avformat_open_input() for input devices, or at any other place
- * that affects device-private options.
- *
- * @return >= 0 on success, negative otherwise.
- */
-int avdevice_capabilities_create(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s,
- AVDictionary **device_options);
-
-/**
- * Free resources created by avdevice_capabilities_create()
- *
- * @param caps Device capabilities data to be freed.
- * @param s Context of the device.
- */
-void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s);
-
-/**
- * Structure describes basic parameters of the device.
- */
-typedef struct AVDeviceInfo {
- char *device_name; /**< device name, format depends on device */
- char *device_description; /**< human friendly name */
-} AVDeviceInfo;
-
-/**
- * List of devices.
- */
-typedef struct AVDeviceInfoList {
- AVDeviceInfo **devices; /**< list of autodetected devices */
- int nb_devices; /**< number of autodetected devices */
- int default_device; /**< index of default device or -1 if no default */
-} AVDeviceInfoList;
-
-/**
- * List devices.
- *
- * Returns available device names and their parameters.
- *
- * @note: Some devices may accept system-dependent device names that cannot be
- * autodetected. The list returned by this function cannot be assumed to
- * be always completed.
- *
- * @param s device context.
- * @param[out] device_list list of autodetected devices.
- * @return count of autodetected devices, negative on error.
- */
-int avdevice_list_devices(struct AVFormatContext *s, AVDeviceInfoList **device_list);
-
-/**
- * Convenient function to free result of avdevice_list_devices().
- *
- * @param devices device list to be freed.
- */
-void avdevice_free_list_devices(AVDeviceInfoList **device_list);
-
-/**
- * List devices.
- *
- * Returns available device names and their parameters.
- * These are convinient wrappers for avdevice_list_devices().
- * Device context is allocated and deallocated internally.
- *
- * @param device device format. May be NULL if device name is set.
- * @param device_name device name. May be NULL if device format is set.
- * @param device_options An AVDictionary filled with device-private options. May be NULL.
- * The same options must be passed later to avformat_write_header() for output
- * devices or avformat_open_input() for input devices, or at any other place
- * that affects device-private options.
- * @param[out] device_list list of autodetected devices
- * @return count of autodetected devices, negative on error.
- * @note device argument takes precedence over device_name when both are set.
- */
-int avdevice_list_input_sources(struct AVInputFormat *device, const char *device_name,
- AVDictionary *device_options, AVDeviceInfoList **device_list);
-int avdevice_list_output_sinks(struct AVOutputFormat *device, const char *device_name,
- AVDictionary *device_options, AVDeviceInfoList **device_list);
-
-#endif /* AVDEVICE_AVDEVICE_H */
diff --git a/Externals/ffmpeg/dev/include/libavdevice/version.h b/Externals/ffmpeg/dev/include/libavdevice/version.h
deleted file mode 100644
index 8de07f08b2..0000000000
--- a/Externals/ffmpeg/dev/include/libavdevice/version.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVDEVICE_VERSION_H
-#define AVDEVICE_VERSION_H
-
-/**
- * @file
- * @ingroup lavd
- * Libavdevice version macros
- */
-
-#include "libavutil/version.h"
-
-#define LIBAVDEVICE_VERSION_MAJOR 56
-#define LIBAVDEVICE_VERSION_MINOR 4
-#define LIBAVDEVICE_VERSION_MICRO 100
-
-#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
- LIBAVDEVICE_VERSION_MINOR, \
- LIBAVDEVICE_VERSION_MICRO)
-#define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \
- LIBAVDEVICE_VERSION_MINOR, \
- LIBAVDEVICE_VERSION_MICRO)
-#define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT
-
-#define LIBAVDEVICE_IDENT "Lavd" AV_STRINGIFY(LIBAVDEVICE_VERSION)
-
-/**
- * FF_API_* defines may be placed below to indicate public API that will be
- * dropped at a future version bump. The defines themselves are not part of
- * the public API and may change, break or disappear at any time.
- */
-
-#endif /* AVDEVICE_VERSION_H */
diff --git a/Externals/ffmpeg/dev/include/libavfilter/asrc_abuffer.h b/Externals/ffmpeg/dev/include/libavfilter/asrc_abuffer.h
deleted file mode 100644
index aa3446166f..0000000000
--- a/Externals/ffmpeg/dev/include/libavfilter/asrc_abuffer.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_ASRC_ABUFFER_H
-#define AVFILTER_ASRC_ABUFFER_H
-
-#include "avfilter.h"
-
-/**
- * @file
- * memory buffer source for audio
- *
- * @deprecated use buffersrc.h instead.
- */
-
-/**
- * Queue an audio buffer to the audio buffer source.
- *
- * @param abuffersrc audio source buffer context
- * @param data pointers to the samples planes
- * @param linesize linesizes of each audio buffer plane
- * @param nb_samples number of samples per channel
- * @param sample_fmt sample format of the audio data
- * @param ch_layout channel layout of the audio data
- * @param planar flag to indicate if audio data is planar or packed
- * @param pts presentation timestamp of the audio buffer
- * @param flags unused
- *
- * @deprecated use av_buffersrc_add_ref() instead.
- */
-attribute_deprecated
-int av_asrc_buffer_add_samples(AVFilterContext *abuffersrc,
- uint8_t *data[8], int linesize[8],
- int nb_samples, int sample_rate,
- int sample_fmt, int64_t ch_layout, int planar,
- int64_t pts, int av_unused flags);
-
-/**
- * Queue an audio buffer to the audio buffer source.
- *
- * This is similar to av_asrc_buffer_add_samples(), but the samples
- * are stored in a buffer with known size.
- *
- * @param abuffersrc audio source buffer context
- * @param buf pointer to the samples data, packed is assumed
- * @param size the size in bytes of the buffer, it must contain an
- * integer number of samples
- * @param sample_fmt sample format of the audio data
- * @param ch_layout channel layout of the audio data
- * @param pts presentation timestamp of the audio buffer
- * @param flags unused
- *
- * @deprecated use av_buffersrc_add_ref() instead.
- */
-attribute_deprecated
-int av_asrc_buffer_add_buffer(AVFilterContext *abuffersrc,
- uint8_t *buf, int buf_size,
- int sample_rate,
- int sample_fmt, int64_t ch_layout, int planar,
- int64_t pts, int av_unused flags);
-
-/**
- * Queue an audio buffer to the audio buffer source.
- *
- * @param abuffersrc audio source buffer context
- * @param samplesref buffer ref to queue
- * @param flags unused
- *
- * @deprecated use av_buffersrc_add_ref() instead.
- */
-attribute_deprecated
-int av_asrc_buffer_add_audio_buffer_ref(AVFilterContext *abuffersrc,
- AVFilterBufferRef *samplesref,
- int av_unused flags);
-
-#endif /* AVFILTER_ASRC_ABUFFER_H */
diff --git a/Externals/ffmpeg/dev/include/libavfilter/avcodec.h b/Externals/ffmpeg/dev/include/libavfilter/avcodec.h
deleted file mode 100644
index d3d0e20e71..0000000000
--- a/Externals/ffmpeg/dev/include/libavfilter/avcodec.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_AVCODEC_H
-#define AVFILTER_AVCODEC_H
-
-/**
- * @file
- * libavcodec/libavfilter gluing utilities
- *
- * This should be included in an application ONLY if the installed
- * libavfilter has been compiled with libavcodec support, otherwise
- * symbols defined below will not be available.
- */
-
-#include "avfilter.h"
-
-#if FF_API_AVFILTERBUFFER
-/**
- * Create and return a picref reference from the data and properties
- * contained in frame.
- *
- * @param perms permissions to assign to the new buffer reference
- * @deprecated avfilter APIs work natively with AVFrame instead.
- */
-attribute_deprecated
-AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms);
-
-
-/**
- * Create and return a picref reference from the data and properties
- * contained in frame.
- *
- * @param perms permissions to assign to the new buffer reference
- * @deprecated avfilter APIs work natively with AVFrame instead.
- */
-attribute_deprecated
-AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_frame(const AVFrame *frame,
- int perms);
-
-/**
- * Create and return a buffer reference from the data and properties
- * contained in frame.
- *
- * @param perms permissions to assign to the new buffer reference
- * @deprecated avfilter APIs work natively with AVFrame instead.
- */
-attribute_deprecated
-AVFilterBufferRef *avfilter_get_buffer_ref_from_frame(enum AVMediaType type,
- const AVFrame *frame,
- int perms);
-#endif
-
-#endif /* AVFILTER_AVCODEC_H */
diff --git a/Externals/ffmpeg/dev/include/libavfilter/avfilter.h b/Externals/ffmpeg/dev/include/libavfilter/avfilter.h
deleted file mode 100644
index b5220b96d9..0000000000
--- a/Externals/ffmpeg/dev/include/libavfilter/avfilter.h
+++ /dev/null
@@ -1,1531 +0,0 @@
-/*
- * filter layer
- * Copyright (c) 2007 Bobby Bingham
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_AVFILTER_H
-#define AVFILTER_AVFILTER_H
-
-/**
- * @file
- * @ingroup lavfi
- * Main libavfilter public API header
- */
-
-/**
- * @defgroup lavfi Libavfilter - graph-based frame editing library
- * @{
- */
-
-#include <stddef.h>
-
-#include "libavutil/attributes.h"
-#include "libavutil/avutil.h"
-#include "libavutil/dict.h"
-#include "libavutil/frame.h"
-#include "libavutil/log.h"
-#include "libavutil/samplefmt.h"
-#include "libavutil/pixfmt.h"
-#include "libavutil/rational.h"
-
-#include "libavfilter/version.h"
-
-/**
- * Return the LIBAVFILTER_VERSION_INT constant.
- */
-unsigned avfilter_version(void);
-
-/**
- * Return the libavfilter build-time configuration.
- */
-const char *avfilter_configuration(void);
-
-/**
- * Return the libavfilter license.
- */
-const char *avfilter_license(void);
-
-typedef struct AVFilterContext AVFilterContext;
-typedef struct AVFilterLink AVFilterLink;
-typedef struct AVFilterPad AVFilterPad;
-typedef struct AVFilterFormats AVFilterFormats;
-
-#if FF_API_AVFILTERBUFFER
-/**
- * A reference-counted buffer data type used by the filter system. Filters
- * should not store pointers to this structure directly, but instead use the
- * AVFilterBufferRef structure below.
- */
-typedef struct AVFilterBuffer {
- uint8_t *data[8]; ///< buffer data for each plane/channel
-
- /**
- * pointers to the data planes/channels.
- *
- * For video, this should simply point to data[].
- *
- * For planar audio, each channel has a separate data pointer, and
- * linesize[0] contains the size of each channel buffer.
- * For packed audio, there is just one data pointer, and linesize[0]
- * contains the total size of the buffer for all channels.
- *
- * Note: Both data and extended_data will always be set, but for planar
- * audio with more channels that can fit in data, extended_data must be used
- * in order to access all channels.
- */
- uint8_t **extended_data;
- int linesize[8]; ///< number of bytes per line
-
- /** private data to be used by a custom free function */
- void *priv;
- /**
- * A pointer to the function to deallocate this buffer if the default
- * function is not sufficient. This could, for example, add the memory
- * back into a memory pool to be reused later without the overhead of
- * reallocating it from scratch.
- */
- void (*free)(struct AVFilterBuffer *buf);
-
- int format; ///< media format
- int w, h; ///< width and height of the allocated buffer
- unsigned refcount; ///< number of references to this buffer
-} AVFilterBuffer;
-
-#define AV_PERM_READ 0x01 ///< can read from the buffer
-#define AV_PERM_WRITE 0x02 ///< can write to the buffer
-#define AV_PERM_PRESERVE 0x04 ///< nobody else can overwrite the buffer
-#define AV_PERM_REUSE 0x08 ///< can output the buffer multiple times, with the same contents each time
-#define AV_PERM_REUSE2 0x10 ///< can output the buffer multiple times, modified each time
-#define AV_PERM_NEG_LINESIZES 0x20 ///< the buffer requested can have negative linesizes
-#define AV_PERM_ALIGN 0x40 ///< the buffer must be aligned
-
-#define AVFILTER_ALIGN 16 //not part of ABI
-
-/**
- * Audio specific properties in a reference to an AVFilterBuffer. Since
- * AVFilterBufferRef is common to different media formats, audio specific
- * per reference properties must be separated out.
- */
-typedef struct AVFilterBufferRefAudioProps {
- uint64_t channel_layout; ///< channel layout of audio buffer
- int nb_samples; ///< number of audio samples per channel
- int sample_rate; ///< audio buffer sample rate
- int channels; ///< number of channels (do not access directly)
-} AVFilterBufferRefAudioProps;
-
-/**
- * Video specific properties in a reference to an AVFilterBuffer. Since
- * AVFilterBufferRef is common to different media formats, video specific
- * per reference properties must be separated out.
- */
-typedef struct AVFilterBufferRefVideoProps {
- int w; ///< image width
- int h; ///< image height
- AVRational sample_aspect_ratio; ///< sample aspect ratio
- int interlaced; ///< is frame interlaced
- int top_field_first; ///< field order
- enum AVPictureType pict_type; ///< picture type of the frame
- int key_frame; ///< 1 -> keyframe, 0-> not
- int qp_table_linesize; ///< qp_table stride
- int qp_table_size; ///< qp_table size
- int8_t *qp_table; ///< array of Quantization Parameters
-} AVFilterBufferRefVideoProps;
-
-/**
- * A reference to an AVFilterBuffer. Since filters can manipulate the origin of
- * a buffer to, for example, crop image without any memcpy, the buffer origin
- * and dimensions are per-reference properties. Linesize is also useful for
- * image flipping, frame to field filters, etc, and so is also per-reference.
- *
- * TODO: add anything necessary for frame reordering
- */
-typedef struct AVFilterBufferRef {
- AVFilterBuffer *buf; ///< the buffer that this is a reference to
- uint8_t *data[8]; ///< picture/audio data for each plane
- /**
- * pointers to the data planes/channels.
- *
- * For video, this should simply point to data[].
- *
- * For planar audio, each channel has a separate data pointer, and
- * linesize[0] contains the size of each channel buffer.
- * For packed audio, there is just one data pointer, and linesize[0]
- * contains the total size of the buffer for all channels.
- *
- * Note: Both data and extended_data will always be set, but for planar
- * audio with more channels that can fit in data, extended_data must be used
- * in order to access all channels.
- */
- uint8_t **extended_data;
- int linesize[8]; ///< number of bytes per line
-
- AVFilterBufferRefVideoProps *video; ///< video buffer specific properties
- AVFilterBufferRefAudioProps *audio; ///< audio buffer specific properties
-
- /**
- * presentation timestamp. The time unit may change during
- * filtering, as it is specified in the link and the filter code
- * may need to rescale the PTS accordingly.
- */
- int64_t pts;
- int64_t pos; ///< byte position in stream, -1 if unknown
-
- int format; ///< media format
-
- int perms; ///< permissions, see the AV_PERM_* flags
-
- enum AVMediaType type; ///< media type of buffer data
-
- AVDictionary *metadata; ///< dictionary containing metadata key=value tags
-} AVFilterBufferRef;
-
-/**
- * Copy properties of src to dst, without copying the actual data
- */
-attribute_deprecated
-void avfilter_copy_buffer_ref_props(AVFilterBufferRef *dst, const AVFilterBufferRef *src);
-
-/**
- * Add a new reference to a buffer.
- *
- * @param ref an existing reference to the buffer
- * @param pmask a bitmask containing the allowable permissions in the new
- * reference
- * @return a new reference to the buffer with the same properties as the
- * old, excluding any permissions denied by pmask
- */
-attribute_deprecated
-AVFilterBufferRef *avfilter_ref_buffer(AVFilterBufferRef *ref, int pmask);
-
-/**
- * Remove a reference to a buffer. If this is the last reference to the
- * buffer, the buffer itself is also automatically freed.
- *
- * @param ref reference to the buffer, may be NULL
- *
- * @note it is recommended to use avfilter_unref_bufferp() instead of this
- * function
- */
-attribute_deprecated
-void avfilter_unref_buffer(AVFilterBufferRef *ref);
-
-/**
- * Remove a reference to a buffer and set the pointer to NULL.
- * If this is the last reference to the buffer, the buffer itself
- * is also automatically freed.
- *
- * @param ref pointer to the buffer reference
- */
-attribute_deprecated
-void avfilter_unref_bufferp(AVFilterBufferRef **ref);
-#endif
-
-/**
- * Get the number of channels of a buffer reference.
- */
-attribute_deprecated
-int avfilter_ref_get_channels(AVFilterBufferRef *ref);
-
-#if FF_API_AVFILTERPAD_PUBLIC
-/**
- * A filter pad used for either input or output.
- *
- * See doc/filter_design.txt for details on how to implement the methods.
- *
- * @warning this struct might be removed from public API.
- * users should call avfilter_pad_get_name() and avfilter_pad_get_type()
- * to access the name and type fields; there should be no need to access
- * any other fields from outside of libavfilter.
- */
-struct AVFilterPad {
- /**
- * Pad name. The name is unique among inputs and among outputs, but an
- * input may have the same name as an output. This may be NULL if this
- * pad has no need to ever be referenced by name.
- */
- const char *name;
-
- /**
- * AVFilterPad type.
- */
- enum AVMediaType type;
-
- /**
- * Input pads:
- * Minimum required permissions on incoming buffers. Any buffer with
- * insufficient permissions will be automatically copied by the filter
- * system to a new buffer which provides the needed access permissions.
- *
- * Output pads:
- * Guaranteed permissions on outgoing buffers. Any buffer pushed on the
- * link must have at least these permissions; this fact is checked by
- * asserts. It can be used to optimize buffer allocation.
- */
- attribute_deprecated int min_perms;
-
- /**
- * Input pads:
- * Permissions which are not accepted on incoming buffers. Any buffer
- * which has any of these permissions set will be automatically copied
- * by the filter system to a new buffer which does not have those
- * permissions. This can be used to easily disallow buffers with
- * AV_PERM_REUSE.
- *
- * Output pads:
- * Permissions which are automatically removed on outgoing buffers. It
- * can be used to optimize buffer allocation.
- */
- attribute_deprecated int rej_perms;
-
- /**
- * @deprecated unused
- */
- int (*start_frame)(AVFilterLink *link, AVFilterBufferRef *picref);
-
- /**
- * Callback function to get a video buffer. If NULL, the filter system will
- * use ff_default_get_video_buffer().
- *
- * Input video pads only.
- */
- AVFrame *(*get_video_buffer)(AVFilterLink *link, int w, int h);
-
- /**
- * Callback function to get an audio buffer. If NULL, the filter system will
- * use ff_default_get_audio_buffer().
- *
- * Input audio pads only.
- */
- AVFrame *(*get_audio_buffer)(AVFilterLink *link, int nb_samples);
-
- /**
- * @deprecated unused
- */
- int (*end_frame)(AVFilterLink *link);
-
- /**
- * @deprecated unused
- */
- int (*draw_slice)(AVFilterLink *link, int y, int height, int slice_dir);
-
- /**
- * Filtering callback. This is where a filter receives a frame with
- * audio/video data and should do its processing.
- *
- * Input pads only.
- *
- * @return >= 0 on success, a negative AVERROR on error. This function
- * must ensure that frame is properly unreferenced on error if it
- * hasn't been passed on to another filter.
- */
- int (*filter_frame)(AVFilterLink *link, AVFrame *frame);
-
- /**
- * Frame poll callback. This returns the number of immediately available
- * samples. It should return a positive value if the next request_frame()
- * is guaranteed to return one frame (with no delay).
- *
- * Defaults to just calling the source poll_frame() method.
- *
- * Output pads only.
- */
- int (*poll_frame)(AVFilterLink *link);
-
- /**
- * Frame request callback. A call to this should result in at least one
- * frame being output over the given link. This should return zero on
- * success, and another value on error.
- * See ff_request_frame() for the error codes with a specific
- * meaning.
- *
- * Output pads only.
- */
- int (*request_frame)(AVFilterLink *link);
-
- /**
- * Link configuration callback.
- *
- * For output pads, this should set the following link properties:
- * video: width, height, sample_aspect_ratio, time_base
- * audio: sample_rate.
- *
- * This should NOT set properties such as format, channel_layout, etc which
- * are negotiated between filters by the filter system using the
- * query_formats() callback before this function is called.
- *
- * For input pads, this should check the properties of the link, and update
- * the filter's internal state as necessary.
- *
- * For both input and output pads, this should return zero on success,
- * and another value on error.
- */
- int (*config_props)(AVFilterLink *link);
-
- /**
- * The filter expects a fifo to be inserted on its input link,
- * typically because it has a delay.
- *
- * input pads only.
- */
- int needs_fifo;
-
- /**
- * The filter expects writable frames from its input link,
- * duplicating data buffers if needed.
- *
- * input pads only.
- */
- int needs_writable;
-};
-#endif
-
-/**
- * Get the number of elements in a NULL-terminated array of AVFilterPads (e.g.
- * AVFilter.inputs/outputs).
- */
-int avfilter_pad_count(const AVFilterPad *pads);
-
-/**
- * Get the name of an AVFilterPad.
- *
- * @param pads an array of AVFilterPads
- * @param pad_idx index of the pad in the array it; is the caller's
- * responsibility to ensure the index is valid
- *
- * @return name of the pad_idx'th pad in pads
- */
-const char *avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx);
-
-/**
- * Get the type of an AVFilterPad.
- *
- * @param pads an array of AVFilterPads
- * @param pad_idx index of the pad in the array; it is the caller's
- * responsibility to ensure the index is valid
- *
- * @return type of the pad_idx'th pad in pads
- */
-enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx);
-
-/**
- * The number of the filter inputs is not determined just by AVFilter.inputs.
- * The filter might add additional inputs during initialization depending on the
- * options supplied to it.
- */
-#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0)
-/**
- * The number of the filter outputs is not determined just by AVFilter.outputs.
- * The filter might add additional outputs during initialization depending on
- * the options supplied to it.
- */
-#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1)
-/**
- * The filter supports multithreading by splitting frames into multiple parts
- * and processing them concurrently.
- */
-#define AVFILTER_FLAG_SLICE_THREADS (1 << 2)
-/**
- * Some filters support a generic "enable" expression option that can be used
- * to enable or disable a filter in the timeline. Filters supporting this
- * option have this flag set. When the enable expression is false, the default
- * no-op filter_frame() function is called in place of the filter_frame()
- * callback defined on each input pad, thus the frame is passed unchanged to
- * the next filters.
- */
-#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16)
-/**
- * Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will
- * have its filter_frame() callback(s) called as usual even when the enable
- * expression is false. The filter will disable filtering within the
- * filter_frame() callback(s) itself, for example executing code depending on
- * the AVFilterContext->is_disabled value.
- */
-#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17)
-/**
- * Handy mask to test whether the filter supports or no the timeline feature
- * (internally or generically).
- */
-#define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL)
-
-/**
- * Filter definition. This defines the pads a filter contains, and all the
- * callback functions used to interact with the filter.
- */
-typedef struct AVFilter {
- /**
- * Filter name. Must be non-NULL and unique among filters.
- */
- const char *name;
-
- /**
- * A description of the filter. May be NULL.
- *
- * You should use the NULL_IF_CONFIG_SMALL() macro to define it.
- */
- const char *description;
-
- /**
- * List of inputs, terminated by a zeroed element.
- *
- * NULL if there are no (static) inputs. Instances of filters with
- * AVFILTER_FLAG_DYNAMIC_INPUTS set may have more inputs than present in
- * this list.
- */
- const AVFilterPad *inputs;
- /**
- * List of outputs, terminated by a zeroed element.
- *
- * NULL if there are no (static) outputs. Instances of filters with
- * AVFILTER_FLAG_DYNAMIC_OUTPUTS set may have more outputs than present in
- * this list.
- */
- const AVFilterPad *outputs;
-
- /**
- * A class for the private data, used to declare filter private AVOptions.
- * This field is NULL for filters that do not declare any options.
- *
- * If this field is non-NULL, the first member of the filter private data
- * must be a pointer to AVClass, which will be set by libavfilter generic
- * code to this class.
- */
- const AVClass *priv_class;
-
- /**
- * A combination of AVFILTER_FLAG_*
- */
- int flags;
-
- /*****************************************************************
- * All fields below this line are not part of the public API. They
- * may not be used outside of libavfilter and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
-
- /**
- * Filter initialization function.
- *
- * This callback will be called only once during the filter lifetime, after
- * all the options have been set, but before links between filters are
- * established and format negotiation is done.
- *
- * Basic filter initialization should be done here. Filters with dynamic
- * inputs and/or outputs should create those inputs/outputs here based on
- * provided options. No more changes to this filter's inputs/outputs can be
- * done after this callback.
- *
- * This callback must not assume that the filter links exist or frame
- * parameters are known.
- *
- * @ref AVFilter.uninit "uninit" is guaranteed to be called even if
- * initialization fails, so this callback does not have to clean up on
- * failure.
- *
- * @return 0 on success, a negative AVERROR on failure
- */
- int (*init)(AVFilterContext *ctx);
-
- /**
- * Should be set instead of @ref AVFilter.init "init" by the filters that
- * want to pass a dictionary of AVOptions to nested contexts that are
- * allocated during init.
- *
- * On return, the options dict should be freed and replaced with one that
- * contains all the options which could not be processed by this filter (or
- * with NULL if all the options were processed).
- *
- * Otherwise the semantics is the same as for @ref AVFilter.init "init".
- */
- int (*init_dict)(AVFilterContext *ctx, AVDictionary **options);
-
- /**
- * Filter uninitialization function.
- *
- * Called only once right before the filter is freed. Should deallocate any
- * memory held by the filter, release any buffer references, etc. It does
- * not need to deallocate the AVFilterContext.priv memory itself.
- *
- * This callback may be called even if @ref AVFilter.init "init" was not
- * called or failed, so it must be prepared to handle such a situation.
- */
- void (*uninit)(AVFilterContext *ctx);
-
- /**
- * Query formats supported by the filter on its inputs and outputs.
- *
- * This callback is called after the filter is initialized (so the inputs
- * and outputs are fixed), shortly before the format negotiation. This
- * callback may be called more than once.
- *
- * This callback must set AVFilterLink.out_formats on every input link and
- * AVFilterLink.in_formats on every output link to a list of pixel/sample
- * formats that the filter supports on that link. For audio links, this
- * filter must also set @ref AVFilterLink.in_samplerates "in_samplerates" /
- * @ref AVFilterLink.out_samplerates "out_samplerates" and
- * @ref AVFilterLink.in_channel_layouts "in_channel_layouts" /
- * @ref AVFilterLink.out_channel_layouts "out_channel_layouts" analogously.
- *
- * This callback may be NULL for filters with one input, in which case
- * libavfilter assumes that it supports all input formats and preserves
- * them on output.
- *
- * @return zero on success, a negative value corresponding to an
- * AVERROR code otherwise
- */
- int (*query_formats)(AVFilterContext *);
-
- int priv_size; ///< size of private data to allocate for the filter
-
- /**
- * Used by the filter registration system. Must not be touched by any other
- * code.
- */
- struct AVFilter *next;
-
- /**
- * Make the filter instance process a command.
- *
- * @param cmd the command to process, for handling simplicity all commands must be alphanumeric only
- * @param arg the argument for the command
- * @param res a buffer with size res_size where the filter(s) can return a response. This must not change when the command is not supported.
- * @param flags if AVFILTER_CMD_FLAG_FAST is set and the command would be
- * time consuming then a filter should treat it like an unsupported command
- *
- * @returns >=0 on success otherwise an error code.
- * AVERROR(ENOSYS) on unsupported commands
- */
- int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags);
-
- /**
- * Filter initialization function, alternative to the init()
- * callback. Args contains the user-supplied parameters, opaque is
- * used for providing binary data.
- */
- int (*init_opaque)(AVFilterContext *ctx, void *opaque);
-} AVFilter;
-
-/**
- * Process multiple parts of the frame concurrently.
- */
-#define AVFILTER_THREAD_SLICE (1 << 0)
-
-typedef struct AVFilterInternal AVFilterInternal;
-
-/** An instance of a filter */
-struct AVFilterContext {
- const AVClass *av_class; ///< needed for av_log() and filters common options
-
- const AVFilter *filter; ///< the AVFilter of which this is an instance
-
- char *name; ///< name of this filter instance
-
- AVFilterPad *input_pads; ///< array of input pads
- AVFilterLink **inputs; ///< array of pointers to input links
-#if FF_API_FOO_COUNT
- attribute_deprecated unsigned input_count; ///< @deprecated use nb_inputs
-#endif
- unsigned nb_inputs; ///< number of input pads
-
- AVFilterPad *output_pads; ///< array of output pads
- AVFilterLink **outputs; ///< array of pointers to output links
-#if FF_API_FOO_COUNT
- attribute_deprecated unsigned output_count; ///< @deprecated use nb_outputs
-#endif
- unsigned nb_outputs; ///< number of output pads
-
- void *priv; ///< private data for use by the filter
-
- struct AVFilterGraph *graph; ///< filtergraph this filter belongs to
-
- /**
- * Type of multithreading being allowed/used. A combination of
- * AVFILTER_THREAD_* flags.
- *
- * May be set by the caller before initializing the filter to forbid some
- * or all kinds of multithreading for this filter. The default is allowing
- * everything.
- *
- * When the filter is initialized, this field is combined using bit AND with
- * AVFilterGraph.thread_type to get the final mask used for determining
- * allowed threading types. I.e. a threading type needs to be set in both
- * to be allowed.
- *
- * After the filter is initialized, libavfilter sets this field to the
- * threading type that is actually used (0 for no multithreading).
- */
- int thread_type;
-
- /**
- * An opaque struct for libavfilter internal use.
- */
- AVFilterInternal *internal;
-
- struct AVFilterCommand *command_queue;
-
- char *enable_str; ///< enable expression string
- void *enable; ///< parsed expression (AVExpr*)
- double *var_values; ///< variable values for the enable expression
- int is_disabled; ///< the enabled state from the last expression evaluation
-};
-
-/**
- * A link between two filters. This contains pointers to the source and
- * destination filters between which this link exists, and the indexes of
- * the pads involved. In addition, this link also contains the parameters
- * which have been negotiated and agreed upon between the filter, such as
- * image dimensions, format, etc.
- */
-struct AVFilterLink {
- AVFilterContext *src; ///< source filter
- AVFilterPad *srcpad; ///< output pad on the source filter
-
- AVFilterContext *dst; ///< dest filter
- AVFilterPad *dstpad; ///< input pad on the dest filter
-
- enum AVMediaType type; ///< filter media type
-
- /* These parameters apply only to video */
- int w; ///< agreed upon image width
- int h; ///< agreed upon image height
- AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio
- /* These parameters apply only to audio */
- uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h)
- int sample_rate; ///< samples per second
-
- int format; ///< agreed upon media format
-
- /**
- * Define the time base used by the PTS of the frames/samples
- * which will pass through this link.
- * During the configuration stage, each filter is supposed to
- * change only the output timebase, while the timebase of the
- * input link is assumed to be an unchangeable property.
- */
- AVRational time_base;
-
- /*****************************************************************
- * All fields below this line are not part of the public API. They
- * may not be used outside of libavfilter and can be changed and
- * removed at will.
- * New public fields should be added right above.
- *****************************************************************
- */
- /**
- * Lists of formats and channel layouts supported by the input and output
- * filters respectively. These lists are used for negotiating the format
- * to actually be used, which will be loaded into the format and
- * channel_layout members, above, when chosen.
- *
- */
- AVFilterFormats *in_formats;
- AVFilterFormats *out_formats;
-
- /**
- * Lists of channel layouts and sample rates used for automatic
- * negotiation.
- */
- AVFilterFormats *in_samplerates;
- AVFilterFormats *out_samplerates;
- struct AVFilterChannelLayouts *in_channel_layouts;
- struct AVFilterChannelLayouts *out_channel_layouts;
-
- /**
- * Audio only, the destination filter sets this to a non-zero value to
- * request that buffers with the given number of samples should be sent to
- * it. AVFilterPad.needs_fifo must also be set on the corresponding input
- * pad.
- * Last buffer before EOF will be padded with silence.
- */
- int request_samples;
-
- /** stage of the initialization of the link properties (dimensions, etc) */
- enum {
- AVLINK_UNINIT = 0, ///< not started
- AVLINK_STARTINIT, ///< started, but incomplete
- AVLINK_INIT ///< complete
- } init_state;
-
- struct AVFilterPool *pool;
-
- /**
- * Graph the filter belongs to.
- */
- struct AVFilterGraph *graph;
-
- /**
- * Current timestamp of the link, as defined by the most recent
- * frame(s), in AV_TIME_BASE units.
- */
- int64_t current_pts;
-
- /**
- * Index in the age array.
- */
- int age_index;
-
- /**
- * Frame rate of the stream on the link, or 1/0 if unknown;
- * if left to 0/0, will be automatically be copied from the first input
- * of the source filter if it exists.
- *
- * Sources should set it to the best estimation of the real frame rate.
- * Filters should update it if necessary depending on their function.
- * Sinks can use it to set a default output frame rate.
- * It is similar to the r_frame_rate field in AVStream.
- */
- AVRational frame_rate;
-
- /**
- * Buffer partially filled with samples to achieve a fixed/minimum size.
- */
- AVFrame *partial_buf;
-
- /**
- * Size of the partial buffer to allocate.
- * Must be between min_samples and max_samples.
- */
- int partial_buf_size;
-
- /**
- * Minimum number of samples to filter at once. If filter_frame() is
- * called with fewer samples, it will accumulate them in partial_buf.
- * This field and the related ones must not be changed after filtering
- * has started.
- * If 0, all related fields are ignored.
- */
- int min_samples;
-
- /**
- * Maximum number of samples to filter at once. If filter_frame() is
- * called with more samples, it will split them.
- */
- int max_samples;
-
- /**
- * The buffer reference currently being received across the link by the
- * destination filter. This is used internally by the filter system to
- * allow automatic copying of buffers which do not have sufficient
- * permissions for the destination. This should not be accessed directly
- * by the filters.
- */
- AVFilterBufferRef *cur_buf_copy;
-
- /**
- * True if the link is closed.
- * If set, all attempts of start_frame, filter_frame or request_frame
- * will fail with AVERROR_EOF, and if necessary the reference will be
- * destroyed.
- * If request_frame returns AVERROR_EOF, this flag is set on the
- * corresponding link.
- * It can be set also be set by either the source or the destination
- * filter.
- */
- int closed;
-
- /**
- * Number of channels.
- */
- int channels;
-
- /**
- * True if a frame is being requested on the link.
- * Used internally by the framework.
- */
- unsigned frame_requested;
-
- /**
- * Link processing flags.
- */
- unsigned flags;
-
- /**
- * Number of past frames sent through the link.
- */
- int64_t frame_count;
-};
-
-/**
- * Link two filters together.
- *
- * @param src the source filter
- * @param srcpad index of the output pad on the source filter
- * @param dst the destination filter
- * @param dstpad index of the input pad on the destination filter
- * @return zero on success
- */
-int avfilter_link(AVFilterContext *src, unsigned srcpad,
- AVFilterContext *dst, unsigned dstpad);
-
-/**
- * Free the link in *link, and set its pointer to NULL.
- */
-void avfilter_link_free(AVFilterLink **link);
-
-/**
- * Get the number of channels of a link.
- */
-int avfilter_link_get_channels(AVFilterLink *link);
-
-/**
- * Set the closed field of a link.
- */
-void avfilter_link_set_closed(AVFilterLink *link, int closed);
-
-/**
- * Negotiate the media format, dimensions, etc of all inputs to a filter.
- *
- * @param filter the filter to negotiate the properties for its inputs
- * @return zero on successful negotiation
- */
-int avfilter_config_links(AVFilterContext *filter);
-
-#if FF_API_AVFILTERBUFFER
-/**
- * Create a buffer reference wrapped around an already allocated image
- * buffer.
- *
- * @param data pointers to the planes of the image to reference
- * @param linesize linesizes for the planes of the image to reference
- * @param perms the required access permissions
- * @param w the width of the image specified by the data and linesize arrays
- * @param h the height of the image specified by the data and linesize arrays
- * @param format the pixel format of the image specified by the data and linesize arrays
- */
-attribute_deprecated
-AVFilterBufferRef *
-avfilter_get_video_buffer_ref_from_arrays(uint8_t * const data[4], const int linesize[4], int perms,
- int w, int h, enum AVPixelFormat format);
-
-/**
- * Create an audio buffer reference wrapped around an already
- * allocated samples buffer.
- *
- * See avfilter_get_audio_buffer_ref_from_arrays_channels() for a version
- * that can handle unknown channel layouts.
- *
- * @param data pointers to the samples plane buffers
- * @param linesize linesize for the samples plane buffers
- * @param perms the required access permissions
- * @param nb_samples number of samples per channel
- * @param sample_fmt the format of each sample in the buffer to allocate
- * @param channel_layout the channel layout of the buffer
- */
-attribute_deprecated
-AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_arrays(uint8_t **data,
- int linesize,
- int perms,
- int nb_samples,
- enum AVSampleFormat sample_fmt,
- uint64_t channel_layout);
-/**
- * Create an audio buffer reference wrapped around an already
- * allocated samples buffer.
- *
- * @param data pointers to the samples plane buffers
- * @param linesize linesize for the samples plane buffers
- * @param perms the required access permissions
- * @param nb_samples number of samples per channel
- * @param sample_fmt the format of each sample in the buffer to allocate
- * @param channels the number of channels of the buffer
- * @param channel_layout the channel layout of the buffer,
- * must be either 0 or consistent with channels
- */
-attribute_deprecated
-AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_arrays_channels(uint8_t **data,
- int linesize,
- int perms,
- int nb_samples,
- enum AVSampleFormat sample_fmt,
- int channels,
- uint64_t channel_layout);
-
-#endif
-
-
-#define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically
-#define AVFILTER_CMD_FLAG_FAST 2 ///< Only execute command when its fast (like a video out that supports contrast adjustment in hw)
-
-/**
- * Make the filter instance process a command.
- * It is recommended to use avfilter_graph_send_command().
- */
-int avfilter_process_command(AVFilterContext *filter, const char *cmd, const char *arg, char *res, int res_len, int flags);
-
-/** Initialize the filter system. Register all builtin filters. */
-void avfilter_register_all(void);
-
-#if FF_API_OLD_FILTER_REGISTER
-/** Uninitialize the filter system. Unregister all filters. */
-attribute_deprecated
-void avfilter_uninit(void);
-#endif
-
-/**
- * Register a filter. This is only needed if you plan to use
- * avfilter_get_by_name later to lookup the AVFilter structure by name. A
- * filter can still by instantiated with avfilter_graph_alloc_filter even if it
- * is not registered.
- *
- * @param filter the filter to register
- * @return 0 if the registration was successful, a negative value
- * otherwise
- */
-int avfilter_register(AVFilter *filter);
-
-/**
- * Get a filter definition matching the given name.
- *
- * @param name the filter name to find
- * @return the filter definition, if any matching one is registered.
- * NULL if none found.
- */
-#if !FF_API_NOCONST_GET_NAME
-const
-#endif
-AVFilter *avfilter_get_by_name(const char *name);
-
-/**
- * Iterate over all registered filters.
- * @return If prev is non-NULL, next registered filter after prev or NULL if
- * prev is the last filter. If prev is NULL, return the first registered filter.
- */
-const AVFilter *avfilter_next(const AVFilter *prev);
-
-#if FF_API_OLD_FILTER_REGISTER
-/**
- * If filter is NULL, returns a pointer to the first registered filter pointer,
- * if filter is non-NULL, returns the next pointer after filter.
- * If the returned pointer points to NULL, the last registered filter
- * was already reached.
- * @deprecated use avfilter_next()
- */
-attribute_deprecated
-AVFilter **av_filter_next(AVFilter **filter);
-#endif
-
-#if FF_API_AVFILTER_OPEN
-/**
- * Create a filter instance.
- *
- * @param filter_ctx put here a pointer to the created filter context
- * on success, NULL on failure
- * @param filter the filter to create an instance of
- * @param inst_name Name to give to the new instance. Can be NULL for none.
- * @return >= 0 in case of success, a negative error code otherwise
- * @deprecated use avfilter_graph_alloc_filter() instead
- */
-attribute_deprecated
-int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name);
-#endif
-
-
-#if FF_API_AVFILTER_INIT_FILTER
-/**
- * Initialize a filter.
- *
- * @param filter the filter to initialize
- * @param args A string of parameters to use when initializing the filter.
- * The format and meaning of this string varies by filter.
- * @param opaque Any extra non-string data needed by the filter. The meaning
- * of this parameter varies by filter.
- * @return zero on success
- */
-attribute_deprecated
-int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque);
-#endif
-
-/**
- * Initialize a filter with the supplied parameters.
- *
- * @param ctx uninitialized filter context to initialize
- * @param args Options to initialize the filter with. This must be a
- * ':'-separated list of options in the 'key=value' form.
- * May be NULL if the options have been set directly using the
- * AVOptions API or there are no options that need to be set.
- * @return 0 on success, a negative AVERROR on failure
- */
-int avfilter_init_str(AVFilterContext *ctx, const char *args);
-
-/**
- * Initialize a filter with the supplied dictionary of options.
- *
- * @param ctx uninitialized filter context to initialize
- * @param options An AVDictionary filled with options for this filter. On
- * return this parameter will be destroyed and replaced with
- * a dict containing options that were not found. This dictionary
- * must be freed by the caller.
- * May be NULL, then this function is equivalent to
- * avfilter_init_str() with the second parameter set to NULL.
- * @return 0 on success, a negative AVERROR on failure
- *
- * @note This function and avfilter_init_str() do essentially the same thing,
- * the difference is in manner in which the options are passed. It is up to the
- * calling code to choose whichever is more preferable. The two functions also
- * behave differently when some of the provided options are not declared as
- * supported by the filter. In such a case, avfilter_init_str() will fail, but
- * this function will leave those extra options in the options AVDictionary and
- * continue as usual.
- */
-int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options);
-
-/**
- * Free a filter context. This will also remove the filter from its
- * filtergraph's list of filters.
- *
- * @param filter the filter to free
- */
-void avfilter_free(AVFilterContext *filter);
-
-/**
- * Insert a filter in the middle of an existing link.
- *
- * @param link the link into which the filter should be inserted
- * @param filt the filter to be inserted
- * @param filt_srcpad_idx the input pad on the filter to connect
- * @param filt_dstpad_idx the output pad on the filter to connect
- * @return zero on success
- */
-int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt,
- unsigned filt_srcpad_idx, unsigned filt_dstpad_idx);
-
-#if FF_API_AVFILTERBUFFER
-/**
- * Copy the frame properties of src to dst, without copying the actual
- * image data.
- *
- * @return 0 on success, a negative number on error.
- */
-attribute_deprecated
-int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src);
-
-/**
- * Copy the frame properties and data pointers of src to dst, without copying
- * the actual data.
- *
- * @return 0 on success, a negative number on error.
- */
-attribute_deprecated
-int avfilter_copy_buf_props(AVFrame *dst, const AVFilterBufferRef *src);
-#endif
-
-/**
- * @return AVClass for AVFilterContext.
- *
- * @see av_opt_find().
- */
-const AVClass *avfilter_get_class(void);
-
-typedef struct AVFilterGraphInternal AVFilterGraphInternal;
-
-/**
- * A function pointer passed to the @ref AVFilterGraph.execute callback to be
- * executed multiple times, possibly in parallel.
- *
- * @param ctx the filter context the job belongs to
- * @param arg an opaque parameter passed through from @ref
- * AVFilterGraph.execute
- * @param jobnr the index of the job being executed
- * @param nb_jobs the total number of jobs
- *
- * @return 0 on success, a negative AVERROR on error
- */
-typedef int (avfilter_action_func)(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs);
-
-/**
- * A function executing multiple jobs, possibly in parallel.
- *
- * @param ctx the filter context to which the jobs belong
- * @param func the function to be called multiple times
- * @param arg the argument to be passed to func
- * @param ret a nb_jobs-sized array to be filled with return values from each
- * invocation of func
- * @param nb_jobs the number of jobs to execute
- *
- * @return 0 on success, a negative AVERROR on error
- */
-typedef int (avfilter_execute_func)(AVFilterContext *ctx, avfilter_action_func *func,
- void *arg, int *ret, int nb_jobs);
-
-typedef struct AVFilterGraph {
- const AVClass *av_class;
-#if FF_API_FOO_COUNT
- attribute_deprecated
- unsigned filter_count_unused;
-#endif
- AVFilterContext **filters;
-#if !FF_API_FOO_COUNT
- unsigned nb_filters;
-#endif
-
- char *scale_sws_opts; ///< sws options to use for the auto-inserted scale filters
- char *resample_lavr_opts; ///< libavresample options to use for the auto-inserted resample filters
-#if FF_API_FOO_COUNT
- unsigned nb_filters;
-#endif
-
- /**
- * Type of multithreading allowed for filters in this graph. A combination
- * of AVFILTER_THREAD_* flags.
- *
- * May be set by the caller at any point, the setting will apply to all
- * filters initialized after that. The default is allowing everything.
- *
- * When a filter in this graph is initialized, this field is combined using
- * bit AND with AVFilterContext.thread_type to get the final mask used for
- * determining allowed threading types. I.e. a threading type needs to be
- * set in both to be allowed.
- */
- int thread_type;
-
- /**
- * Maximum number of threads used by filters in this graph. May be set by
- * the caller before adding any filters to the filtergraph. Zero (the
- * default) means that the number of threads is determined automatically.
- */
- int nb_threads;
-
- /**
- * Opaque object for libavfilter internal use.
- */
- AVFilterGraphInternal *internal;
-
- /**
- * Opaque user data. May be set by the caller to an arbitrary value, e.g. to
- * be used from callbacks like @ref AVFilterGraph.execute.
- * Libavfilter will not touch this field in any way.
- */
- void *opaque;
-
- /**
- * This callback may be set by the caller immediately after allocating the
- * graph and before adding any filters to it, to provide a custom
- * multithreading implementation.
- *
- * If set, filters with slice threading capability will call this callback
- * to execute multiple jobs in parallel.
- *
- * If this field is left unset, libavfilter will use its internal
- * implementation, which may or may not be multithreaded depending on the
- * platform and build options.
- */
- avfilter_execute_func *execute;
-
- char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions
-
- /**
- * Private fields
- *
- * The following fields are for internal use only.
- * Their type, offset, number and semantic can change without notice.
- */
-
- AVFilterLink **sink_links;
- int sink_links_count;
-
- unsigned disable_auto_convert;
-} AVFilterGraph;
-
-/**
- * Allocate a filter graph.
- */
-AVFilterGraph *avfilter_graph_alloc(void);
-
-/**
- * Create a new filter instance in a filter graph.
- *
- * @param graph graph in which the new filter will be used
- * @param filter the filter to create an instance of
- * @param name Name to give to the new instance (will be copied to
- * AVFilterContext.name). This may be used by the caller to identify
- * different filters, libavfilter itself assigns no semantics to
- * this parameter. May be NULL.
- *
- * @return the context of the newly created filter instance (note that it is
- * also retrievable directly through AVFilterGraph.filters or with
- * avfilter_graph_get_filter()) on success or NULL on failure.
- */
-AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph,
- const AVFilter *filter,
- const char *name);
-
-/**
- * Get a filter instance identified by instance name from graph.
- *
- * @param graph filter graph to search through.
- * @param name filter instance name (should be unique in the graph).
- * @return the pointer to the found filter instance or NULL if it
- * cannot be found.
- */
-AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, const char *name);
-
-#if FF_API_AVFILTER_OPEN
-/**
- * Add an existing filter instance to a filter graph.
- *
- * @param graphctx the filter graph
- * @param filter the filter to be added
- *
- * @deprecated use avfilter_graph_alloc_filter() to allocate a filter in a
- * filter graph
- */
-attribute_deprecated
-int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter);
-#endif
-
-/**
- * Create and add a filter instance into an existing graph.
- * The filter instance is created from the filter filt and inited
- * with the parameters args and opaque.
- *
- * In case of success put in *filt_ctx the pointer to the created
- * filter instance, otherwise set *filt_ctx to NULL.
- *
- * @param name the instance name to give to the created filter instance
- * @param graph_ctx the filter graph
- * @return a negative AVERROR error code in case of failure, a non
- * negative value otherwise
- */
-int avfilter_graph_create_filter(AVFilterContext **filt_ctx, const AVFilter *filt,
- const char *name, const char *args, void *opaque,
- AVFilterGraph *graph_ctx);
-
-/**
- * Enable or disable automatic format conversion inside the graph.
- *
- * Note that format conversion can still happen inside explicitly inserted
- * scale and aresample filters.
- *
- * @param flags any of the AVFILTER_AUTO_CONVERT_* constants
- */
-void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags);
-
-enum {
- AVFILTER_AUTO_CONVERT_ALL = 0, /**< all automatic conversions enabled */
- AVFILTER_AUTO_CONVERT_NONE = -1, /**< all automatic conversions disabled */
-};
-
-/**
- * Check validity and configure all the links and formats in the graph.
- *
- * @param graphctx the filter graph
- * @param log_ctx context used for logging
- * @return >= 0 in case of success, a negative AVERROR code otherwise
- */
-int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx);
-
-/**
- * Free a graph, destroy its links, and set *graph to NULL.
- * If *graph is NULL, do nothing.
- */
-void avfilter_graph_free(AVFilterGraph **graph);
-
-/**
- * A linked-list of the inputs/outputs of the filter chain.
- *
- * This is mainly useful for avfilter_graph_parse() / avfilter_graph_parse2(),
- * where it is used to communicate open (unlinked) inputs and outputs from and
- * to the caller.
- * This struct specifies, per each not connected pad contained in the graph, the
- * filter context and the pad index required for establishing a link.
- */
-typedef struct AVFilterInOut {
- /** unique name for this input/output in the list */
- char *name;
-
- /** filter context associated to this input/output */
- AVFilterContext *filter_ctx;
-
- /** index of the filt_ctx pad to use for linking */
- int pad_idx;
-
- /** next input/input in the list, NULL if this is the last */
- struct AVFilterInOut *next;
-} AVFilterInOut;
-
-/**
- * Allocate a single AVFilterInOut entry.
- * Must be freed with avfilter_inout_free().
- * @return allocated AVFilterInOut on success, NULL on failure.
- */
-AVFilterInOut *avfilter_inout_alloc(void);
-
-/**
- * Free the supplied list of AVFilterInOut and set *inout to NULL.
- * If *inout is NULL, do nothing.
- */
-void avfilter_inout_free(AVFilterInOut **inout);
-
-#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI || !FF_API_OLD_GRAPH_PARSE
-/**
- * Add a graph described by a string to a graph.
- *
- * @note The caller must provide the lists of inputs and outputs,
- * which therefore must be known before calling the function.
- *
- * @note The inputs parameter describes inputs of the already existing
- * part of the graph; i.e. from the point of view of the newly created
- * part, they are outputs. Similarly the outputs parameter describes
- * outputs of the already existing filters, which are provided as
- * inputs to the parsed filters.
- *
- * @param graph the filter graph where to link the parsed graph context
- * @param filters string to be parsed
- * @param inputs linked list to the inputs of the graph
- * @param outputs linked list to the outputs of the graph
- * @return zero on success, a negative AVERROR code on error
- */
-int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
- AVFilterInOut *inputs, AVFilterInOut *outputs,
- void *log_ctx);
-#else
-/**
- * Add a graph described by a string to a graph.
- *
- * @param graph the filter graph where to link the parsed graph context
- * @param filters string to be parsed
- * @param inputs pointer to a linked list to the inputs of the graph, may be NULL.
- * If non-NULL, *inputs is updated to contain the list of open inputs
- * after the parsing, should be freed with avfilter_inout_free().
- * @param outputs pointer to a linked list to the outputs of the graph, may be NULL.
- * If non-NULL, *outputs is updated to contain the list of open outputs
- * after the parsing, should be freed with avfilter_inout_free().
- * @return non negative on success, a negative AVERROR code on error
- * @deprecated Use avfilter_graph_parse_ptr() instead.
- */
-attribute_deprecated
-int avfilter_graph_parse(AVFilterGraph *graph, const char *filters,
- AVFilterInOut **inputs, AVFilterInOut **outputs,
- void *log_ctx);
-#endif
-
-/**
- * Add a graph described by a string to a graph.
- *
- * @param graph the filter graph where to link the parsed graph context
- * @param filters string to be parsed
- * @param inputs pointer to a linked list to the inputs of the graph, may be NULL.
- * If non-NULL, *inputs is updated to contain the list of open inputs
- * after the parsing, should be freed with avfilter_inout_free().
- * @param outputs pointer to a linked list to the outputs of the graph, may be NULL.
- * If non-NULL, *outputs is updated to contain the list of open outputs
- * after the parsing, should be freed with avfilter_inout_free().
- * @return non negative on success, a negative AVERROR code on error
- */
-int avfilter_graph_parse_ptr(AVFilterGraph *graph, const char *filters,
- AVFilterInOut **inputs, AVFilterInOut **outputs,
- void *log_ctx);
-
-/**
- * Add a graph described by a string to a graph.
- *
- * @param[in] graph the filter graph where to link the parsed graph context
- * @param[in] filters string to be parsed
- * @param[out] inputs a linked list of all free (unlinked) inputs of the
- * parsed graph will be returned here. It is to be freed
- * by the caller using avfilter_inout_free().
- * @param[out] outputs a linked list of all free (unlinked) outputs of the
- * parsed graph will be returned here. It is to be freed by the
- * caller using avfilter_inout_free().
- * @return zero on success, a negative AVERROR code on error
- *
- * @note This function returns the inputs and outputs that are left
- * unlinked after parsing the graph and the caller then deals with
- * them.
- * @note This function makes no reference whatsoever to already
- * existing parts of the graph and the inputs parameter will on return
- * contain inputs of the newly parsed part of the graph. Analogously
- * the outputs parameter will contain outputs of the newly created
- * filters.
- */
-int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters,
- AVFilterInOut **inputs,
- AVFilterInOut **outputs);
-
-/**
- * Send a command to one or more filter instances.
- *
- * @param graph the filter graph
- * @param target the filter(s) to which the command should be sent
- * "all" sends to all filters
- * otherwise it can be a filter or filter instance name
- * which will send the command to all matching filters.
- * @param cmd the command to send, for handling simplicity all commands must be alphanumeric only
- * @param arg the argument for the command
- * @param res a buffer with size res_size where the filter(s) can return a response.
- *
- * @returns >=0 on success otherwise an error code.
- * AVERROR(ENOSYS) on unsupported commands
- */
-int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags);
-
-/**
- * Queue a command for one or more filter instances.
- *
- * @param graph the filter graph
- * @param target the filter(s) to which the command should be sent
- * "all" sends to all filters
- * otherwise it can be a filter or filter instance name
- * which will send the command to all matching filters.
- * @param cmd the command to sent, for handling simplicity all commands must be alphanumeric only
- * @param arg the argument for the command
- * @param ts time at which the command should be sent to the filter
- *
- * @note As this executes commands after this function returns, no return code
- * from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported.
- */
-int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts);
-
-
-/**
- * Dump a graph into a human-readable string representation.
- *
- * @param graph the graph to dump
- * @param options formatting options; currently ignored
- * @return a string, or NULL in case of memory allocation failure;
- * the string must be freed using av_free
- */
-char *avfilter_graph_dump(AVFilterGraph *graph, const char *options);
-
-/**
- * Request a frame on the oldest sink link.
- *
- * If the request returns AVERROR_EOF, try the next.
- *
- * Note that this function is not meant to be the sole scheduling mechanism
- * of a filtergraph, only a convenience function to help drain a filtergraph
- * in a balanced way under normal circumstances.
- *
- * Also note that AVERROR_EOF does not mean that frames did not arrive on
- * some of the sinks during the process.
- * When there are multiple sink links, in case the requested link
- * returns an EOF, this may cause a filter to flush pending frames
- * which are sent to another sink link, although unrequested.
- *
- * @return the return value of ff_request_frame(),
- * or AVERROR_EOF if all links returned AVERROR_EOF
- */
-int avfilter_graph_request_oldest(AVFilterGraph *graph);
-
-/**
- * @}
- */
-
-#endif /* AVFILTER_AVFILTER_H */
diff --git a/Externals/ffmpeg/dev/include/libavfilter/avfiltergraph.h b/Externals/ffmpeg/dev/include/libavfilter/avfiltergraph.h
deleted file mode 100644
index b31d581ca0..0000000000
--- a/Externals/ffmpeg/dev/include/libavfilter/avfiltergraph.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Filter graphs
- * copyright (c) 2007 Bobby Bingham
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_AVFILTERGRAPH_H
-#define AVFILTER_AVFILTERGRAPH_H
-
-#include "avfilter.h"
-#include "libavutil/log.h"
-
-#endif /* AVFILTER_AVFILTERGRAPH_H */
diff --git a/Externals/ffmpeg/dev/include/libavfilter/buffersink.h b/Externals/ffmpeg/dev/include/libavfilter/buffersink.h
deleted file mode 100644
index 24cd2feac7..0000000000
--- a/Externals/ffmpeg/dev/include/libavfilter/buffersink.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_BUFFERSINK_H
-#define AVFILTER_BUFFERSINK_H
-
-/**
- * @file
- * @ingroup lavfi_buffersink
- * memory buffer sink API for audio and video
- */
-
-#include "avfilter.h"
-
-/**
- * @defgroup lavfi_buffersink Buffer sink API
- * @ingroup lavfi
- * @{
- */
-
-#if FF_API_AVFILTERBUFFER
-/**
- * Get an audio/video buffer data from buffer_sink and put it in bufref.
- *
- * This function works with both audio and video buffer sinks.
- *
- * @param buffer_sink pointer to a buffersink or abuffersink context
- * @param flags a combination of AV_BUFFERSINK_FLAG_* flags
- * @return >= 0 in case of success, a negative AVERROR code in case of
- * failure
- */
-attribute_deprecated
-int av_buffersink_get_buffer_ref(AVFilterContext *buffer_sink,
- AVFilterBufferRef **bufref, int flags);
-
-/**
- * Get the number of immediately available frames.
- */
-attribute_deprecated
-int av_buffersink_poll_frame(AVFilterContext *ctx);
-
-/**
- * Get a buffer with filtered data from sink and put it in buf.
- *
- * @param ctx pointer to a context of a buffersink or abuffersink AVFilter.
- * @param buf pointer to the buffer will be written here if buf is non-NULL. buf
- * must be freed by the caller using avfilter_unref_buffer().
- * Buf may also be NULL to query whether a buffer is ready to be
- * output.
- *
- * @return >= 0 in case of success, a negative AVERROR code in case of
- * failure.
- */
-attribute_deprecated
-int av_buffersink_read(AVFilterContext *ctx, AVFilterBufferRef **buf);
-
-/**
- * Same as av_buffersink_read, but with the ability to specify the number of
- * samples read. This function is less efficient than av_buffersink_read(),
- * because it copies the data around.
- *
- * @param ctx pointer to a context of the abuffersink AVFilter.
- * @param buf pointer to the buffer will be written here if buf is non-NULL. buf
- * must be freed by the caller using avfilter_unref_buffer(). buf
- * will contain exactly nb_samples audio samples, except at the end
- * of stream, when it can contain less than nb_samples.
- * Buf may also be NULL to query whether a buffer is ready to be
- * output.
- *
- * @warning do not mix this function with av_buffersink_read(). Use only one or
- * the other with a single sink, not both.
- */
-attribute_deprecated
-int av_buffersink_read_samples(AVFilterContext *ctx, AVFilterBufferRef **buf,
- int nb_samples);
-#endif
-
-/**
- * Get a frame with filtered data from sink and put it in frame.
- *
- * @param ctx pointer to a buffersink or abuffersink filter context.
- * @param frame pointer to an allocated frame that will be filled with data.
- * The data must be freed using av_frame_unref() / av_frame_free()
- * @param flags a combination of AV_BUFFERSINK_FLAG_* flags
- *
- * @return >= 0 in for success, a negative AVERROR code for failure.
- */
-int av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags);
-
-/**
- * Tell av_buffersink_get_buffer_ref() to read video/samples buffer
- * reference, but not remove it from the buffer. This is useful if you
- * need only to read a video/samples buffer, without to fetch it.
- */
-#define AV_BUFFERSINK_FLAG_PEEK 1
-
-/**
- * Tell av_buffersink_get_buffer_ref() not to request a frame from its input.
- * If a frame is already buffered, it is read (and removed from the buffer),
- * but if no frame is present, return AVERROR(EAGAIN).
- */
-#define AV_BUFFERSINK_FLAG_NO_REQUEST 2
-
-/**
- * Struct to use for initializing a buffersink context.
- */
-typedef struct {
- const enum AVPixelFormat *pixel_fmts; ///< list of allowed pixel formats, terminated by AV_PIX_FMT_NONE
-} AVBufferSinkParams;
-
-/**
- * Create an AVBufferSinkParams structure.
- *
- * Must be freed with av_free().
- */
-AVBufferSinkParams *av_buffersink_params_alloc(void);
-
-/**
- * Struct to use for initializing an abuffersink context.
- */
-typedef struct {
- const enum AVSampleFormat *sample_fmts; ///< list of allowed sample formats, terminated by AV_SAMPLE_FMT_NONE
- const int64_t *channel_layouts; ///< list of allowed channel layouts, terminated by -1
- const int *channel_counts; ///< list of allowed channel counts, terminated by -1
- int all_channel_counts; ///< if not 0, accept any channel count or layout
- int *sample_rates; ///< list of allowed sample rates, terminated by -1
-} AVABufferSinkParams;
-
-/**
- * Create an AVABufferSinkParams structure.
- *
- * Must be freed with av_free().
- */
-AVABufferSinkParams *av_abuffersink_params_alloc(void);
-
-/**
- * Set the frame size for an audio buffer sink.
- *
- * All calls to av_buffersink_get_buffer_ref will return a buffer with
- * exactly the specified number of samples, or AVERROR(EAGAIN) if there is
- * not enough. The last buffer at EOF will be padded with 0.
- */
-void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size);
-
-/**
- * Get the frame rate of the input.
- */
-AVRational av_buffersink_get_frame_rate(AVFilterContext *ctx);
-
-/**
- * Get a frame with filtered data from sink and put it in frame.
- *
- * @param ctx pointer to a context of a buffersink or abuffersink AVFilter.
- * @param frame pointer to an allocated frame that will be filled with data.
- * The data must be freed using av_frame_unref() / av_frame_free()
- *
- * @return
- * - >= 0 if a frame was successfully returned.
- * - AVERROR(EAGAIN) if no frames are available at this point; more
- * input frames must be added to the filtergraph to get more output.
- * - AVERROR_EOF if there will be no more output frames on this sink.
- * - A different negative AVERROR code in other failure cases.
- */
-int av_buffersink_get_frame(AVFilterContext *ctx, AVFrame *frame);
-
-/**
- * Same as av_buffersink_get_frame(), but with the ability to specify the number
- * of samples read. This function is less efficient than
- * av_buffersink_get_frame(), because it copies the data around.
- *
- * @param ctx pointer to a context of the abuffersink AVFilter.
- * @param frame pointer to an allocated frame that will be filled with data.
- * The data must be freed using av_frame_unref() / av_frame_free()
- * frame will contain exactly nb_samples audio samples, except at
- * the end of stream, when it can contain less than nb_samples.
- *
- * @return The return codes have the same meaning as for
- * av_buffersink_get_samples().
- *
- * @warning do not mix this function with av_buffersink_get_frame(). Use only one or
- * the other with a single sink, not both.
- */
-int av_buffersink_get_samples(AVFilterContext *ctx, AVFrame *frame, int nb_samples);
-
-/**
- * @}
- */
-
-#endif /* AVFILTER_BUFFERSINK_H */
diff --git a/Externals/ffmpeg/dev/include/libavfilter/buffersrc.h b/Externals/ffmpeg/dev/include/libavfilter/buffersrc.h
deleted file mode 100644
index ea34c04ee9..0000000000
--- a/Externals/ffmpeg/dev/include/libavfilter/buffersrc.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_BUFFERSRC_H
-#define AVFILTER_BUFFERSRC_H
-
-/**
- * @file
- * @ingroup lavfi_buffersrc
- * Memory buffer source API.
- */
-
-#include "libavcodec/avcodec.h"
-#include "avfilter.h"
-
-/**
- * @defgroup lavfi_buffersrc Buffer source API
- * @ingroup lavfi
- * @{
- */
-
-enum {
-
- /**
- * Do not check for format changes.
- */
- AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = 1,
-
-#if FF_API_AVFILTERBUFFER
- /**
- * Ignored
- */
- AV_BUFFERSRC_FLAG_NO_COPY = 2,
-#endif
-
- /**
- * Immediately push the frame to the output.
- */
- AV_BUFFERSRC_FLAG_PUSH = 4,
-
- /**
- * Keep a reference to the frame.
- * If the frame if reference-counted, create a new reference; otherwise
- * copy the frame data.
- */
- AV_BUFFERSRC_FLAG_KEEP_REF = 8,
-
-};
-
-/**
- * Add buffer data in picref to buffer_src.
- *
- * @param buffer_src pointer to a buffer source context
- * @param picref a buffer reference, or NULL to mark EOF
- * @param flags a combination of AV_BUFFERSRC_FLAG_*
- * @return >= 0 in case of success, a negative AVERROR code
- * in case of failure
- */
-int av_buffersrc_add_ref(AVFilterContext *buffer_src,
- AVFilterBufferRef *picref, int flags);
-
-/**
- * Get the number of failed requests.
- *
- * A failed request is when the request_frame method is called while no
- * frame is present in the buffer.
- * The number is reset when a frame is added.
- */
-unsigned av_buffersrc_get_nb_failed_requests(AVFilterContext *buffer_src);
-
-#if FF_API_AVFILTERBUFFER
-/**
- * Add a buffer to a filtergraph.
- *
- * @param ctx an instance of the buffersrc filter
- * @param buf buffer containing frame data to be passed down the filtergraph.
- * This function will take ownership of buf, the user must not free it.
- * A NULL buf signals EOF -- i.e. no more frames will be sent to this filter.
- *
- * @deprecated use av_buffersrc_write_frame() or av_buffersrc_add_frame()
- */
-attribute_deprecated
-int av_buffersrc_buffer(AVFilterContext *ctx, AVFilterBufferRef *buf);
-#endif
-
-/**
- * Add a frame to the buffer source.
- *
- * @param ctx an instance of the buffersrc filter
- * @param frame frame to be added. If the frame is reference counted, this
- * function will make a new reference to it. Otherwise the frame data will be
- * copied.
- *
- * @return 0 on success, a negative AVERROR on error
- *
- * This function is equivalent to av_buffersrc_add_frame_flags() with the
- * AV_BUFFERSRC_FLAG_KEEP_REF flag.
- */
-int av_buffersrc_write_frame(AVFilterContext *ctx, const AVFrame *frame);
-
-/**
- * Add a frame to the buffer source.
- *
- * @param ctx an instance of the buffersrc filter
- * @param frame frame to be added. If the frame is reference counted, this
- * function will take ownership of the reference(s) and reset the frame.
- * Otherwise the frame data will be copied. If this function returns an error,
- * the input frame is not touched.
- *
- * @return 0 on success, a negative AVERROR on error.
- *
- * @note the difference between this function and av_buffersrc_write_frame() is
- * that av_buffersrc_write_frame() creates a new reference to the input frame,
- * while this function takes ownership of the reference passed to it.
- *
- * This function is equivalent to av_buffersrc_add_frame_flags() without the
- * AV_BUFFERSRC_FLAG_KEEP_REF flag.
- */
-int av_buffersrc_add_frame(AVFilterContext *ctx, AVFrame *frame);
-
-/**
- * Add a frame to the buffer source.
- *
- * By default, if the frame is reference-counted, this function will take
- * ownership of the reference(s) and reset the frame. This can be controlled
- * using the flags.
- *
- * If this function returns an error, the input frame is not touched.
- *
- * @param buffer_src pointer to a buffer source context
- * @param frame a frame, or NULL to mark EOF
- * @param flags a combination of AV_BUFFERSRC_FLAG_*
- * @return >= 0 in case of success, a negative AVERROR code
- * in case of failure
- */
-int av_buffersrc_add_frame_flags(AVFilterContext *buffer_src,
- AVFrame *frame, int flags);
-
-
-/**
- * @}
- */
-
-#endif /* AVFILTER_BUFFERSRC_H */
diff --git a/Externals/ffmpeg/dev/include/libavfilter/version.h b/Externals/ffmpeg/dev/include/libavfilter/version.h
deleted file mode 100644
index 383eb55ef4..0000000000
--- a/Externals/ffmpeg/dev/include/libavfilter/version.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Version macros.
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef AVFILTER_VERSION_H
-#define AVFILTER_VERSION_H
-
-/**
- * @file
- * @ingroup lavfi
- * Libavfilter version macros
- */
-
-#include "libavutil/version.h"
-
-#define LIBAVFILTER_VERSION_MAJOR 5
-#define LIBAVFILTER_VERSION_MINOR 7
-#define LIBAVFILTER_VERSION_MICRO 101
-
-#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
- LIBAVFILTER_VERSION_MINOR, \
- LIBAVFILTER_VERSION_MICRO)
-#define LIBAVFILTER_VERSION AV_VERSION(LIBAVFILTER_VERSION_MAJOR, \
- LIBAVFILTER_VERSION_MINOR, \
- LIBAVFILTER_VERSION_MICRO)
-#define LIBAVFILTER_BUILD LIBAVFILTER_VERSION_INT
-
-#define LIBAVFILTER_IDENT "Lavfi" AV_STRINGIFY(LIBAVFILTER_VERSION)
-
-/**
- * FF_API_* defines may be placed below to indicate public API that will be
- * dropped at a future version bump. The defines themselves are not part of
- * the public API and may change, break or disappear at any time.
- */
-
-#ifndef FF_API_AVFILTERPAD_PUBLIC
-#define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-#ifndef FF_API_FOO_COUNT
-#define FF_API_FOO_COUNT (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-#ifndef FF_API_AVFILTERBUFFER
-#define FF_API_AVFILTERBUFFER (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-#ifndef FF_API_OLD_FILTER_OPTS
-#define FF_API_OLD_FILTER_OPTS (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-#ifndef FF_API_AVFILTER_OPEN
-#define FF_API_AVFILTER_OPEN (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-#ifndef FF_API_AVFILTER_INIT_FILTER
-#define FF_API_AVFILTER_INIT_FILTER (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-#ifndef FF_API_OLD_FILTER_REGISTER
-#define FF_API_OLD_FILTER_REGISTER (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-#ifndef FF_API_OLD_GRAPH_PARSE
-#define FF_API_OLD_GRAPH_PARSE (LIBAVFILTER_VERSION_MAJOR < 5)
-#endif
-#ifndef FF_API_NOCONST_GET_NAME
-#define FF_API_NOCONST_GET_NAME (LIBAVFILTER_VERSION_MAJOR < 6)
-#endif
-
-#endif /* AVFILTER_VERSION_H */
diff --git a/Externals/ffmpeg/dev/include/libpostproc/postprocess.h b/Externals/ffmpeg/dev/include/libpostproc/postprocess.h
deleted file mode 100644
index e00ed968d7..0000000000
--- a/Externals/ffmpeg/dev/include/libpostproc/postprocess.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at)
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef POSTPROC_POSTPROCESS_H
-#define POSTPROC_POSTPROCESS_H
-
-/**
- * @file
- * @ingroup lpp
- * external API header
- */
-
-/**
- * @defgroup lpp Libpostproc
- * @{
- */
-
-#include "libpostproc/version.h"
-
-/**
- * Return the LIBPOSTPROC_VERSION_INT constant.
- */
-unsigned postproc_version(void);
-
-/**
- * Return the libpostproc build-time configuration.
- */
-const char *postproc_configuration(void);
-
-/**
- * Return the libpostproc license.
- */
-const char *postproc_license(void);
-
-#define PP_QUALITY_MAX 6
-
-#define QP_STORE_T int8_t
-
-#include <inttypes.h>
-
-typedef void pp_context;
-typedef void pp_mode;
-
-#if LIBPOSTPROC_VERSION_INT < (52<<16)
-typedef pp_context pp_context_t;
-typedef pp_mode pp_mode_t;
-extern const char *const pp_help; ///< a simple help text
-#else
-extern const char pp_help[]; ///< a simple help text
-#endif
-
-void pp_postprocess(const uint8_t * src[3], const int srcStride[3],
- uint8_t * dst[3], const int dstStride[3],
- int horizontalSize, int verticalSize,
- const QP_STORE_T *QP_store, int QP_stride,
- pp_mode *mode, pp_context *ppContext, int pict_type);
-
-
-/**
- * Return a pp_mode or NULL if an error occurred.
- *
- * @param name the string after "-pp" on the command line
- * @param quality a number from 0 to PP_QUALITY_MAX
- */
-pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality);
-void pp_free_mode(pp_mode *mode);
-
-pp_context *pp_get_context(int width, int height, int flags);
-void pp_free_context(pp_context *ppContext);
-
-#define PP_CPU_CAPS_MMX 0x80000000
-#define PP_CPU_CAPS_MMX2 0x20000000
-#define PP_CPU_CAPS_3DNOW 0x40000000
-#define PP_CPU_CAPS_ALTIVEC 0x10000000
-#define PP_CPU_CAPS_AUTO 0x00080000
-
-#define PP_FORMAT 0x00000008
-#define PP_FORMAT_420 (0x00000011|PP_FORMAT)
-#define PP_FORMAT_422 (0x00000001|PP_FORMAT)
-#define PP_FORMAT_411 (0x00000002|PP_FORMAT)
-#define PP_FORMAT_444 (0x00000000|PP_FORMAT)
-#define PP_FORMAT_440 (0x00000010|PP_FORMAT)
-
-#define PP_PICT_TYPE_QP2 0x00000010 ///< MPEG2 style QScale
-
-/**
- * @}
- */
-
-#endif /* POSTPROC_POSTPROCESS_H */
diff --git a/Externals/ffmpeg/dev/include/libpostproc/version.h b/Externals/ffmpeg/dev/include/libpostproc/version.h
deleted file mode 100644
index 59c24660f8..0000000000
--- a/Externals/ffmpeg/dev/include/libpostproc/version.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Version macros.
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef POSTPROC_POSTPROCESS_VERSION_H
-#define POSTPROC_POSTPROCESS_VERSION_H
-
-/**
- * @file
- * Libpostproc version macros
- */
-
-#include "libavutil/avutil.h"
-
-#define LIBPOSTPROC_VERSION_MAJOR 53
-#define LIBPOSTPROC_VERSION_MINOR 3
-#define LIBPOSTPROC_VERSION_MICRO 100
-
-#define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \
- LIBPOSTPROC_VERSION_MINOR, \
- LIBPOSTPROC_VERSION_MICRO)
-#define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \
- LIBPOSTPROC_VERSION_MINOR, \
- LIBPOSTPROC_VERSION_MICRO)
-#define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT
-
-#define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION)
-
-#endif /* POSTPROC_POSTPROCESS_VERSION_H */
diff --git a/Externals/ffmpeg/dev/include/libswresample/swresample.h b/Externals/ffmpeg/dev/include/libswresample/swresample.h
deleted file mode 100644
index 37656a667d..0000000000
--- a/Externals/ffmpeg/dev/include/libswresample/swresample.h
+++ /dev/null
@@ -1,534 +0,0 @@
-/*
- * Copyright (C) 2011-2013 Michael Niedermayer (michaelni@gmx.at)
- *
- * This file is part of libswresample
- *
- * libswresample is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * libswresample is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with libswresample; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef SWRESAMPLE_SWRESAMPLE_H
-#define SWRESAMPLE_SWRESAMPLE_H
-
-/**
- * @file
- * @ingroup lswr
- * libswresample public header
- */
-
-/**
- * @defgroup lswr Libswresample
- * @{
- *
- * Libswresample (lswr) is a library that handles audio resampling, sample
- * format conversion and mixing.
- *
- * Interaction with lswr is done through SwrContext, which is
- * allocated with swr_alloc() or swr_alloc_set_opts(). It is opaque, so all parameters
- * must be set with the @ref avoptions API.
- *
- * The first thing you will need to do in order to use lswr is to allocate
- * SwrContext. This can be done with swr_alloc() or swr_alloc_set_opts(). If you
- * are using the former, you must set options through the @ref avoptions API.
- * The latter function provides the same feature, but it allows you to set some
- * common options in the same statement.
- *
- * For example the following code will setup conversion from planar float sample
- * format to interleaved signed 16-bit integer, downsampling from 48kHz to
- * 44.1kHz and downmixing from 5.1 channels to stereo (using the default mixing
- * matrix). This is using the swr_alloc() function.
- * @code
- * SwrContext *swr = swr_alloc();
- * av_opt_set_channel_layout(swr, "in_channel_layout", AV_CH_LAYOUT_5POINT1, 0);
- * av_opt_set_channel_layout(swr, "out_channel_layout", AV_CH_LAYOUT_STEREO, 0);
- * av_opt_set_int(swr, "in_sample_rate", 48000, 0);
- * av_opt_set_int(swr, "out_sample_rate", 44100, 0);
- * av_opt_set_sample_fmt(swr, "in_sample_fmt", AV_SAMPLE_FMT_FLTP, 0);
- * av_opt_set_sample_fmt(swr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0);
- * @endcode
- *
- * The same job can be done using swr_alloc_set_opts() as well:
- * @code
- * SwrContext *swr = swr_alloc_set_opts(NULL, // we're allocating a new context
- * AV_CH_LAYOUT_STEREO, // out_ch_layout
- * AV_SAMPLE_FMT_S16, // out_sample_fmt
- * 44100, // out_sample_rate
- * AV_CH_LAYOUT_5POINT1, // in_ch_layout
- * AV_SAMPLE_FMT_FLTP, // in_sample_fmt
- * 48000, // in_sample_rate
- * 0, // log_offset
- * NULL); // log_ctx
- * @endcode
- *
- * Once all values have been set, it must be initialized with swr_init(). If
- * you need to change the conversion parameters, you can change the parameters
- * using @ref AVOptions, as described above in the first example; or by using
- * swr_alloc_set_opts(), but with the first argument the allocated context.
- * You must then call swr_init() again.
- *
- * The conversion itself is done by repeatedly calling swr_convert().
- * Note that the samples may get buffered in swr if you provide insufficient
- * output space or if sample rate conversion is done, which requires "future"
- * samples. Samples that do not require future input can be retrieved at any
- * time by using swr_convert() (in_count can be set to 0).
- * At the end of conversion the resampling buffer can be flushed by calling
- * swr_convert() with NULL in and 0 in_count.
- *
- * The samples used in the conversion process can be managed with the libavutil
- * @ref lavu_sampmanip "samples manipulation" API, including av_samples_alloc()
- * function used in the following example.
- *
- * The delay between input and output, can at any time be found by using
- * swr_get_delay().
- *
- * The following code demonstrates the conversion loop assuming the parameters
- * from above and caller-defined functions get_input() and handle_output():
- * @code
- * uint8_t **input;
- * int in_samples;
- *
- * while (get_input(&input, &in_samples)) {
- * uint8_t *output;
- * int out_samples = av_rescale_rnd(swr_get_delay(swr, 48000) +
- * in_samples, 44100, 48000, AV_ROUND_UP);
- * av_samples_alloc(&output, NULL, 2, out_samples,
- * AV_SAMPLE_FMT_S16, 0);
- * out_samples = swr_convert(swr, &output, out_samples,
- * input, in_samples);
- * handle_output(output, out_samples);
- * av_freep(&output);
- * }
- * @endcode
- *
- * When the conversion is finished, the conversion
- * context and everything associated with it must be freed with swr_free().
- * A swr_close() function is also available, but it exists mainly for
- * compatibility with libavresample, and is not required to be called.
- *
- * There will be no memory leak if the data is not completely flushed before
- * swr_free().
- */
-
-#include <stdint.h>
-#include "libavutil/frame.h"
-#include "libavutil/samplefmt.h"
-
-#include "libswresample/version.h"
-
-#if LIBSWRESAMPLE_VERSION_MAJOR < 1
-#define SWR_CH_MAX 32 ///< Maximum number of channels
-#endif
-
-/**
- * @name Option constants
- * These constants are used for the @ref avoptions interface for lswr.
- * @{
- *
- */
-
-#define SWR_FLAG_RESAMPLE 1 ///< Force resampling even if equal sample rate
-//TODO use int resample ?
-//long term TODO can we enable this dynamically?
-
-/** Dithering algorithms */
-enum SwrDitherType {
- SWR_DITHER_NONE = 0,
- SWR_DITHER_RECTANGULAR,
- SWR_DITHER_TRIANGULAR,
- SWR_DITHER_TRIANGULAR_HIGHPASS,
-
- SWR_DITHER_NS = 64, ///< not part of API/ABI
- SWR_DITHER_NS_LIPSHITZ,
- SWR_DITHER_NS_F_WEIGHTED,
- SWR_DITHER_NS_MODIFIED_E_WEIGHTED,
- SWR_DITHER_NS_IMPROVED_E_WEIGHTED,
- SWR_DITHER_NS_SHIBATA,
- SWR_DITHER_NS_LOW_SHIBATA,
- SWR_DITHER_NS_HIGH_SHIBATA,
- SWR_DITHER_NB, ///< not part of API/ABI
-};
-
-/** Resampling Engines */
-enum SwrEngine {
- SWR_ENGINE_SWR, /**< SW Resampler */
- SWR_ENGINE_SOXR, /**< SoX Resampler */
- SWR_ENGINE_NB, ///< not part of API/ABI
-};
-
-/** Resampling Filter Types */
-enum SwrFilterType {
- SWR_FILTER_TYPE_CUBIC, /**< Cubic */
- SWR_FILTER_TYPE_BLACKMAN_NUTTALL, /**< Blackman Nuttall Windowed Sinc */
- SWR_FILTER_TYPE_KAISER, /**< Kaiser Windowed Sinc */
-};
-
-/**
- * @}
- */
-
-/**
- * The libswresample context. Unlike libavcodec and libavformat, this structure
- * is opaque. This means that if you would like to set options, you must use
- * the @ref avoptions API and cannot directly set values to members of the
- * structure.
- */
-typedef struct SwrContext SwrContext;
-
-/**
- * Get the AVClass for SwrContext. It can be used in combination with
- * AV_OPT_SEARCH_FAKE_OBJ for examining options.
- *
- * @see av_opt_find().
- * @return the AVClass of SwrContext
- */
-const AVClass *swr_get_class(void);
-
-/**
- * @name SwrContext constructor functions
- * @{
- */
-
-/**
- * Allocate SwrContext.
- *
- * If you use this function you will need to set the parameters (manually or
- * with swr_alloc_set_opts()) before calling swr_init().
- *
- * @see swr_alloc_set_opts(), swr_init(), swr_free()
- * @return NULL on error, allocated context otherwise
- */
-struct SwrContext *swr_alloc(void);
-
-/**
- * Initialize context after user parameters have been set.
- * @note The context must be configured using the AVOption API.
- *
- * @see av_opt_set_int()
- * @see av_opt_set_dict()
- *
- * @param[in,out] s Swr context to initialize
- * @return AVERROR error code in case of failure.
- */
-int swr_init(struct SwrContext *s);
-
-/**
- * Check whether an swr context has been initialized or not.
- *
- * @param[in] s Swr context to check
- * @see swr_init()
- * @return positive if it has been initialized, 0 if not initialized
- */
-int swr_is_initialized(struct SwrContext *s);
-
-/**
- * Allocate SwrContext if needed and set/reset common parameters.
- *
- * This function does not require s to be allocated with swr_alloc(). On the
- * other hand, swr_alloc() can use swr_alloc_set_opts() to set the parameters
- * on the allocated context.
- *
- * @param s existing Swr context if available, or NULL if not
- * @param out_ch_layout output channel layout (AV_CH_LAYOUT_*)
- * @param out_sample_fmt output sample format (AV_SAMPLE_FMT_*).
- * @param out_sample_rate output sample rate (frequency in Hz)
- * @param in_ch_layout input channel layout (AV_CH_LAYOUT_*)
- * @param in_sample_fmt input sample format (AV_SAMPLE_FMT_*).
- * @param in_sample_rate input sample rate (frequency in Hz)
- * @param log_offset logging level offset
- * @param log_ctx parent logging context, can be NULL
- *
- * @see swr_init(), swr_free()
- * @return NULL on error, allocated context otherwise
- */
-struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
- int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate,
- int64_t in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate,
- int log_offset, void *log_ctx);
-
-/**
- * @}
- *
- * @name SwrContext destructor functions
- * @{
- */
-
-/**
- * Free the given SwrContext and set the pointer to NULL.
- *
- * @param[in] s a pointer to a pointer to Swr context
- */
-void swr_free(struct SwrContext **s);
-
-/**
- * Closes the context so that swr_is_initialized() returns 0.
- *
- * The context can be brought back to life by running swr_init(),
- * swr_init() can also be used without swr_close().
- * This function is mainly provided for simplifying the usecase
- * where one tries to support libavresample and libswresample.
- *
- * @param[in,out] s Swr context to be closed
- */
-void swr_close(struct SwrContext *s);
-
-/**
- * @}
- *
- * @name Core conversion functions
- * @{
- */
-
-/** Convert audio.
- *
- * in and in_count can be set to 0 to flush the last few samples out at the
- * end.
- *
- * If more input is provided than output space then the input will be buffered.
- * You can avoid this buffering by providing more output space than input.
- * Conversion will run directly without copying whenever possible.
- *
- * @param s allocated Swr context, with parameters set
- * @param out output buffers, only the first one need be set in case of packed audio
- * @param out_count amount of space available for output in samples per channel
- * @param in input buffers, only the first one need to be set in case of packed audio
- * @param in_count number of input samples available in one channel
- *
- * @return number of samples output per channel, negative value on error
- */
-int swr_convert(struct SwrContext *s, uint8_t **out, int out_count,
- const uint8_t **in , int in_count);
-
-/**
- * Convert the next timestamp from input to output
- * timestamps are in 1/(in_sample_rate * out_sample_rate) units.
- *
- * @note There are 2 slightly differently behaving modes.
- * @li When automatic timestamp compensation is not used, (min_compensation >= FLT_MAX)
- * in this case timestamps will be passed through with delays compensated
- * @li When automatic timestamp compensation is used, (min_compensation < FLT_MAX)
- * in this case the output timestamps will match output sample numbers.
- * See ffmpeg-resampler(1) for the two modes of compensation.
- *
- * @param s[in] initialized Swr context
- * @param pts[in] timestamp for the next input sample, INT64_MIN if unknown
- * @see swr_set_compensation(), swr_drop_output(), and swr_inject_silence() are
- * function used internally for timestamp compensation.
- * @return the output timestamp for the next output sample
- */
-int64_t swr_next_pts(struct SwrContext *s, int64_t pts);
-
-/**
- * @}
- *
- * @name Low-level option setting functions
- * These functons provide a means to set low-level options that is not possible
- * with the AVOption API.
- * @{
- */
-
-/**
- * Activate resampling compensation ("soft" compensation). This function is
- * internally called when needed in swr_next_pts().
- *
- * @param[in,out] s allocated Swr context. If it is not initialized,
- * or SWR_FLAG_RESAMPLE is not set, swr_init() is
- * called with the flag set.
- * @param[in] sample_delta delta in PTS per sample
- * @param[in] compensation_distance number of samples to compensate for
- * @return >= 0 on success, AVERROR error codes if:
- * @li @c s is NULL,
- * @li @c compensation_distance is less than 0,
- * @li @c compensation_distance is 0 but sample_delta is not,
- * @li compensation unsupported by resampler, or
- * @li swr_init() fails when called.
- */
-int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensation_distance);
-
-/**
- * Set a customized input channel mapping.
- *
- * @param[in,out] s allocated Swr context, not yet initialized
- * @param[in] channel_map customized input channel mapping (array of channel
- * indexes, -1 for a muted channel)
- * @return >= 0 on success, or AVERROR error code in case of failure.
- */
-int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map);
-
-/**
- * Set a customized remix matrix.
- *
- * @param s allocated Swr context, not yet initialized
- * @param matrix remix coefficients; matrix[i + stride * o] is
- * the weight of input channel i in output channel o
- * @param stride offset between lines of the matrix
- * @return >= 0 on success, or AVERROR error code in case of failure.
- */
-int swr_set_matrix(struct SwrContext *s, const double *matrix, int stride);
-
-/**
- * @}
- *
- * @name Sample handling functions
- * @{
- */
-
-/**
- * Drops the specified number of output samples.
- *
- * This function, along with swr_inject_silence(), is called by swr_next_pts()
- * if needed for "hard" compensation.
- *
- * @param s allocated Swr context
- * @param count number of samples to be dropped
- *
- * @return >= 0 on success, or a negative AVERROR code on failure
- */
-int swr_drop_output(struct SwrContext *s, int count);
-
-/**
- * Injects the specified number of silence samples.
- *
- * This function, along with swr_drop_output(), is called by swr_next_pts()
- * if needed for "hard" compensation.
- *
- * @param s allocated Swr context
- * @param count number of samples to be dropped
- *
- * @return >= 0 on success, or a negative AVERROR code on failure
- */
-int swr_inject_silence(struct SwrContext *s, int count);
-
-/**
- * Gets the delay the next input sample will experience relative to the next output sample.
- *
- * Swresample can buffer data if more input has been provided than available
- * output space, also converting between sample rates needs a delay.
- * This function returns the sum of all such delays.
- * The exact delay is not necessarily an integer value in either input or
- * output sample rate. Especially when downsampling by a large value, the
- * output sample rate may be a poor choice to represent the delay, similarly
- * for upsampling and the input sample rate.
- *
- * @param s swr context
- * @param base timebase in which the returned delay will be:
- * @li if it's set to 1 the returned delay is in seconds
- * @li if it's set to 1000 the returned delay is in milliseconds
- * @li if it's set to the input sample rate then the returned
- * delay is in input samples
- * @li if it's set to the output sample rate then the returned
- * delay is in output samples
- * @li if it's the least common multiple of in_sample_rate and
- * out_sample_rate then an exact rounding-free delay will be
- * returned
- * @returns the delay in 1 / @c base units.
- */
-int64_t swr_get_delay(struct SwrContext *s, int64_t base);
-
-/**
- * @}
- *
- * @name Configuration accessors
- * @{
- */
-
-/**
- * Return the @ref LIBSWRESAMPLE_VERSION_INT constant.
- *
- * This is useful to check if the build-time libswresample has the same version
- * as the run-time one.
- *
- * @returns the unsigned int-typed version
- */
-unsigned swresample_version(void);
-
-/**
- * Return the swr build-time configuration.
- *
- * @returns the build-time @c ./configure flags
- */
-const char *swresample_configuration(void);
-
-/**
- * Return the swr license.
- *
- * @returns the license of libswresample, determined at build-time
- */
-const char *swresample_license(void);
-
-/**
- * @}
- *
- * @name AVFrame based API
- * @{
- */
-
-/**
- * Convert the samples in the input AVFrame and write them to the output AVFrame.
- *
- * Input and output AVFrames must have channel_layout, sample_rate and format set.
- *
- * If the output AVFrame does not have the data pointers allocated the nb_samples
- * field will be set using av_frame_get_buffer()
- * is called to allocate the frame.
- *
- * The output AVFrame can be NULL or have fewer allocated samples than required.
- * In this case, any remaining samples not written to the output will be added
- * to an internal FIFO buffer, to be returned at the next call to this function
- * or to swr_convert().
- *
- * If converting sample rate, there may be data remaining in the internal
- * resampling delay buffer. swr_get_delay() tells the number of
- * remaining samples. To get this data as output, call this function or
- * swr_convert() with NULL input.
- *
- * If the SwrContext configuration does not match the output and
- * input AVFrame settings the conversion does not take place and depending on
- * which AVFrame is not matching AVERROR_OUTPUT_CHANGED, AVERROR_INPUT_CHANGED
- * or the result of a bitwise-OR of them is returned.
- *
- * @see swr_delay()
- * @see swr_convert()
- * @see swr_get_delay()
- *
- * @param swr audio resample context
- * @param output output AVFrame
- * @param input input AVFrame
- * @return 0 on success, AVERROR on failure or nonmatching
- * configuration.
- */
-int swr_convert_frame(SwrContext *swr,
- AVFrame *output, const AVFrame *input);
-
-/**
- * Configure or reconfigure the SwrContext using the information
- * provided by the AVFrames.
- *
- * The original resampling context is reset even on failure.
- * The function calls swr_close() internally if the context is open.
- *
- * @see swr_close();
- *
- * @param swr audio resample context
- * @param output output AVFrame
- * @param input input AVFrame
- * @return 0 on success, AVERROR on failure.
- */
-int swr_config_frame(SwrContext *swr, const AVFrame *out, const AVFrame *in);
-
-/**
- * @}
- * @}
- */
-
-#endif /* SWRESAMPLE_SWRESAMPLE_H */
diff --git a/Externals/ffmpeg/dev/include/libswresample/version.h b/Externals/ffmpeg/dev/include/libswresample/version.h
deleted file mode 100644
index 61c76fa2f4..0000000000
--- a/Externals/ffmpeg/dev/include/libswresample/version.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Version macros.
- *
- * This file is part of libswresample
- *
- * libswresample is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * libswresample is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with libswresample; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef SWR_VERSION_H
-#define SWR_VERSION_H
-
-/**
- * @file
- * Libswresample version macros
- */
-
-#include "libavutil/avutil.h"
-
-#define LIBSWRESAMPLE_VERSION_MAJOR 1
-#define LIBSWRESAMPLE_VERSION_MINOR 1
-#define LIBSWRESAMPLE_VERSION_MICRO 100
-
-#define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \
- LIBSWRESAMPLE_VERSION_MINOR, \
- LIBSWRESAMPLE_VERSION_MICRO)
-#define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \
- LIBSWRESAMPLE_VERSION_MINOR, \
- LIBSWRESAMPLE_VERSION_MICRO)
-#define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT
-
-#define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION)
-
-#endif /* SWR_VERSION_H */