[x265] cli: unify x265 log function
Xinyue Lu
maillist at 7086.in
Tue Mar 31 06:34:58 CEST 2015
# HG changeset patch
# User Xinyue Lu <i at 7086.in>
# Date 1427776048 25200
# Mon Mar 30 21:27:28 2015 -0700
# Branch Yuuki
# Node ID 123d028332d6fe5d3b08e35a8a9be98314e69031
# Parent a877426691da454fdbc9095944d93c89b436a026
cli: unify x265 log function
diff -r a877426691da -r 123d028332d6 source/common/common.cpp
--- a/source/common/common.cpp Mon Mar 30 20:39:17 2015 -0700
+++ b/source/common/common.cpp Mon Mar 30 21:27:28 2015 -0700
@@ -100,10 +100,12 @@
return (x265_exp2_lut[i & 63] + 256) << (i >> 6) >> 8;
}
-void x265_log(const x265_param *param, int level, const char *fmt, ...)
+void general_log(const x265_param *param, const char *caller, int level, const char *fmt, ...)
{
if (param && level > param->logLevel)
return;
+ char buffer[4096];
+ int p = 0;
const char *log_level;
switch (level)
{
@@ -127,11 +129,14 @@
break;
}
- fprintf(stderr, "x265 [%s]: ", log_level);
+ if (caller)
+ p += sprintf(buffer, "%-4s [%s]: ", caller, log_level);
va_list arg;
va_start(arg, fmt);
- vfprintf(stderr, fmt, arg);
+ vsprintf(buffer + p, fmt, arg);
va_end(arg);
+ if (!(param && level > param->logLevel))
+ fputs(buffer, stderr);
}
double x265_ssim2dB(double ssim)
diff -r a877426691da -r 123d028332d6 source/common/common.h
--- a/source/common/common.h Mon Mar 30 20:39:17 2015 -0700
+++ b/source/common/common.h Mon Mar 30 21:27:28 2015 -0700
@@ -413,7 +413,8 @@
/* outside x265 namespace, but prefixed. defined in common.cpp */
int64_t x265_mdate(void);
-void x265_log(const x265_param *param, int level, const char *fmt, ...);
+#define x265_log(param, ...) general_log(param, "x265", __VA_ARGS__)
+void general_log(const x265_param *param, const char *caller, int level, const char *fmt, ...);
int x265_exp2fix8(double x);
double x265_ssim2dB(double ssim);
diff -r a877426691da -r 123d028332d6 source/x265.cpp
--- a/source/x265.cpp Mon Mar 30 20:39:17 2015 -0700
+++ b/source/x265.cpp Mon Mar 30 21:27:28 2015 -0700
@@ -399,7 +399,7 @@
else
sprintf(buf + p, " frames %u - %d of %d", this->seek, this->seek + this->framesToBeEncoded - 1, info.frameCount);
- fprintf(stderr, "%s [info]: %s\n", input->getName(), buf);
+ general_log(param, input->getName(), X265_LOG_INFO, "%s\n", buf);
}
this->input->startReader();
@@ -632,25 +632,27 @@
cliopt.bitstreamFile.close();
if (b_ctrl_c)
- fprintf(stderr, "aborted at input frame %d, output frame %d\n",
+ general_log(param, NULL, X265_LOG_INFO, "aborted at input frame %d, output frame %d\n",
cliopt.seek + inFrameCount, stats.encodedPictureCount);
if (stats.encodedPictureCount)
{
- printf("\nencoded %d frames in %.2fs (%.2f fps), %.2f kb/s", stats.encodedPictureCount,
+ char buffer[4096];
+ int p = sprintf(buffer, "\nencoded %d frames in %.2fs (%.2f fps), %.2f kb/s", stats.encodedPictureCount,
stats.elapsedEncodeTime, stats.encodedPictureCount / stats.elapsedEncodeTime, stats.bitrate);
if (param->bEnablePsnr)
- printf(", Global PSNR: %.3f", stats.globalPsnr);
+ p += sprintf(buffer + p, ", Global PSNR: %.3f", stats.globalPsnr);
if (param->bEnableSsim)
- printf(", SSIM Mean Y: %.7f (%6.3f dB)", stats.globalSsim, x265_ssim2dB(stats.globalSsim));
+ p += sprintf(buffer + p, ", SSIM Mean Y: %.7f (%6.3f dB)", stats.globalSsim, x265_ssim2dB(stats.globalSsim));
- printf("\n");
+ sprintf(buffer + p, "\n");
+ general_log(param, NULL, X265_LOG_INFO, buffer);
}
else
{
- printf("\nencoded 0 frames\n");
+ general_log(param, NULL, X265_LOG_INFO, "\nencoded 0 frames\n");
}
x265_cleanup(); /* Free library singletons */
More information about the x265-devel
mailing list