mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-06 15:49:50 +08:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: (22 commits) wma: Clip WMA1 and WMA2 frame length to 11 bits. movenc: Don't require frame_size to be set for modes other than mov doc: Update APIchanges with info on muxer flushing movenc: Reindent a block tools: Remove some unnecessary #undefs. rv20: prevent calling ff_h263_decode_mba() with unset height/width tools: K&R reformatting cosmetics Ignore generated aviocat and ismindex tools. build: Automatically include architecture-specific library Makefile snippets. indeo5: prevent null pointer dereference on broken files pktdumper: Use usleep instead of sleep cosmetics: Remove some unnecessary block braces. Drop unnecessary prefix from *sink* variable and struct names. Add a tool for creating smooth streaming manifests movdec: Calculate an average bit rate for fragmented streams, too movenc: Write the sample rate instead of time scale in the stsd atom movenc: Add a separate ismv/isma (smooth streaming) muxer movenc: Allow the caller to decide on fragmentation libavformat: Add a flag for muxers that support write_packet(NULL) for flushing movenc: Add support for writing fragmented mov files ... Conflicts: Changelog cmdutils.c cmdutils.h doc/APIchanges ffmpeg.c ffplay.c libavfilter/Makefile libavformat/Makefile libavformat/avformat.h libavformat/movenc.c libavformat/movenc.h libavformat/version.h tools/graph2dot.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@ -380,6 +380,7 @@ typedef struct AVFormatParameters {
|
||||
#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fallback to binary search via read_timestamp */
|
||||
#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fallback to generic search */
|
||||
#define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */
|
||||
#define AVFMT_ALLOW_FLUSH 0x10000 /**< Format allows flushing. If not set, the muxer will not receive a NULL packet in the write_packet function. */
|
||||
#define AVFMT_TS_NONSTRICT 0x8000000 /**< Format does not require strictly
|
||||
increasing timestamps, but they must
|
||||
still be monotonic */
|
||||
@ -406,12 +407,19 @@ typedef struct AVOutputFormat {
|
||||
enum CodecID audio_codec; /**< default audio codec */
|
||||
enum CodecID video_codec; /**< default video codec */
|
||||
int (*write_header)(struct AVFormatContext *);
|
||||
/**
|
||||
* Write a packet. If AVFMT_ALLOW_FLUSH is set in flags,
|
||||
* pkt can be NULL in order to flush data buffered in the muxer.
|
||||
* When flushing, return 0 if there still is more data to flush,
|
||||
* or 1 if everything was flushed and there is no more buffered
|
||||
* data.
|
||||
*/
|
||||
int (*write_packet)(struct AVFormatContext *, AVPacket *pkt);
|
||||
int (*write_trailer)(struct AVFormatContext *);
|
||||
/**
|
||||
* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_RAWPICTURE,
|
||||
* AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS,
|
||||
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS
|
||||
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH
|
||||
*/
|
||||
int flags;
|
||||
|
||||
@ -1803,8 +1811,12 @@ attribute_deprecated int av_write_header(AVFormatContext *s);
|
||||
*
|
||||
* @param s media file handle
|
||||
* @param pkt The packet, which contains the stream_index, buf/buf_size,
|
||||
dts/pts, ...
|
||||
* @return < 0 on error, = 0 if OK, 1 if end of stream wanted
|
||||
* 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.
|
||||
* @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush
|
||||
*/
|
||||
int av_write_frame(AVFormatContext *s, AVPacket *pkt);
|
||||
|
||||
|
Reference in New Issue
Block a user