#define AVFILTER_AVFILTER_H
#include "libavutil/avutil.h"
+#include "libavutil/log.h"
#include "libavutil/samplefmt.h"
-
-#define LIBAVFILTER_VERSION_MAJOR 2
-#define LIBAVFILTER_VERSION_MINOR 2
-#define LIBAVFILTER_VERSION_MICRO 0
-
-#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
+#include "libavutil/pixfmt.h"
+#include "libavutil/rational.h"
+#include "libavcodec/avcodec.h"
#include <stddef.h>
+#include "libavfilter/version.h"
+
/**
* Return the LIBAVFILTER_VERSION_INT constant.
*/
* per reference properties must be separated out.
*/
typedef struct AVFilterBufferRefAudioProps {
- int64_t channel_layout; ///< channel layout of audio buffer
+ uint64_t channel_layout; ///< channel layout of audio buffer
int nb_samples; ///< number of audio samples
int size; ///< audio buffer size
uint32_t sample_rate; ///< audio buffer sample rate
AVRational pixel_aspect; ///< pixel 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
} AVFilterBufferRefVideoProps;
/**
switch (src->type) {
case AVMEDIA_TYPE_VIDEO: *dst->video = *src->video; break;
case AVMEDIA_TYPE_AUDIO: *dst->audio = *src->audio; break;
+ default: break;
}
}
*/
AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
- int64_t channel_layout, int planar);
+ uint64_t channel_layout, int planar);
/**
* Callback called after the slices of a frame are completely sent. If
/** default handler for get_audio_buffer() for audio inputs */
AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
- int64_t channel_layout, int planar);
+ uint64_t channel_layout, int planar);
/**
* A helper for query_formats() which sets all links to the same list of
/** get_audio_buffer() handler for filters which simply pass audio along */
AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
- int64_t channel_layout, int planar);
+ uint64_t channel_layout, int planar);
/**
* Filter definition. This defines the pads a filter contains, and all the
int h; ///< agreed upon image height
AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio
/* These two parameters apply only to audio */
- int64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h)
+ uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h)
int64_t sample_rate; ///< samples per second
int format; ///< agreed upon media format
*/
AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
- int64_t channel_layout, int planar);
+ uint64_t channel_layout, int planar);
/**
* Request an input frame from the filter at the other end of the link.
int avfilter_poll_frame(AVFilterLink *link);
/**
- * Notifie the next filter of the start of a frame.
+ * Notify the next filter of the start of a frame.
*
* @param link the output link the frame will be sent over
* @param picref A reference to the frame about to be sent. The data for this
&f->output_pads, &f->outputs, p);
}
-#endif /* AVFILTER_AVFILTER_H */
+/**
+ * Copy the frame properties of src to dst, without copying the actual
+ * image data.
+ *
+ * @return 0 on success, a negative number on error.
+ */
+int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src);
+
+#endif /* AVFILTER_AVFILTER_H */