FFmpeg  4.4.5
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

◆ 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
Initial value:
= {
}
@ AV1_OBU_TEMPORAL_DELIMITER
Definition: av1.h:31
@ AV1_OBU_TILE_GROUP
Definition: av1.h:33
@ AV1_OBU_FRAME_HEADER
Definition: av1.h:32
@ AV1_OBU_FRAME
Definition: av1.h:35
@ AV1_OBU_SEQUENCE_HEADER
Definition: av1.h:30

Definition at line 195 of file av1_frame_split_bsf.c.

Referenced by av1_frame_split_init().

◆ av1_frame_split_codec_ids

enum AVCodecID av1_frame_split_codec_ids[]
static
Initial value:
= {
}
@ AV_CODEC_ID_NONE
Definition: codec_id.h:47
@ AV_CODEC_ID_AV1
Definition: codec_id.h:279

Definition at line 240 of file av1_frame_split_bsf.c.

◆ ff_av1_frame_split_bsf

const AVBitStreamFilter ff_av1_frame_split_bsf
Initial value:
= {
.name = "av1_frame_split",
.priv_data_size = sizeof(AV1FSplitContext),
}
static enum AVCodecID codec_ids[]
static void flush(AVCodecContext *avctx)
static void av1_frame_split_close(AVBSFContext *ctx)
static enum AVCodecID av1_frame_split_codec_ids[]
static int av1_frame_split_init(AVBSFContext *ctx)
static int av1_frame_split_filter(AVBSFContext *ctx, AVPacket *out)
static void av1_frame_split_flush(AVBSFContext *ctx)
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:31
static av_always_inline void filter(int16_t *output, ptrdiff_t out_stride, const int16_t *low, ptrdiff_t low_stride, const int16_t *high, ptrdiff_t high_stride, int len, int clip)
Definition: cfhddsp.c:27

Definition at line 253 of file av1_frame_split_bsf.c.