[FFmpeg-cvslog] avcodec/svq1enc: Clear MMX state after svq1_encode_plane()
Michael Niedermayer
git at videolan.org
Sat Oct 22 15:28:10 EEST 2016
ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Fri Oct 21 14:33:42 2016 +0200| [70dc6bbf1bf0c78d6d5f8a0a195b57b6d66a56c0] | committer: Michael Niedermayer
avcodec/svq1enc: Clear MMX state after svq1_encode_plane()
svq1_encode_plane() uses SIMD and we call libc memory allocation functions after it
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=70dc6bbf1bf0c78d6d5f8a0a195b57b6d66a56c0
---
libavcodec/svq1enc.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c
index cb7c4a1..d78ede7 100644
--- a/libavcodec/svq1enc.c
+++ b/libavcodec/svq1enc.c
@@ -641,15 +641,17 @@ FF_ENABLE_DEPRECATION_WARNINGS
ff_side_data_set_encoder_stats(pkt, pict->quality, NULL, 0, s->pict_type);
svq1_write_header(s, s->pict_type);
- for (i = 0; i < 3; i++)
- if (svq1_encode_plane(s, i,
+ for (i = 0; i < 3; i++) {
+ int ret = svq1_encode_plane(s, i,
pict->data[i],
s->last_picture->data[i],
s->current_picture->data[i],
s->frame_width / (i ? 4 : 1),
s->frame_height / (i ? 4 : 1),
pict->linesize[i],
- s->current_picture->linesize[i]) < 0) {
+ s->current_picture->linesize[i]);
+ emms_c();
+ if (ret < 0) {
int j;
for (j = 0; j < i; j++) {
av_freep(&s->motion_val8[j]);
@@ -658,6 +660,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
av_freep(&s->scratchbuf);
return -1;
}
+ }
// avpriv_align_put_bits(&s->pb);
while (put_bits_count(&s->pb) & 31)
More information about the ffmpeg-cvslog
mailing list