summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Boström <pbos@chromium.org>2017-09-01 05:37:51 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-09-01 05:37:51 +0000
commitbe2ba48cacdf867f648535b57b002fd7d25fe836 (patch)
tree57dce1a22699ef644b644c7a657116c7727d9ce3
parent334e9abb0b05881edc59fb25e91b4efbede848ef (diff)
parent9ab4d9df387d3dd3881fae4d7af6215f37e3c9b8 (diff)
downloadlibvpx-be2ba48cacdf867f648535b57b002fd7d25fe836.tar
libvpx-be2ba48cacdf867f648535b57b002fd7d25fe836.tar.gz
libvpx-be2ba48cacdf867f648535b57b002fd7d25fe836.tar.bz2
libvpx-be2ba48cacdf867f648535b57b002fd7d25fe836.zip
Merge "Prevent data race from low-pass filter."
-rw-r--r--test/datarate_test.cc14
-rw-r--r--vp8/encoder/onyx_if.c10
2 files changed, 3 insertions, 21 deletions
diff --git a/test/datarate_test.cc b/test/datarate_test.cc
index 8e93de6b9..a88f786c1 100644
--- a/test/datarate_test.cc
+++ b/test/datarate_test.cc
@@ -258,14 +258,6 @@ TEST_P(DatarateTestLarge, ChangingDropFrameThresh) {
}
}
-// Disabled for tsan, see:
-// https://bugs.chromium.org/p/webm/issues/detail?id=1049
-#if defined(__has_feature)
-#if __has_feature(thread_sanitizer)
-#define BUILDING_WITH_TSAN
-#endif
-#endif
-#ifndef BUILDING_WITH_TSAN
TEST_P(DatarateTestLarge, DropFramesMultiThreads) {
denoiser_on_ = 0;
cfg_.rc_buf_initial_sz = 500;
@@ -285,7 +277,6 @@ TEST_P(DatarateTestLarge, DropFramesMultiThreads) {
ASSERT_LE(cfg_.rc_target_bitrate, file_datarate_ * 1.4)
<< " The datarate for the file missed the target!";
}
-#endif // !BUILDING_WITH_TSAN
class DatarateTestRealTime : public DatarateTestLarge {
public:
@@ -402,10 +393,6 @@ TEST_P(DatarateTestRealTime, ChangingDropFrameThresh) {
}
}
-// Disabled for tsan, see:
-// https://bugs.chromium.org/p/webm/issues/detail?id=1049
-
-#ifndef BUILDING_WITH_TSAN
TEST_P(DatarateTestRealTime, DropFramesMultiThreads) {
denoiser_on_ = 0;
cfg_.rc_buf_initial_sz = 500;
@@ -426,7 +413,6 @@ TEST_P(DatarateTestRealTime, DropFramesMultiThreads) {
ASSERT_LE(cfg_.rc_target_bitrate, file_datarate_ * 1.4)
<< " The datarate for the file missed the target!";
}
-#endif
TEST_P(DatarateTestRealTime, GFBoost) {
denoiser_on_ = 0;
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c
index 725e000e2..2c2a783a9 100644
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -4445,6 +4445,9 @@ static void encode_frame_to_data_rate(VP8_COMP *cpi, size_t *size,
/* start loopfilter in separate thread */
sem_post(&cpi->h_event_start_lpf);
cpi->b_lpf_running = 1;
+ /* wait for the filter_level to be picked so that we can continue with
+ * stream packing */
+ sem_wait(&cpi->h_event_end_lpf);
} else
#endif
{
@@ -4464,13 +4467,6 @@ static void encode_frame_to_data_rate(VP8_COMP *cpi, size_t *size,
}
#endif
-#if CONFIG_MULTITHREAD
- /* wait that filter_level is picked so that we can continue with stream
- * packing */
- if (vpx_atomic_load_acquire(&cpi->b_multi_threaded))
- sem_wait(&cpi->h_event_end_lpf);
-#endif
-
/* build the bitstream */
vp8_pack_bitstream(cpi, dest, dest_end, size);