diff options
-rw-r--r-- | libs.mk | 16 | ||||
-rw-r--r-- | test/sad_test.cc | 68 | ||||
-rw-r--r-- | test/sixtap_predict_test.cc | 46 | ||||
-rw-r--r-- | vp8/common/onyxc_int.h | 1 | ||||
-rw-r--r-- | vp8/decoder/decodframe.c | 7 | ||||
-rw-r--r-- | vp8/decoder/onyxd_if.c | 33 | ||||
-rw-r--r-- | vp8/decoder/onyxd_int.h | 9 | ||||
-rw-r--r-- | vp8/encoder/onyx_if.c | 4 |
8 files changed, 85 insertions, 99 deletions
@@ -147,7 +147,7 @@ ifeq ($(CONFIG_MSVS),yes) obj_int_extract.vcproj: $(SRC_PATH_BARE)/build/make/obj_int_extract.c @cp $(SRC_PATH_BARE)/build/x86-msvs/obj_int_extract.bat . @echo " [CREATE] $@" - $(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ + $(qexec)$(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ --exe \ --target=$(TOOLCHAIN) \ --name=obj_int_extract \ @@ -163,14 +163,14 @@ PROJECTS-$(BUILD_LIBVPX) += obj_int_extract.bat vpx.def: $(call enabled,CODEC_EXPORTS) @echo " [CREATE] $@" - $(SRC_PATH_BARE)/build/make/gen_msvs_def.sh\ + $(qexec)$(SRC_PATH_BARE)/build/make/gen_msvs_def.sh\ --name=vpx\ --out=$@ $^ CLEAN-OBJS += vpx.def vpx.vcproj: $(CODEC_SRCS) vpx.def @echo " [CREATE] $@" - $(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ + $(qexec)$(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ --lib \ --target=$(TOOLCHAIN) \ $(if $(CONFIG_STATIC_MSVCRT),--static-crt) \ @@ -242,8 +242,8 @@ vpx.pc: config.mk libs.mk $(qexec)echo 'Version: $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)' >> $@ $(qexec)echo 'Requires:' >> $@ $(qexec)echo 'Conflicts:' >> $@ - $(qexec)echo 'Libs: -L$${libdir} -lvpx -lm' >> $@ - $(qexec)echo 'Libs.private: -lpthread' >> $@ + $(qexec)echo 'Libs: -L$${libdir} -lvpx' >> $@ + $(qexec)echo 'Libs.private: -lm -lpthread' >> $@ $(qexec)echo 'Cflags: -I$${includedir}' >> $@ INSTALL-LIBS-yes += $(LIBSUBDIR)/pkgconfig/vpx.pc INSTALL_MAPS += $(LIBSUBDIR)/pkgconfig/%.pc %.pc @@ -361,7 +361,6 @@ LIBVPX_TEST_BINS=./test_libvpx LIBVPX_TEST_DATA=$(addprefix $(LIBVPX_TEST_DATA_PATH)/,\ $(call enabled,LIBVPX_TEST_DATA)) libvpx_test_data_url=http://downloads.webmproject.org/test_data/libvpx/$(1) -BINS-yes += $(LIBVPX_TEST_BINS) $(LIBVPX_TEST_DATA): @echo " [DOWNLOAD] $@" @@ -386,7 +385,7 @@ ifeq ($(CONFIG_MSVS),yes) gtest.vcproj: $(SRC_PATH_BARE)/third_party/googletest/src/src/gtest-all.cc @echo " [CREATE] $@" - $(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ + $(qexec)$(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ --lib \ --target=$(TOOLCHAIN) \ $(if $(CONFIG_STATIC_MSVCRT),--static-crt) \ @@ -401,7 +400,7 @@ PROJECTS-$(CONFIG_MSVS) += gtest.vcproj test_libvpx.vcproj: $(LIBVPX_TEST_SRCS) @echo " [CREATE] $@" - $(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ + $(qexec)$(SRC_PATH_BARE)/build/make/gen_msvs_proj.sh \ --exe \ --target=$(TOOLCHAIN) \ --name=test_libvpx \ @@ -432,6 +431,7 @@ LIBVPX_TEST_OBJS=$(sort $(call objs,$(LIBVPX_TEST_SRCS))) $(LIBVPX_TEST_OBJS) $(LIBVPX_TEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src $(LIBVPX_TEST_OBJS) $(LIBVPX_TEST_OBJS:.o=.d): CXXFLAGS += -I$(SRC_PATH_BARE)/third_party/googletest/src/include OBJS-$(BUILD_LIBVPX) += $(LIBVPX_TEST_OBJS) +BINS-$(BUILD_LIBVPX) += $(LIBVPX_TEST_BINS) # Install test sources only if codec source is included INSTALL-SRCS-$(CONFIG_CODEC_SRCS) += $(patsubst $(SRC_PATH_BARE)/%,%,\ diff --git a/test/sad_test.cc b/test/sad_test.cc index 2ad78f7eb..3e819ea9b 100644 --- a/test/sad_test.cc +++ b/test/sad_test.cc @@ -157,48 +157,72 @@ TEST_P(SADTest, MaxSAD) { CheckSad(128); } +using std::tr1::make_tuple; + +const sad_m_by_n_fn_t sad_16x16_c = vp8_sad16x16_c; +const sad_m_by_n_fn_t sad_8x16_c = vp8_sad8x16_c; +const sad_m_by_n_fn_t sad_16x8_c = vp8_sad16x8_c; +const sad_m_by_n_fn_t sad_8x8_c = vp8_sad8x8_c; +const sad_m_by_n_fn_t sad_4x4_c = vp8_sad4x4_c; INSTANTIATE_TEST_CASE_P(C, SADTest, ::testing::Values( - std::tr1::make_tuple(16, 16, vp8_sad16x16_c), - std::tr1::make_tuple(8, 16, vp8_sad8x16_c), - std::tr1::make_tuple(16, 8, vp8_sad16x8_c), - std::tr1::make_tuple(8, 8, vp8_sad8x8_c), - std::tr1::make_tuple(4, 4, vp8_sad4x4_c))); + make_tuple(16, 16, sad_16x16_c), + make_tuple(8, 16, sad_8x16_c), + make_tuple(16, 8, sad_16x8_c), + make_tuple(8, 8, sad_8x8_c), + make_tuple(4, 4, sad_4x4_c))); // ARM tests #if HAVE_MEDIA +const sad_m_by_n_fn_t sad_16x16_armv6 = vp8_sad16x16_armv6; INSTANTIATE_TEST_CASE_P(MEDIA, SADTest, ::testing::Values( - std::tr1::make_tuple(16, 16, vp8_sad16x16_armv6))); + make_tuple(16, 16, sad_16x16_armv6))); #endif #if HAVE_NEON +const sad_m_by_n_fn_t sad_16x16_neon = vp8_sad16x16_neon; +const sad_m_by_n_fn_t sad_8x16_neon = vp8_sad8x16_neon; +const sad_m_by_n_fn_t sad_16x8_neon = vp8_sad16x8_neon; +const sad_m_by_n_fn_t sad_8x8_neon = vp8_sad8x8_neon; +const sad_m_by_n_fn_t sad_4x4_neon = vp8_sad4x4_neon; INSTANTIATE_TEST_CASE_P(NEON, SADTest, ::testing::Values( - std::tr1::make_tuple(16, 16, vp8_sad16x16_neon), - std::tr1::make_tuple(8, 16, vp8_sad8x16_neon), - std::tr1::make_tuple(16, 8, vp8_sad16x8_neon), - std::tr1::make_tuple(8, 8, vp8_sad8x8_neon), - std::tr1::make_tuple(4, 4, vp8_sad4x4_neon))); + make_tuple(16, 16, sad_16x16_neon), + make_tuple(8, 16, sad_8x16_neon), + make_tuple(16, 8, sad_16x8_neon), + make_tuple(8, 8, sad_8x8_neon), + make_tuple(4, 4, sad_4x4_neon))); #endif // X86 tests #if HAVE_MMX +const sad_m_by_n_fn_t sad_16x16_mmx = vp8_sad16x16_mmx; +const sad_m_by_n_fn_t sad_8x16_mmx = vp8_sad8x16_mmx; +const sad_m_by_n_fn_t sad_16x8_mmx = vp8_sad16x8_mmx; +const sad_m_by_n_fn_t sad_8x8_mmx = vp8_sad8x8_mmx; +const sad_m_by_n_fn_t sad_4x4_mmx = vp8_sad4x4_mmx; INSTANTIATE_TEST_CASE_P(MMX, SADTest, ::testing::Values( - std::tr1::make_tuple(16, 16, vp8_sad16x16_mmx), - std::tr1::make_tuple(8, 16, vp8_sad8x16_mmx), - std::tr1::make_tuple(16, 8, vp8_sad16x8_mmx), - std::tr1::make_tuple(8, 8, vp8_sad8x8_mmx), - std::tr1::make_tuple(4, 4, vp8_sad4x4_mmx))); + make_tuple(16, 16, sad_16x16_mmx), + make_tuple(8, 16, sad_8x16_mmx), + make_tuple(16, 8, sad_16x8_mmx), + make_tuple(8, 8, sad_8x8_mmx), + make_tuple(4, 4, sad_4x4_mmx))); #endif #if HAVE_SSE2 +const sad_m_by_n_fn_t sad_16x16_wmt = vp8_sad16x16_wmt; +const sad_m_by_n_fn_t sad_8x16_wmt = vp8_sad8x16_wmt; +const sad_m_by_n_fn_t sad_16x8_wmt = vp8_sad16x8_wmt; +const sad_m_by_n_fn_t sad_8x8_wmt = vp8_sad8x8_wmt; +const sad_m_by_n_fn_t sad_4x4_wmt = vp8_sad4x4_wmt; INSTANTIATE_TEST_CASE_P(SSE2, SADTest, ::testing::Values( - std::tr1::make_tuple(16, 16, vp8_sad16x16_wmt), - std::tr1::make_tuple(8, 16, vp8_sad8x16_wmt), - std::tr1::make_tuple(16, 8, vp8_sad16x8_wmt), - std::tr1::make_tuple(8, 8, vp8_sad8x8_wmt), - std::tr1::make_tuple(4, 4, vp8_sad4x4_wmt))); + make_tuple(16, 16, sad_16x16_wmt), + make_tuple(8, 16, sad_8x16_wmt), + make_tuple(16, 8, sad_16x8_wmt), + make_tuple(8, 8, sad_8x8_wmt), + make_tuple(4, 4, sad_4x4_wmt))); #endif #if HAVE_SSSE3 +const sad_m_by_n_fn_t sad_16x16_sse3 = vp8_sad16x16_sse3; INSTANTIATE_TEST_CASE_P(SSE3, SADTest, ::testing::Values( - std::tr1::make_tuple(16, 16, vp8_sad16x16_sse3))); + make_tuple(16, 16, sad_16x16_sse3))); #endif } // namespace diff --git a/test/sixtap_predict_test.cc b/test/sixtap_predict_test.cc index f29414e23..84b89881f 100644 --- a/test/sixtap_predict_test.cc +++ b/test/sixtap_predict_test.cc @@ -156,33 +156,49 @@ TEST_P(SixtapPredictTest, TestWithRandomData) { } using std::tr1::make_tuple; + +const sixtap_predict_fn_t sixtap_16x16_c = vp8_sixtap_predict16x16_c; +const sixtap_predict_fn_t sixtap_8x8_c = vp8_sixtap_predict8x8_c; +const sixtap_predict_fn_t sixtap_8x4_c = vp8_sixtap_predict8x4_c; +const sixtap_predict_fn_t sixtap_4x4_c = vp8_sixtap_predict4x4_c; INSTANTIATE_TEST_CASE_P( C, SixtapPredictTest, ::testing::Values( - make_tuple(16, 16, vp8_sixtap_predict16x16_c), - make_tuple(8, 8, vp8_sixtap_predict8x8_c), - make_tuple(8, 4, vp8_sixtap_predict8x4_c), - make_tuple(4, 4, vp8_sixtap_predict4x4_c))); + make_tuple(16, 16, sixtap_16x16_c), + make_tuple(8, 8, sixtap_8x8_c), + make_tuple(8, 4, sixtap_8x4_c), + make_tuple(4, 4, sixtap_4x4_c))); #if HAVE_MMX +const sixtap_predict_fn_t sixtap_16x16_mmx = vp8_sixtap_predict16x16_mmx; +const sixtap_predict_fn_t sixtap_8x8_mmx = vp8_sixtap_predict8x8_mmx; +const sixtap_predict_fn_t sixtap_8x4_mmx = vp8_sixtap_predict8x4_mmx; +const sixtap_predict_fn_t sixtap_4x4_mmx = vp8_sixtap_predict4x4_mmx; INSTANTIATE_TEST_CASE_P( MMX, SixtapPredictTest, ::testing::Values( - make_tuple(16, 16, vp8_sixtap_predict16x16_mmx), - make_tuple(8, 8, vp8_sixtap_predict8x8_mmx), - make_tuple(8, 4, vp8_sixtap_predict8x4_mmx), - make_tuple(4, 4, vp8_sixtap_predict4x4_mmx))); + make_tuple(16, 16, sixtap_16x16_mmx), + make_tuple(8, 8, sixtap_8x8_mmx), + make_tuple(8, 4, sixtap_8x4_mmx), + make_tuple(4, 4, sixtap_4x4_mmx))); #endif #if HAVE_SSE2 +const sixtap_predict_fn_t sixtap_16x16_sse2 = vp8_sixtap_predict16x16_sse2; +const sixtap_predict_fn_t sixtap_8x8_sse2 = vp8_sixtap_predict8x8_sse2; +const sixtap_predict_fn_t sixtap_8x4_sse2 = vp8_sixtap_predict8x4_sse2; INSTANTIATE_TEST_CASE_P( SSE2, SixtapPredictTest, ::testing::Values( - make_tuple(16, 16, vp8_sixtap_predict16x16_sse2), - make_tuple(8, 8, vp8_sixtap_predict8x8_sse2), - make_tuple(8, 4, vp8_sixtap_predict8x4_sse2))); + make_tuple(16, 16, sixtap_16x16_sse2), + make_tuple(8, 8, sixtap_8x8_sse2), + make_tuple(8, 4, sixtap_8x4_sse2))); #endif #if HAVE_SSSE3 +const sixtap_predict_fn_t sixtap_16x16_ssse3 = vp8_sixtap_predict16x16_ssse3; +const sixtap_predict_fn_t sixtap_8x8_ssse3 = vp8_sixtap_predict8x8_ssse3; +const sixtap_predict_fn_t sixtap_8x4_ssse3 = vp8_sixtap_predict8x4_ssse3; +const sixtap_predict_fn_t sixtap_4x4_ssse3 = vp8_sixtap_predict4x4_ssse3; INSTANTIATE_TEST_CASE_P( SSSE3, SixtapPredictTest, ::testing::Values( - make_tuple(16, 16, vp8_sixtap_predict16x16_ssse3), - make_tuple(8, 8, vp8_sixtap_predict8x8_ssse3), - make_tuple(8, 4, vp8_sixtap_predict8x4_ssse3), - make_tuple(4, 4, vp8_sixtap_predict4x4_ssse3))); + make_tuple(16, 16, sixtap_16x16_ssse3), + make_tuple(8, 8, sixtap_8x8_ssse3), + make_tuple(8, 4, sixtap_8x4_ssse3), + make_tuple(4, 4, sixtap_4x4_ssse3))); #endif } // namespace diff --git a/vp8/common/onyxc_int.h b/vp8/common/onyxc_int.h index d7d02c2cf..c44ba8d23 100644 --- a/vp8/common/onyxc_int.h +++ b/vp8/common/onyxc_int.h @@ -108,7 +108,6 @@ typedef struct VP8Common int full_pixel; int base_qindex; - int last_kf_gf_q; /* Q used on the last GF or KF */ int y1dc_delta_q; int y2dc_delta_q; diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c index ed2d34574..20bffdbca 100644 --- a/vp8/decoder/decodframe.c +++ b/vp8/decoder/decodframe.c @@ -1217,13 +1217,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) /* vpx_log("Decoder: Frame Decoded, Size Roughly:%d bytes \n",bc->pos+pbi->bc2.pos); */ - /* If this was a kf or Gf note the Q used */ - if ((pc->frame_type == KEY_FRAME) || - pc->refresh_golden_frame || pc->refresh_alt_ref_frame) - { - pc->last_kf_gf_q = pc->base_qindex; - } - if (pc->refresh_entropy_probs == 0) { vpx_memcpy(&pc->fc, &pc->lfc, sizeof(pc->fc)); diff --git a/vp8/decoder/onyxd_if.c b/vp8/decoder/onyxd_if.c index 6cb7be6bf..205c150bd 100644 --- a/vp8/decoder/onyxd_if.c +++ b/vp8/decoder/onyxd_if.c @@ -502,39 +502,6 @@ int vp8dx_receive_compressed_data(VP8D_COMP *pbi, unsigned long size, const unsi pbi->last_time_stamp = time_stamp; pbi->num_fragments = 0; -#if 0 - { - int i; - int64_t earliest_time = pbi->dr[0].time_stamp; - int64_t latest_time = pbi->dr[0].time_stamp; - int64_t time_diff = 0; - int bytes = 0; - - pbi->dr[pbi->common.current_video_frame&0xf].size = pbi->bc.pos + pbi->bc2.pos + 4;; - pbi->dr[pbi->common.current_video_frame&0xf].time_stamp = time_stamp; - - for (i = 0; i < 16; i++) - { - - bytes += pbi->dr[i].size; - - if (pbi->dr[i].time_stamp < earliest_time) - earliest_time = pbi->dr[i].time_stamp; - - if (pbi->dr[i].time_stamp > latest_time) - latest_time = pbi->dr[i].time_stamp; - } - - time_diff = latest_time - earliest_time; - - if (time_diff > 0) - { - pbi->common.bitrate = 80000.00 * bytes / time_diff ; - pbi->common.framerate = 160000000.00 / time_diff ; - } - - } -#endif #if HAVE_NEON #if CONFIG_RUNTIME_CPU_DETECT diff --git a/vp8/decoder/onyxd_int.h b/vp8/decoder/onyxd_int.h index 8a5b8d5bb..240f5f727 100644 --- a/vp8/decoder/onyxd_int.h +++ b/vp8/decoder/onyxd_int.h @@ -33,13 +33,6 @@ typedef struct MACROBLOCKD mbd; } MB_ROW_DEC; -typedef struct -{ - int64_t time_stamp; - int size; -} DATARATE; - - typedef struct VP8D_COMP { DECLARE_ALIGNED(16, MACROBLOCKD, mb); @@ -88,8 +81,6 @@ typedef struct VP8D_COMP int64_t last_time_stamp; int ready_for_new_data; - DATARATE dr[16]; - vp8_prob prob_intra; vp8_prob prob_last; vp8_prob prob_gf; diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index c371cdf58..6a6959095 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -4637,10 +4637,6 @@ static void encode_frame_to_data_rate #endif - /* If this was a kf or Gf note the Q */ - if ((cm->frame_type == KEY_FRAME) || cm->refresh_golden_frame || cm->refresh_alt_ref_frame) - cm->last_kf_gf_q = cm->base_qindex; - if (cm->refresh_golden_frame == 1) cm->frame_flags = cm->frame_flags | FRAMEFLAGS_GOLDEN; else |