top-level: add extern "C" to headers

Change-Id: I5164df72aff84eca0ace56032c5373f04053c6a5
diff --git a/args.h b/args.h
index ea909cb..04e0acd 100644
--- a/args.h
+++ b/args.h
@@ -13,6 +13,10 @@
 #define ARGS_H_
 #include <stdio.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct arg {
   char                 **argv;
   const char            *name;
@@ -48,4 +52,8 @@
 int arg_parse_int(const struct arg *arg);
 struct vpx_rational arg_parse_rational(const struct arg *arg);
 int arg_parse_enum_or_int(const struct arg *arg);
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // ARGS_H_
diff --git a/md5_utils.h b/md5_utils.h
index 9935eae..bd4991b 100644
--- a/md5_utils.h
+++ b/md5_utils.h
@@ -23,6 +23,10 @@
 #ifndef MD5_UTILS_H_
 #define MD5_UTILS_H_
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define md5byte unsigned char
 #define UWORD32 unsigned int
 
@@ -38,4 +42,8 @@
 void MD5Final(unsigned char digest[16], struct MD5Context *context);
 void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]);
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // MD5_UTILS_H_
diff --git a/vpxenc.h b/vpxenc.h
index 5cb3f85..5103ee6 100644
--- a/vpxenc.h
+++ b/vpxenc.h
@@ -12,6 +12,10 @@
 
 #include "vpx/vpx_encoder.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 enum TestDecodeFatality {
   TEST_DECODE_OFF,
   TEST_DECODE_FATAL,
@@ -42,4 +46,8 @@
   int disable_warning_prompt;
 };
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // VPXENC_H_
diff --git a/vpxstats.h b/vpxstats.h
index 18b3acd..9ce9c53 100644
--- a/vpxstats.h
+++ b/vpxstats.h
@@ -15,6 +15,10 @@
 
 #include "vpx/vpx_encoder.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* This structure is used to abstract the different ways of handling
  * first pass statistics
  */
@@ -34,4 +38,8 @@
 
 double vp8_mse2psnr(double samples, double peak, double mse);
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // VPXSTATS_H_
diff --git a/warnings.h b/warnings.h
index ac3a4b6..6b8ae67 100644
--- a/warnings.h
+++ b/warnings.h
@@ -10,6 +10,10 @@
 #ifndef WARNINGS_H_
 #define WARNINGS_H_
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct vpx_codec_enc_cfg;
 struct VpxEncoderConfig;
 
@@ -22,4 +26,8 @@
                           const struct VpxEncoderConfig *global_config,
                           const struct vpx_codec_enc_cfg *stream_config);
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // WARNINGS_H_
diff --git a/webmdec.h b/webmdec.h
index 002fbe6..fa5a52e 100644
--- a/webmdec.h
+++ b/webmdec.h
@@ -12,6 +12,10 @@
 
 #include "./tools_common.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct nestegg;
 struct nestegg_packet;
 struct VpxInputContext;
@@ -37,4 +41,8 @@
 
 void webm_free(struct WebmInputContext *webm_ctx);
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // WEBMDEC_H_
diff --git a/webmenc.h b/webmenc.h
index f3bc3ec..362aa89 100644
--- a/webmenc.h
+++ b/webmenc.h
@@ -23,6 +23,10 @@
 #include "tools_common.h"
 #include "vpx/vpx_encoder.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef off_t EbmlLoc;
 
 struct cue_entry {
@@ -84,4 +88,8 @@
 
 void write_webm_file_footer(struct EbmlGlobal *glob, int hash);
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // WEBMENC_H_
diff --git a/y4menc.h b/y4menc.h
index e5f7978..95f7909 100644
--- a/y4menc.h
+++ b/y4menc.h
@@ -17,6 +17,10 @@
 
 #include "vpx/vpx_decoder.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void y4m_write_file_header(FILE *file, int width, int height,
                            const struct VpxRational *framerate,
                            vpx_img_fmt_t fmt);
@@ -24,4 +28,8 @@
 void y4m_write_frame_header(FILE *file);
 
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // Y4MENC_H_
diff --git a/y4minput.h b/y4minput.h
index 615debe..d53eb65 100644
--- a/y4minput.h
+++ b/y4minput.h
@@ -17,6 +17,10 @@
 # include <stdio.h>
 # include "vpx/vpx_image.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 
 
 typedef struct y4m_input y4m_input;
@@ -62,4 +66,8 @@
 void y4m_input_close(y4m_input *_y4m);
 int y4m_input_fetch_frame(y4m_input *_y4m, FILE *_fin, vpx_image_t *img);
 
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
 #endif  // Y4MINPUT_H_