I'm trying to package my codec in an xdais compliant way. It is derived from IUNIVERSAL. I found the statement "Recall that each XDM algorithm has a create()
, control()
, process()
and delete()
function", but when I look for an example of create() in the fir_ti examples, I find no "create" function. There is a UNIVERSAL_create and it calls a VISA_create.
I would have thought that the app would expect to call create with my codec name as the prefix. (As in the "VIDDEC_create".) Would it be more "normal" to wrap UNIVERSAL_create with my codec's name as the prefix?
Also, the code for UNIVERSAL_create looks like there is a concern about a race condition,.
Isn't there some kind of critical section wrapper to put around this to prevent the race condition?
Finally (???), I notice that FIR_TI_process has statements of the form "XDM_SETACCESSMODE_READ(inBufs->descs[0].accessMask); I'm not sure what that does or if I need it. Can someone explain how that interacts with the engine?