Post

Replies

Boosts

Views

Activity

Request for Videotoolbox Encoder to Support External Control for Frame Dropping
We are currently working on a real-time, low-latency solution for video conferencing scenarios and have encountered some issues with the current implementation of the encoder. We need a feature enhancement for the Videotoolbox encoder. In our use case, we need to control the encoding quality, which requires setting the maximum encoding QP. However, the kVTCompressionPropertyKey_MaxAllowedFrameQP only takes effect in the kVTVideoEncoderSpecification_EnableLowLatencyRateControl mode. In this mode, when the maximum QP is limited and the bitrate is insufficient, the encoder will drop frames. Our desired scenario is for the encoder to not actively drop frames when the maximum QP is limited. Instead, when the bitrate is insufficient, the encoder should be able to encode the frame with the maximum QP, allowing the frame size to be larger. This would provide a more seamless experience for users in video conferencing situations, where maintaining consistent video quality is crucial. It is worth noting that Android has already implemented this feature in Android 12, which demonstrates the value and feasibility of this enhancement. We kindly request that you consider adding support for external control of frame dropping in the Videotoolbox encoder to accommodate our needs. This enhancement would greatly benefit our project and others that require real-time, low-latency video encoding solutions.
0
0
582
Nov ’23
CVDisplayLink Bug on macOS 12.3+ M1 Macbook
Recently a bug related to CVDisplayLink happens to some users of our APP. In our code, we simply create a display link using CVDisplayLinkCreateWithActiveCGDisplays and do the render things in the callback. The log shows that, in some cases, the interval between two display link callbacks last for many hours, in other cases, the display link callback stop being called from the beginning or after a certain time. We did not change that code for a long time and that bug only happens on macOS 12.3.0+ and M1 Macbook. So we want to know if this is a system bug, or there are some changes about CVDisplayLink in recent macOS versions that we need to do some compatibility changes. (Since 12.1, there will be some logs about CVDisplayLink in the xcode output.) CVCGDisplayLink::setCurrentDisplay: 69734662 CVDisplayLinkCreateWithCGDisplays count: 2 [displayID[0]: 0x4281106] [CVCGDisplayLink: 0x7fde5200ce20] CVDisplayLinkStart CVDisplayLink::start CVXTime::reset CVXTime::reset CVXTime::reset
0
0
580
May ’22