FFmpeg
Data Structures | Functions | Variables
av1_frame_split_bsf.c File Reference
#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 FFBitStreamFilter 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

◆ av1_frame_split_filter()

static int av1_frame_split_filter ( AVBSFContext ctx,
AVPacket out 
)
static

Definition at line 51 of file av1_frame_split_bsf.c.

◆ av1_frame_split_init()

static int av1_frame_split_init ( AVBSFContext ctx)
static

Definition at line 203 of file av1_frame_split_bsf.c.

◆ av1_frame_split_flush()

static void av1_frame_split_flush ( AVBSFContext ctx)
static

Definition at line 232 of file av1_frame_split_bsf.c.

◆ av1_frame_split_close()

static void av1_frame_split_close ( AVBSFContext ctx)
static

Definition at line 240 of file av1_frame_split_bsf.c.

Variable Documentation

◆ decompose_unit_types

const CodedBitstreamUnitType decompose_unit_types[]
static

◆ av1_frame_split_codec_ids

enum AVCodecID av1_frame_split_codec_ids[]
static
Initial value:

Definition at line 249 of file av1_frame_split_bsf.c.

◆ ff_av1_frame_split_bsf

const FFBitStreamFilter ff_av1_frame_split_bsf
Initial value:
= {
.p.name = "av1_frame_split",
.p.codec_ids = av1_frame_split_codec_ids,
.priv_data_size = sizeof(AV1FSplitContext),
}

Definition at line 253 of file av1_frame_split_bsf.c.

av1_frame_split_close
static void av1_frame_split_close(AVBSFContext *ctx)
Definition: av1_frame_split_bsf.c:240
filter
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
Definition: filter_design.txt:228
AV1_OBU_TEMPORAL_DELIMITER
@ AV1_OBU_TEMPORAL_DELIMITER
Definition: av1.h:31
av1_frame_split_codec_ids
static enum AVCodecID av1_frame_split_codec_ids[]
Definition: av1_frame_split_bsf.c:249
AV1_OBU_FRAME_HEADER
@ AV1_OBU_FRAME_HEADER
Definition: av1.h:32
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts_bsf.c:365
AV_CODEC_ID_AV1
@ AV_CODEC_ID_AV1
Definition: codec_id.h:283
AV1FSplitContext
Definition: av1_frame_split_bsf.c:40
AV1_OBU_TILE_GROUP
@ AV1_OBU_TILE_GROUP
Definition: av1.h:33
av1_frame_split_flush
static void av1_frame_split_flush(AVBSFContext *ctx)
Definition: av1_frame_split_bsf.c:232
AV1_OBU_FRAME
@ AV1_OBU_FRAME
Definition: av1.h:35
AV1_OBU_SEQUENCE_HEADER
@ AV1_OBU_SEQUENCE_HEADER
Definition: av1.h:30
av1_frame_split_filter
static int av1_frame_split_filter(AVBSFContext *ctx, AVPacket *out)
Definition: av1_frame_split_bsf.c:51
AV_CODEC_ID_NONE
@ AV_CODEC_ID_NONE
Definition: codec_id.h:50
av1_frame_split_init
static int av1_frame_split_init(AVBSFContext *ctx)
Definition: av1_frame_split_bsf.c:203
flush
void(* flush)(AVBSFContext *ctx)
Definition: dts2pts_bsf.c:367