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
This commit is contained in:
parent
a75d55df1b
commit
449e5f2aba
@ -83,11 +83,12 @@ int read_yuv_frame(struct VpxInputContext *input_ctx, vpx_image_t *yuv_frame) {
|
|||||||
struct FileTypeDetectionBuffer *detect = &input_ctx->detect;
|
struct FileTypeDetectionBuffer *detect = &input_ctx->detect;
|
||||||
int plane = 0;
|
int plane = 0;
|
||||||
int shortread = 0;
|
int shortread = 0;
|
||||||
|
const int bytespp = (input_ctx->fmt & VPX_IMG_FMT_HIGH) ? 2 : 1;
|
||||||
|
|
||||||
for (plane = 0; plane < 3; ++plane) {
|
for (plane = 0; plane < 3; ++plane) {
|
||||||
uint8_t *ptr;
|
uint8_t *ptr;
|
||||||
const int w = (plane ? (1 + yuv_frame->d_w) / 2 : yuv_frame->d_w);
|
const int w = vpx_img_plane_width(yuv_frame, plane);
|
||||||
const int h = (plane ? (1 + yuv_frame->d_h) / 2 : yuv_frame->d_h);
|
const int h = vpx_img_plane_height(yuv_frame, plane);
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
/* Determine the correct plane based on the image format. The for-loop
|
/* 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) {
|
for (r = 0; r < h; ++r) {
|
||||||
size_t needed = w;
|
size_t needed = w * bytespp;
|
||||||
size_t buf_position = 0;
|
size_t buf_position = 0;
|
||||||
const size_t left = detect->buf_read - detect->position;
|
const size_t left = detect->buf_read - detect->position;
|
||||||
if (left > 0) {
|
if (left > 0) {
|
||||||
|
@ -269,6 +269,7 @@ static void yuvconfig2image(vpx_image_t *img,
|
|||||||
img->stride[VPX_PLANE_U] = yv12->uv_stride;
|
img->stride[VPX_PLANE_U] = yv12->uv_stride;
|
||||||
img->stride[VPX_PLANE_V] = yv12->uv_stride;
|
img->stride[VPX_PLANE_V] = yv12->uv_stride;
|
||||||
img->stride[VPX_PLANE_ALPHA] = yv12->y_stride;
|
img->stride[VPX_PLANE_ALPHA] = yv12->y_stride;
|
||||||
|
img->bit_depth = 8;
|
||||||
img->bps = 12;
|
img->bps = 12;
|
||||||
img->user_priv = user_priv;
|
img->user_priv = user_priv;
|
||||||
img->img_data = yv12->buffer_alloc;
|
img->img_data = yv12->buffer_alloc;
|
||||||
|
3
vpxdec.c
3
vpxdec.c
@ -875,6 +875,7 @@ int main_loop(int argc, const char **argv_) {
|
|||||||
}
|
}
|
||||||
scaled_img = vpx_img_alloc(NULL, VPX_IMG_FMT_I420, display_width,
|
scaled_img = vpx_img_alloc(NULL, VPX_IMG_FMT_I420, display_width,
|
||||||
display_height, 16);
|
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) {
|
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.width,
|
||||||
vpx_input_ctx.height,
|
vpx_input_ctx.height,
|
||||||
&vpx_input_ctx.framerate,
|
&vpx_input_ctx.framerate,
|
||||||
img->fmt, 8);
|
img->fmt, img->bit_depth);
|
||||||
if (do_md5) {
|
if (do_md5) {
|
||||||
MD5Update(&md5_ctx, (md5byte *)buf, (unsigned int)len);
|
MD5Update(&md5_ctx, (md5byte *)buf, (unsigned int)len);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user