diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index e97b84dc09387683fd59efb17744e90b029ea8ad..7a1f6ddb280128aed3089294bec7390e940c218a 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -395,7 +395,7 @@ static void putDescr(ByteIOContext *pb, int tag, int size)
 
 static int mov_write_esds_tag(ByteIOContext *pb, MOVTrack* track) // Basic
 {
-    int decoderSpecificInfoLen = track->vosLen ? descrLength(track->vosLen):0;
+    int decoderSpecificInfoLen;
     int pos = url_ftell(pb);
     void *vosDataBackup=track->vosData;
     int vosLenBackup=track->vosLen;
@@ -420,6 +420,8 @@ static int mov_write_esds_tag(ByteIOContext *pb, MOVTrack* track) // Basic
         }
     }
 
+    decoderSpecificInfoLen = track->vosLen ? descrLength(track->vosLen):0;
+
     put_be32(pb, 0);               // size
     put_tag(pb, "esds");
     put_be32(pb, 0);               // Version