FFmpeg
Data Structures | Macros | Functions | Variables
h264_mp4toannexb_bsf.c File Reference
#include <string.h>
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "avcodec.h"
#include "bsf.h"
#include "bsf_internal.h"
#include "bytestream.h"
#include "h264.h"

Go to the source code of this file.

Data Structures

struct  H264BSFContext
 

Macros

#define LOG_ONCE(...)
 

Functions

static void count_or_copy (uint8_t **out, uint64_t *out_size, const uint8_t *in, int in_size, int ps, int copy)
 
static int h264_extradata_to_annexb (AVBSFContext *ctx, const int padding)
 
static int h264_mp4toannexb_init (AVBSFContext *ctx)
 
static int h264_mp4toannexb_filter (AVBSFContext *ctx, AVPacket *opkt)
 
static void h264_mp4toannexb_flush (AVBSFContext *ctx)
 

Variables

static enum AVCodecID codec_ids []
 
const AVBitStreamFilter ff_h264_mp4toannexb_bsf
 

Macro Definition Documentation

◆ LOG_ONCE

#define LOG_ONCE (   ...)
Value:
if (j) \
av_log(__VA_ARGS__)

Function Documentation

◆ count_or_copy()

static void count_or_copy ( uint8_t **  out,
uint64_t *  out_size,
const uint8_t in,
int  in_size,
int  ps,
int  copy 
)
static

Definition at line 46 of file h264_mp4toannexb_bsf.c.

Referenced by h264_mp4toannexb_filter().

◆ h264_extradata_to_annexb()

static int h264_extradata_to_annexb ( AVBSFContext ctx,
const int  padding 
)
static

Definition at line 65 of file h264_mp4toannexb_bsf.c.

Referenced by h264_mp4toannexb_init().

◆ h264_mp4toannexb_init()

static int h264_mp4toannexb_init ( AVBSFContext ctx)
static

Definition at line 139 of file h264_mp4toannexb_bsf.c.

◆ h264_mp4toannexb_filter()

static int h264_mp4toannexb_filter ( AVBSFContext ctx,
AVPacket opkt 
)
static

Definition at line 169 of file h264_mp4toannexb_bsf.c.

◆ h264_mp4toannexb_flush()

static void h264_mp4toannexb_flush ( AVBSFContext ctx)
static

Definition at line 302 of file h264_mp4toannexb_bsf.c.

Variable Documentation

◆ codec_ids

enum AVCodecID codec_ids[]
static
Initial value:

Definition at line 311 of file h264_mp4toannexb_bsf.c.

◆ ff_h264_mp4toannexb_bsf

const AVBitStreamFilter ff_h264_mp4toannexb_bsf
Initial value:
= {
.name = "h264_mp4toannexb",
.priv_data_size = sizeof(H264BSFContext),
}

Definition at line 315 of file h264_mp4toannexb_bsf.c.

init
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:31
h264_mp4toannexb_filter
static int h264_mp4toannexb_filter(AVBSFContext *ctx, AVPacket *opkt)
Definition: h264_mp4toannexb_bsf.c:169
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
h264_mp4toannexb_flush
static void h264_mp4toannexb_flush(AVBSFContext *ctx)
Definition: h264_mp4toannexb_bsf.c:302
codec_ids
static enum AVCodecID codec_ids[]
Definition: h264_mp4toannexb_bsf.c:311
H264BSFContext
Definition: h264_mp4toannexb_bsf.c:34
AV_CODEC_ID_H264
@ AV_CODEC_ID_H264
Definition: codec_id.h:76
flush
static void flush(AVCodecContext *avctx)
Definition: aacdec_template.c:592
h264_mp4toannexb_init
static int h264_mp4toannexb_init(AVBSFContext *ctx)
Definition: h264_mp4toannexb_bsf.c:139
AV_CODEC_ID_NONE
@ AV_CODEC_ID_NONE
Definition: codec_id.h:47