CRI ADX  Last Updated: 2025-05-07 13:34 p
Is there anything to be aware of when using ADX and Sofdec2 together?

Cautions on Library Initialization

(1) Error Callbacks

There can only be one error callback function for all libraries.
If criErr_SetCallback is called multiple times, any callback function registered will be overwritten by the one registered after it.
(If this occurs, the callback function(s) registered earlier will not be called even if an error occurs.)

(2) Initialization Order

The libraries must be initialized in the following order.

  • (1) CRI File System library initialization (criFs_InitializeLibrary)
  • (2) CRI Atom library initialization (criAtomEx_Initialize_*)
  • (3) CRI Mana library initialization (criMana_Initialize_*)
Cleanup processing must be performed in the opposite order of initialization.

  • (1) CRI Mana library cleanup processing (criMana_Finalize_*)
  • (2) CRI Atom library cleanup processing (criAtomEx_Finalize_*)
  • (3) CRI File System library cleanup processing (criFs_FinalizeLibrary)
(Remarks)
You can omit initialization/cleanup of the CRI File System library when using the CRI Atom library.
If initialization of the CRI File System library is omitted, initialization of the CRI File System library is performed in the CRI Atom library.

(3) Thread Framework

You must specify the same thread framework for both the CRI Atom and CRI File System libraries.
When each library is initialized, the same thread framework type (thread model) must be set in the following structure member variables.
(Remarks)
You can set a different thread model from the CRI Atom and CRI File System libraries for the CRI Mana library thread framework.
  • The thread_model member of the LibConfig structure

Resources Shared Between Libraries

(1) Threads

The CRI Atom library server processing thread and CRI File System library server processing thread are the same thread.
If you change parameters such as thread priority or affinity mask in the CRI Atom library, the server processing thread parameters in the CRI File System library are also changed.

(4) Server Processing

The CRI Atom library server processing ( criAtomEx_ExecuteMain ) and CRI File System library server processing (criFs_ExecuteMain) functions hold the same entities.
Therefore, execute only one of these server processing functions when using the CRI Atom and CRI File System libraries together.
(Executing both functions will perform server processing twice.)
(Caution)
When using with the CRI Mana library, you must also execute the CRI Mana library's server processing (::criMana_ExecuteMain function) in addition to the CRI Atom (or CRI File System) library's server processing.

Streaming Playback Cautions

(1) D-BAS

When performing simultaneous sound and video streaming playback, you must specify the number of streams and maximum bitrate to the D-BAS as the sum for both of these streams.
(Remarks)
When loading data other than sound/movie streaming data, there is no need to add any parameters to the D-BAS when it is created.
Background loading of data through a loader or other means is performed without buffering at any free time during streaming, so there is no need to consider these parameters when creating the D-BAS.

(2) Priorities

Sound and movie streaming is executed at a higher priority than the highest priority that can be set for a loader (CRIFSLOADER_PRIORITY_HIGHEST).
Therefore, streaming playback of a sound and/or movie will not be interrupted even if a large amount of data is attempted to be loaded by a loader.
(Caution)
Loading data occurs frequently while streaming data is being loaded. Therefore, loading data during streaming is slower than when not streaming.