avformat/flvenc: Avoid avio_write(pb, "", 0)

When the compiler chooses to inline put_amf_string(pb, ""),
the avio_write(pb, "", 0) can be avoided. Happens with
Clang-17 with -O1 and higher and GCC 13 with -O2 and higher
here.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2024-03-19 04:17:18 +01:00
parent 535b1a93f5
commit ee736ff80e

View File

@ -231,6 +231,9 @@ static void put_amf_string(AVIOContext *pb, const char *str)
{
size_t len = strlen(str);
avio_wb16(pb, len);
// Avoid avio_write() if put_amf_string(pb, "") is inlined.
if (av_builtin_constant_p(len == 0) && len == 0)
return;
avio_write(pb, str, len);
}