xine-lib: xine-lib-1.2.12/src/libw32dll/qt_decoder.c File Reference

xine-lib 1.2.12

Data Structures | Macros | Typedefs | Functions | Variables
qt_decoder.c File Reference
`#include <stdlib.h>`
`#include <string.h>`
`#include "bswap.h"`
`#include <xine/xine_internal.h>`
`#include <xine/audio_out.h>`
`#include <xine/buffer.h>`
`#include "group_w32.h"`
`#include "qtx/qtxsdk/components.h"`
`#include "wine/win32.h"`
`#include "wine/windef.h"`
`#include "wine/ldt_keeper.h"`
`#include "common.c"`

## Data Structures
struct | SoundComponentData
struct | qta_decoder_s
struct | qtv_decoder_s

## Macros
#define | LOG_MODULE "qt_decoder"
#define | LOG_VERBOSE
#define | FOUR_CHAR_CODE BE_FOURCC
#define | BUFSIZE 1024*1024

## Typedefs
typedef struct OpaqueSoundConverter * | SoundConverter
typedef unsigned long | UnsignedFixed
typedef uint8_t | Byte
typedef struct SoundComponentData | SoundComponentData
typedef int(__cdecl * | LPFUNC1) (long flag)
typedef int(__cdecl * | LPFUNC2) (const SoundComponentData *, const SoundComponentData *, SoundConverter *)
typedef int(__cdecl * | LPFUNC3) (SoundConverter sc)
typedef int(__cdecl * | LPFUNC4) (void)
typedef int(__cdecl * | LPFUNC5) (SoundConverter sc, OSType selector, void *infoPtr)
typedef int(__cdecl * | LPFUNC6) (SoundConverter sc, unsigned long inputBytesTarget, unsigned long *inputFrames, unsigned long *inputBytes, unsigned long *outputBytes)
typedef int(__cdecl * | LPFUNC7) (SoundConverter sc, const void *inputPtr, unsigned long inputFrames, void *outputPtr, unsigned long *outputFrames, unsigned long *outputBytes)
typedef int(__cdecl * | LPFUNC8) (SoundConverter sc, void *outputPtr, unsigned long *outputFrames, unsigned long *outputBytes)
typedef int(__cdecl * | LPFUNC9) (SoundConverter sc)
typedef struct qta_decoder_s | qta_decoder_t
typedef struct qtv_decoder_s | qtv_decoder_t

## Functions
HMODULE WINAPI | LoadLibraryA (LPCSTR)
FARPROC WINAPI | GetProcAddress (HMODULE, LPCSTR)
int WINAPI | FreeLibrary (HMODULE)
static void | init_routine (void)
static void | qta_init_driver (qta_decoder_t *this, buf_element_t *buf)
static void | qta_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
static void | qta_reset (audio_decoder_t *this_gen)
static void | qta_discontinuity (audio_decoder_t *this_gen)
static void | qta_dispose (audio_decoder_t *this_gen)
static audio_decoder_t * | qta_open_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream)
void * | qta_init_class (xine_t *xine, const void *data)
static void | qtv_init_driver (qtv_decoder_t *this, buf_element_t *buf)
static void | qtv_decode_data (video_decoder_t *this_gen, buf_element_t *buf)
static void | qtv_flush (video_decoder_t *this_gen)
static void | qtv_reset (video_decoder_t *this_gen)
static void | qtv_discontinuity (video_decoder_t *this_gen)
static void | qtv_dispose (video_decoder_t *this_gen)
static video_decoder_t * | qtv_open_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream)
void * | qtv_init_class (xine_t *xine, const void *data)

## Variables
static pthread_once_t | once_control = PTHREAD_ONCE_INIT
static pthread_mutex_t | win32_codec_mutex

## Macro Definition Documentation

## ◆ BUFSIZE

#define BUFSIZE 1024*1024

## ◆ FOUR_CHAR_CODE

#define FOUR_CHAR_CODE BE_FOURCC

## ◆ LOG_MODULE

#define LOG_MODULE "qt_decoder"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## Typedef Documentation

## ◆ Byte

typedef uint8_t Byte

## ◆ LPFUNC1

typedef int(__cdecl * LPFUNC1) (long flag)

## ◆ LPFUNC2

typedef int(__cdecl * LPFUNC2) (const SoundComponentData *, const SoundComponentData *, SoundConverter *)

## ◆ LPFUNC3

typedef int(__cdecl * LPFUNC3) (SoundConverter sc)

## ◆ LPFUNC4

typedef int(__cdecl * LPFUNC4) (void)

## ◆ LPFUNC5

typedef int(__cdecl * LPFUNC5) (SoundConverter sc, OSType selector, void *infoPtr)

## ◆ LPFUNC6

typedef int(__cdecl * LPFUNC6) (SoundConverter sc, unsigned long inputBytesTarget, unsigned long *inputFrames, unsigned long *inputBytes, unsigned long *outputBytes)

## ◆ LPFUNC7

typedef int(__cdecl * LPFUNC7) (SoundConverter sc, const void *inputPtr, unsigned long inputFrames, void *outputPtr, unsigned long *outputFrames, unsigned long *outputBytes)

## ◆ LPFUNC8

typedef int(__cdecl * LPFUNC8) (SoundConverter sc, void *outputPtr, unsigned long *outputFrames, unsigned long *outputBytes)

## ◆ LPFUNC9

typedef int(__cdecl * LPFUNC9) (SoundConverter sc)

## ◆ qta_decoder_t

typedef struct qta_decoder_s qta_decoder_t

## ◆ qtv_decoder_t

typedef struct qtv_decoder_s qtv_decoder_t

## ◆ SoundComponentData

typedef struct SoundComponentData SoundComponentData

## ◆ SoundConverter

typedef struct OpaqueSoundConverter* SoundConverter

## ◆ UnsignedFixed

typedef unsigned long UnsignedFixed

## Function Documentation

## ◆ FreeLibrary()

int WINAPI FreeLibrary | ( | HMODULE |  | ) |

Referenced by cdda_close(), cdda_open(), and DS_Filter_Destroy().

## ◆ GetProcAddress()

FARPROC WINAPI GetProcAddress | ( | HMODULE | ,
|  | LPCSTR |
| ) |  |

Referenced by cdda_open(), DMO_FilterCreate(), DS_FilterCreate(), qta_init_driver(), and qtv_init_driver().

## ◆ init_routine()

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

References __XINE_FUNCTION__, lprintf, NULL, and win32_codec_mutex.

Referenced by qta_init_class(), and qtv_init_class().

## ◆ LoadLibraryA()

HMODULE WINAPI LoadLibraryA | ( | LPCSTR |  | ) |

Referenced by DMO_FilterCreate(), DS_FilterCreate(), qta_init_driver(), and qtv_init_driver().

## ◆ qta_decode_data()

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

References _x_stream_info_set(), BUF_FLAG_SPECIAL, BUF_FLAG_STDHEADER, BUF_SPECIAL_STSD_ATOM, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, lprintf, audio_buffer_s::mem, audio_buffer_s::mem_size, audio_buffer_s::num_frames, buf_element_s::pts, qta_init_driver(), buf_element_s::size, audio_buffer_s::stream, audio_buffer_s::vpts, win32_codec_mutex, and XINE_STREAM_INFO_AUDIO_HANDLED.

Referenced by qta_open_plugin().

## ◆ qta_discontinuity()

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

Referenced by qta_open_plugin().

## ◆ qta_dispose()

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

References lprintf, and NULL.

Referenced by qta_open_plugin().

## ◆ qta_init_class()

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

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

## ◆ qta_init_driver()

static void qta_init_driver | ( | qta_decoder_t * | this,
|  | buf_element_t * | buf
| ) |  |
| static

References _x_abort, _x_ao_channels2mode(), _x_message(), _x_meta_info_set_utf8(), BUF_AUDIO_QCLP, BUF_AUDIO_QDESIGN1, BUF_AUDIO_QDESIGN2, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, FOUR_CHAR_CODE, GetProcAddress(), LoadLibraryA(), lprintf, mode(), NULL, buf_element_s::type, win32_codec_mutex, XINE_META_INFO_AUDIOCODEC, XINE_MSG_LIBRARY_LOAD_ERROR, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by qta_decode_data().

## ◆ qta_open_plugin()

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

References NULL, qta_decode_data(), qta_discontinuity(), qta_dispose(), and qta_reset().

Referenced by qta_init_class().

## ◆ qta_reset()

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

Referenced by qta_open_plugin().

## ◆ qtv_decode_data()

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

References _x_meta_info_set_utf8(), _x_stream_info_set(), vo_frame_s::bad_frame, vo_frame_s::base, BUF_FLAG_FRAME_END, BUF_FLAG_SPECIAL, BUF_FLAG_STDHEADER, BUF_SPECIAL_STSD_ATOM, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, vo_frame_s::draw, vo_frame_s::duration, vo_frame_s::free, lprintf, buf_element_s::pts, vo_frame_s::pts, qtv_init_driver(), buf_element_s::size, VO_BOTH_FIELDS, win32_codec_mutex, xine_fast_memcpy, XINE_IMGFMT_YUY2, XINE_META_INFO_VIDEOCODEC, XINE_STREAM_INFO_VIDEO_HANDLED, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by qtv_open_plugin().

## ◆ qtv_discontinuity()

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

Referenced by qtv_open_plugin().

## ◆ qtv_dispose()

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

References lprintf, and NULL.

Referenced by qtv_open_plugin().

## ◆ qtv_flush()

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

References lprintf.

Referenced by qtv_open_plugin().

## ◆ qtv_init_class()

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

References __XINE_FUNCTION__, xine_s::config, get_win32_codecs_path(), init_routine(), lprintf, N_, NULL, once_control, video_decoder_class_s::open_plugin, and qtv_open_plugin().

## ◆ qtv_init_driver()

static void qtv_init_driver | ( | qtv_decoder_t * | this,
|  | buf_element_t * | buf
| ) |  |
| static

References _X_BE_16, _X_BE_32, _x_message(), codecNormalQuality, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, FOUR_CHAR_CODE, GetProcAddress(), height, kYUVSPixelFormat, LoadLibraryA(), lprintf, NULL, srcCopy, win32_codec_mutex, XINE_MSG_LIBRARY_LOAD_ERROR, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by qtv_decode_data().

## ◆ qtv_open_plugin()

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

References NULL, qtv_decode_data(), qtv_discontinuity(), qtv_dispose(), qtv_flush(), and qtv_reset().

Referenced by qtv_init_class().

## ◆ qtv_reset()

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

Referenced by qtv_open_plugin().

## Variable Documentation

## ◆ once_control

pthread_once_t once_control = PTHREAD_ONCE_INIT
| static

Referenced by init_once_routine(), qta_init_class(), and qtv_init_class().

## ◆ win32_codec_mutex

pthread_mutex_t win32_codec_mutex
| static

Referenced by init_routine(), qta_decode_data(), qta_init_driver(), qtv_decode_data(), and qtv_init_driver().