36 #define MAX_FILENAME_SIZE 1024
60 if (
s->nb_streams != 1)
134 s->internal->avoid_negative_ts_use_pts =
215 return (ret < 0) ? ret : 0;
282 #define OFFSET(x) offsetof(WebMChunkContext, x)
299 .
name =
"webm_chunk",
301 .mime_type =
"video/webm",
static void flush(AVCodecContext *avctx)
#define AVIO_FLAG_WRITE
write-only
int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer)
Return the written size and a pointer to the buffer.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
int avio_open_dyn_buf(AVIOContext **s)
Open a write only memory stream.
void ffio_free_dyn_buf(AVIOContext **s)
Free a dynamic buffer.
static av_cold int init(AVCodecContext *avctx)
int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src)
Copy the contents of src to dst.
static void write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, int unqueue)
static void write_header(FFV1Context *f)
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
void avformat_free_context(AVFormatContext *s)
Free an AVFormatContext and all its streams.
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file.
av_warn_unused_result int avformat_init_output(AVFormatContext *s, AVDictionary **options)
Allocate the stream private data and initialize the codec, but do not write the header.
av_warn_unused_result int avformat_write_header(AVFormatContext *s, AVDictionary **options)
Allocate the stream private data and write the stream header to an output media file.
ff_const59 AVOutputFormat * av_guess_format(const char *short_name, const char *filename, const char *mime_type)
Return the output format in the list of registered output formats which best matches the provided par...
int av_write_trailer(AVFormatContext *s)
Write the stream trailer to an output media file and free the file private data.
int av_write_frame(AVFormatContext *s, AVPacket *pkt)
Write a packet to an output media file.
int av_get_frame_filename(char *buf, int buf_size, const char *path, int number)
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values.
int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags)
Copy entries from one AVDictionary struct into another.
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry.
int av_dict_set_int(AVDictionary **pm, const char *key, int64_t value, int flags)
Convenience wrapper for av_dict_set that converts the value to a string and stores it.
#define AVERROR_MUXER_NOT_FOUND
Muxer not found.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
const char * av_default_item_name(void *ptr)
Return the context name.
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
Rescale a 64-bit integer by 2 rational numbers.
#define AV_NOPTS_VALUE
Undefined timestamp value.
#define LIBAVUTIL_VERSION_INT
common internal API header
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
#define AV_OPT_FLAG_ENCODING_PARAM
a generic parameter which can be set by the user for muxing or encoding
Describe the class of an AVClass context structure.
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
enum AVMediaType codec_type
General type of the encoded data.
int avoid_negative_ts
Avoid negative timestamps during muxing.
AVIOContext * pb
I/O context.
int flush_packets
Flush the I/O context after each packet.
AVDictionary * metadata
Metadata that applies to the whole file.
int flags
Flags modifying the (de)muxer behaviour.
int strict_std_compliance
Allow non-standard and experimental extension.
AVIOInterruptCB interrupt_callback
Custom interrupt callbacks for the I/O layer.
char * url
input or output URL.
AVFormatInternal * internal
An opaque field for libavformat internal usage.
int seekable
A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
This structure stores compressed data.
int flags
A combination of AV_PKT_FLAG values.
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
Rational number (pair of numerator and denominator).
AVCodecParameters * codecpar
Codec parameters associated with this stream.
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown)
int pts_wrap_bits
number of bits in pts (used for wrapping control)
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented.
int disposition
AV_DISPOSITION_* bit field.
uint64_t duration_written
static int write_trailer(AVFormatContext *s1)
AVOutputFormat ff_webm_chunk_muxer
static int chunk_start(AVFormatContext *s)
static int get_chunk_filename(AVFormatContext *s, char filename[MAX_FILENAME_SIZE])
static void webm_chunk_deinit(AVFormatContext *s)
static int webm_chunk_write_trailer(AVFormatContext *s)
#define MAX_FILENAME_SIZE
static const AVClass webm_chunk_class
static const AVOption options[]
static int webm_chunk_write_header(AVFormatContext *s)
static int webm_chunk_write_packet(AVFormatContext *s, AVPacket *pkt)
static int webm_chunk_init(AVFormatContext *s)
static int chunk_end(AVFormatContext *s, int flush)