From 4b6194e15e318ef6db70029866a5a8eca79e93bd Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 15 Jan 2022 12:17:31 -0600 Subject: [PATCH] Add chroma location buffer attachment --- app/streaming/video/ffmpeg-renderers/vt.mm | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/app/streaming/video/ffmpeg-renderers/vt.mm b/app/streaming/video/ffmpeg-renderers/vt.mm index f5b05c14..25ac131f 100644 --- a/app/streaming/video/ffmpeg-renderers/vt.mm +++ b/app/streaming/video/ffmpeg-renderers/vt.mm @@ -186,6 +186,47 @@ public: kCVImageBufferChromaSubsampling_420, kCVAttachmentMode_ShouldPropagate); + switch (frame->chroma_location) { + case AVCHROMA_LOC_LEFT: + CVBufferSetAttachment(pixBuf, + kCVImageBufferChromaLocationTopFieldKey, + kCVImageBufferChromaLocation_Left, + kCVAttachmentMode_ShouldPropagate); + break; + case AVCHROMA_LOC_CENTER: + CVBufferSetAttachment(pixBuf, + kCVImageBufferChromaLocationTopFieldKey, + kCVImageBufferChromaLocation_Center, + kCVAttachmentMode_ShouldPropagate); + break; + case AVCHROMA_LOC_TOPLEFT: + CVBufferSetAttachment(pixBuf, + kCVImageBufferChromaLocationTopFieldKey, + kCVImageBufferChromaLocation_TopLeft, + kCVAttachmentMode_ShouldPropagate); + break; + case AVCHROMA_LOC_TOP: + CVBufferSetAttachment(pixBuf, + kCVImageBufferChromaLocationTopFieldKey, + kCVImageBufferChromaLocation_Top, + kCVAttachmentMode_ShouldPropagate); + break; + case AVCHROMA_LOC_BOTTOMLEFT: + CVBufferSetAttachment(pixBuf, + kCVImageBufferChromaLocationTopFieldKey, + kCVImageBufferChromaLocation_BottomLeft, + kCVAttachmentMode_ShouldPropagate); + break; + case AVCHROMA_LOC_BOTTOM: + CVBufferSetAttachment(pixBuf, + kCVImageBufferChromaLocationTopFieldKey, + kCVImageBufferChromaLocation_Bottom, + kCVAttachmentMode_ShouldPropagate); + break; + default: + break; + } + switch (frame->color_primaries) { case AVCOL_PRI_BT709: CVBufferSetAttachment(pixBuf,