Add chroma location buffer attachment

This commit is contained in:
Cameron Gutman 2022-01-15 12:17:31 -06:00
parent e1b3f90f8b
commit 4b6194e15e

View File

@ -186,6 +186,47 @@ public:
kCVImageBufferChromaSubsampling_420, kCVImageBufferChromaSubsampling_420,
kCVAttachmentMode_ShouldPropagate); 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) { switch (frame->color_primaries) {
case AVCOL_PRI_BT709: case AVCOL_PRI_BT709:
CVBufferSetAttachment(pixBuf, CVBufferSetAttachment(pixBuf,