+ switch (color_trc) {
+ case DPX_TRC_LINEAR:
+ avctx->color_trc = AVCOL_TRC_LINEAR;
+ break;
+ case DPX_TRC_SMPTE_274:
+ case DPX_TRC_ITU_R_709_4:
+ avctx->color_trc = AVCOL_TRC_BT709;
+ break;
+ case DPX_TRC_ITU_R_601_625:
+ case DPX_TRC_ITU_R_601_525:
+ case DPX_TRC_SMPTE_170:
+ avctx->color_trc = AVCOL_TRC_SMPTE170M;
+ break;
+ case DPX_TRC_ITU_R_624_4_PAL:
+ avctx->color_trc = AVCOL_TRC_GAMMA28;
+ break;
+ case DPX_TRC_USER_DEFINED:
+ case DPX_TRC_UNSPECIFIED_VIDEO:
+ /* Nothing to do */
+ break;
+ default:
+ av_log(avctx, AV_LOG_VERBOSE, "Cannot map DPX transfer characteristic "
+ "%d to color_trc.\n", color_trc);
+ break;
+ }
+
+ switch (color_spec) {
+ case DPX_COL_SPEC_SMPTE_274:
+ case DPX_COL_SPEC_ITU_R_709_4:
+ avctx->color_primaries = AVCOL_PRI_BT709;
+ break;
+ case DPX_COL_SPEC_ITU_R_601_625:
+ case DPX_COL_SPEC_ITU_R_624_4_PAL:
+ avctx->color_primaries = AVCOL_PRI_BT470BG;
+ break;
+ case DPX_COL_SPEC_ITU_R_601_525:
+ case DPX_COL_SPEC_SMPTE_170:
+ avctx->color_primaries = AVCOL_PRI_SMPTE170M;
+ break;
+ case DPX_COL_SPEC_USER_DEFINED:
+ case DPX_COL_SPEC_UNSPECIFIED_VIDEO:
+ /* Nothing to do */
+ break;
+ default:
+ av_log(avctx, AV_LOG_VERBOSE, "Cannot map DPX color specification "
+ "%d to color_primaries.\n", color_spec);
+ break;
+ }
+
+ if (yuv) {
+ switch (color_spec) {
+ case DPX_COL_SPEC_SMPTE_274:
+ case DPX_COL_SPEC_ITU_R_709_4:
+ avctx->colorspace = AVCOL_SPC_BT709;
+ break;
+ case DPX_COL_SPEC_ITU_R_601_625:
+ case DPX_COL_SPEC_ITU_R_624_4_PAL:
+ avctx->colorspace = AVCOL_SPC_BT470BG;
+ break;
+ case DPX_COL_SPEC_ITU_R_601_525:
+ case DPX_COL_SPEC_SMPTE_170:
+ avctx->colorspace = AVCOL_SPC_SMPTE170M;
+ break;
+ case DPX_COL_SPEC_USER_DEFINED:
+ case DPX_COL_SPEC_UNSPECIFIED_VIDEO:
+ /* Nothing to do */
+ break;
+ default:
+ av_log(avctx, AV_LOG_INFO, "Cannot map DPX color specification "
+ "%d to colorspace.\n", color_spec);
+ break;
+ }
+ } else {
+ avctx->colorspace = AVCOL_SPC_RGB;
+ }
+