51 if (nal_size > INT_MAX - 4)
72 bytestream2_put_be32u(&pc, 1);
79 memcpy(buf, lcevc_pkt->
data, lcevc_pkt->
size);
159 .name =
"enhancement",
173 .p.name =
"lcevc_merge",
174 .p.priv_class = &lcevc_merge_class,
176 .
preinit = lcevc_merge_packetsync_preinit,
static AVFormatContext * ctx
const FFBitStreamFilter ff_lcevc_merge_bsf
int ff_bsf_filter_packet(AVBitStreamFilterLink *link, AVPacket *pkt)
Send a packet of data to the next filter.
static av_always_inline void bytestream2_init_writer(PutByteContext *p, uint8_t *buf, int buf_size)
static av_always_inline void bytestream2_skipu(GetByteContext *g, unsigned int size)
static av_always_inline int bytestream2_get_bytes_left(const GetByteContext *g)
static av_always_inline void bytestream2_init(GetByteContext *g, const uint8_t *buf, int buf_size)
static av_always_inline unsigned int bytestream2_put_bufferu(PutByteContext *p, const uint8_t *src, unsigned int size)
static av_always_inline void bytestream2_skip(GetByteContext *g, unsigned int size)
#define i(width, name, range_min, range_max)
#define fs(width, name, subs,...)
int(* init)(AVBSFContext *ctx)
AVCodecID
Identify the syntax and semantics of the bitstream.
@ AV_PKT_DATA_LCEVC
Raw LCEVC payload data, as a uint8_t array, with NAL emulation bytes intact.
uint8_t * av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type, size_t size)
Allocate new information of a packet.
static int get_nalsize(int nal_length_size, const uint8_t *buf, int buf_size, int *buf_index, void *logctx)
static const AVBitStreamFilterPad lcevc_merge_outputs[]
static enum AVCodecID enhancement_codec_ids[]
static av_cold void uninit(AVBitStreamFilterContext *ctx)
static int lcevc_merge(FFPacketSync *fs)
static av_cold int config_enhancement(AVBitStreamFilterLink *inlink)
static AVPacket * lcevc_merge_packets(AVBitStreamFilterContext *ctx, AVPacket *base_pkt, const AVPacket *lcevc_pkt)
static int activate(AVBitStreamFilterContext *ctx)
static const AVBitStreamFilterPad lcevc_merge_inputs[]
static int config_output(AVBitStreamFilterLink *outlink)
#define BSFILTER_INPUTS(array)
#define BSFILTER_OUTPUTS(array)
void ff_packetsync_uninit(FFPacketSync *fs)
Free all memory currently allocated.
int ff_packetsync_init_dualinput(FFPacketSync *fs, AVBitStreamFilterContext *parent)
Initialize a packet sync structure for dualinput.
int ff_packetsync_configure(FFPacketSync *fs)
Configure a packet sync structure.
int ff_packetsync_activate(FFPacketSync *fs)
Examine the packets in the filter's input and try to produce output.
int ff_packetsync_dualinput_get(FFPacketSync *fs, AVPacket **f0, AVPacket **f1)
#define PACKETSYNC_DEFINE_CLASS_EXT(name, context, field, options)
static av_cold int preinit(AVBitStreamFilterContext *ctx)
Link properties exposed to filter code, but not external callers.
AVBitStreamFilterContext * src
source filter
AVBitStreamFilterContext * dst
dest filter
A filter pad used for either input or output.
Describe the class of an AVClass context structure.
int extradata_size
Size of the extradata content in bytes.
uint8_t * extradata
Extra binary data needed for initializing the decoder, codec-dependent.
This structure stores compressed data.
AVRational time_base
Time base for the output events.
int(* on_event)(struct FFPacketSync *fs)
Callback called when a packet event is ready.