gpt4 book ai didi

c++ - QuickTime - AVID、ITU-R 601 (16-235) 选项

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:41 24 4
gpt4 key购买 nike

对不起我的英语

我需要使用 AVID 编解码器导入 .mov 文件。在 AVID Composer 程序的导入设置中,可以通过安装选项 RGB (0-255) 或 601 (16-235) 来自定义颜色级别。

如何在代码中设置此选项 (601)?

我在设置session的时候尝试设置她:



 long lwidth;
CHECK_FAILED( m_pMt->get_Pixels(&lwidth) );
SInt32 宽度 = lwidth;
number = CFNumberCreate( NULL, kCFNumberSInt32Type, &width );
CFDictionaryAddValue(pixelBufferAttributes, kCVPixelBufferWidthKey, number);
CFRelease( 数字 );

长 lheight;
CHECK_FAILED( m_pMt->get_Lines(&lheight) );
SInt32 高度 = lheight;
number = CFNumberCreate( NULL, kCFNumberSInt32Type, &height );
CFDictionaryAddValue(pixelBufferAttributes, kCVPixelBufferHeightKey, number);
CFRelease( 数字 );

双 Gamma = 2.199997;
//对于 RGB 色彩空间似乎总是等于 2.5,对于 YUV 似乎总是等于 2.199997
number = CFNumberCreate( NULL, kCFNumberDoubleType, &gamma );
CFDictionaryAddValue(pixelBufferAttributes, kCVImageBufferGammaLevelKey, number);
CFRelease( 数字 );

CFDictionaryAddValue(pixelBufferAttributes,kCVImageBufferYCbCrMatrixKey,kCVImageBufferYCbCrMatrix_ITU_R_601_4);

CHECK_OSSTATUS( ICMDecompressionSessionCreate(NULL, imageDesc, NULL, pixelBufferAttributes, &trackingCallbackRecord, &m_decompressionSession) );

但是没有用。

最佳答案

很抱歉告诉你,但恐怕无法以编程方式配置这些设置(至少我找不到办法),因为它们是特定于 AVID 编解码器的。

不过,您可以使用

MovieImportDoUserDialog()

API 函数。

编辑:

这可能太明显了,但是您是否尝试通过将源帧描述字典中的像素格式类型键设置为 YUV 像素格式来简单地从解压缩 session 中请求 YUV 数据?

您可以通过在您的代码中添加以下代码块来做到这一点:

// request YUV 8 Bit 4:2:2 output from the decompression session
SInt32 pixel_format = k2vuyPixelFormat; // this should be '601 (16-235)' by definition
number = CFNumberCreate( NULL, kCFNumberSInt32Type, & pixel_format );
CFDictionaryAddValue( pixelBufferAttributes, kCVPixelBufferPixelFormatTypeKey, number );
CFRelease( number );

关于c++ - QuickTime - AVID、ITU-R 601 (16-235) 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com