xine-lib: xine-lib-1.2.13/src/libw32dll/w32codec.c File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Typedefs | Functions | Variables
w32codec.c File Reference
`#include <stdlib.h>`
`#include <stdio.h>`
`#include <inttypes.h>`
`#include <string.h>`
`#include "wine/msacm.h"`
`#include "wine/driver.h"`
`#include "wine/avifmt.h"`
`#include "wine/vfw.h"`
`#include "wine/mmreg.h"`
`#include "wine/ldt_keeper.h"`
`#include "wine/win32.h"`
`#include "wine/wineacm.h"`
`#include "wine/loader.h"`
`#include "DirectShow/guids.h"`
`#include "DirectShow/DS_AudioDecoder.h"`
`#include "DirectShow/DS_VideoDecoder.h"`
`#include "dmo/DMO_AudioDecoder.h"`
`#include "dmo/DMO_VideoDecoder.h"`
`#include <xine/xine_internal.h>`
`#include <xine/video_out.h>`
`#include <xine/audio_out.h>`
`#include <xine/buffer.h>`
`#include <xine/xineutils.h>`
`#include "group_w32.h"`
`#include "common.c"`

## Data Structures
struct | w32v_decoder_s
struct | w32a_decoder_s

## Macros
#define | NOAVIFILE_HEADERS
#define | LOG_MODULE "w32codec"
#define | LOG_VERBOSE
#define | VIDEOBUFSIZE 128*1024
#define | DRIVER_STD 0
#define | DRIVER_DS 1
#define | DRIVER_DMO 2
#define | MAXSAMPLE 255
#define | CENTERSAMPLE 128
#define | SCALEBITS 16
#define | FIX(x) ( (int32_t) ( (x) * (1<<SCALEBITS) + 0.5 ) )
#define | ONE_HALF ( (int32_t) (1<< (SCALEBITS-1)) )
#define | CBCR_OFFSET (CENTERSAMPLE << SCALEBITS)
#define | R_Y_OFF 0 /* offset to R => Y section */
#define | G_Y_OFF (1*(MAXSAMPLE+1)) /* offset to G => Y section */
#define | B_Y_OFF (2*(MAXSAMPLE+1)) /* etc. */
#define | R_CB_OFF (3*(MAXSAMPLE+1))
#define | G_CB_OFF (4*(MAXSAMPLE+1))
#define | B_CB_OFF (5*(MAXSAMPLE+1))
#define | R_CR_OFF B_CB_OFF /* B=>Cb, R=>Cr are the same */
#define | G_CR_OFF (6*(MAXSAMPLE+1))
#define | B_CR_OFF (7*(MAXSAMPLE+1))
#define | TABLE_SIZE (8*(MAXSAMPLE+1))
#define | HAS_SLOW_MULT 1
#define | IMGFMT_YUY2 mmioFOURCC('Y','U','Y','2')
#define | IMGFMT_YV12 mmioFOURCC('Y','V','1','2')
#define | IMGFMT_32RGB mmioFOURCC( 32,'R','G','B')
#define | IMGFMT_24RGB mmioFOURCC( 24,'R','G','B')
#define | IMGFMT_16RGB mmioFOURCC( 16,'R','G','B')
#define | IMGFMT_15RGB mmioFOURCC( 15,'R','G','B')

## Typedefs
typedef struct w32v_decoder_s | w32v_decoder_t
typedef struct w32a_decoder_s | w32a_decoder_t

## Functions
static void | w32v_init_rgb_ycc (void)
static int | get_vids_codec_n_name (w32v_decoder_t *this, int buf_type)
static const char * | get_vids_codec_name (w32v_decoder_t *this, int buf_type, int n)
static void | w32v_init_codec (w32v_decoder_t *this, int buf_type)
static void | w32v_init_ds_dmo_codec (w32v_decoder_t *this, int buf_type)
static void | w32v_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
static void | w32v_flush (video_decoder_t *this_gen)
static void | w32v_reset (video_decoder_t *this_gen)
static void | w32v_discontinuity (video_decoder_t *this_gen)
static void | w32v_dispose (video_decoder_t *this_gen)
static const char * | get_auds_codec_name (w32a_decoder_t *this, int buf_type)
static void | w32a_reset (audio_decoder_t *this_gen)
static void | w32a_discontinuity (audio_decoder_t *this_gen)
static int | w32a_init_audio (w32a_decoder_t *this, uint8_t *buf, int bufsize, int buftype)
static void | w32a_ensure_buffer_size (w32a_decoder_t *this, int size)
static void | w32a_decode_audio (w32a_decoder_t *this, unsigned char *data, uint32_t size, int frame_end, int64_t pts)
static void | w32a_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
static void | w32a_dispose (audio_decoder_t *this_gen)
static video_decoder_t * | open_video_decoder_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream)
static void | init_routine (void)
void * | w32v_init_class (xine_t *xine, const void *data)
static audio_decoder_t * | open_audio_decoder_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream)
void * | w32a_init_class (xine_t *xine, const void *data)

## Variables
static GUID | CLSID_Voxware
static GUID | CLSID_Acelp
static GUID | wmv1_clsid
static GUID | wmv2_clsid
static GUID | wmv3_clsid
static GUID | wmvdmo_clsid
static GUID | dvsd_clsid
static GUID | msmpeg4_clsid
static GUID | mss1_clsid
static GUID | wma3_clsid
static GUID | wmav_clsid
static pthread_mutex_t | win32_codec_mutex
static pthread_once_t | once_control = PTHREAD_ONCE_INIT
static const char * | win32_codec_name
static int32_t * | rgb_ycc_tab

## Macro Definition Documentation

## ◆ B_CB_OFF

#define B_CB_OFF (5*(MAXSAMPLE+1))

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ B_CR_OFF

#define B_CR_OFF (7*(MAXSAMPLE+1))

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ B_Y_OFF

#define B_Y_OFF (2*(MAXSAMPLE+1)) /* etc. */

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ CBCR_OFFSET

#define CBCR_OFFSET (CENTERSAMPLE << SCALEBITS)

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ CENTERSAMPLE

#define CENTERSAMPLE 128

Referenced by init_yuv_conversion().

## ◆ DRIVER_DMO

#define DRIVER_DMO 2

Referenced by get_auds_codec_name(), get_vids_codec_name(), w32a_decode_audio(), w32a_dispose(), w32a_init_audio(), w32v_decode_data(), and w32v_dispose().

## ◆ DRIVER_DS

#define DRIVER_DS 1

Referenced by get_auds_codec_name(), get_vids_codec_name(), w32a_decode_audio(), w32a_dispose(), w32a_init_audio(), w32v_decode_data(), w32v_dispose(), w32v_init_ds_dmo_codec(), and w32v_reset().

## ◆ DRIVER_STD

#define DRIVER_STD 0

Referenced by get_auds_codec_name(), get_vids_codec_name(), w32a_decode_audio(), w32a_dispose(), w32a_init_audio(), w32v_decode_data(), w32v_dispose(), and w32v_reset().

## ◆ FIX

#define FIX | ( |  | x | ) | ( (int32_t) ( (x) * (1<<SCALEBITS) + 0.5 ) )

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ G_CB_OFF

#define G_CB_OFF (4*(MAXSAMPLE+1))

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ G_CR_OFF

#define G_CR_OFF (6*(MAXSAMPLE+1))

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ G_Y_OFF

#define G_Y_OFF (1*(MAXSAMPLE+1)) /* offset to G => Y section */

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ HAS_SLOW_MULT

#define HAS_SLOW_MULT 1

## ◆ IMGFMT_15RGB

#define IMGFMT_15RGB mmioFOURCC( 15,'R','G','B')

Referenced by w32v_init_codec(), and w32v_init_ds_dmo_codec().

## ◆ IMGFMT_16RGB

#define IMGFMT_16RGB mmioFOURCC( 16,'R','G','B')

## ◆ IMGFMT_24RGB

#define IMGFMT_24RGB mmioFOURCC( 24,'R','G','B')

## ◆ IMGFMT_32RGB

#define IMGFMT_32RGB mmioFOURCC( 32,'R','G','B')

## ◆ IMGFMT_YUY2

#define IMGFMT_YUY2 mmioFOURCC('Y','U','Y','2')

Referenced by query_fourccs(), vidix_config_playback(), w32v_decode_data(), w32v_init_codec(), and w32v_init_ds_dmo_codec().

## ◆ IMGFMT_YV12

#define IMGFMT_YV12 mmioFOURCC('Y','V','1','2')

Referenced by query_fourccs(), and vidix_config_playback().

## ◆ LOG_MODULE

#define LOG_MODULE "w32codec"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## ◆ MAXSAMPLE

#define MAXSAMPLE 255

Referenced by w32v_init_rgb_ycc().

## ◆ NOAVIFILE_HEADERS

#define NOAVIFILE_HEADERS

## ◆ ONE_HALF

#define ONE_HALF ( (int32_t) (1<< (SCALEBITS-1)) )

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ R_CB_OFF

#define R_CB_OFF (3*(MAXSAMPLE+1))

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ R_CR_OFF

#define R_CR_OFF B_CB_OFF /* B=>Cb, R=>Cr are the same */

Referenced by w32v_decode_data().

## ◆ R_Y_OFF

#define R_Y_OFF 0 /* offset to R => Y section */

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ SCALEBITS

#define SCALEBITS 16

Referenced by w32v_decode_data().

## ◆ TABLE_SIZE

#define TABLE_SIZE (8*(MAXSAMPLE+1))

Referenced by w32v_init_rgb_ycc().

## ◆ VIDEOBUFSIZE

#define VIDEOBUFSIZE 128*1024

Referenced by w32v_init_codec(), and w32v_init_ds_dmo_codec().

## Typedef Documentation

## ◆ w32a_decoder_t

typedef struct w32a_decoder_s w32a_decoder_t

## ◆ w32v_decoder_t

typedef struct w32v_decoder_s w32v_decoder_t

## Function Documentation

## ◆ get_auds_codec_name()

static const char * get_auds_codec_name | ( | w32a_decoder_t * | this,
|  | int | buf_type )
| static

References _x_meta_info_set_utf8(), BUF_AUDIO_ACELPNET, BUF_AUDIO_IMC, BUF_AUDIO_LH, BUF_AUDIO_MSADPCM, BUF_AUDIO_MSGSM, BUF_AUDIO_MSIMAADPCM, BUF_AUDIO_VIVOG723, BUF_AUDIO_VOXWARE, BUF_AUDIO_WMALL, BUF_AUDIO_WMAPRO, BUF_AUDIO_WMAV, BUF_AUDIO_WMAV1, BUF_AUDIO_WMAV2, buf_type, CLSID_Acelp, CLSID_Voxware, DRIVER_DMO, DRIVER_DS, DRIVER_STD, NULL, wma3_clsid, wmav_clsid, XINE_META_INFO_AUDIOCODEC, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by w32a_init_audio().

## ◆ get_vids_codec_n_name()

static int get_vids_codec_n_name | ( | w32v_decoder_t * | this,
|  | int | buf_type )
| static

References buf_type, BUF_VIDEO_ATIVCR2, BUF_VIDEO_CINEPAK, BUF_VIDEO_DV, BUF_VIDEO_I263, BUF_VIDEO_IV31, BUF_VIDEO_IV32, BUF_VIDEO_IV41, BUF_VIDEO_IV50, BUF_VIDEO_MSMPEG4_V1, BUF_VIDEO_MSMPEG4_V2, BUF_VIDEO_MSMPEG4_V3, BUF_VIDEO_MSS1, BUF_VIDEO_MSVC, BUF_VIDEO_TSCC, BUF_VIDEO_UCOD, BUF_VIDEO_VP31, BUF_VIDEO_VP4, BUF_VIDEO_VP5, BUF_VIDEO_VP6, BUF_VIDEO_WMV7, BUF_VIDEO_WMV8, and BUF_VIDEO_WMV9.

Referenced by w32v_decode_data().

## ◆ get_vids_codec_name()

static const char * get_vids_codec_name | ( | w32v_decoder_t * | this,
|  | int | buf_type,
|  | int | n )
| static

References _x_meta_info_set_utf8(), buf_type, BUF_VIDEO_ATIVCR2, BUF_VIDEO_CINEPAK, BUF_VIDEO_DV, BUF_VIDEO_I263, BUF_VIDEO_IV31, BUF_VIDEO_IV32, BUF_VIDEO_IV41, BUF_VIDEO_IV50, BUF_VIDEO_MSMPEG4_V1, BUF_VIDEO_MSMPEG4_V2, BUF_VIDEO_MSMPEG4_V3, BUF_VIDEO_MSS1, BUF_VIDEO_MSVC, BUF_VIDEO_TSCC, BUF_VIDEO_UCOD, BUF_VIDEO_VP31, BUF_VIDEO_VP4, BUF_VIDEO_VP5, BUF_VIDEO_VP6, BUF_VIDEO_WMV7, BUF_VIDEO_WMV8, BUF_VIDEO_WMV9, DRIVER_DMO, DRIVER_DS, DRIVER_STD, dvsd_clsid, msmpeg4_clsid, mss1_clsid, NULL, wmv1_clsid, wmv2_clsid, wmv3_clsid, wmvdmo_clsid, XINE_META_INFO_VIDEOCODEC, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by w32v_decode_data().

## ◆ init_routine()

static void init_routine | ( | void |  | ) |
| static

References NULL, w32v_init_rgb_ycc(), and win32_codec_mutex.

Referenced by w32a_init_class(), and w32v_init_class().

## ◆ open_audio_decoder_plugin()

static audio_decoder_t * open_audio_decoder_plugin | ( | audio_decoder_class_t * | class_gen,
|  | xine_stream_t * | stream )
| static

References audio_decoder_class_s::dispose, NULL, w32a_decode_data(), w32a_discontinuity(), w32a_dispose(), and w32a_reset().

Referenced by w32a_init_class().

## ◆ open_video_decoder_plugin()

static video_decoder_t * open_video_decoder_plugin | ( | video_decoder_class_t * | class_gen,
|  | xine_stream_t * | stream )
| static

References video_decoder_class_s::dispose, NULL, w32v_decode_data(), w32v_discontinuity(), w32v_dispose(), w32v_flush(), and w32v_reset().

Referenced by w32v_init_class().

## ◆ w32a_decode_audio()

static void w32a_decode_audio | ( | w32a_decoder_t * | this,
|  | unsigned char * | data,
|  | uint32_t | size,
|  | int | frame_end,
|  | int64_t | pts )
| static

References DMO_AudioDecoder_Convert(), DRIVER_DMO, DRIVER_DS, DRIVER_STD, DS_AudioDecoder_Convert(), lprintf, audio_buffer_s::mem, audio_buffer_s::mem_size, audio_buffer_s::num_frames, audio_buffer_s::stream, audio_buffer_s::vpts, w32a_ensure_buffer_size(), win32_codec_mutex, xine_fast_memcpy, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by w32a_decode_data().

## ◆ w32a_decode_data()

static void w32a_decode_data | ( | audio_decoder_t * | this_gen,
|  | buf_element_t * | buf )
| static

References _, _x_stream_info_set(), BUF_FLAG_FRAME_END, BUF_FLAG_PREVIEW, BUF_FLAG_STDHEADER, buf_element_s::content, buf_element_s::decoder_flags, lprintf, buf_element_s::pts, buf_element_s::size, buf_element_s::type, w32a_decode_audio(), w32a_ensure_buffer_size(), w32a_init_audio(), win32_codec_mutex, win32_codec_name, xine_log(), XINE_LOG_MSG, and XINE_STREAM_INFO_AUDIO_HANDLED.

Referenced by open_audio_decoder_plugin().

## ◆ w32a_discontinuity()

static void w32a_discontinuity | ( | audio_decoder_t * | this_gen | ) |
| static

Referenced by open_audio_decoder_plugin().

## ◆ w32a_dispose()

static void w32a_dispose | ( | audio_decoder_t * | this_gen | ) |
| static

References DMO_AudioDecoder_Destroy(), DRIVER_DMO, DRIVER_DS, DRIVER_STD, DS_AudioDecoder_Destroy(), NULL, and win32_codec_mutex.

Referenced by open_audio_decoder_plugin().

## ◆ w32a_ensure_buffer_size()

static void w32a_ensure_buffer_size | ( | w32a_decoder_t * | this,
|  | int | size )
| static

References XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by w32a_decode_audio(), and w32a_decode_data().

## ◆ w32a_init_audio()

static int w32a_init_audio | ( | w32a_decoder_t * | this,
|  | uint8_t * | buf,
|  | int | bufsize,
|  | int | buftype )
| static

References _, _x_ao_channels2mode(), DMO_AudioDecoder_GetSrcSize(), DMO_AudioDecoder_Open(), DRIVER_DMO, DRIVER_DS, DRIVER_STD, DS_AudioDecoder_GetSrcSize(), DS_AudioDecoder_Open(), get_auds_codec_name(), audio_buffer_s::mem_size, NULL, audio_buffer_s::num_frames, audio_buffer_s::stream, audio_buffer_s::vpts, win32_codec_name, xine_log(), XINE_LOG_MSG, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by w32a_decode_data().

## ◆ w32a_init_class()

void * w32a_init_class | ( | xine_t * | xine,
|  | const void * | data )

References xine_s::config, audio_decoder_s::dispose, get_win32_codecs_path(), init_routine(), N_, NULL, once_control, open_audio_decoder_plugin(), and audio_decoder_class_s::open_plugin.

## ◆ w32a_reset()

static void w32a_reset | ( | audio_decoder_t * | this_gen | ) |
| static

Referenced by open_audio_decoder_plugin().

## ◆ w32v_decode_data()

static void w32v_decode_data | ( | video_decoder_t * | this_gen,
|  | buf_element_t * | buf )
| static

References _, _x_message(), _x_stream_info_set(), B_CB_OFF, B_CR_OFF, B_Y_OFF, vo_frame_s::bad_frame, vo_frame_s::base, BUF_FLAG_FRAME_END, BUF_FLAG_FRAMERATE, BUF_FLAG_KEYFRAME, BUF_FLAG_PREVIEW, BUF_FLAG_STDHEADER, BUF_VIDEO_IV32, CBCR_OFFSET, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, DMO_VideoDecoder_DecodeInternal(), vo_frame_s::draw, DRIVER_DMO, DRIVER_DS, DRIVER_STD, DS_VideoDecoder_DecodeInternal(), vo_frame_s::duration, FIX, vo_frame_s::free, G_CB_OFF, G_CR_OFF, G_Y_OFF, get_vids_codec_n_name(), get_vids_codec_name(), IMGFMT_YUY2, lprintf, NULL, ONE_HALF, vo_frame_s::pitches, buf_element_s::pts, vo_frame_s::pts, R_CB_OFF, R_CR_OFF, R_Y_OFF, rgb_ycc_tab, SCALEBITS, buf_element_s::size, buf_element_s::type, v, VO_BOTH_FIELDS, w32v_init_codec(), w32v_init_ds_dmo_codec(), win32_codec_mutex, win32_codec_name, xine_fast_memcpy, xine_log(), XINE_LOG_MSG, XINE_MSG_LIBRARY_LOAD_ERROR, XINE_STREAM_INFO_FRAME_DURATION, XINE_STREAM_INFO_VIDEO_HANDLED, XINE_STREAM_INFO_VIDEO_HEIGHT, XINE_STREAM_INFO_VIDEO_WIDTH, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by open_video_decoder_plugin().

## ◆ w32v_discontinuity()

static void w32v_discontinuity | ( | video_decoder_t * | this_gen | ) |
| static

Referenced by open_video_decoder_plugin().

## ◆ w32v_dispose()

static void w32v_dispose | ( | video_decoder_t * | this_gen | ) |
| static

References DMO_VideoDecoder_Destroy(), DRIVER_DMO, DRIVER_DS, DRIVER_STD, DS_VideoDecoder_Destroy(), NULL, and win32_codec_mutex.

Referenced by open_video_decoder_plugin().

## ◆ w32v_flush()

static void w32v_flush | ( | video_decoder_t * | this_gen | ) |
| static

Referenced by open_video_decoder_plugin().

## ◆ w32v_init_class()

void * w32v_init_class | ( | xine_t * | xine,
|  | const void * | data )

References xine_s::config, video_decoder_s::dispose, get_win32_codecs_path(), init_routine(), N_, NULL, once_control, video_decoder_class_s::open_plugin, and open_video_decoder_plugin().

## ◆ w32v_init_codec()

static void w32v_init_codec | ( | w32v_decoder_t * | this,
|  | int | buf_type )
| static

References _, buf_type, IMGFMT_15RGB, IMGFMT_YUY2, lprintf, mmioFOURCC, VIDEOBUFSIZE, VO_CAP_YUY2, win32_codec_name, xine_log(), XINE_LOG_MSG, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by w32v_decode_data().

## ◆ w32v_init_ds_dmo_codec()

static void w32v_init_ds_dmo_codec | ( | w32v_decoder_t * | this,
|  | int | buf_type )
| static

References _, buf_type, BUF_VIDEO_DV, DMO_VideoDecoder_Open(), DMO_VideoDecoder_SetDestFmt(), DMO_VideoDecoder_StartInternal(), DRIVER_DS, DS_VideoDecoder_Open(), DS_VideoDecoder_SetDestFmt(), DS_VideoDecoder_StartInternal(), IMGFMT_15RGB, IMGFMT_YUY2, mmioFOURCC, VIDEOBUFSIZE, VO_CAP_YUY2, win32_codec_name, xine_log(), XINE_LOG_MSG, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by w32v_decode_data().

## ◆ w32v_init_rgb_ycc()

static void w32v_init_rgb_ycc | ( | void |  | ) |
| static

References B_CB_OFF, B_CR_OFF, B_Y_OFF, CBCR_OFFSET, FIX, G_CB_OFF, G_CR_OFF, G_Y_OFF, MAXSAMPLE, ONE_HALF, R_CB_OFF, R_Y_OFF, rgb_ycc_tab, and TABLE_SIZE.

Referenced by init_routine().

## ◆ w32v_reset()

static void w32v_reset | ( | video_decoder_t * | this_gen | ) |
| static

References DRIVER_DS, DRIVER_STD, and win32_codec_mutex.

Referenced by open_video_decoder_plugin().

## Variable Documentation

## ◆ CLSID_Acelp

GUID CLSID_Acelp
| static

Initial value:
=
{
0x4009f700, 0xaeba, 0x11d1,
{ 0x83, 0x44, 0x00, 0xc0, 0x4f, 0xb9, 0x2e, 0xb7 }
}

Referenced by get_auds_codec_name().

## ◆ CLSID_Voxware

GUID CLSID_Voxware
| static

Initial value:
=
{
0x73f7a062, 0x8829, 0x11d1,
{ 0xb5, 0x50, 0x00, 0x60, 0x97, 0x24, 0x2d, 0x8d }
}

Referenced by get_auds_codec_name().

## ◆ dvsd_clsid

GUID dvsd_clsid
| static

Initial value:
=
{
0xB1B77C00, 0xC3E4, 0x11CF,
{0xAF, 0x79, 0x00, 0xAA, 0x00, 0xB6, 0x7A, 0x42}
}

Referenced by get_vids_codec_name().

## ◆ msmpeg4_clsid

GUID msmpeg4_clsid
| static

Initial value:
=
{
0x82CCd3E0, 0xF71A, 0x11D0,
{ 0x9f, 0xe5, 0x00, 0x60, 0x97, 0x78, 0xea, 0x66}
}

Referenced by get_vids_codec_name().

## ◆ mss1_clsid

GUID mss1_clsid
| static

Initial value:
=
{
0x3301a7c4, 0x0a8d, 0x11d4,
{ 0x91, 0x4d, 0x00, 0xc0, 0x4f, 0x61, 0x0d, 0x24 }
}

Referenced by get_vids_codec_name().

## ◆ once_control

pthread_once_t once_control = PTHREAD_ONCE_INIT
| static

Referenced by w32a_init_class(), and w32v_init_class().

## ◆ rgb_ycc_tab

int32_t* rgb_ycc_tab
| static

Referenced by w32v_decode_data(), and w32v_init_rgb_ycc().

## ◆ win32_codec_mutex

pthread_mutex_t win32_codec_mutex
| static

Referenced by init_routine(), w32a_decode_audio(), w32a_decode_data(), w32a_dispose(), w32v_decode_data(), w32v_dispose(), and w32v_reset().

## ◆ win32_codec_name

const char* win32_codec_name
| static

Referenced by w32a_decode_data(), w32a_init_audio(), w32v_decode_data(), w32v_init_codec(), and w32v_init_ds_dmo_codec().

## ◆ wma3_clsid

GUID wma3_clsid
| static

Initial value:
=
{
0x27ca0808, 0x01f5, 0x4e7a,
{ 0x8b, 0x05, 0x87, 0xf8, 0x07, 0xa2, 0x33, 0xd1 }
}

Referenced by get_auds_codec_name().

## ◆ wmav_clsid

GUID wmav_clsid
| static

Initial value:
=
{
0x874131cb, 0x4ecc, 0x443b,
{ 0x89, 0x48, 0x74, 0x6b, 0x89, 0x59, 0x5d, 0x20 }
}

Referenced by get_auds_codec_name().

## ◆ wmv1_clsid

GUID wmv1_clsid
| static

Initial value:
=
{
0x4facbba1, 0xffd8, 0x4cd7,
{0x82, 0x28, 0x61, 0xe2, 0xf6, 0x5c, 0xb1, 0xae}
}

Referenced by get_vids_codec_name().

## ◆ wmv2_clsid

GUID wmv2_clsid
| static

Initial value:
=
{
0x521fb373, 0x7654, 0x49f2,
{0xbd, 0xb1, 0x0c, 0x6e, 0x66, 0x60, 0x71, 0x4f}
}

Referenced by get_vids_codec_name().

## ◆ wmv3_clsid

GUID wmv3_clsid
| static

Initial value:
=
{
0x724bb6a4, 0xe526, 0x450f,
{0xaf, 0xfa, 0xab, 0x9b, 0x45, 0x12, 0x91, 0x11}
}

Referenced by get_vids_codec_name().

## ◆ wmvdmo_clsid

GUID wmvdmo_clsid
| static

Initial value:
=
{
0x82d353df, 0x90bd, 0x4382,
{0x8b, 0xc2, 0x3f, 0x61, 0x92, 0xb7, 0x6e, 0x34}
}

Referenced by get_vids_codec_name().