2009-07-31 5 views
1

Excuse für mein EnglischQuicktime - AVID, ITU-R 601 (16-235) Option

Ich brauche die .mov-Datei mit dem AVID Codec zu importieren. In AVID Composer Programm in den Importeinstellungen ist es möglich, Farbniveaus durch Installation der Optionen RGB (0-255) oder 601 (16-235) anzupassen.

Wie ist es möglich, in einem Code diese Option (601) einzustellen?

Ich versuchte, sie zu setzen, wenn die Sitzungseinstellung:

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

    long lheight; 
    CHECK_FAILED(m_pMt->get_Lines(&lheight)); 
    SInt32 height = lheight; 
    number = CFNumberCreate(NULL, kCFNumberSInt32Type, &height); 
    CFDictionaryAddValue(pixelBufferAttributes, kCVPixelBufferHeightKey, number); 
    CFRelease(number); 

    double gamma = 2.199997; 
    // Always seems to equal 2.5 for RGB colorspaces and 2.199997 for YUV 
    number = CFNumberCreate(NULL, kCFNumberDoubleType, &gamma); 
    CFDictionaryAddValue(pixelBufferAttributes, kCVImageBufferGammaLevelKey, number); 
    CFRelease(number); 

    CFDictionaryAddValue(pixelBufferAttributes, kCVImageBufferYCbCrMatrixKey, kCVImageBufferYCbCrMatrix_ITU_R_601_4); 

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

Aber es nicht funktioniert.

+0

Wenn das Problem, das Sie lösen müssen, ist ‚601 (16-235)‘ Daten aus der Dekompression Sitzung erhalten könnten Sie in der Lage sein, um dies zu tun, indem YUV-Daten von der Dekompressionssitzung angefordert werden. Schauen Sie sich meine 'Edit' weiter unten an, wie man das macht ... – Bjoern

Antwort

1

Es tut uns leid, dass ich Ihnen sagen kann, aber ich fürchte, es gibt keine Möglichkeit, diese Einstellungen programmatisch zu konfigurieren (zumindest habe ich keine Möglichkeit gefunden), da sie AVID-Codec-spezifisch sind.

Sie könnten in der Lage, die gleiche Importeinstellungen Dialog mit AVID Media Composer verwendet aufzurufen, obwohl die Funktion

MovieImportDoUserDialog() 

API.

bearbeiten:

Dies könnte zu offensichtlich sein, aber haben Sie versuchen einfach YUV-Daten aus der Dekompression Sitzung zu beantragen, indem das Pixelformat Typschlüssel in Ihrer Quellenrahmen Beschreibung Wörterbuch zu einem YUV-Pixel-Format einstellen?

Sie können dies tun, indem Sie den folgenden Block, um Ihren Code hinzufügen:

// 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); 
+0

Könnten Sie erklären, wie es geht? – Vitaliy

Verwandte Themen