FFmpeg
Data Structures | Macros | Functions | Variables
webm_chunk.c File Reference
#include "avformat.h"
#include "avio.h"
#include "avio_internal.h"
#include "internal.h"
#include "mux.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "libavutil/mathematics.h"

Go to the source code of this file.

Data Structures

struct  WebMChunkContext
 

Macros

#define MAX_FILENAME_SIZE   1024
 
#define OFFSET(x)   offsetof(WebMChunkContext, x)
 

Functions

static int webm_chunk_init (AVFormatContext *s)
 
static int get_chunk_filename (AVFormatContext *s, char filename[MAX_FILENAME_SIZE])
 
static int webm_chunk_write_header (AVFormatContext *s)
 
static int chunk_start (AVFormatContext *s)
 
static int chunk_end (AVFormatContext *s, int flush)
 
static int webm_chunk_write_packet (AVFormatContext *s, AVPacket *pkt)
 
static int webm_chunk_write_trailer (AVFormatContext *s)
 
static void webm_chunk_deinit (AVFormatContext *s)
 

Variables

static const AVOption options []
 
static const AVClass webm_chunk_class
 
const FFOutputFormat ff_webm_chunk_muxer
 

Macro Definition Documentation

◆ MAX_FILENAME_SIZE

#define MAX_FILENAME_SIZE   1024

Definition at line 37 of file webm_chunk.c.

◆ OFFSET

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

Definition at line 279 of file webm_chunk.c.

Function Documentation

◆ webm_chunk_init()

static int webm_chunk_init ( AVFormatContext s)
static

Definition at line 51 of file webm_chunk.c.

◆ get_chunk_filename()

static int get_chunk_filename ( AVFormatContext s,
char  filename[MAX_FILENAME_SIZE] 
)
static

Definition at line 135 of file webm_chunk.c.

Referenced by chunk_end().

◆ webm_chunk_write_header()

static int webm_chunk_write_header ( AVFormatContext s)
static

Definition at line 149 of file webm_chunk.c.

◆ chunk_start()

static int chunk_start ( AVFormatContext s)
static

◆ chunk_end()

static int chunk_end ( AVFormatContext s,
int  flush 
)
static

Definition at line 179 of file webm_chunk.c.

Referenced by decode_lsp(), webm_chunk_write_packet(), and webm_chunk_write_trailer().

◆ webm_chunk_write_packet()

static int webm_chunk_write_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 215 of file webm_chunk.c.

◆ webm_chunk_write_trailer()

static int webm_chunk_write_trailer ( AVFormatContext s)
static

Definition at line 247 of file webm_chunk.c.

◆ webm_chunk_deinit()

static void webm_chunk_deinit ( AVFormatContext s)
static

Definition at line 264 of file webm_chunk.c.

Variable Documentation

◆ options

const AVOption options[]
static
Initial value:
= {
{ "chunk_start_index", "start index of the chunk", OFFSET(chunk_index), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
{ "header", "filename of the header where the initialization data will be written", OFFSET(header_filename), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM },
{ "audio_chunk_duration", "duration of each chunk in milliseconds", OFFSET(chunk_duration), AV_OPT_TYPE_INT, {.i64 = 5000}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
{ "method", "set the HTTP method", OFFSET(http_method), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, AV_OPT_FLAG_ENCODING_PARAM },
{ NULL },
}

Definition at line 280 of file webm_chunk.c.

Referenced by chunk_end().

◆ webm_chunk_class

const AVClass webm_chunk_class
static
Initial value:
= {
.class_name = "WebM Chunk Muxer",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 288 of file webm_chunk.c.

◆ ff_webm_chunk_muxer

const FFOutputFormat ff_webm_chunk_muxer
Initial value:
= {
.p.name = "webm_chunk",
.p.long_name = NULL_IF_CONFIG_SMALL("WebM Chunk Muxer"),
.p.mime_type = "video/webm",
.p.extensions = "chk",
.p.priv_class = &webm_chunk_class,
.priv_data_size = sizeof(WebMChunkContext),
}

Definition at line 295 of file webm_chunk.c.

webm_chunk_class
static const AVClass webm_chunk_class
Definition: webm_chunk.c:288
webm_chunk_write_header
static int webm_chunk_write_header(AVFormatContext *s)
Definition: webm_chunk.c:149
deinit
static void deinit(AVFormatContext *s)
Definition: chromaprint.c:50
WebMChunkContext
Definition: webm_chunk.c:39
webm_chunk_write_trailer
static int webm_chunk_write_trailer(AVFormatContext *s)
Definition: webm_chunk.c:247
AV_OPT_FLAG_ENCODING_PARAM
#define AV_OPT_FLAG_ENCODING_PARAM
a generic parameter which can be set by the user for muxing or encoding
Definition: opt.h:281
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts_bsf.c:365
webm_chunk_write_packet
static int webm_chunk_write_packet(AVFormatContext *s, AVPacket *pkt)
Definition: webm_chunk.c:215
AVFMT_NEEDNUMBER
#define AVFMT_NEEDNUMBER
Needs 'd' in filename.
Definition: avformat.h:469
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
NULL
#define NULL
Definition: coverity.c:32
write_trailer
static int write_trailer(AVFormatContext *s1)
Definition: v4l2enc.c:101
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:237
webm_chunk_init
static int webm_chunk_init(AVFormatContext *s)
Definition: webm_chunk.c:51
options
static const AVOption options[]
Definition: webm_chunk.c:280
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:115
AVFMT_NOFILE
#define AVFMT_NOFILE
Demuxer will use avio_open, no opened file should be provided by the caller.
Definition: avformat.h:468
AVFMT_GLOBALHEADER
#define AVFMT_GLOBALHEADER
Format wants global header.
Definition: avformat.h:478
write_packet
static int write_packet(Muxer *mux, OutputStream *ost, AVPacket *pkt)
Definition: ffmpeg_mux.c:61
AVFMT_TS_NONSTRICT
#define AVFMT_TS_NONSTRICT
Format does not require strictly increasing timestamps, but they must still be monotonic.
Definition: avformat.h:489
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Definition: opt.h:225
webm_chunk_deinit
static void webm_chunk_deinit(AVFormatContext *s)
Definition: webm_chunk.c:264
OFFSET
#define OFFSET(x)
Definition: webm_chunk.c:279
AV_OPT_TYPE_STRING
@ AV_OPT_TYPE_STRING
Definition: opt.h:229
write_header
static void write_header(FFV1Context *f)
Definition: ffv1enc.c:346