CRI Sofdec2  Last Updated: 2022-11-21 16:25 p

Data Structures

struct  CriManaProcessorConfig_PC
 Decoding processor config structure. More...
 
struct  CriManaLibConfig_PC
 Mana library initialization parameters. More...
 
struct  CriManaMediaFoundationH264DecoderConfig_PC
 Config structure for H.264 decoder. More...
 

Macros

#define criMana_SetDefaultProcessorConfig_PC(p_config)
 Set default values for the decoding processor config structure. More...
 
#define criMana_SetDefaultLibConfig_PC(p_config)
 Set default values for the library initialization config structure. More...
 
#define criMana_SetDefaultMediaFoundationH264DecoderConfig_PC(p_config)
 MediaFoundation Set default value for decoder structure for H.264 movie. More...
 

Functions

CriSint32 criMana_CalculateLibWorkSize_PC (const CriManaLibConfig_PC *config)
 Calculate library initialization work area size (with PC-specific features) More...
 
void criMana_Initialize_PC (const CriManaLibConfig_PC *config, void *work, CriSint32 work_size)
 Library initialization function (with PC specific functions) More...
 
void criMana_Finalize_PC (void)
 Finalize library (with PC specific functions) More...
 
void criMana_SetDecodeThreadPriority_PC (int prio)
 Change decoding master thread priority. More...
 
void criMana_SetupMediaFoundationH264Decoder_PC (const CriManaMediaFoundationH264DecoderConfig_PC *config, void *work, CriSint32 work_size)
 Setup function of H.264 decoder initialization parameter. More...
 

Detailed Description

Macro Definition Documentation

◆ criMana_SetDefaultProcessorConfig_PC

#define criMana_SetDefaultProcessorConfig_PC (   p_config)
Value:
{\
(p_config)->num_threads = 0; \
(p_config)->affinity_masks = NULL; \
(p_config)->priority = -1; \
}

Set default values for the decoding processor config structure.

Parameters
[out]p_config
Description:
Sets the default values for the processor config structure ( CriManaProcessorConfig_PC ) that is set to the criMana_Initialize_PC function.
See also
CriManaProcessorConfig_PC

◆ criMana_SetDefaultLibConfig_PC

#define criMana_SetDefaultLibConfig_PC (   p_config)
Value:
{\
criMana_SetDefaultLibConfig(&(p_config)->mana); \
criMana_SetDefaultProcessorConfig_PC(&(p_config)->processor); \
}

Set default values for the library initialization config structure.

Parameters
[out]p_configPointer to the initialization config structure
Description:
Sets the default values for the config structure ( CriManaLibConfig_PC ) that will be set to the criMana_Initialize_PC function.
See also
CriManaLibConfig_PC

◆ criMana_SetDefaultMediaFoundationH264DecoderConfig_PC

#define criMana_SetDefaultMediaFoundationH264DecoderConfig_PC (   p_config)

MediaFoundation Set default value for decoder structure for H.264 movie.

Parameters
[in]p_configMediaFoundation Pointer to decoder structure for H.264 movie
Description:
Set the default value in the decoder config structure ( CriManaMediaFoundationH264DecoderConfig_PC ) set for the criMana_SetupMediaFoundationH264Decoder_PC function.
See also
CriManaMediaFoundationH264DecoderConfig_PC

Function Documentation

◆ criMana_CalculateLibWorkSize_PC()

CriSint32 criMana_CalculateLibWorkSize_PC ( const CriManaLibConfig_PC config)

Calculate library initialization work area size (with PC-specific features)

Parameters
[in]configInitialization config structure
Returns
CriSint32 Library work area size
Call conditions:
This is thread safe.
Description:
Gets the work area size necessary for using the Mana library with PC-specific features enabled.
The work area size that the library needs changes depending on the nature of the library's initialization config structure.
The argument config information is only referenced in the function. The config area can be released without problem after the function is executed.

◆ criMana_Initialize_PC()

void criMana_Initialize_PC ( const CriManaLibConfig_PC config,
void *  work,
CriSint32  work_size 
)

Library initialization function (with PC specific functions)

Parameters
[in]configInitialization config structure with PC specific parameters
[in]workAddress of work area allocated on the app side (aligned internally)
[in]work_sizeWork area size (=criMana_CalculateLibWorkSize return value)
Call conditions::
Call after CriAtomEx library initialization and before the criManaPlayer_Create function.

This is not thread safe.
Description:
Initializes the Mana library.
Execute this function instead of the criMana_Initialize function if you want PC specific multicore decoding control. Call the criMana_Initialize function after multicore setting in accordance with the passed config.
When initializing the library, you will need to allocate the memory area (work area) so that the library can use it internally.

When specifying NULL for work and zero in work_size, it will use the memory allocation function registered by the criMana_SetUserAllocator function and allocate memory internally.
The argument config information will only be referenced in the function.
It cannot be referenced after exiting the function, so releasing the config area will not cause problems after the function has been executed.
Attention
Always execute the appropriate criMana_Finalize_PC function after executing this function.
Also, do not re-execute this function until the criMana_Finalize_PC function has been executed.
See also
criMana_Finalize_PC

◆ criMana_Finalize_PC()

void criMana_Finalize_PC ( void  )

Finalize library (with PC specific functions)

Call conditions:
When all handles are in STOP or PLAYEND status
Call this function before the AtomEx library finalization function.

This is not thread safe.
Description:
Finalizes the Mana library.
See also
criMana_Initialize_PC

◆ criMana_SetDecodeThreadPriority_PC()

void criMana_SetDecodeThreadPriority_PC ( int  prio)

Change decoding master thread priority.

Parameters
[in]prioThread priority
Call conditions:
Execute function after initializing the Mana library with a multithread model.
Description:
Changes the priority of decoding threads.
The decoding thread priority is set to THREAD_PRIORITY_BELOW_NORMAL in its default state (when this function is not executed).
Attention
This function will only demonstrate its effects when the thread model during library initialization is set to a multithread model ( CRIMANA_THREAD_MODEL_MULTI ).
Nothing will happen when this function is called when the library is initialized by a single thread model or before library initialization.
See also
criMana_Initialize, criMana_Initialize_PC

◆ criMana_SetupMediaFoundationH264Decoder_PC()

void criMana_SetupMediaFoundationH264Decoder_PC ( const CriManaMediaFoundationH264DecoderConfig_PC config,
void *  work,
CriSint32  work_size 
)

Setup function of H.264 decoder initialization parameter.

Parameters
[in]configConfig structure for H.264 decoder initialization
[in]workThe address of the work area secured by the application side
[in]work_sizeWork size
Call conditions:
It is NOT thread-safe.
Please call before the criMana_Initialize_PC function.
Termination processing for this function is unnecessary.
When using this function, a link to the following library file is necessary.
  • Mfplat.lib
  • mfuuid.lib Currently, the work area of the argument and the work size are not used inside the function. Please specify NULL, 0 respectively.
Description:
Set initialization parameters of H.264 decoding library for H.264 movie playback.

Initialization of the actual H.264 decoder library is at the time of calling the criMana_Initialize_PC function.
The information of the argument config is only referenced within functions. Freeing the config area after executing the function is fine.
If you specify NULL in config, set the default value of the configuration structure ( CriManaMediaFoundationH264DecoderConfig_PC ) for the H.264 decoder.
See also
CriManaMediaFoundationH264DecoderConfig_PC, criMana_Initialize_PC