Data Structures
Functions
Allocate the stream private data and write the stream header to an output media file.
Write a packet to an output media file.
Write a packet to an output media file ensuring correct interleaving.
Write the stream trailer to an output media file and free the file private data.
Return the output format in the list of registered output formats which best matches the provided parameters, or return NULL if there is no match.
Guess the codec ID based upon muxer and filename.
Get timing information for the data currently output.
Detailed Description
Function Documentation
Allocate the stream private data and write the stream header to an output media file.
- Parameters
-
s Media file handle, must be allocated with
avformat_alloc_context(). Its oformat field must be set to the desired output format; Its pb field must be set to an already openened
AVIOContext.
options An
AVDictionary filled with
AVFormatContext and muxer-private options. On return this parameter will be destroyed and replaced with a dict containing options that were not found. May be NULL.
- Returns
- 0 on success, negative AVERROR on failure.
- See Also
- av_opt_find, av_dict_set, avio_open, av_oformat_next.
- Examples:
- doc/examples/muxing.c.
Definition at line 383 of file mux.c.
Referenced by build_feed_streams(), ff_rtp_chain_mux_open(), hls_write_header(), http_prepare_data(), ism_write_header(), main(), mpegts_write_header(), rtp_new_av_stream(), seg_write_header(), segment_start(), and transcode_init().
Write a packet to an output media file.
The packet shall contain one audio or video frame. The packet must be correctly interleaved according to the container specification, if not then av_interleaved_write_frame must be used.
- Parameters
-
s media file handle
pkt The packet, which contains the stream_index, buf/buf_size, dts/pts, ... This can be NULL (at any time, not just at the end), in order to immediately flush data buffered within the muxer, for muxers that buffer up data internally before writing it to the output.
- Returns
- < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush
Definition at line 502 of file mux.c.
Referenced by ff_write_chained(), hls_write_packet(), http_prepare_data(), ism_flush(), mpegts_write_packet_internal(), and segment_end().
Write a packet to an output media file ensuring correct interleaving.
The packet must contain one audio or video frame. If the packets are already correctly interleaved, the application should call av_write_frame() instead as it is slightly faster. It is also important to keep in mind that completely non-interleaved input will need huge amounts of memory to interleave with this, so it is preferable to interleave at the demuxer level.
- Parameters
-
s media file handle
pkt The packet containing the data to be written. Libavformat takes ownership of the data and will free it when it sees fit using the packet's
destruct field. The caller must not access the data after this function returns, as it may already be freed. This can be NULL (at any time, not just at the end), to flush the interleaving queues. Packet's
stream_index field must be set to the index of the corresponding stream in
s.streams. It is very strongly recommended that timing information (
pts,
dts duration) is set to correct values.
- Returns
- 0 on success, a negative AVERROR on error.
- Examples:
- doc/examples/muxing.c.
Definition at line 722 of file mux.c.
Referenced by write_audio_frame(), write_frame(), and write_video_frame().
Write the stream trailer to an output media file and free the file private data.
May only be called after a successful call to avformat_write_header.
- Parameters
-
s media file handle
- Returns
- 0 if OK, AVERROR_xxx on error
- Examples:
- doc/examples/muxing.c.
Definition at line 765 of file mux.c.
Referenced by close_connection(), ff_mov_close_hinting(), ff_rtsp_undo_setup(), hls_write_trailer(), http_prepare_data(), ism_free(), main(), sap_write_close(), seg_write_trailer(), segment_end(), and transcode().
const char *
filename,
const char *
mime_type
)
Return the output format in the list of registered output formats which best matches the provided parameters, or return NULL if there is no match.
- Parameters
-
short_name if non-NULL checks if short_name matches with the names of the registered formats
filename if non-NULL checks if filename terminates with the extensions of the registered formats
mime_type if non-NULL checks if mime_type matches with the MIME type of the registered formats
Definition at line 182 of file utils.c.
Referenced by av_guess_format(), avformat_alloc_output_context2(), ff_rtp_chain_mux_open(), ffserver_guess_format(), hls_write_header(), ism_write_header(), mpegts_write_header(), parse_ffconfig(), prepare_sdp_description(), rtp_new_av_stream(), seg_write_header(), and show_help_muxer().
const char *
short_name,
const char *
filename,
const char *
mime_type,
)
int
stream,
int64_t *
dts,
int64_t *
wall
)
Get timing information for the data currently output.
The exact meaning of "currently output" depends on the format. It is mostly relevant for devices that have an internal buffer and/or work in real time.
- Parameters
-
s media file handle
stream stream in the media file
[out] dts DTS of the last packet output for the stream, in stream time_base units
[out] wall absolute time when that packet whas output, in microsecond
- Returns
- 0 if OK, AVERROR(ENOSYS) if the format does not support it Note: some formats or devices may not allow to measure dts and wall atomically.
Definition at line 807 of file mux.c.