Hi guys,
in DeckLinkDevice+Playback.mm file there are 3 methods, that using the internal serial playbackQueue synchronously:
setPlaybackActiveVideoFormatDescription
setPlaybackActiveAudioFormatDescription
setPlaybackActiveKeyingMode
There is a possible problem of these calls: if you are calling any them on the main thread, and the execution is longer than a few milliseconds, this could deadlock the main thread. On the other hand, getting this calls async should not introduce any internal problems, since playbackQueue will maintain order anyway. However, this would need change of the methods, because they have a return value.
By the way, I see this issue in real life, although it is hardly reproducible - but could be happening when a device disconnects and reconnects during playback on my end.
Hi guys,
in DeckLinkDevice+Playback.mm file there are 3 methods, that using the internal serial
playbackQueuesynchronously:setPlaybackActiveVideoFormatDescriptionsetPlaybackActiveAudioFormatDescriptionsetPlaybackActiveKeyingModeThere is a possible problem of these calls: if you are calling any them on the main thread, and the execution is longer than a few milliseconds, this could deadlock the main thread. On the other hand, getting this calls async should not introduce any internal problems, since
playbackQueuewill maintain order anyway. However, this would need change of the methods, because they have a return value.By the way, I see this issue in real life, although it is hardly reproducible - but could be happening when a device disconnects and reconnects during playback on my end.