FFmpeg
Data Structures | Functions | Variables
av1_frame_split_bsf.c File Reference

This bitstream filter splits AV1 Temporal Units into packets containing just one frame, plus any leading and trailing OBUs that may be present at the beginning or end, respectively. More...

#include "libavutil/avassert.h"
#include "bsf.h"
#include "bsf_internal.h"
#include "cbs.h"
#include "cbs_av1.h"

Go to the source code of this file.

Data Structures

struct  AV1FSplitContext
 

Functions

static int av1_frame_split_filter (AVBSFContext *ctx, AVPacket *out)
 
static int av1_frame_split_init (AVBSFContext *ctx)
 
static void av1_frame_split_flush (AVBSFContext *ctx)
 
static void av1_frame_split_close (AVBSFContext *ctx)
 

Variables

static const CodedBitstreamUnitType decompose_unit_types []
 
static enum AVCodecID av1_frame_split_codec_ids []
 
const AVBitStreamFilter ff_av1_frame_split_bsf
 

Detailed Description

This bitstream filter splits AV1 Temporal Units into packets containing just one frame, plus any leading and trailing OBUs that may be present at the beginning or end, respectively.

Temporal Units already containing only one frame will be passed through unchanged. When splitting can't be performed, the Temporal Unit will be passed through containing only the remaining OBUs starting from the first one after the last successfully split frame.

Definition in file av1_frame_split_bsf.c.

Function Documentation

static int av1_frame_split_filter ( AVBSFContext ctx,
AVPacket out 
)
static

Definition at line 51 of file av1_frame_split_bsf.c.

static int av1_frame_split_init ( AVBSFContext ctx)
static

Definition at line 203 of file av1_frame_split_bsf.c.

static void av1_frame_split_flush ( AVBSFContext ctx)
static

Definition at line 232 of file av1_frame_split_bsf.c.

static void av1_frame_split_close ( AVBSFContext ctx)
static

Definition at line 240 of file av1_frame_split_bsf.c.

Variable Documentation

const CodedBitstreamUnitType decompose_unit_types[]
static
enum AVCodecID av1_frame_split_codec_ids[]
static
Initial value:

Definition at line 249 of file av1_frame_split_bsf.c.

const AVBitStreamFilter ff_av1_frame_split_bsf
Initial value:
= {
.name = "av1_frame_split",
.priv_data_size = sizeof(AV1FSplitContext),
}
static void flush(AVCodecContext *avctx)
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
static void av1_frame_split_flush(AVBSFContext *ctx)
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
static enum AVCodecID av1_frame_split_codec_ids[]
static int av1_frame_split_init(AVBSFContext *ctx)
static void av1_frame_split_close(AVBSFContext *ctx)
static enum AVCodecID codec_ids[]
static int av1_frame_split_filter(AVBSFContext *ctx, AVPacket *out)

Definition at line 253 of file av1_frame_split_bsf.c.