diff --git a/libavcodec/opus_celt.h b/libavcodec/opus_celt.h
index 19cf617652..c812b6645c 100644
--- a/libavcodec/opus_celt.h
+++ b/libavcodec/opus_celt.h
@@ -44,8 +44,6 @@
 #define CELT_POSTFILTER_MINPERIOD    15
 #define CELT_ENERGY_SILENCE          (-28.0f)
 
-typedef struct CeltPVQ CeltPVQ;
-
 enum CeltSpread {
     CELT_SPREAD_NONE,
     CELT_SPREAD_LIGHT,
@@ -96,7 +94,7 @@ struct CeltFrame {
     av_tx_fn            tx_fn[4];
     AVFloatDSPContext   *dsp;
     CeltBlock           block[2];
-    CeltPVQ             *pvq;
+    struct CeltPVQ      *pvq;
     OpusDSP             opusdsp;
     int channels;
     int output_channels;
diff --git a/libavcodec/opus_pvq.h b/libavcodec/opus_pvq.h
index b30407f5ab..b71bc49034 100644
--- a/libavcodec/opus_pvq.h
+++ b/libavcodec/opus_pvq.h
@@ -34,13 +34,13 @@
                                        float *lowband_out, int level, float gain,    \
                                        float *lowband_scratch, int fill)
 
-struct CeltPVQ {
+typedef struct CeltPVQ {
     DECLARE_ALIGNED(32, int,   qcoeff      )[256];
     DECLARE_ALIGNED(32, float, hadamard_tmp)[256];
 
     float (*pvq_search)(float *X, int *y, int K, int N);
     QUANT_FN(*quant_band);
-};
+} CeltPVQ;
 
 void ff_celt_pvq_init_x86(struct CeltPVQ *s);