Arch specific calls should have an emms_c following to keep the cpu
state consistent.

Reported-By: wm4
CC: [email protected]
---
 libavfilter/af_volume.c  | 1 +
 libavfilter/vf_gradfun.c | 1 +
 libavfilter/vf_hqdn3d.c  | 1 +
 3 files changed, 3 insertions(+)

diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c
index 12d496e..2cdfe23 100644
--- a/libavfilter/af_volume.c
+++ b/libavfilter/af_volume.c
@@ -262,6 +262,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
                 vol->scale_samples(out_buf->extended_data[p],
                                    buf->extended_data[p], plane_samples,
                                    vol->volume_i);
+                emms_c();
             }
         } else if (av_get_packed_sample_fmt(vol->sample_fmt) == 
AV_SAMPLE_FMT_FLT) {
             for (p = 0; p < vol->planes; p++) {
diff --git a/libavfilter/vf_gradfun.c b/libavfilter/vf_gradfun.c
index 79f6790..f7c4372 100644
--- a/libavfilter/vf_gradfun.c
+++ b/libavfilter/vf_gradfun.c
@@ -118,6 +118,7 @@ static void filter(GradFunContext *ctx, uint8_t *dst, 
uint8_t *src, int width, i
         ctx->filter_line(dst + y * dst_linesize, src + y * src_linesize, dc - 
r / 2, width, thresh, dither[y & 7]);
         if (++y >= height) break;
     }
+    emms_c();
 }
 
 static av_cold int init(AVFilterContext *ctx)
diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c
index cd9f0d2..be6b761 100644
--- a/libavfilter/vf_hqdn3d.c
+++ b/libavfilter/vf_hqdn3d.c
@@ -147,6 +147,7 @@ static void denoise_depth(HQDN3DContext *s,
     else
         denoise_temporal(src, dst, frame_ant,
                          w, h, sstride, dstride, temporal, depth);
+    emms_c();
 }
 
 #define denoise(...) \
-- 
1.8.5.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to