diff --git a/vpx_codec/internal/vpx_codec_internal.h b/vpx_codec/internal/vpx_codec_internal.h
index 08675520b2469576e603b9583637d4935d2f2450..e95d603e8d3e14b6c27d183259ad4691e2c39544 100644
--- a/vpx_codec/internal/vpx_codec_internal.h
+++ b/vpx_codec/internal/vpx_codec_internal.h
@@ -314,7 +314,7 @@ struct vpx_codec_iface
 };
 
 /*!\brief Callback function pointer / user data pair storage */
-typedef struct
+typedef struct vpx_codec_priv_cb_pair
 {
     union
     {
diff --git a/vpx_codec/vpx_codec.h b/vpx_codec/vpx_codec.h
index e2a79f911b7e94c7f12498117d765829f5f4c470..d18505c69c0376d914f4a8899177a62ec7844442 100644
--- a/vpx_codec/vpx_codec.h
+++ b/vpx_codec/vpx_codec.h
@@ -196,7 +196,7 @@ extern "C" {
      * may reference the 'name' member to get a printable description of the
      * algorithm.
      */
-    typedef struct
+    typedef struct vpx_codec_ctx
     {
         const char              *name;        /**< Printable interface name */
         vpx_codec_iface_t       *iface;       /**< Interface pointers */
diff --git a/vpx_codec/vpx_decoder.h b/vpx_codec/vpx_decoder.h
index 5e4968de5e9277d9d0a6e82b10a85739c2df3788..ab0818f04a8b438f5f70c0ed1ec736ca263d4fa0 100644
--- a/vpx_codec/vpx_decoder.h
+++ b/vpx_codec/vpx_decoder.h
@@ -68,7 +68,7 @@ extern "C" {
      * stream. Algorithms may extend this structure with data specific
      * to their bitstream by setting the sz member appropriately.
      */
-    typedef struct
+    typedef struct vpx_codec_stream_info
     {
         unsigned int sz;     /**< Size of this structure */
         unsigned int w;      /**< Width (or 0 for unknown/default) */
diff --git a/vpx_codec/vpx_image.h b/vpx_codec/vpx_image.h
index a8a941674be68ff87cae44cc3daf2c9b356365a6..09def8f0e561bf9b3f992e17208ccf8a40a9bb3d 100644
--- a/vpx_codec/vpx_image.h
+++ b/vpx_codec/vpx_image.h
@@ -60,7 +60,7 @@ extern "C" {
 
 
     /**\brief Image Descriptor */
-    typedef struct
+    typedef struct vpx_image
     {
         img_fmt_t     fmt; /**< Image Format */