diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index ceac4babef0d3c7379a6a0f36a3de7fab1b1a90a..7ccba57fe5e3d56d006771abd9aa9781f43f8ca1 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1832,6 +1832,13 @@ static int matroska_parse_tracks(AVFormatContext *s)
         avpriv_set_pts_info(st, 64, matroska->time_scale * track->time_scale,
                             1000 * 1000 * 1000);    /* 64 bit pts in ns */
 
+        if (track->type == MATROSKA_TRACK_TYPE_AUDIO &&
+            track->audio.out_samplerate) {
+            st->codecpar->initial_padding = av_rescale_q(track->codec_delay,
+                                                         (AVRational){ 1, 1000000000 },
+                                                         (AVRational){ 1, track->audio.out_samplerate });
+        }
+
         /* convert the delay from ns to the track timebase */
         track->codec_delay = av_rescale_q(track->codec_delay,
                                           (AVRational){ 1, 1000000000 },