diff --git a/libavcodec/g729dec.c b/libavcodec/g729dec.c
index ab39a92cda6733b879a1c1622d3af4b029d1c682..28c48b5748f02f2ed2eb6fe34135623c991fa33e 100644
--- a/libavcodec/g729dec.c
+++ b/libavcodec/g729dec.c
@@ -97,11 +97,19 @@ static inline int get_parity(uint8_t value)
    return (0x6996966996696996ULL >> (value >> 2)) & 1;
 }
 
+static av_cold int decoder_init(AVCodecContext * avctx)
+{
     if (avctx->channels != 1) {
         av_log(avctx, AV_LOG_ERROR, "Only mono sound is supported (requested channels: %d).\n", avctx->channels);
         return AVERROR_NOFMT;
     }
 
+    /* Both 8kbit/s and 6.4kbit/s modes uses two subframes per frame. */
+    avctx->frame_size = SUBFRAME_SIZE << 1;
+
+    return 0;
+}
+
         ff_acelp_weighted_vector_sum(fc + pitch_delay_int[i],
                                      fc + pitch_delay_int[i],
                                      fc, 1 << 14,