avcodec/snowenc: Clear MMX state after edge drawing and picture encode
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 21 Oct 2016 13:10:48 +0000 (15:10 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 22 Oct 2016 11:46:58 +0000 (13:46 +0200)
Fixes undefined behavior from calling libc allocation with unclean FPU state.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/snowenc.c

index 00aef57..5cc7997 100644 (file)
@@ -1640,6 +1640,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
                                     s->current_picture->linesize[2], w>>s->chroma_h_shift, h>>s->chroma_v_shift,
                                     EDGE_WIDTH>>s->chroma_h_shift, EDGE_WIDTH>>s->chroma_v_shift, EDGE_TOP | EDGE_BOTTOM);
         }
+        emms_c();
     }
 
     ff_snow_frame_start(s);
@@ -1856,6 +1857,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
         }
 
     }
+    emms_c();
 
     update_last_header_values(s);