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 "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 AVOutputFormat ff_webm_chunk_muxer
 

Macro Definition Documentation

◆ MAX_FILENAME_SIZE

#define MAX_FILENAME_SIZE   1024

Definition at line 36 of file webm_chunk.c.

◆ OFFSET

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

Definition at line 276 of file webm_chunk.c.

Function Documentation

◆ webm_chunk_init()

static int webm_chunk_init ( AVFormatContext s)
static

Definition at line 50 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 176 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 212 of file webm_chunk.c.

◆ webm_chunk_write_trailer()

static int webm_chunk_write_trailer ( AVFormatContext s)
static

Definition at line 244 of file webm_chunk.c.

◆ webm_chunk_deinit()

static void webm_chunk_deinit ( AVFormatContext s)
static

Definition at line 261 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 277 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 285 of file webm_chunk.c.

◆ ff_webm_chunk_muxer

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

Definition at line 292 of file webm_chunk.c.

webm_chunk_class
static const AVClass webm_chunk_class
Definition: webm_chunk.c:285
init
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:31
webm_chunk_write_header
static int webm_chunk_write_header(AVFormatContext *s)
Definition: webm_chunk.c:149
WebMChunkContext
Definition: webm_chunk.c:38
webm_chunk_write_trailer
static int webm_chunk_write_trailer(AVFormatContext *s)
Definition: webm_chunk.c:244
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:277
webm_chunk_write_packet
static int webm_chunk_write_packet(AVFormatContext *s, AVPacket *pkt)
Definition: webm_chunk.c:212
AVFMT_NEEDNUMBER
#define AVFMT_NEEDNUMBER
Needs 'd' in filename.
Definition: avformat.h:464
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:98
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:235
webm_chunk_init
static int webm_chunk_init(AVFormatContext *s)
Definition: webm_chunk.c:50
options
static const AVOption options[]
Definition: webm_chunk.c:277
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:117
AVFMT_NOFILE
#define AVFMT_NOFILE
Demuxer will use avio_open, no opened file should be provided by the caller.
Definition: avformat.h:463
write_packet
static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int unqueue)
Definition: ffmpeg.c:731
AVFMT_GLOBALHEADER
#define AVFMT_GLOBALHEADER
Format wants global header.
Definition: avformat.h:466
AVFMT_TS_NONSTRICT
#define AVFMT_TS_NONSTRICT
Format does not require strictly increasing timestamps, but they must still be monotonic.
Definition: avformat.h:477
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Definition: opt.h:224
webm_chunk_deinit
static void webm_chunk_deinit(AVFormatContext *s)
Definition: webm_chunk.c:261
OFFSET
#define OFFSET(x)
Definition: webm_chunk.c:276
AV_OPT_TYPE_STRING
@ AV_OPT_TYPE_STRING
Definition: opt.h:228
write_header
static void write_header(FFV1Context *f)
Definition: ffv1enc.c:347