diff --git a/libavformat/mov.c b/libavformat/mov.c
index 638245eb2cb9a2cbf037640ac8be6b0cbc1de6d5..a2376d9d5dfe45b52a08ad5b6ff0f974c62ab6da 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -668,24 +668,30 @@ static int mov_read_moov(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
 
 static int mov_read_mdhd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
 {
-    int version;
+    AVStream *st = c->fc->streams[c->fc->nb_streams-1];
+    MOVStreamContext *sc = (MOVStreamContext *)st->priv_data;
+    int version = get_byte(pb);
     int lang;
 
-    version = get_byte(pb); /* version */
     if (version > 1)
         return 1; /* unsupported */
 
     get_byte(pb); get_byte(pb);
     get_byte(pb); /* flags */
 
-    (version==1)?get_be64(pb):get_be32(pb); /* creation time */
-    (version==1)?get_be64(pb):get_be32(pb); /* modification time */
+    if (version == 1) {
+        get_be64(pb);
+        get_be64(pb);
+    } else {
+        get_be32(pb); /* creation time */
+        get_be32(pb); /* modification time */
+    }
 
-    c->streams[c->fc->nb_streams-1]->time_scale = get_be32(pb);
-    c->fc->streams[c->fc->nb_streams-1]->duration = (version==1)?get_be64(pb):get_be32(pb); /* duration */
+    sc->time_scale = get_be32(pb);
+    st->duration = (version == 1) ? get_be64(pb) : get_be32(pb); /* duration */
 
     lang = get_be16(pb); /* language */
-    ff_mov_lang_to_iso639(lang, c->fc->streams[c->fc->nb_streams-1]->language);
+    ff_mov_lang_to_iso639(lang, st->language);
     get_be16(pb); /* quality */
 
     return 0;
@@ -1339,12 +1345,8 @@ static int mov_read_trak(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
 
 static int mov_read_tkhd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
 {
-    AVStream *st;
-    int version;
-
-    st = c->fc->streams[c->fc->nb_streams-1];
-
-    version = get_byte(pb); /* version */
+    AVStream *st = c->fc->streams[c->fc->nb_streams-1];
+    int version = get_byte(pb);
 
     get_byte(pb); get_byte(pb);
     get_byte(pb); /* flags */