Signed-off-by: Paul B Mahol <one...@gmail.com> --- libavcodec/dpxenc.c | 36 ++++++++++++++++++++++++++++++++++-- tests/ref/lavf/dpx | 2 +- 2 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/libavcodec/dpxenc.c b/libavcodec/dpxenc.c index a5960334d5..56840a8d33 100644 --- a/libavcodec/dpxenc.c +++ b/libavcodec/dpxenc.c @@ -173,6 +173,38 @@ static void encode_gbrp12(AVCodecContext *avctx, const AVFrame *pic, uint16_t *d } } +static int get_dpx_pri(int color_pri) +{ + switch (color_pri) { + case AVCOL_PRI_BT709: + return 6; + case AVCOL_PRI_SMPTE240M: + case AVCOL_PRI_SMPTE170M: + return 9; + case AVCOL_PRI_BT470BG: + return 10; + default: + return 0; + } +} + +static int get_dpx_trc(int color_trc) +{ + switch (color_trc) { + case AVCOL_TRC_LINEAR: + return 2; + case AVCOL_TRC_BT709: + return 6; + case AVCOL_TRC_SMPTE240M: + case AVCOL_TRC_SMPTE170M: + return 9; + case AVCOL_TRC_GAMMA22: + return 10; + default: + return 0; + } +} + static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet) { @@ -218,8 +250,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, write32(buf + 772, avctx->width); write32(buf + 776, avctx->height); buf[800] = s->descriptor; - buf[801] = 2; /* linear transfer */ - buf[802] = 2; /* linear colorimetric */ + buf[801] = get_dpx_trc(avctx->color_trc); + buf[802] = get_dpx_pri(avctx->color_primaries); buf[803] = s->bits_per_component; write16(buf + 804, (s->bits_per_component == 10 || s->bits_per_component == 12) ? 1 : 0); /* packing method */ diff --git a/tests/ref/lavf/dpx b/tests/ref/lavf/dpx index 68fe25afcd..39e513430a 100644 --- a/tests/ref/lavf/dpx +++ b/tests/ref/lavf/dpx @@ -1,3 +1,3 @@ -4c8880d5835ffb5fe37c1ed8c8d404de *tests/data/images/dpx/02.dpx +233e219cbfa61e0b77f8e4fad05b2404 *tests/data/images/dpx/02.dpx tests/data/images/dpx/%02d.dpx CRC=0x6da01946 305792 tests/data/images/dpx/02.dpx -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".