diff options
Diffstat (limited to 'vpx')
-rw-r--r-- | vpx/src/vpx_image.c | 33 | ||||
-rw-r--r-- | vpx/vpx_codec.h | 9 | ||||
-rw-r--r-- | vpx/vpx_image.h | 5 |
3 files changed, 38 insertions, 9 deletions
diff --git a/vpx/src/vpx_image.c b/vpx/src/vpx_image.c index 36eda958e..dc8fcbc3b 100644 --- a/vpx/src/vpx_image.c +++ b/vpx/src/vpx_image.c @@ -40,13 +40,13 @@ static void img_buf_free(void *memblk) { } } -static vpx_image_t *img_alloc_helper(vpx_image_t *img, - vpx_img_fmt_t fmt, - unsigned int d_w, - unsigned int d_h, - unsigned int buf_align, - unsigned int stride_align, - unsigned char *img_data) { +static vpx_image_t *img_alloc_helper(vpx_image_t *img, + vpx_img_fmt_t fmt, + unsigned int d_w, + unsigned int d_h, + unsigned int buf_align, + unsigned int stride_align, + unsigned char *img_data) { unsigned int h, w, s, xcs, ycs, bps; int align; @@ -94,6 +94,21 @@ static vpx_image_t *img_alloc_helper(vpx_image_t *img, case VPX_IMG_FMT_VPXYV12: bps = 12; break; + case VPX_IMG_FMT_I422: + bps = 16; + break; + case VPX_IMG_FMT_I444: + bps = 24; + break; + case VPX_IMG_FMT_I42016: + bps = 24; + break; + case VPX_IMG_FMT_I42216: + bps = 32; + break; + case VPX_IMG_FMT_I44416: + bps = 48; + break; default: bps = 16; break; @@ -105,6 +120,9 @@ static vpx_image_t *img_alloc_helper(vpx_image_t *img, case VPX_IMG_FMT_YV12: case VPX_IMG_FMT_VPXI420: case VPX_IMG_FMT_VPXYV12: + case VPX_IMG_FMT_I422: + case VPX_IMG_FMT_I42016: + case VPX_IMG_FMT_I42216: xcs = 1; break; default: @@ -156,6 +174,7 @@ static vpx_image_t *img_alloc_helper(vpx_image_t *img, goto fail; img->fmt = fmt; + img->bit_depth = (fmt & VPX_IMG_FMT_HIGH) ? 16 : 8; img->w = w; img->h = h; img->x_chroma_shift = xcs; diff --git a/vpx/vpx_codec.h b/vpx/vpx_codec.h index 03d2dec92..45e702354 100644 --- a/vpx/vpx_codec.h +++ b/vpx/vpx_codec.h @@ -212,6 +212,15 @@ extern "C" { vpx_codec_priv_t *priv; /**< Algorithm private storage */ } vpx_codec_ctx_t; + /*!\brief Bit depth for codec + * * + * This enumeration determines the bit depth of the codec. + */ + typedef enum vpx_bit_depth { + VPX_BITS_8, /**< 8 bits */ + VPX_BITS_10, /**< 10 bits */ + VPX_BITS_12 /**< 12 bits */ + } vpx_bit_depth_t; /* * Library Version Number Interface diff --git a/vpx/vpx_image.h b/vpx/vpx_image.h index d45b003c6..7b04b70a1 100644 --- a/vpx/vpx_image.h +++ b/vpx/vpx_image.h @@ -103,8 +103,9 @@ extern "C" { vpx_img_fmt_t fmt; /**< Image Format */ /* Image storage dimensions */ - unsigned int w; /**< Stored image width */ - unsigned int h; /**< Stored image height */ + unsigned int w; /**< Stored image width */ + unsigned int h; /**< Stored image height */ + unsigned int bit_depth; /**< Stored image bit-depth */ /* Image display dimensions */ unsigned int d_w; /**< Displayed image width */ |