On Wed, Mar 29, 2017 at 09:56:14AM +0200, Clément Bœsch wrote: > On Wed, Mar 29, 2017 at 09:52:51AM +0200, Carl Eugen Hoyos wrote: > > 2017-03-29 9:43 GMT+02:00 Clément Bœsch <u...@pkh.me>: > > > On Wed, Mar 29, 2017 at 09:31:57AM +0200, Carl Eugen Hoyos wrote: > > >> 2017-03-28 17:31 GMT+02:00 Clément Bœsch <u...@pkh.me>: > > >> > On Mon, Mar 27, 2017 at 09:51:54AM +0200, Clément Bœsch wrote: > > >> >> --- > > >> >> doc/APIchanges | 4 ++++ > > >> >> libavutil/avutil.h | 14 ++++++++++++++ > > >> >> libavutil/utils.c | 21 +++++++++++++++++++++ > > >> >> libavutil/version.h | 2 +- > > >> >> 4 files changed, 40 insertions(+), 1 deletion(-) > > >> >> > > >> > > > >> > I'll start pushing that patchset tomorrow if I see no objection. > > >> > > >> > +#define av_4cc2str(fourcc) > > >> > av_fourcc_make_string((char[AV_FOURCC_MAX_STRING_SIZE]){0}, fourcc) > > >> > > >> Sorry, I really don't understand: > > >> If the preferred name for this function is "av_4cc2str", why not name > > >> it av_4cc2str()? > > >> > > > > > > I don't understand your question: are you asking why there is a macro > > > and a function with different names? > > > > Yes, why is a function with the preferred name not sufficient? > > > > Because we save the user the need to create a buffer thanks the compound > literal in the macro which can only exist in a macro. It's exactly like > av_ts2str(). >
If that's still not clear, here is a typical use case: diff --git a/libavformat/apngdec.c b/libavformat/apngdec.c index 75dcf74a0c..e1ea29b713 100644 --- a/libavformat/apngdec.c +++ b/libavformat/apngdec.c @@ -404,13 +404,9 @@ static int apng_read_packet(AVFormatContext *s, AVPacket *pkt) return ret; return 0; default: - { - char tag_buf[32]; - - av_get_codec_tag_string(tag_buf, sizeof(tag_buf), tag); - avpriv_request_sample(s, "In-stream tag=%s (0x%08X) len=%"PRIu32, tag_buf, tag, len); + avpriv_request_sample(s, "In-stream tag=%s (0x%08X) len=%"PRIu32, + av_fourcc2str(tag), tag, len); avio_skip(pb, len + 4); - } } /* Handle the unsupported yet cases */ You can't do the same with a function only unless you ask the user to inline av_fourcc_make_string((char[AV_FOURCC_MAX_STRING_SIZE]{0}, tag) -- Clément B.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel