FFmpeg
Data Structures | Functions | Variables
av1_frame_split.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.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.c.

◆ av1_frame_split_init()

static int av1_frame_split_init ( AVBSFContext ctx)
static

Definition at line 203 of file av1_frame_split.c.

◆ av1_frame_split_flush()

static void av1_frame_split_flush ( AVBSFContext ctx)
static

Definition at line 232 of file av1_frame_split.c.

◆ av1_frame_split_close()

static void av1_frame_split_close ( AVBSFContext ctx)
static

Definition at line 240 of file av1_frame_split.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.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.c.

filter
void(* filter)(uint8_t *src, int stride, int qscale)
Definition: h263dsp.c:29
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.c:249
av1_frame_split_init
static int av1_frame_split_init(AVBSFContext *ctx)
Definition: av1_frame_split.c:203
AV1_OBU_FRAME_HEADER
@ AV1_OBU_FRAME_HEADER
Definition: av1.h:32
av1_frame_split_flush
static void av1_frame_split_flush(AVBSFContext *ctx)
Definition: av1_frame_split.c:232
AV_CODEC_ID_AV1
@ AV_CODEC_ID_AV1
Definition: codec_id.h:284
AV1FSplitContext
Definition: av1_frame_split.c:40
flush
void(* flush)(AVBSFContext *ctx)
Definition: dts2pts.c:370
AV1_OBU_TILE_GROUP
@ AV1_OBU_TILE_GROUP
Definition: av1.h:33
av1_frame_split_close
static void av1_frame_split_close(AVBSFContext *ctx)
Definition: av1_frame_split.c:240
AV1_OBU_FRAME
@ AV1_OBU_FRAME
Definition: av1.h:35
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:368
av1_frame_split_filter
static int av1_frame_split_filter(AVBSFContext *ctx, AVPacket *out)
Definition: av1_frame_split.c:51
AV1_OBU_SEQUENCE_HEADER
@ AV1_OBU_SEQUENCE_HEADER
Definition: av1.h:30
AV_CODEC_ID_NONE
@ AV_CODEC_ID_NONE
Definition: codec_id.h:50