David Lee (digium) wrote:
Synchronizing the notifications with the format change may be tricky. If we’re not careful, we could end up in the situation where 1) the format changes but some bit of code gets the notification about the change too late or 2) we end up with extra locks/contention in the media path due to format change notifications.
I think we can actually do it using a control frame. The stuff that cares about the format would be in that path, and the control frame could just be in front of the frame with the new format. As it passes through stuff can change accordingly (change formats, smoother, etc).
Another option would be structuring ast_format so that comparisons are cheap. If it’s a refcounted immutable object, we might even be able to do it simply with a pointer comparison (or, at the very least, the compare function can be fast if comparing an ast_format with itself).
Agreed. I think regardless of the above reactive versus notification this has to be fast.
Of course, I say that without actually looking at the code. Maybe there are other reasons to switch from reactive to notifications, or my concerns about extra locks and late notifications are just FUD. Just something to think about.
By responding to your email I can confirm that I have thought about it at least briefly.
-- Joshua Colp Digium, Inc. | Senior Software Developer 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA Check us out at: www.digium.com & www.asterisk.org -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev