mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
mov: Update colr values
For 'nclx', the latest edition of the standard switched from JPEG XR to 23001-8, which matches the current order of our entries. Bounds are preserved as a sanity check. For 'nclc', qtff edition 2016-09-13 introduced a few new entries. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
This commit is contained in:
parent
0d9b9bd37f
commit
4b07ebf1eb
@ -36,6 +36,7 @@
|
|||||||
#include "libavutil/avstring.h"
|
#include "libavutil/avstring.h"
|
||||||
#include "libavutil/dict.h"
|
#include "libavutil/dict.h"
|
||||||
#include "libavutil/opt.h"
|
#include "libavutil/opt.h"
|
||||||
|
#include "libavutil/pixdesc.h"
|
||||||
#include "libavcodec/ac3tab.h"
|
#include "libavcodec/ac3tab.h"
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
#include "internal.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;
|
st->codecpar->color_range = AVCOL_RANGE_JPEG;
|
||||||
else
|
else
|
||||||
st->codecpar->color_range = AVCOL_RANGE_MPEG;
|
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 (!av_color_primaries_name(color_primaries))
|
||||||
if (color_primaries >= AVCOL_PRI_FILM)
|
|
||||||
color_primaries = AVCOL_PRI_UNSPECIFIED;
|
color_primaries = AVCOL_PRI_UNSPECIFIED;
|
||||||
if ((color_trc >= AVCOL_TRC_LINEAR &&
|
if (!av_color_transfer_name(color_trc))
|
||||||
color_trc <= AVCOL_TRC_LOG_SQRT) ||
|
|
||||||
color_trc >= AVCOL_TRC_BT2020_10)
|
|
||||||
color_trc = AVCOL_TRC_UNSPECIFIED;
|
color_trc = AVCOL_TRC_UNSPECIFIED;
|
||||||
if (color_matrix >= AVCOL_SPC_BT2020_NCL)
|
if (!av_color_space_name(color_matrix))
|
||||||
color_matrix = AVCOL_SPC_UNSPECIFIED;
|
color_matrix = AVCOL_SPC_UNSPECIFIED;
|
||||||
|
|
||||||
st->codecpar->color_primaries = color_primaries;
|
st->codecpar->color_primaries = color_primaries;
|
||||||
st->codecpar->color_trc = color_trc;
|
st->codecpar->color_trc = color_trc;
|
||||||
st->codecpar->color_space = color_matrix;
|
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 1: st->codecpar->color_primaries = AVCOL_PRI_BT709; break;
|
||||||
case 5: st->codecpar->color_primaries = AVCOL_PRI_SMPTE170M; break;
|
case 5: st->codecpar->color_primaries = AVCOL_PRI_SMPTE170M; break;
|
||||||
case 6: st->codecpar->color_primaries = AVCOL_PRI_SMPTE240M; 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 */
|
/* color transfer, Table 4-5 */
|
||||||
switch (color_trc) {
|
switch (color_trc) {
|
||||||
case 1: st->codecpar->color_trc = AVCOL_TRC_BT709; break;
|
case 1: st->codecpar->color_trc = AVCOL_TRC_BT709; break;
|
||||||
case 7: st->codecpar->color_trc = AVCOL_TRC_SMPTE240M; 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 */
|
/* color matrix, Table 4-6 */
|
||||||
switch (color_matrix) {
|
switch (color_matrix) {
|
||||||
case 1: st->codecpar->color_space = AVCOL_SPC_BT709; break;
|
case 1: st->codecpar->color_space = AVCOL_SPC_BT709; break;
|
||||||
case 6: st->codecpar->color_space = AVCOL_SPC_BT470BG; break;
|
case 6: st->codecpar->color_space = AVCOL_SPC_BT470BG; break;
|
||||||
case 7: st->codecpar->color_space = AVCOL_SPC_SMPTE240M; 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");
|
av_log(c->fc, AV_LOG_TRACE, "\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user