19#ifndef AVCODEC_BSF_FILTERS_H
20#define AVCODEC_BSF_FILTERS_H
32#define FFERROR_BSF_NOT_READY FFERRTAG('N','R','D','Y')
33#define FFERROR_SOURCE_EMPTY FFERRTAG('M','P','T','Y')
56#define FF_BSF_PAD_FLAG_NEEDS_WRITABLE (1 << 0)
61#define FF_BSF_PAD_FLAG_FREE_NAME (1 << 1)
142#define BSFILTER_INOUTPADS(inout, array) \
144 .nb_ ## inout = FF_ARRAY_ELEMS(array)
145#define BSFILTER_INPUTS(array) BSFILTER_INOUTPADS(inputs, (array))
146#define BSFILTER_OUTPUTS(array) BSFILTER_INOUTPADS(outputs, (array))
150#define BSF_DEFINE_CLASS_EXT(name, desc, options) \
151 static const AVClass name##_class = { \
152 .class_name = desc, \
153 .item_name = av_default_item_name, \
155 .version = LIBAVUTIL_VERSION_INT, \
156 .category = AV_CLASS_CATEGORY_BITSTREAM_FILTER, \
158#define BSF_DEFINE_CLASS(fname) \
159 BSF_DEFINE_CLASS_EXT(fname, #fname, fname##_options)
const AVBitStreamFilterPad ff_default_bsf_pad[1]
AVCodecID
Identify the syntax and semantics of the bitstream.
void ff_bsf_set_ready(AVBitStreamFilterContext *filter, unsigned priority)
Mark a filter ready and schedule it for activation.
int ff_bsf_inlink_acknowledge_status(AVBitStreamFilterLink *link, int *rstatus, int64_t *rpts)
unsigned ff_bsf_source_get_nb_failed_requests(const AVBitStreamFilterContext *src)
Get the number of failed requests.
int ff_bsf_outlink_packet_wanted(AVBitStreamFilterLink *link)
int ff_bsf_inlink_consume_packet(AVBitStreamFilterLink *link, AVPacket **pkt)
int ff_bsf_filter_packet(AVBitStreamFilterLink *link, AVPacket *pkt)
Send a packet of data to the next filter.
int ff_bsf_outlink_get_status(AVBitStreamFilterLink *link)
void ff_bsf_link_set_in_status(AVBitStreamFilterLink *link, int status, int64_t pts)
void ff_bsf_inlink_set_status(AVBitStreamFilterLink *link, int status)
size_t ff_bsf_inlink_queued_packets(AVBitStreamFilterLink *link)
int ff_bsf_request_packet(AVBitStreamFilterLink *link)
void ff_bsf_inlink_request_packet(AVBitStreamFilterLink *link)
int ff_bsf_inlink_check_available_packet(AVBitStreamFilterLink *link)
Utilities for rational number calculation.
Link properties exposed to filter code, but not external callers.
AVBitStreamFilterPad * dstpad
input pad on the dest filter
struct AVBitStreamFilterGraph * graph
Graph the filter belongs to.
int64_t current_pts
Current timestamp of the link, as defined by the most recent packet(s), in link time_base units.
int64_t current_pts_us
Current timestamp of the link, as defined by the most recent packet(s), in AV_TIME_BASE units.
int64_t packet_count_in
Number of past packets sent through the link.
AVBitStreamFilterContext * src
source filter
AVBitStreamFilterContext * dst
dest filter
AVBitStreamFilterPad * srcpad
output pad on the source filter
A filter pad used for either input or output.
const char * name
Pad name.
int(* config_props)(AVBitStreamFilterLink *link)
Link configuration callback.
int(* filter)(AVBitStreamFilterLink *link, AVPacket *pkt)
Filtering callback.
int flags
A combination of FF_BSF_PAD_FLAG_* flags.
enum AVCodecID * codec_ids
A list of codec ids supported by the pad, terminated by AV_CODEC_ID_NONE.
int(* request_packet)(AVBitStreamFilterLink *link)
Packet request callback.
This struct describes the properties of an encoded stream.
This structure stores compressed data.
Rational number (pair of numerator and denominator).
void(* filter)(uint8_t *src, ptrdiff_t stride, int qscale)