diff options
author | Deb Mukherjee <debargha@google.com> | 2014-07-11 11:43:31 -0700 |
---|---|---|
committer | Deb Mukherjee <debargha@google.com> | 2014-07-14 11:48:04 -0700 |
commit | 449e5f2aba2d5f743f5be09e44d345b87ec7a91f (patch) | |
tree | cba9a2c6e0f13049ad6af5150ae793f9e7990b9f | |
parent | a75d55df1b362cb608f1ea6b70154cf166c32a3f (diff) | |
download | libvpx-449e5f2aba2d5f743f5be09e44d345b87ec7a91f.tar libvpx-449e5f2aba2d5f743f5be09e44d345b87ec7a91f.tar.gz libvpx-449e5f2aba2d5f743f5be09e44d345b87ec7a91f.tar.bz2 libvpx-449e5f2aba2d5f743f5be09e44d345b87ec7a91f.zip |
Misc. bit-depth related changes
Sets the bit-depth field as default 8 in the image structure in vp8.
Generalizes yuv read in preparation for support for reading 422/444
for 8-bit and 10/12-bit.
Change-Id: I560c13c348b122fd028e408431156376b895058c
-rw-r--r-- | tools_common.c | 7 | ||||
-rw-r--r-- | vp8/vp8_dx_iface.c | 1 | ||||
-rw-r--r-- | vpxdec.c | 3 |
3 files changed, 7 insertions, 4 deletions
diff --git a/tools_common.c b/tools_common.c index 4f2ac7401..8825528a5 100644 --- a/tools_common.c +++ b/tools_common.c @@ -83,11 +83,12 @@ int read_yuv_frame(struct VpxInputContext *input_ctx, vpx_image_t *yuv_frame) { struct FileTypeDetectionBuffer *detect = &input_ctx->detect; int plane = 0; int shortread = 0; + const int bytespp = (input_ctx->fmt & VPX_IMG_FMT_HIGH) ? 2 : 1; for (plane = 0; plane < 3; ++plane) { uint8_t *ptr; - const int w = (plane ? (1 + yuv_frame->d_w) / 2 : yuv_frame->d_w); - const int h = (plane ? (1 + yuv_frame->d_h) / 2 : yuv_frame->d_h); + const int w = vpx_img_plane_width(yuv_frame, plane); + const int h = vpx_img_plane_height(yuv_frame, plane); int r; /* Determine the correct plane based on the image format. The for-loop @@ -108,7 +109,7 @@ int read_yuv_frame(struct VpxInputContext *input_ctx, vpx_image_t *yuv_frame) { } for (r = 0; r < h; ++r) { - size_t needed = w; + size_t needed = w * bytespp; size_t buf_position = 0; const size_t left = detect->buf_read - detect->position; if (left > 0) { diff --git a/vp8/vp8_dx_iface.c b/vp8/vp8_dx_iface.c index b695ddc8d..fb3c236ce 100644 --- a/vp8/vp8_dx_iface.c +++ b/vp8/vp8_dx_iface.c @@ -269,6 +269,7 @@ static void yuvconfig2image(vpx_image_t *img, img->stride[VPX_PLANE_U] = yv12->uv_stride; img->stride[VPX_PLANE_V] = yv12->uv_stride; img->stride[VPX_PLANE_ALPHA] = yv12->y_stride; + img->bit_depth = 8; img->bps = 12; img->user_priv = user_priv; img->img_data = yv12->buffer_alloc; @@ -875,6 +875,7 @@ int main_loop(int argc, const char **argv_) { } scaled_img = vpx_img_alloc(NULL, VPX_IMG_FMT_I420, display_width, display_height, 16); + scaled_img->bit_depth = img->bit_depth; } if (img->d_w != scaled_img->d_w || img->d_h != scaled_img->d_h) { @@ -901,7 +902,7 @@ int main_loop(int argc, const char **argv_) { vpx_input_ctx.width, vpx_input_ctx.height, &vpx_input_ctx.framerate, - img->fmt, 8); + img->fmt, img->bit_depth); if (do_md5) { MD5Update(&md5_ctx, (md5byte *)buf, (unsigned int)len); } else { |