diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 3042e3ccd2..af5f12a415 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1893,36 +1893,6 @@ static int mov_write_colr_tag(AVIOContext *pb, MOVTrack *track, int prefer_icc) } } - if (track->par->color_primaries == AVCOL_PRI_UNSPECIFIED && - track->par->color_trc == AVCOL_TRC_UNSPECIFIED && - track->par->color_space == AVCOL_SPC_UNSPECIFIED) { - if ((track->par->width >= 1920 && track->par->height >= 1080) - || (track->par->width == 1280 && track->par->height == 720)) { - av_log(NULL, AV_LOG_WARNING, "color primaries unspecified, assuming bt709\n"); - track->par->color_primaries = AVCOL_PRI_BT709; - } else if (track->par->width == 720 && track->height == 576) { - av_log(NULL, AV_LOG_WARNING, "color primaries unspecified, assuming bt470bg\n"); - track->par->color_primaries = AVCOL_PRI_BT470BG; - } else if (track->par->width == 720 && - (track->height == 486 || track->height == 480)) { - av_log(NULL, AV_LOG_WARNING, "color primaries unspecified, assuming smpte170\n"); - track->par->color_primaries = AVCOL_PRI_SMPTE170M; - } else { - av_log(NULL, AV_LOG_WARNING, "color primaries unspecified, unable to assume anything\n"); - } - switch (track->par->color_primaries) { - case AVCOL_PRI_BT709: - track->par->color_trc = AVCOL_TRC_BT709; - track->par->color_space = AVCOL_SPC_BT709; - break; - case AVCOL_PRI_SMPTE170M: - case AVCOL_PRI_BT470BG: - track->par->color_trc = AVCOL_TRC_BT709; - track->par->color_space = AVCOL_SPC_SMPTE170M; - break; - } - } - /* We should only ever be called by MOV or MP4. */ av_assert0(track->mode == MODE_MOV || track->mode == MODE_MP4); @@ -1932,6 +1902,9 @@ static int mov_write_colr_tag(AVIOContext *pb, MOVTrack *track, int prefer_icc) ffio_wfourcc(pb, "nclx"); else ffio_wfourcc(pb, "nclc"); + // Do not try to guess the color info if it is AVCOL_PRI_UNSPECIFIED. + // e.g., Dolby Vision for Apple devices should be set to AVCOL_PRI_UNSPECIFIED. See + // https://developer.apple.com/av-foundation/High-Dynamic-Range-Metadata-for-Apple-Devices.pdf avio_wb16(pb, track->par->color_primaries); avio_wb16(pb, track->par->color_trc); avio_wb16(pb, track->par->color_space);