मैं का उपयोग CVPixelBufferRef
में डेटा पढ़ने के लिए कर रहा हूं। मैं AVAssetWriter
में इनपुट के रूप में CVPixelBufferRef
का उपयोग करता हूं। दुर्भाग्यवश पिक्सेल प्रारूपों का मिलान नहीं किया जा रहा है।पिक्सेल प्रारूप, सीवीपीक्सेलबफररफ और ग्ल्रैड पिक्सल
मुझे लगता है कि glReadPixels
RGBA प्रारूप जबकि AVAssetWriter
ARGB प्रारूप में पिक्सेल डेटा चाहता है में पिक्सेल डेटा लौटा रहा है। आरजीबीए से ARGB को परिवर्तित करने का सबसे अच्छा तरीका क्या है?
यहाँ क्या मैं अब तक की कोशिश की है:
ARGB = की तर्ज पर- सा हेरफेर (RGBA >> 8) | (RGBA < < 24)
- एक मध्यवर्ती कदम
सा हेरफेर काम नहीं किया क्योंकि CVPixelBufferRef सबस्क्रिप्ट समर्थन करने के लिए प्रतीत नहीं होता है के रूप में एक CGImageRef
का उपयोग कर। CGImageRef
इंटरमीडिएट चरण काम करता है ... लेकिन मैं कोड की 50 अतिरिक्त लाइनों को नहीं रखना चाहूंगा जो संभावित रूप से प्रदर्शन हिट हो सकते हैं।
आप अपने सीवीपीक्सेलबफररफ को कैसे प्राप्त कर रहे हैं?क्या आप सीवी पिक्सेलबफर क्रिएट को कॉल कर रहे हैं? यदि हां, तो आप pixelFormatType पैरामीटर के रूप में क्या गुजर रहे हैं? आप glReadPixels पर किस प्रारूप में जा रहे हैं? –
मैं 'केवीवी पिक्सेलफॉर्मैट टाइप प्रकार 3232 जीबी 'को' सीवी पिक्सेलबफर क्रिएट 'में भेज रहा हूं। मैं 'GL_RBGA' को 'glReadPixels' में पास करता हूं। मैंने 'सीवी पिक्सेलबफर क्रेट' को आरबीजीए प्रारूप पास करने का प्रयास किया लेकिन यह काम नहीं किया (या तो खराब रंग या ऐप दुर्घटनाग्रस्त)। – MrDatabase