I want to create a new AMT clip with CreateAmtInterplayClip, (for Edit-while-capture mode). After the clip is created and my app starts writing frames of DNxHD data, via WriteAmtTrackSample(), is this write call synchronous or asynchronous? If it is synchronous, how long does it take to return?
The call is synchronous. It comes back quickly, like within 10 milliseconds.
I just ran a test, creating a new clip in Interplay and the media is being written out to ISIS. I logged the time it takes for each write and I am getting some big latencies every 60 frames. Is this due to updating EWC? Or is this something else. This is causing my app problems seeing that I have to write out within every 33 msecs.
Please see below.
11/29/2016-20:11:0.980 pid=3020 tid=8380 Writing sample 0 took 1308 msecs11/29/2016-20:11:0.992 pid=3020 tid=8380 Writing sample 1 took 10 msecs11/29/2016-20:11:1.6 pid=3020 tid=8380 Writing sample 2 took 11 msecs11/29/2016-20:11:1.7 pid=3020 tid=8380 Writing sample 3 took 0 msecs11/29/2016-20:11:1.20 pid=3020 tid=8380 Writing sample 4 took 11 msecs
11/29/2016-20:11:1.617 pid=3020 tid=8380 Writing sample 58 took 10 msecs11/29/2016-20:11:2.381 pid=3020 tid=8380 Writing sample 59 took 742 msecs11/29/2016-20:11:2.383 pid=3020 tid=8380 Writing sample 60 took 0 msecs11/29/2016-20:11:2.395 pid=3020 tid=8380 Writing sample 61 took 10 msecs
11/29/2016-20:11:3.619 pid=3020 tid=8380 Writing sample 118 took 10 msecs11/29/2016-20:11:4.392 pid=3020 tid=8380 Writing sample 119 took 751 msecs11/29/2016-20:11:4.405 pid=3020 tid=8380 Writing sample 120 took 10 msecs11/29/2016-20:11:4.409 pid=3020 tid=8380 Writing sample 121 took 0 msecs
I checked with the dev team. It seems that it is doing continuous check-ins for Edit While Capture. They are checking to see if there is a setting for this (either to disable EWC or change the frequency of the check-in).
In the meantime, a workaround would be to break the operation into two steps (1) Create the clip on ISIS (2) Check it into Interplay.
Also, if EWC is needed, but at a lower frequency, you could do the occasional check-in using a seperate thread.
I am using CreateAmtInterplayClip(), and the last parameter update_aaf_after_x_frames_written default is 60 frames. I changed it to every minute, but when we hit that update time, it causes a latency writing a frame on a time critical write.
I have to support EWC, so is there a way to make AMT update to Interplay asynchronous and not during a frame write operation?
© Copyright 2011 Avid Technology, Inc.
Site Map |
Find a Reseller