FFmpeg
Loading...
Searching...
No Matches
h264_mp4toannexb.c File Reference
#include <string.h>
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "libavcodec/bsf.h"
#include "libavcodec/bsf_internal.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/defs.h"
#include "libavcodec/h264.h"
#include "libavcodec/sei.h"

Go to the source code of this file.

Data Structures

struct  H264BSFContext
 

Macros

#define LOG_ONCE(...)
 

Enumerations

enum  PsSource { PS_OUT_OF_BAND = -1 , PS_NONE = 0 , PS_IN_BAND = 1 }
 

Functions

static void count_or_copy (uint8_t **out, uint64_t *out_size, const uint8_t *in, int in_size, enum PsSource ps, int copy)
 
static int h264_extradata_to_annexb (AVBSFContext *ctx, const uint8_t *extradata, int extradata_size, uint8_t **out_extradata, int *out_extradata_size)
 
static int h264_mp4toannexb_save_ps (uint8_t **dst, int *dst_size, unsigned *dst_buf_size, const uint8_t *nal, uint32_t nal_size, int first)
 
static int h264_mp4toannexb_filter_ps (H264BSFContext *s, const uint8_t *buf, const uint8_t *buf_end)
 
static int h264_mp4toannexb_init (AVBSFContext *ctx)
 
static int h264_mp4toannexb_filter (AVBSFContext *ctx, AVPacket *opkt)
 
static void h264_mp4toannexb_close (AVBSFContext *ctx)
 
static void h264_mp4toannexb_flush (AVBSFContext *ctx)
 

Variables

static enum AVCodecID codec_ids []
 
const FFBitStreamFilter ff_h264_mp4toannexb_bsf
 

Macro Definition Documentation

◆ LOG_ONCE

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

Referenced by h264_mp4toannexb_filter().

Enumeration Type Documentation

◆ PsSource

enum PsSource
Enumerator
PS_OUT_OF_BAND 
PS_NONE 
PS_IN_BAND 

Definition at line 49 of file h264_mp4toannexb.c.

Function Documentation

◆ count_or_copy()

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

Definition at line 55 of file h264_mp4toannexb.c.

Referenced by h264_mp4toannexb_filter().

◆ h264_extradata_to_annexb()

static int h264_extradata_to_annexb ( AVBSFContext * ctx,
const uint8_t * extradata,
int extradata_size,
uint8_t ** out_extradata,
int * out_extradata_size )
static

Definition at line 84 of file h264_mp4toannexb.c.

Referenced by h264_mp4toannexb_filter(), and h264_mp4toannexb_init().

◆ h264_mp4toannexb_save_ps()

static int h264_mp4toannexb_save_ps ( uint8_t ** dst,
int * dst_size,
unsigned * dst_buf_size,
const uint8_t * nal,
uint32_t nal_size,
int first )
static

Definition at line 192 of file h264_mp4toannexb.c.

Referenced by h264_mp4toannexb_filter_ps().

◆ h264_mp4toannexb_filter_ps()

static int h264_mp4toannexb_filter_ps ( H264BSFContext * s,
const uint8_t * buf,
const uint8_t * buf_end )
static

Definition at line 221 of file h264_mp4toannexb.c.

Referenced by h264_mp4toannexb_filter().

◆ h264_mp4toannexb_init()

static int h264_mp4toannexb_init ( AVBSFContext * ctx)
static

Definition at line 264 of file h264_mp4toannexb.c.

◆ h264_mp4toannexb_filter()

static int h264_mp4toannexb_filter ( AVBSFContext * ctx,
AVPacket * opkt )
static

Definition at line 283 of file h264_mp4toannexb.c.

◆ h264_mp4toannexb_close()

static void h264_mp4toannexb_close ( AVBSFContext * ctx)
static

Definition at line 450 of file h264_mp4toannexb.c.

◆ h264_mp4toannexb_flush()

static void h264_mp4toannexb_flush ( AVBSFContext * ctx)
static

Definition at line 458 of file h264_mp4toannexb.c.

Variable Documentation

◆ codec_ids

enum AVCodecID codec_ids[]
static
Initial value:
= {
}
@ AV_CODEC_ID_H264
Definition codec_id.h:77
@ AV_CODEC_ID_NONE
Definition codec_id.h:48

Definition at line 467 of file h264_mp4toannexb.c.

◆ ff_h264_mp4toannexb_bsf

const FFBitStreamFilter ff_h264_mp4toannexb_bsf
Initial value:
= {
.p.name = "h264_mp4toannexb",
.p.codec_ids = codec_ids,
.priv_data_size = sizeof(H264BSFContext),
}
static enum AVCodecID codec_ids[]
static av_cold void close(AVCodecParserContext *s)
Definition apv_parser.c:197
void(* flush)(AVBSFContext *ctx)
Definition dts2pts.c:610
int(* init)(AVBSFContext *ctx)
Definition dts2pts.c:608
static void h264_mp4toannexb_flush(AVBSFContext *ctx)
static int h264_mp4toannexb_filter(AVBSFContext *ctx, AVPacket *opkt)
static void h264_mp4toannexb_close(AVBSFContext *ctx)
static int h264_mp4toannexb_init(AVBSFContext *ctx)
void(* filter)(uint8_t *src, ptrdiff_t stride, int qscale)
Definition h263dsp.c:29

Definition at line 471 of file h264_mp4toannexb.c.