|
|
|
@@ -36,6 +36,7 @@ |
|
|
|
#include "libavutil/avstring.h" |
|
|
|
#include "libavutil/dict.h" |
|
|
|
#include "libavutil/opt.h" |
|
|
|
#include "libavutil/pixdesc.h" |
|
|
|
#include "libavcodec/ac3tab.h" |
|
|
|
#include "avformat.h" |
|
|
|
#include "internal.h" |
|
|
|
@@ -1083,16 +1084,14 @@ static int mov_read_colr(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
st->codecpar->color_range = AVCOL_RANGE_JPEG; |
|
|
|
else |
|
|
|
st->codecpar->color_range = AVCOL_RANGE_MPEG; |
|
|
|
/* 14496-12 references JPEG XR specs (rather than the more complete |
|
|
|
* 23001-8) so some adjusting is required */ |
|
|
|
if (color_primaries >= AVCOL_PRI_FILM) |
|
|
|
|
|
|
|
if (!av_color_primaries_name(color_primaries)) |
|
|
|
color_primaries = AVCOL_PRI_UNSPECIFIED; |
|
|
|
if ((color_trc >= AVCOL_TRC_LINEAR && |
|
|
|
color_trc <= AVCOL_TRC_LOG_SQRT) || |
|
|
|
color_trc >= AVCOL_TRC_BT2020_10) |
|
|
|
if (!av_color_transfer_name(color_trc)) |
|
|
|
color_trc = AVCOL_TRC_UNSPECIFIED; |
|
|
|
if (color_matrix >= AVCOL_SPC_BT2020_NCL) |
|
|
|
if (!av_color_space_name(color_matrix)) |
|
|
|
color_matrix = AVCOL_SPC_UNSPECIFIED; |
|
|
|
|
|
|
|
st->codecpar->color_primaries = color_primaries; |
|
|
|
st->codecpar->color_trc = color_trc; |
|
|
|
st->codecpar->color_space = color_matrix; |
|
|
|
@@ -1102,17 +1101,22 @@ static int mov_read_colr(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
case 1: st->codecpar->color_primaries = AVCOL_PRI_BT709; break; |
|
|
|
case 5: st->codecpar->color_primaries = AVCOL_PRI_SMPTE170M; break; |
|
|
|
case 6: st->codecpar->color_primaries = AVCOL_PRI_SMPTE240M; break; |
|
|
|
case 9: st->codecpar->color_primaries = AVCOL_PRI_BT2020; break; |
|
|
|
case 10: st->codecpar->color_primaries = AVCOL_PRI_SMPTE431; break; |
|
|
|
case 11: st->codecpar->color_primaries = AVCOL_PRI_SMPTE432; break; |
|
|
|
} |
|
|
|
/* color transfer, Table 4-5 */ |
|
|
|
switch (color_trc) { |
|
|
|
case 1: st->codecpar->color_trc = AVCOL_TRC_BT709; break; |
|
|
|
case 7: st->codecpar->color_trc = AVCOL_TRC_SMPTE240M; break; |
|
|
|
case 17: st->codecpar->color_trc = AVCOL_TRC_SMPTE428; break; |
|
|
|
} |
|
|
|
/* color matrix, Table 4-6 */ |
|
|
|
switch (color_matrix) { |
|
|
|
case 1: st->codecpar->color_space = AVCOL_SPC_BT709; break; |
|
|
|
case 6: st->codecpar->color_space = AVCOL_SPC_BT470BG; break; |
|
|
|
case 7: st->codecpar->color_space = AVCOL_SPC_SMPTE240M; break; |
|
|
|
case 9: st->codecpar->color_space = AVCOL_SPC_BT2020_NCL; break; |
|
|
|
} |
|
|
|
} |
|
|
|
av_log(c->fc, AV_LOG_TRACE, "\n"); |
|
|
|
|