On Wed, Apr 13, 2016 at 04:28:33AM -0500, Rodger Combs wrote: > This allows a consumer to run the muxer's init function without actually > writing the header, which is useful in chained muxers that support > automatic bitstream filtering. > --- > libavformat/avformat.h | 30 +++++++++++++++++++++++-- > libavformat/internal.h | 10 +++++++++ > libavformat/mux.c | 59 > +++++++++++++++++++++++++++++++++++++++----------- > libavformat/version.h | 2 +- > 4 files changed, 85 insertions(+), 16 deletions(-) > > diff --git a/libavformat/avformat.h b/libavformat/avformat.h > index f240ab3..c7b1b0a 100644 > --- a/libavformat/avformat.h > +++ b/libavformat/avformat.h > @@ -616,6 +616,8 @@ typedef struct AVOutputFormat { > * AVStream parameters that need to be set before packets are sent. > * This method must not write output. > * > + * Return 0 if streams were fully configured, 1 if not, negative AVERROR > on failure > + * > * Any allocations made here must be freed in deinit(). > */ > int (*init)(struct AVFormatContext *); > @@ -2368,14 +2370,38 @@ void avformat_close_input(AVFormatContext **s); > * On return this parameter will be destroyed and replaced > with a dict containing > * options that were not found. May be NULL. > * > - * @return 0 on success, negative AVERROR on failure. > + * @return 0 on success if the codec had not already been fully initialized > in avformat_init, > + * 1 on success if the codec had already been fully initialized in > avformat_init, > + * negative AVERROR on failure. > * > - * @see av_opt_find, av_dict_set, avio_open, av_oformat_next. > + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, > avformat_init_output. > */ > av_warn_unused_result > int avformat_write_header(AVFormatContext *s, AVDictionary **options); > > /** > + * Allocate the stream private data and initialize the codec, but do not > write the header. > + * May optionally be used before avformat_write_header to initialize stream > parameters > + * before actually writing the header. > + * If using this function, do not pass the same options to > avformat_write_header. > + * > + * @param 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 opened AVIOContext. > + * @param 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. > + * > + * @return 0 on success if the codec has been fully initialized, > + * 1 on success if the codec requires avformat_write_header to fully > initialize, > + * negative AVERROR on failure. > + * > + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, > avformat_write_header. > + */ > +av_warn_unused_result > +int avformat_init_output(AVFormatContext *s, AVDictionary **options);
this should still use named identifers instead of 0/1 litteral return codes did you see my previous reply ? code like ret = avformat_init_output() ... if (ret == 1) is confusing to the reader one always would have to check the docs to understand it, a named identifer avoids that [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Observe your enemies, for they first find out your faults. -- Antisthenes
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel