diff --git a/libavformat/utils.c b/libavformat/utils.c
index e7e3128a354f4b8220812dc232215c86ca95f475..bab4a3cd11eefe667550f9e9772c7a40123d111f 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2496,9 +2496,8 @@ static void truncate_ts(AVStream *st, AVPacket *pkt){
 
 int av_write_frame(AVFormatContext *s, AVPacket *pkt)
 {
-    int ret;
+    int ret = compute_pkt_fields2(s->streams[pkt->stream_index], pkt);
 
-    ret=compute_pkt_fields2(s->streams[pkt->stream_index], pkt);
     if(ret<0 && !(s->oformat->flags & AVFMT_NOTIMESTAMPS))
         return ret;