[x264-devel] [PATCH 04/29] common: Move log helper functions to a separate file

Vittorio Giovara vittorio.giovara at gmail.com
Thu Feb 2 10:05:16 CET 2017


The main x264_log() function needs to remain in common.c because it is
tightly coupled with x264_t type.
---
 Makefile        |  1 +
 common/common.c | 31 ++-----------------------------
 common/common.h |  1 +
 common/log.c    | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 common/log.h    | 40 ++++++++++++++++++++++++++++++++++++++++
 5 files changed, 97 insertions(+), 29 deletions(-)
 create mode 100644 common/log.c
 create mode 100644 common/log.h

diff --git a/Makefile b/Makefile
index d97c9e6..0718c2c 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,7 @@ SRCS = common/mc.c common/predict.c common/pixel.c common/macroblock.c \
        common/common.c common/osdep.c common/rectangle.c \
        common/set.c common/quant.c common/deblock.c common/vlc.c \
        common/mvpred.c common/bitstream.c \
+       common/log.c \
        encoder/analyse.c encoder/me.c encoder/ratecontrol.c \
        encoder/set.c encoder/macroblock.c encoder/cabac.c \
        encoder/cavlc.c encoder/encoder.c encoder/lookahead.c
diff --git a/common/common.c b/common/common.c
index a1404ae..154af36 100644
--- a/common/common.c
+++ b/common/common.c
@@ -39,8 +39,6 @@ const int x264_bit_depth = BIT_DEPTH;
 
 const int x264_chroma_format = X264_CHROMA_FORMAT;
 
-static void log_default( void *, int, const char *, va_list );
-
 /****************************************************************************
  * x264_param_default:
  ****************************************************************************/
@@ -123,7 +121,7 @@ void x264_param_default( x264_param_t *param )
     param->rc.b_mb_tree = 1;
 
     /* Log */
-    param->pf_log = log_default;
+    param->pf_log = x264_log_default;
     param->p_log_private = NULL;
     param->i_log_level = X264_LOG_INFO;
 
@@ -1079,38 +1077,13 @@ void x264_log( x264_t *h, int i_level, const char *psz_fmt, ... )
         va_list arg;
         va_start( arg, psz_fmt );
         if( !h )
-            log_default( NULL, i_level, psz_fmt, arg );
+            x264_log_default( NULL, i_level, psz_fmt, arg );
         else
             h->param.pf_log( h->param.p_log_private, i_level, psz_fmt, arg );
         va_end( arg );
     }
 }
 
-static void log_default( void *p_unused, int i_level, const char *psz_fmt, va_list arg )
-{
-    char *psz_prefix;
-    switch( i_level )
-    {
-        case X264_LOG_ERROR:
-            psz_prefix = "error";
-            break;
-        case X264_LOG_WARNING:
-            psz_prefix = "warning";
-            break;
-        case X264_LOG_INFO:
-            psz_prefix = "info";
-            break;
-        case X264_LOG_DEBUG:
-            psz_prefix = "debug";
-            break;
-        default:
-            psz_prefix = "unknown";
-            break;
-    }
-    fprintf( stderr, "x264 [%s]: ", psz_prefix );
-    x264_vfprintf( stderr, psz_fmt, arg );
-}
-
 /****************************************************************************
  * x264_picture_init:
  ****************************************************************************/
diff --git a/common/common.h b/common/common.h
index 8cc1dc1..35a982c 100644
--- a/common/common.h
+++ b/common/common.h
@@ -115,6 +115,7 @@ do {\
  * Includes
  ****************************************************************************/
 #include "osdep.h"
+#include "log.h"
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdlib.h>
diff --git a/common/log.c b/common/log.c
new file mode 100644
index 0000000..f736e69
--- /dev/null
+++ b/common/log.c
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * log.c: log helper functions
+ *****************************************************************************
+ * Copyright (C) 2003-2016 x264 project
+ *
+ * Authors: Loren Merritt <lorenm at u.washington.edu>
+ *          Laurent Aimar <fenrir at via.ecp.fr>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at licensing at x264.com.
+ *****************************************************************************/
+
+#include "log.h"
+#include "x264.h"
+
+void x264_log_default( void *p_unused, int i_level, const char *psz_fmt, va_list arg )
+{
+    char *psz_prefix;
+    switch( i_level )
+    {
+        case X264_LOG_ERROR:
+            psz_prefix = "error";
+            break;
+        case X264_LOG_WARNING:
+            psz_prefix = "warning";
+            break;
+        case X264_LOG_INFO:
+            psz_prefix = "info";
+            break;
+        case X264_LOG_DEBUG:
+            psz_prefix = "debug";
+            break;
+        default:
+            psz_prefix = "unknown";
+            break;
+    }
+    fprintf( stderr, "x264 [%s]: ", psz_prefix );
+    x264_vfprintf( stderr, psz_fmt, arg );
+}
diff --git a/common/log.h b/common/log.h
new file mode 100644
index 0000000..0dd75aa
--- /dev/null
+++ b/common/log.h
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * log.h: log helper functions
+ *****************************************************************************
+ * Copyright (C) 2003-2016 x264 project
+ *
+ * Authors: Loren Merritt <lorenm at u.washington.edu>
+ *          Laurent Aimar <fenrir at via.ecp.fr>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at licensing at x264.com.
+ *****************************************************************************/
+
+#ifndef COMMON_LOG_H
+#define COMMON_LOG_H
+
+#include "osdep.h"
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <limits.h>
+
+void x264_log_default( void *p_unused, int i_level, const char *psz_fmt, va_list arg );
+
+#endif
-- 
2.10.0



More information about the x264-devel mailing list