FFmpeg
Data Structures | Macros | Functions | Variables
extract_extradata_bsf.c File Reference
#include <stdint.h>
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "av1.h"
#include "av1_parse.h"
#include "bsf.h"
#include "bytestream.h"
#include "h2645_parse.h"
#include "h264.h"
#include "hevc.h"
#include "vc1_common.h"

Go to the source code of this file.

Data Structures

struct  ExtractExtradataContext
 

Macros

#define OFFSET(x)   offsetof(ExtractExtradataContext, x)
 
#define FLAGS   (AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_BSF_PARAM)
 

Functions

static int val_in_array (const int *arr, int len, int val)
 
static int extract_extradata_av1 (AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
 
static int extract_extradata_h2645 (AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
 
static int extract_extradata_vc1 (AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
 
static int extract_extradata_mpeg12 (AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
 
static int extract_extradata_mpeg4 (AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
 
static int extract_extradata_init (AVBSFContext *ctx)
 
static int extract_extradata_filter (AVBSFContext *ctx, AVPacket *pkt)
 
static void extract_extradata_close (AVBSFContext *ctx)
 

Variables

struct {
   enum AVCodecID   id
 
   int(*   extract )(AVBSFContext *ctx, AVPacket
      *pkt, uint8_t **data, int
      *size)
 
extract_tab []
 
static enum AVCodecID codec_ids []
 
static const AVOption options []
 
static const AVClass extract_extradata_class
 
const AVBitStreamFilter ff_extract_extradata_bsf
 

Macro Definition Documentation

#define OFFSET (   x)    offsetof(ExtractExtradataContext, x)

Definition at line 415 of file extract_extradata_bsf.c.

Definition at line 416 of file extract_extradata_bsf.c.

Function Documentation

static int val_in_array ( const int arr,
int  len,
int  val 
)
static

Definition at line 52 of file extract_extradata_bsf.c.

Referenced by extract_extradata_av1(), and extract_extradata_h2645().

static int extract_extradata_av1 ( AVBSFContext ctx,
AVPacket pkt,
uint8_t **  data,
int size 
)
static

Definition at line 61 of file extract_extradata_bsf.c.

static int extract_extradata_h2645 ( AVBSFContext ctx,
AVPacket pkt,
uint8_t **  data,
int size 
)
static

Definition at line 136 of file extract_extradata_bsf.c.

static int extract_extradata_vc1 ( AVBSFContext ctx,
AVPacket pkt,
uint8_t **  data,
int size 
)
static

Definition at line 233 of file extract_extradata_bsf.c.

static int extract_extradata_mpeg12 ( AVBSFContext ctx,
AVPacket pkt,
uint8_t **  data,
int size 
)
static

Definition at line 269 of file extract_extradata_bsf.c.

static int extract_extradata_mpeg4 ( AVBSFContext ctx,
AVPacket pkt,
uint8_t **  data,
int size 
)
static

Definition at line 301 of file extract_extradata_bsf.c.

static int extract_extradata_init ( AVBSFContext ctx)
static

Definition at line 347 of file extract_extradata_bsf.c.

static int extract_extradata_filter ( AVBSFContext ctx,
AVPacket pkt 
)
static

Definition at line 364 of file extract_extradata_bsf.c.

static void extract_extradata_close ( AVBSFContext ctx)
static

Definition at line 395 of file extract_extradata_bsf.c.

Variable Documentation

enum AVCodecID id

Definition at line 333 of file extract_extradata_bsf.c.

const { ... } extract_tab[]
Initial value:
= {
{ AV_CODEC_ID_CAVS, extract_extradata_mpeg4 },
{ AV_CODEC_ID_HEVC, extract_extradata_h2645 },
{ AV_CODEC_ID_MPEG2VIDEO, extract_extradata_mpeg12 },
{ AV_CODEC_ID_MPEG4, extract_extradata_mpeg4 },
}
static int extract_extradata_mpeg4(AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
static int extract_extradata_av1(AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
preferred ID for MPEG-1/2 video decoding
Definition: avcodec.h:220
static int extract_extradata_h2645(AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
static int extract_extradata_vc1(AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)
static int extract_extradata_mpeg12(AVBSFContext *ctx, AVPacket *pkt, uint8_t **data, int *size)

Referenced by extract_extradata_init().

enum AVCodecID codec_ids[]
static
const AVOption options[]
static
Initial value:
= {
{ "remove", "remove the extradata from the bitstream", OFFSET(remove), AV_OPT_TYPE_INT,
{ .i64 = 0 }, 0, 1, FLAGS },
{ NULL },
}
#define NULL
Definition: coverity.c:32
#define OFFSET(x)
#define FLAGS

Definition at line 417 of file extract_extradata_bsf.c.

const AVClass extract_extradata_class
static
Initial value:
= {
.class_name = "extract_extradata",
.item_name = av_default_item_name,
.option = options,
}
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:191
static const AVOption options[]

Definition at line 423 of file extract_extradata_bsf.c.

const AVBitStreamFilter ff_extract_extradata_bsf
Initial value:
= {
.name = "extract_extradata",
.codec_ids = codec_ids,
.priv_data_size = sizeof(ExtractExtradataContext),
.priv_class = &extract_extradata_class,
}
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
static int extract_extradata_filter(AVBSFContext *ctx, AVPacket *pkt)
static int extract_extradata_init(AVBSFContext *ctx)
static void extract_extradata_close(AVBSFContext *ctx)
static const AVClass extract_extradata_class
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
static enum AVCodecID codec_ids[]

Definition at line 430 of file extract_extradata_bsf.c.