Add decoder APIs and unit tests in tile-coding experiment
In the tile-coding experiment,
1. In tile decoder, added 2 set control APIs:
VP10_SET_DECODE_TILE_ROW and VP10_SET_DECODE_TILE_COL. It allowed
users to set the range of decoding at frame level.
2. Added a unit test while tile-coding experiment is on. It tested
both tile encoder and decoder to make sure the encoded frame
can be decoded as a whole frame or as independent tiles.
Change-Id: I73fd0632b685047cb9376008127cde72efa3fb2b
diff --git a/vpxenc.c b/vpxenc.c
index 7fb28cd..9a52d54 100644
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -1580,8 +1580,18 @@
#if CONFIG_DECODERS
if (global->test_decode != TEST_DECODE_OFF) {
const VpxInterface *decoder = get_vpx_decoder_by_name(global->codec->name);
- vpx_codec_dec_cfg_t cfg = { 0, 0, 0, -1, -1 };
+ vpx_codec_dec_cfg_t cfg = { 0, 0, 0};
vpx_codec_dec_init(&stream->decoder, decoder->codec_interface(), &cfg, 0);
+
+#if CONFIG_VP10_DECODER && CONFIG_EXT_TILE
+ if (strcmp(global->codec->name, "vp10") == 0) {
+ vpx_codec_control(&stream->decoder, VP10_SET_DECODE_TILE_ROW, -1);
+ ctx_exit_on_error(&stream->decoder, "Failed to set decode_tile_row");
+
+ vpx_codec_control(&stream->decoder, VP10_SET_DECODE_TILE_COL, -1);
+ ctx_exit_on_error(&stream->decoder, "Failed to set decode_tile_col");
+ }
+#endif
}
#endif
}