diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-04-07 13:40:39 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-04-11 12:44:27 +0200 |
commit | e878ec7eb23f3cd88503df1f18277e93ceadf773 (patch) | |
tree | 131d5b9d0295e967717788221868f2880f6ef291 /libavcodec | |
parent | 8261d5d38c93419535dbd81116fc1d065716e039 (diff) | |
download | ffmpeg-e878ec7eb23f3cd88503df1f18277e93ceadf773.tar.gz |
avcodec/ac3enc: Avoid copying strings
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/ac3enc.c | 88 |
1 files changed, 50 insertions, 38 deletions
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 31b9474822..272d2481d9 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -30,7 +30,6 @@ #include "libavutil/attributes.h" #include "libavutil/avassert.h" -#include "libavutil/avstring.h" #include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "libavutil/emms.h" @@ -1807,17 +1806,18 @@ static void dprint_options(AC3EncodeContext *s) #ifdef DEBUG AVCodecContext *avctx = s->avctx; AC3EncOptions *opt = &s->options; + const char *msg; char strbuf[32]; switch (s->bitstream_id) { - case 6: av_strlcpy(strbuf, "AC-3 (alt syntax)", 32); break; - case 8: av_strlcpy(strbuf, "AC-3 (standard)", 32); break; - case 9: av_strlcpy(strbuf, "AC-3 (dnet half-rate)", 32); break; - case 10: av_strlcpy(strbuf, "AC-3 (dnet quater-rate)", 32); break; - case 16: av_strlcpy(strbuf, "E-AC-3 (enhanced)", 32); break; - default: snprintf(strbuf, 32, "ERROR"); - } - ff_dlog(avctx, "bitstream_id: %s (%d)\n", strbuf, s->bitstream_id); + case 6: msg = "AC-3 (alt syntax)"; break; + case 8: msg = "AC-3 (standard)"; break; + case 9: msg = "AC-3 (dnet half-rate)"; break; + case 10: msg = "AC-3 (dnet quater-rate)"; break; + case 16: msg = "E-AC-3 (enhanced)"; break; + default: msg = "ERROR"; + } + ff_dlog(avctx, "bitstream_id: %s (%d)\n", msg, s->bitstream_id); ff_dlog(avctx, "sample_fmt: %s\n", av_get_sample_fmt_name(avctx->sample_fmt)); av_channel_layout_describe(&avctx->ch_layout, strbuf, sizeof(strbuf)); ff_dlog(avctx, "channel_layout: %s\n", strbuf); @@ -1842,12 +1842,14 @@ static void dprint_options(AC3EncodeContext *s) if (opt->audio_production_info) { ff_dlog(avctx, "mixing_level: %ddB\n", opt->mixing_level); switch (opt->room_type) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_LARGE_ROOM: av_strlcpy(strbuf, "large", 32); break; - case AC3ENC_OPT_SMALL_ROOM: av_strlcpy(strbuf, "small", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->room_type); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_LARGE_ROOM: msg = "large"; break; + case AC3ENC_OPT_SMALL_ROOM: msg = "small"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->room_type); + msg = strbuf; } - ff_dlog(avctx, "room_type: %s\n", strbuf); + ff_dlog(avctx, "room_type: %s\n", msg); } else { ff_dlog(avctx, "mixing_level: {not written}\n"); ff_dlog(avctx, "room_type: {not written}\n"); @@ -1856,12 +1858,14 @@ static void dprint_options(AC3EncodeContext *s) ff_dlog(avctx, "dialnorm: %ddB\n", opt->dialogue_level); if (s->channel_mode == AC3_CHMODE_STEREO) { switch (opt->dolby_surround_mode) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_MODE_ON: av_strlcpy(strbuf, "on", 32); break; - case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_mode); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_MODE_ON: msg = "on"; break; + case AC3ENC_OPT_MODE_OFF: msg = "off"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->dolby_surround_mode); + msg = strbuf; } - ff_dlog(avctx, "dsur_mode: %s\n", strbuf); + ff_dlog(avctx, "dsur_mode: %s\n", msg); } else { ff_dlog(avctx, "dsur_mode: {not written}\n"); } @@ -1870,12 +1874,14 @@ static void dprint_options(AC3EncodeContext *s) if (s->bitstream_id == 6) { if (opt->extended_bsi_1) { switch (opt->preferred_stereo_downmix) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_DOWNMIX_LTRT: av_strlcpy(strbuf, "ltrt", 32); break; - case AC3ENC_OPT_DOWNMIX_LORO: av_strlcpy(strbuf, "loro", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->preferred_stereo_downmix); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_DOWNMIX_LTRT: msg = "ltrt"; break; + case AC3ENC_OPT_DOWNMIX_LORO: msg = "loro"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->preferred_stereo_downmix); + msg = strbuf; } - ff_dlog(avctx, "dmix_mode: %s\n", strbuf); + ff_dlog(avctx, "dmix_mode: %s\n", msg); ff_dlog(avctx, "ltrt_cmixlev: %0.3f (%d)\n", opt->ltrt_center_mix_level, s->ltrt_center_mix_level); ff_dlog(avctx, "ltrt_surmixlev: %0.3f (%d)\n", @@ -1889,26 +1895,32 @@ static void dprint_options(AC3EncodeContext *s) } if (opt->extended_bsi_2) { switch (opt->dolby_surround_ex_mode) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_MODE_ON: av_strlcpy(strbuf, "on", 32); break; - case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_ex_mode); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_MODE_ON: msg = "on"; break; + case AC3ENC_OPT_MODE_OFF: msg = "off"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->dolby_surround_ex_mode); + msg = strbuf; } - ff_dlog(avctx, "dsurex_mode: %s\n", strbuf); + ff_dlog(avctx, "dsurex_mode: %s\n", msg); switch (opt->dolby_headphone_mode) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_MODE_ON: av_strlcpy(strbuf, "on", 32); break; - case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_headphone_mode); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_MODE_ON: msg = "on"; break; + case AC3ENC_OPT_MODE_OFF: msg = "off"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->dolby_headphone_mode); + msg = strbuf; } - ff_dlog(avctx, "dheadphone_mode: %s\n", strbuf); + ff_dlog(avctx, "dheadphone_mode: %s\n", msg); switch (opt->ad_converter_type) { - case AC3ENC_OPT_ADCONV_STANDARD: av_strlcpy(strbuf, "standard", 32); break; - case AC3ENC_OPT_ADCONV_HDCD: av_strlcpy(strbuf, "hdcd", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->ad_converter_type); + case AC3ENC_OPT_ADCONV_STANDARD: msg = "standard"; break; + case AC3ENC_OPT_ADCONV_HDCD: msg = "hdcd"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->ad_converter_type); + msg = strbuf; } - ff_dlog(avctx, "ad_conv_type: %s\n", strbuf); + ff_dlog(avctx, "ad_conv_type: %s\n", msg); } else { ff_dlog(avctx, "extended bitstream info 2: {not written}\n"); } |