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:
Родитель
a75d55df1b
Коммит
449e5f2aba
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
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,
|
||||
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 {
|
||||
|
|
Загрузка…
Ссылка в новой задаче