VideoToolbox

RSS for tag

Work directly with hardware-accelerated video encoding and decoding capabilities using VideoToolbox.

Posts under VideoToolbox tag

122 Posts

Post

Replies

Boosts

Views

Activity

VideoToolbox hardware encoder frame delay
The VTCompressionOutputCallback is being called only after 2 or more frames have been passed to the encoder. The last sent frame is stored in the encoder buffer and gets emitted only after the next frame comes in. This behavior causes the 1 frame delay on the decoder side and thus there is no real-time streaming. Anyone knows how to reduce the 1 frame delay?
0
0
613
Jul ’21
low-latency video encoding creation failed, error code 12902
VTCompressionSessionCreate returned 12902 if kVTVideoEncoderSpecification_EnableLowLatencyRateControl was picked. Code: CFMutableDictionaryRef encoderSpecification = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, NULL, NULL);         CFDictionarySetValue(encoderSpecification, kVTVideoEncoderSpecification_EnableLowLatencyRateControl, kCFBooleanTrue);     OSStatus result = VTCompressionSessionCreate(kCFAllocatorDefault, 640, 360, kCMVideoCodecType_H264, encoderSpecification, nullptr, nullptr, cb, outputCallbackRefCon, &m_session);     if(result != noErr){         return result;     }
3
0
1.2k
Jul ’21
VideoToolbox hardware encoder frame delay
The VTCompressionOutputCallback is being called only after 2 or more frames have been passed to the encoder. The last sent frame is stored in the encoder buffer and gets emitted only after the next frame comes in. This behavior causes the 1 frame delay on the decoder side and thus there is no real-time streaming. Anyone knows how to reduce the 1 frame delay?
Replies
0
Boosts
0
Views
613
Activity
Jul ’21
low-latency video encoding creation failed, error code 12902
VTCompressionSessionCreate returned 12902 if kVTVideoEncoderSpecification_EnableLowLatencyRateControl was picked. Code: CFMutableDictionaryRef encoderSpecification = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, NULL, NULL);         CFDictionarySetValue(encoderSpecification, kVTVideoEncoderSpecification_EnableLowLatencyRateControl, kCFBooleanTrue);     OSStatus result = VTCompressionSessionCreate(kCFAllocatorDefault, 640, 360, kCMVideoCodecType_H264, encoderSpecification, nullptr, nullptr, cb, outputCallbackRefCon, &m_session);     if(result != noErr){         return result;     }
Replies
3
Boosts
0
Views
1.2k
Activity
Jul ’21