]> granicus.if.org Git - libvpx/commitdiff
Added plumbing for setting color space
authorYaowu Xu <yaowu@google.com>
Fri, 9 Jan 2015 18:52:33 +0000 (10:52 -0800)
committerDeb Mukherjee <debargha@google.com>
Fri, 6 Mar 2015 22:51:49 +0000 (14:51 -0800)
Change-Id: If64052cc6e404abc8a64a889f42930d14fad21d3
(cherry picked from commit ce52b0f8d347224cd526dc1ba55597a2aa79c341)

vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_encoder.h
vp9/vp9_cx_iface.c

index 7ba9690ab913ccbf5fddab91bf21b40a9a86053f..a148ffe9e3d36c584a4ede2a1a701c6280de62aa 100644 (file)
@@ -563,7 +563,7 @@ static void init_config(struct VP9_COMP *cpi, VP9EncoderConfig *oxcf) {
 #if CONFIG_VP9_HIGHBITDEPTH
   cm->use_highbitdepth = oxcf->use_highbitdepth;
 #endif
-  cm->color_space = UNKNOWN;
+  cm->color_space = oxcf->color_space;
 
   cm->width = oxcf->width;
   cm->height = oxcf->height;
index e557a64d5d0e65fefd14ee61ebf8e53c9016ef56..9b585ad90675e6f47290b88d3fd05458a4e7f5a4 100644 (file)
@@ -217,6 +217,7 @@ typedef struct VP9EncoderConfig {
 #if CONFIG_VP9_HIGHBITDEPTH
   int use_highbitdepth;
 #endif
+  COLOR_SPACE color_space;
 } VP9EncoderConfig;
 
 static INLINE int is_lossless_requested(const VP9EncoderConfig *cfg) {
index adae18b485e92677a4bea672306c90750db3f071..a8ae8144e861ad69ab92a06026f6227e8ca4dfcc 100644 (file)
@@ -38,6 +38,7 @@ struct vp9_extracfg {
   AQ_MODE                     aq_mode;
   unsigned int                frame_periodic_boost;
   vpx_bit_depth_t             bit_depth;
+  COLOR_SPACE                 color_space;
   vp9e_tune_content           content;
 };
 
@@ -59,6 +60,7 @@ static struct vp9_extracfg default_extra_cfg = {
   NO_AQ,                      // aq_mode
   0,                          // frame_periodic_delta_q
   VPX_BITS_8,                 // Bit depth
+  UNKNOWN,                    // Color Space
   VP9E_CONTENT_DEFAULT        // content
 };
 
@@ -288,7 +290,7 @@ static vpx_codec_err_t validate_config(vpx_codec_alg_priv_t *ctx,
       cfg->g_bit_depth == VPX_BITS_8) {
     ERROR("Codec bit-depth 8 not supported in profile > 1");
   }
-
+  RANGE_CHECK(extra_cfg, color_space, UNKNOWN, SRGB);
   return VPX_CODEC_OK;
 }
 
@@ -422,6 +424,7 @@ static vpx_codec_err_t set_encoder_config(
   oxcf->firstpass_mb_stats_in  = cfg->rc_firstpass_mb_stats_in;
 #endif
 
+  oxcf->color_space = extra_cfg->color_space;
   oxcf->arnr_max_frames = extra_cfg->arnr_max_frames;
   oxcf->arnr_strength   = extra_cfg->arnr_strength;