mirror of
https://github.com/mpv-player/mpv
synced 2025-04-01 23:00:41 +00:00
Merge svn changes up to r30550
This commit is contained in:
commit
36e7a20e69
11
Makefile
11
Makefile
@ -245,7 +245,6 @@ SRCS_COMMON-$(PRIORITY) += osdep/priority.c
|
||||
SRCS_COMMON-$(PVR) += stream/stream_pvr.c
|
||||
SRCS_COMMON-$(QTX_CODECS) += libmpcodecs/ad_qtaudio.c \
|
||||
libmpcodecs/vd_qtvideo.c
|
||||
SRCS_COMMON-$(QTX_EMULATION) += loader/wrapper.S
|
||||
SRCS_COMMON-$(RADIO) += stream/stream_radio.c
|
||||
SRCS_COMMON-$(RADIO_CAPTURE) += stream/audio_in.c
|
||||
SRCS_COMMON-$(REAL_CODECS) += libmpcodecs/ad_realaud.c \
|
||||
@ -282,7 +281,9 @@ SRCS_COMMON-$(VCD) += stream/stream_vcd.c
|
||||
SRCS_COMMON-$(VORBIS) += libmpcodecs/ad_libvorbis.c \
|
||||
libmpdemux/demux_ogg.c
|
||||
SRCS_COMMON-$(VSTREAM) += stream/stream_vstream.c
|
||||
SRCS_COMMON-$(WIN32_EMULATION) += loader/elfdll.c \
|
||||
SRCS_QTX_EMULATION += loader/wrapper.S
|
||||
SRCS_COMMON-$(QTX_EMULATION) += $(SRCS_QTX_EMULATION)
|
||||
SRCS_WIN32_EMULATION += loader/elfdll.c \
|
||||
loader/ext.c \
|
||||
loader/ldt_keeper.c \
|
||||
loader/module.c \
|
||||
@ -292,6 +293,8 @@ SRCS_COMMON-$(WIN32_EMULATION) += loader/elfdll.c \
|
||||
loader/resource.c \
|
||||
loader/win32.c \
|
||||
|
||||
SRCS_COMMON-$(WIN32_EMULATION) += $(SRCS_WIN32_EMULATION)
|
||||
|
||||
SRCS_COMMON-$(WIN32DLL) += libmpcodecs/ad_acm.c \
|
||||
libmpcodecs/ad_dmo.c \
|
||||
libmpcodecs/ad_dshow.c \
|
||||
@ -790,7 +793,7 @@ version.h: version.sh
|
||||
# Make sure all generated header files are created.
|
||||
codec-cfg.d codec-cfg.o: codecs.conf.h
|
||||
$(DEPS) $(MENCODER_DEPS) $(MPLAYER_DEPS): help_mp.h
|
||||
$(call ADDSUFFIXES,.d .o,mpcommon vobsub stream/stream_cddb stream/network libmpdemux/muxer_avi): version.h
|
||||
$(call ADDSUFFIXES,.d .o,mpcommon vobsub stream/stream_cddb stream/network libmpdemux/muxer_avi osdep/mplayer.rc): version.h
|
||||
|
||||
# Files that depend on libswscale internals
|
||||
libvo/vo_mga.o libvo/vo_xmga.o libmpcodecs/vf_halfpack.o libmpcodecs/vf_palette.o libmpcodecs/vf_rgb2bgr.o libmpcodecs/vf_yuy2.o: CFLAGS := -I$(FFMPEG_SOURCE_PATH) $(CFLAGS)
|
||||
@ -916,7 +919,7 @@ liba52/test$(EXESUF): cpudetect.o $(SRCS_LIBA52_INTERNAL:.c=.o) -lm
|
||||
|
||||
libvo/aspecttest$(EXESUF): libvo/aspect.o libvo/geometry.o $(TEST_OBJS)
|
||||
|
||||
LOADER_TEST_OBJS = $(filter loader/%,$(SRCS_COMMON:.c=.o)) libmpdemux/aviprint.o osdep/mmap_anon.o cpudetect.o $(TEST_OBJS)
|
||||
LOADER_TEST_OBJS = $(SRCS_WIN32_EMULATION:.c=.o) $(SRCS_QTX_EMULATION:.S=.o) libavutil/libavutil.a osdep/mmap_anon.o cpudetect.o $(TEST_OBJS)
|
||||
|
||||
loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): CFLAGS += -g
|
||||
loader/qtx/list$(EXESUF) loader/qtx/qtxload$(EXESUF): $(LOADER_TEST_OBJS)
|
||||
|
24
configure
vendored
24
configure
vendored
@ -6833,7 +6833,7 @@ if test "$_real" = auto ; then
|
||||
_real=no
|
||||
_res_comment="dynamic loader support needed"
|
||||
if test "$_dl" = yes || test "$_win32dll" = yes &&
|
||||
(linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
|
||||
(linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
|
||||
_real=yes
|
||||
fi
|
||||
fi
|
||||
@ -6946,7 +6946,7 @@ if test "$_libavutil" = auto ; then
|
||||
_libavutil=no
|
||||
cat > $TMPC << EOF
|
||||
#include <libavutil/common.h>
|
||||
int main(void) { av_gcd(1,1); return 0; }
|
||||
int main(void) { av_clip(1, 1, 1); return 0; }
|
||||
EOF
|
||||
if $_pkg_config --exists libavutil ; then
|
||||
_inc_libavutil=$($_pkg_config --cflags libavutil)
|
||||
@ -8226,23 +8226,15 @@ $def_winsock2_h
|
||||
|
||||
|
||||
/* system functions */
|
||||
$def_exp2
|
||||
$def_exp2f
|
||||
$def_gethostbyname2
|
||||
$def_gettimeofday
|
||||
$def_glob
|
||||
$def_langinfo
|
||||
$def_llrint
|
||||
$def_log2
|
||||
$def_log2f
|
||||
$def_lrint
|
||||
$def_lrintf
|
||||
$def_map_memalign
|
||||
$def_memalign
|
||||
$def_nanosleep
|
||||
$def_posix_select
|
||||
$def_round
|
||||
$def_roundf
|
||||
$def_select
|
||||
$def_setenv
|
||||
$def_shm
|
||||
@ -8252,7 +8244,6 @@ $def_sysi86
|
||||
$def_sysi86_iv
|
||||
$def_termcap
|
||||
$def_termios
|
||||
$def_truncf
|
||||
$def_vsscanf
|
||||
|
||||
|
||||
@ -8260,6 +8251,7 @@ $def_vsscanf
|
||||
$def_asmalign_pot
|
||||
$def_builtin_expect
|
||||
$def_dl
|
||||
$def_dos_paths
|
||||
$def_extern_asm
|
||||
$def_extern_prefix
|
||||
$def_iconv
|
||||
@ -8531,16 +8523,24 @@ $def_arpa_inet_h
|
||||
$def_bswap
|
||||
$def_bzlib
|
||||
$def_dcbzl
|
||||
$def_dos_paths
|
||||
$def_exp2
|
||||
$def_exp2f
|
||||
$def_fast_64bit
|
||||
$def_fast_unaligned
|
||||
$def_llrint
|
||||
$def_log2
|
||||
$def_log2f
|
||||
$def_lrint
|
||||
$def_memalign_hack
|
||||
$def_mlib
|
||||
$def_mkstemp
|
||||
$def_posix_memalign
|
||||
$def_pthreads
|
||||
$def_round
|
||||
$def_roundf
|
||||
$def_ten_operands
|
||||
$def_threads
|
||||
$def_truncf
|
||||
$def_xform_asm
|
||||
$def_yasm
|
||||
|
||||
|
@ -67,6 +67,16 @@ videocodec ffzmbv
|
||||
dll "zmbv"
|
||||
out RGB24
|
||||
|
||||
videocodec geov
|
||||
info "GeoCodec"
|
||||
comment "crashes without -nosound, hangs on exit"
|
||||
status buggy
|
||||
fourcc GEOV
|
||||
fourcc GEOX
|
||||
driver vfw
|
||||
dll "GeoCodec.dll"
|
||||
out BGR24 flip
|
||||
|
||||
videocodec zmbv
|
||||
info "Zip Motion-Block Video"
|
||||
status working
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <speex/speex_header.h>
|
||||
#include "ad_internal.h"
|
||||
|
||||
static const ad_info_t info ={
|
||||
static const ad_info_t info = {
|
||||
"Speex audio decoder",
|
||||
"speex",
|
||||
"Reimar Döffinger",
|
||||
|
@ -44,7 +44,8 @@
|
||||
|
||||
#include "mp_taglists.h"
|
||||
|
||||
#define PROBE_BUF_SIZE (32*1024)
|
||||
#define INITIAL_PROBE_SIZE (32*1024)
|
||||
#define PROBE_BUF_SIZE (2*1024*1024)
|
||||
|
||||
static unsigned int opt_probesize = 0;
|
||||
static unsigned int opt_analyzeduration = 0;
|
||||
@ -67,7 +68,7 @@ typedef struct lavf_priv_t{
|
||||
AVInputFormat *avif;
|
||||
AVFormatContext *avfc;
|
||||
ByteIOContext *pb;
|
||||
uint8_t buffer[FFMAX(BIO_BUFFER_SIZE, PROBE_BUF_SIZE)];
|
||||
uint8_t buffer[BIO_BUFFER_SIZE];
|
||||
int audio_streams;
|
||||
int video_streams;
|
||||
int sub_streams;
|
||||
@ -132,7 +133,8 @@ static void list_formats(void) {
|
||||
static int lavf_check_file(demuxer_t *demuxer){
|
||||
AVProbeData avpd;
|
||||
lavf_priv_t *priv;
|
||||
int probe_data_size;
|
||||
int probe_data_size = 0;
|
||||
int read_size = INITIAL_PROBE_SIZE;
|
||||
|
||||
if(!demuxer->priv)
|
||||
demuxer->priv=calloc(sizeof(lavf_priv_t),1);
|
||||
@ -154,16 +156,26 @@ static int lavf_check_file(demuxer_t *demuxer){
|
||||
return DEMUXER_TYPE_LAVF;
|
||||
}
|
||||
|
||||
probe_data_size = stream_read(demuxer->stream, priv->buffer, PROBE_BUF_SIZE);
|
||||
if(probe_data_size < 0)
|
||||
avpd.buf = av_mallocz(FFMAX(BIO_BUFFER_SIZE, PROBE_BUF_SIZE) +
|
||||
FF_INPUT_BUFFER_PADDING_SIZE);
|
||||
do {
|
||||
read_size = stream_read(demuxer->stream, avpd.buf + probe_data_size, read_size);
|
||||
if(read_size < 0) {
|
||||
av_free(avpd.buf);
|
||||
return 0;
|
||||
}
|
||||
probe_data_size += read_size;
|
||||
avpd.filename= demuxer->stream->url;
|
||||
if (!strncmp(avpd.filename, "ffmpeg://", 9))
|
||||
avpd.filename += 9;
|
||||
avpd.buf= priv->buffer;
|
||||
avpd.buf_size= probe_data_size;
|
||||
|
||||
priv->avif= av_probe_input_format(&avpd, probe_data_size > 0);
|
||||
read_size = FFMIN(2*read_size, PROBE_BUF_SIZE - probe_data_size);
|
||||
} while (demuxer->desc->type != DEMUXER_TYPE_LAVF_PREFERRED &&
|
||||
!priv->avif && read_size > 0 && probe_data_size < PROBE_BUF_SIZE);
|
||||
av_free(avpd.buf);
|
||||
|
||||
if(!priv->avif){
|
||||
mp_msg(MSGT_HEADER,MSGL_V,"LAVF_check: no clue about this gibberish!\n");
|
||||
return 0;
|
||||
|
@ -18,10 +18,6 @@
|
||||
* Internal functions and structures for COM emulation code.
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef GUID_TYPE
|
||||
#define GUID_TYPE
|
||||
typedef struct
|
||||
@ -83,8 +79,4 @@ void* STDCALL CoTaskMemAlloc(unsigned long);
|
||||
void STDCALL CoTaskMemFree(void*);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* MPLAYER_COM_H */
|
||||
|
@ -4,10 +4,6 @@
|
||||
#include "dmo_guids.h"
|
||||
#include "dmo_interfaces.h"
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct DMO_Filter
|
||||
{
|
||||
int m_iHandle;
|
||||
@ -40,8 +36,4 @@ void DMO_Filter_Destroy(DMO_Filter* This);
|
||||
*/
|
||||
CMediaBuffer* CMediaBufferCreate(unsigned long maxlen, void* mem, unsigned long len, int copy);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_DMO_FILTER_H */
|
||||
|
@ -6,10 +6,6 @@
|
||||
#ifndef MPLAYER_DRV_H
|
||||
#define MPLAYER_DRV_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "wine/windef.h"
|
||||
#include "wine/driver.h"
|
||||
|
||||
@ -20,8 +16,4 @@ void CodecRelease(void);
|
||||
HDRVR DrvOpen(LPARAM lParam2);
|
||||
void DrvClose(HDRVR hdrvr);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_DRV_H */
|
||||
|
@ -4,10 +4,6 @@
|
||||
#include "inputpin.h"
|
||||
#include "outputpin.h"
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
char* frame_pointer;
|
||||
long frame_size;
|
||||
@ -43,8 +39,4 @@ DS_Filter* DS_FilterCreate(const char* dllname, const GUID* id,
|
||||
AM_MEDIA_TYPE* in_fmt, AM_MEDIA_TYPE* out_fmt,SampleProcUserData* pUserData);
|
||||
void DS_Filter_Destroy(DS_Filter* This);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_DS_FILTER_H */
|
||||
|
@ -43,19 +43,12 @@
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47)
|
||||
#define modify_ldt_ldt_s user_desc
|
||||
#endif
|
||||
/* prototype it here, so we won't depend on kernel headers */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/// declare modify_ldt with the _syscall3 macro for older glibcs
|
||||
#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 0))
|
||||
_syscall3( int, modify_ldt, int, func, void *, ptr, unsigned long, bytecount );
|
||||
#else
|
||||
int modify_ldt(int func, void *ptr, unsigned long bytecount);
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
#include <machine/segments.h>
|
||||
@ -69,13 +62,7 @@ int modify_ldt(int func, void *ptr, unsigned long bytecount);
|
||||
|
||||
/* solaris x86: add missing prototype for sysi86(), but only when sysi86(int, void*) is known to be valid */
|
||||
#ifdef HAVE_SYSI86_iv
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
int sysi86(int, void*);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef NUMSYSLDTS /* SunOS 2.5.1 does not define NUMSYSLDTS */
|
||||
@ -127,9 +114,6 @@ static unsigned int fs_ldt = TEB_SEL_IDX;
|
||||
* in C++ we use static class for this...
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
void Setup_FS_Segment(void)
|
||||
{
|
||||
unsigned int ldt_desc = LDT_SEL(fs_ldt);
|
||||
@ -271,6 +255,9 @@ ldt_fs_t* Setup_LDT_Keeper(void)
|
||||
printf("Couldn't install fs segment, expect segfault\n");
|
||||
}
|
||||
}
|
||||
#elif defined(__OS2__)
|
||||
/* convert flat addr to sel idx for LDT_SEL() */
|
||||
fs_ldt = (uintptr_t)fs_seg >> 16;
|
||||
#endif
|
||||
|
||||
Setup_FS_Segment();
|
||||
|
@ -1,11 +1,6 @@
|
||||
#ifndef MPLAYER_LDT_KEEPER_H
|
||||
#define MPLAYER_LDT_KEEPER_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
void* fs_seg;
|
||||
char* prev_struct;
|
||||
@ -14,8 +9,5 @@ typedef struct {
|
||||
void Setup_FS_Segment(void);
|
||||
ldt_fs_t* Setup_LDT_Keeper(void);
|
||||
void Restore_LDT_Keeper(ldt_fs_t* ldt_fs);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_LDT_KEEPER_H */
|
||||
|
@ -14,10 +14,6 @@
|
||||
#ifndef MPLAYER_LOADER_H
|
||||
#define MPLAYER_LOADER_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "wine/windef.h"
|
||||
#include "wine/driver.h"
|
||||
#include "wine/mmreg.h"
|
||||
@ -33,8 +29,4 @@ int WritePrivateProfileStringA_(const char* appname, const char* keyname,
|
||||
INT WINAPI LoadStringA( HINSTANCE instance, UINT resource_id,
|
||||
LPSTR buffer, INT buflen );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_LOADER_H */
|
||||
|
@ -744,6 +744,31 @@ static int dump_component(char* name, int type, void* orig, ComponentParameters
|
||||
|
||||
#ifdef EMU_QTX_API
|
||||
|
||||
#ifdef __OS2__
|
||||
uint32_t _System DosQueryMem(void *, uint32_t *, uint32_t *);
|
||||
#endif
|
||||
|
||||
static int is_invalid_ptr_handle(void *p)
|
||||
{
|
||||
#ifdef __OS2__
|
||||
uint32_t cb = 1;
|
||||
uint32_t fl;
|
||||
|
||||
if(DosQueryMem(p, &cb, &fl))
|
||||
return 1;
|
||||
|
||||
// Occasionally, ptr with 'EXEC' attr is passed.
|
||||
// On OS/2, however, malloc() never sets 'EXEC' attr.
|
||||
// So ptr with 'EXEC' attr is invalid.
|
||||
if(fl & 0x04)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
#else
|
||||
return (uint32_t)p >= 0x60000000;
|
||||
#endif
|
||||
}
|
||||
|
||||
static uint32_t ret_array[4096];
|
||||
static int ret_i=0;
|
||||
|
||||
@ -844,10 +869,10 @@ static int report_func(void *stack_base, int stack_size, reg386_t *reg, uint32_t
|
||||
#endif
|
||||
return 1;
|
||||
case 0x15002f: //DisposePtr
|
||||
if(((uint32_t *)stack_base)[1]>=0x60000000)
|
||||
if(is_invalid_ptr_handle(((void **)stack_base)[1]))
|
||||
printf("WARNING! Invalid Ptr handle!\n");
|
||||
else
|
||||
free((void *)((uint32_t *)stack_base)[1]);
|
||||
free(((void **)stack_base)[1]);
|
||||
reg->eax=0;
|
||||
#ifdef DEBUG_QTX_API
|
||||
printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax);
|
||||
|
@ -13,10 +13,6 @@
|
||||
* http://svn.mplayerhq.hu/mplayer/trunk/
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "wine/winbase.h"
|
||||
|
||||
void free_registry(void);
|
||||
@ -40,8 +36,5 @@ long __stdcall RegEnumKeyExA(HKEY hKey, DWORD dwIndex, LPSTR lpName, LPDWORD lpc
|
||||
long __stdcall RegEnumValueA(HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count,
|
||||
LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count);
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_REGISTRY_H */
|
||||
|
167
loader/win32.c
167
loader/win32.c
@ -19,13 +19,14 @@ for DLL to know too much about its environment.
|
||||
#include "config.h"
|
||||
#include "mangle.h"
|
||||
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
#define QTX
|
||||
#endif
|
||||
#define REALPLAYER
|
||||
//#define LOADLIB_TRY_NATIVE
|
||||
|
||||
#ifdef QTX
|
||||
/* Hack to make sure the correct function declaration in com.h is used when
|
||||
* this file is built for the test applications with WIN32_LOADER disabled. */
|
||||
#define WIN32_LOADER
|
||||
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
#define PSEUDO_SCREEN_WIDTH /*640*/800
|
||||
#define PSEUDO_SCREEN_HEIGHT /*480*/600
|
||||
#endif
|
||||
@ -72,6 +73,7 @@ for DLL to know too much about its environment.
|
||||
#include "osdep/mmap.h"
|
||||
#endif
|
||||
#include "osdep/mmap_anon.h"
|
||||
#include "libavutil/avstring.h"
|
||||
|
||||
char* def_path = WIN32_PATH;
|
||||
|
||||
@ -553,7 +555,7 @@ static HMODULE WINAPI expGetDriverModuleHandle(DRVR* pdrv)
|
||||
|
||||
#define MODULE_HANDLE_kernel32 ((HMODULE)0x120)
|
||||
#define MODULE_HANDLE_user32 ((HMODULE)0x121)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
#define MODULE_HANDLE_wininet ((HMODULE)0x122)
|
||||
#define MODULE_HANDLE_ddraw ((HMODULE)0x123)
|
||||
#define MODULE_HANDLE_advapi32 ((HMODULE)0x124)
|
||||
@ -562,13 +564,14 @@ static HMODULE WINAPI expGetDriverModuleHandle(DRVR* pdrv)
|
||||
#define MODULE_HANDLE_msvcrt ((HMODULE)0x126)
|
||||
#define MODULE_HANDLE_ole32 ((HMODULE)0x127)
|
||||
#define MODULE_HANDLE_winmm ((HMODULE)0x128)
|
||||
#define MODULE_HANDLE_psapi ((HMODULE)0x129)
|
||||
|
||||
static HMODULE WINAPI expGetModuleHandleA(const char* name)
|
||||
{
|
||||
WINE_MODREF* wm;
|
||||
HMODULE result;
|
||||
if(!name)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
result=1;
|
||||
#else
|
||||
result=0;
|
||||
@ -584,7 +587,7 @@ static HMODULE WINAPI expGetModuleHandleA(const char* name)
|
||||
{
|
||||
if(name && (strcasecmp(name, "kernel32")==0 || !strcasecmp(name, "kernel32.dll")))
|
||||
result=MODULE_HANDLE_kernel32;
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
if(name && strcasecmp(name, "user32")==0)
|
||||
result=MODULE_HANDLE_user32;
|
||||
#endif
|
||||
@ -844,7 +847,7 @@ static void* WINAPI expWaitForSingleObject(void* object, int duration)
|
||||
return (void *)ret;
|
||||
}
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
static void* WINAPI expWaitForMultipleObjects(int count, const void** objects,
|
||||
int WaitAll, int duration)
|
||||
{
|
||||
@ -884,7 +887,7 @@ static HANDLE WINAPI expCreateMutexA(void *pSecAttr,
|
||||
else
|
||||
dbgprintf("CreateMutexA(0x%x, %d, NULL) => 0x%x\n",
|
||||
pSecAttr, bInitialOwner, mlist);
|
||||
#ifndef QTX
|
||||
#ifndef CONFIG_QTX_CODECS
|
||||
/* 10l to QTX, if CreateMutex returns a real mutex, WaitForSingleObject
|
||||
waits for ever, else it works ;) */
|
||||
return mlist;
|
||||
@ -1133,6 +1136,10 @@ static WIN_BOOL WINAPI expIsProcessorFeaturePresent(DWORD v)
|
||||
return result;
|
||||
}
|
||||
|
||||
static WIN_BOOL WINAPI expIsDebuggerPresent(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static long WINAPI expGetVersion(void)
|
||||
{
|
||||
@ -1437,7 +1444,7 @@ static int WINAPI expGetCurrentProcess(void)
|
||||
return getpid();
|
||||
}
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
// this version is required for Quicktime codecs (.qtx/.qts) to work.
|
||||
// (they assume some pointers at FS: segment)
|
||||
|
||||
@ -2201,7 +2208,7 @@ static int WINAPI expGetStdHandle(int z)
|
||||
return z+0x1234;
|
||||
}
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
#define FILE_HANDLE_quicktimeqts ((HANDLE)0x444)
|
||||
#define FILE_HANDLE_quicktimeqtx ((HANDLE)0x445)
|
||||
#endif
|
||||
@ -2211,7 +2218,7 @@ static int WINAPI expGetFileType(int handle)
|
||||
dbgprintf("GetFileType(0x%x) => 0x3 = pipe\n", handle);
|
||||
return 0x3;
|
||||
}
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
static int WINAPI expGetFileAttributesA(char *filename)
|
||||
{
|
||||
dbgprintf("GetFileAttributesA(%s) => FILE_ATTR_NORMAL\n", filename);
|
||||
@ -2269,6 +2276,21 @@ static int WINAPI expGetModuleFileNameA(int module, char* s, int len)
|
||||
return result;
|
||||
}
|
||||
|
||||
static int WINAPI expGetModuleBaseNameA(int process, int module, char* s, int len)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
if (s && len) {
|
||||
av_strlcpy(s, "aviplay.dll", len);
|
||||
result = strlen(s);
|
||||
}
|
||||
|
||||
dbgprintf("GetModuleBaseNameA(0x%x, 0x%x, 0x%x, %d) => %d\n",
|
||||
process, module, s, len, result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int WINAPI expSetUnhandledExceptionFilter(void* filter)
|
||||
{
|
||||
dbgprintf("SetUnhandledExceptionFilter(0x%x) => 1\n", filter);
|
||||
@ -2312,7 +2334,7 @@ static int WINAPI expLoadLibraryA(char* name)
|
||||
// return MODULE_HANDLE_kernel32;
|
||||
return MODULE_HANDLE_user32;
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
if (strcasecmp(name, "wininet.dll") == 0 || strcasecmp(name, "wininet") == 0)
|
||||
return MODULE_HANDLE_wininet;
|
||||
if (strcasecmp(name, "ddraw.dll") == 0 || strcasecmp(name, "ddraw") == 0)
|
||||
@ -2329,6 +2351,8 @@ static int WINAPI expLoadLibraryA(char* name)
|
||||
return MODULE_HANDLE_ole32;
|
||||
if (strcasecmp(name, "winmm.dll") == 0 || strcasecmp(name, "winmm") == 0)
|
||||
return MODULE_HANDLE_winmm;
|
||||
if (strcasecmp(name, "psapi.dll") == 0 || strcasecmp(name, "psapi") == 0)
|
||||
return MODULE_HANDLE_psapi;
|
||||
|
||||
result=LoadLibraryA(name);
|
||||
dbgprintf("Returned LoadLibraryA(0x%x='%s'), def_path=%s => 0x%x\n", name, name, def_path, result);
|
||||
@ -2338,7 +2362,7 @@ static int WINAPI expLoadLibraryA(char* name)
|
||||
|
||||
static int WINAPI expFreeLibrary(int module)
|
||||
{
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
int result=0; /* FIXME:XXX: qtx svq3 frees up qt.qts */
|
||||
#else
|
||||
int result=FreeLibrary(module);
|
||||
@ -2355,7 +2379,7 @@ static void* WINAPI expGetProcAddress(HMODULE mod, char* name)
|
||||
result=LookupExternalByName("kernel32.dll", name); break;
|
||||
case MODULE_HANDLE_user32:
|
||||
result=LookupExternalByName("user32.dll", name); break;
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
case MODULE_HANDLE_wininet:
|
||||
result=LookupExternalByName("wininet.dll", name); break;
|
||||
case MODULE_HANDLE_ddraw:
|
||||
@ -2371,6 +2395,8 @@ static void* WINAPI expGetProcAddress(HMODULE mod, char* name)
|
||||
result=LookupExternalByName("ole32.dll", name); break;
|
||||
case MODULE_HANDLE_winmm:
|
||||
result=LookupExternalByName("winmm.dll", name); break;
|
||||
case MODULE_HANDLE_psapi:
|
||||
result=LookupExternalByName("psapi.dll", name); break;
|
||||
default:
|
||||
result=GetProcAddress(mod, name);
|
||||
}
|
||||
@ -2450,7 +2476,7 @@ static int WINAPI expCreateCompatibleDC(int hdc)
|
||||
static int WINAPI expGetDeviceCaps(int hdc, int unk)
|
||||
{
|
||||
dbgprintf("GetDeviceCaps(0x%x, %d) => 0\n", hdc, unk);
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
#define BITSPIXEL 12
|
||||
#define PLANES 14
|
||||
if (unk == BITSPIXEL)
|
||||
@ -2483,7 +2509,7 @@ static void* WINAPI expGetWindowDC(int hdc)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
static int WINAPI expGetWindowRect(HWND win, RECT *r)
|
||||
{
|
||||
dbgprintf("GetWindowRect(0x%x, 0x%x) => 1\n", win, r);
|
||||
@ -2937,7 +2963,7 @@ static int WINAPI expGetCursorPos(void *cursor)
|
||||
dbgprintf("GetCursorPos(0x%x) => 0x%x\n", cursor, cursor);
|
||||
return 1;
|
||||
}
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
static int show_cursor = 0;
|
||||
static int WINAPI expShowCursor(int show)
|
||||
{
|
||||
@ -2975,7 +3001,7 @@ static int WINAPI expGetCPInfo(int cp,void *info)
|
||||
dbgprintf("GetCPInfo()\n");
|
||||
return 0;
|
||||
}
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
#define SM_CXSCREEN 0
|
||||
#define SM_CYSCREEN 1
|
||||
#define SM_XVIRTUALSCREEN 76
|
||||
@ -2987,7 +3013,7 @@ static int WINAPI expGetCPInfo(int cp,void *info)
|
||||
static int WINAPI expGetSystemMetrics(int index)
|
||||
{
|
||||
dbgprintf("GetSystemMetrics(%d)\n", index);
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
switch(index)
|
||||
{
|
||||
case SM_XVIRTUALSCREEN:
|
||||
@ -3314,7 +3340,7 @@ static DIR* qtx_dir=NULL;
|
||||
|
||||
static WIN_BOOL WINAPI expFindNextFileA(HANDLE h,LPWIN32_FIND_DATAA lpfd)
|
||||
{
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
dbgprintf("FindNextFileA(0x%x, 0x%x) => 0\n", h, lpfd);
|
||||
if(h==FILE_HANDLE_quicktimeqtx){
|
||||
struct dirent* d;
|
||||
@ -3340,7 +3366,7 @@ static HANDLE WINAPI expFindFirstFileA(LPCSTR s, LPWIN32_FIND_DATAA lpfd)
|
||||
{
|
||||
dbgprintf("FindFirstFileA(0x%x='%s', 0x%x) => 0\n", s, s, lpfd);
|
||||
// printf("\n### FindFirstFileA('%s')...\n",s);
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
if(strstr(s, "quicktime\\*.QTX")){
|
||||
dbgprintf("FindFirstFileA(0x%x='%s', 0x%x) => QTX\n", s, s, lpfd);
|
||||
dbgprintf("\n### Searching for QuickTime plugins (*.qtx) at %s...\n",def_path);
|
||||
@ -3376,7 +3402,7 @@ static HANDLE WINAPI expFindFirstFileA(LPCSTR s, LPWIN32_FIND_DATAA lpfd)
|
||||
static WIN_BOOL WINAPI expFindClose(HANDLE h)
|
||||
{
|
||||
dbgprintf("FindClose(0x%x) => 0\n", h);
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
// if(h==FILE_HANDLE_quicktimeqtx && qtx_dir){
|
||||
// closedir(qtx_dir);
|
||||
// qtx_dir=NULL;
|
||||
@ -3398,7 +3424,7 @@ static UINT WINAPI expGetWindowsDirectoryA(LPSTR s,UINT c)
|
||||
dbgprintf("GetWindowsDirectoryA(0x%x, %d) => %d\n", s, c, result);
|
||||
return result;
|
||||
}
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
static UINT WINAPI expGetCurrentDirectoryA(UINT c, LPSTR s)
|
||||
{
|
||||
char curdir[]="c:\\";
|
||||
@ -3482,7 +3508,7 @@ static HANDLE WINAPI expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2,
|
||||
i2, p1, i3, i4, i5);
|
||||
if((!cs1) || (strlen(cs1)<2))return -1;
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
if(strstr(cs1, "QuickTime.qts"))
|
||||
{
|
||||
int result;
|
||||
@ -3598,7 +3624,7 @@ static DWORD WINAPI expGetFullPathNameA
|
||||
dbgprintf("GetFullPathNameA('%s',%d,%p,%p)\n",lpFileName,nBufferLength,
|
||||
lpBuffer, lpFilePart);
|
||||
#if 0
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
strcpy(lpFilePart, "Quick123.qts");
|
||||
#else
|
||||
strcpy(lpFilePart, lpFileName);
|
||||
@ -3662,7 +3688,7 @@ static DWORD WINAPI expSetFilePointer(HANDLE h, LONG val, LPLONG ext, DWORD whe
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
if (val == 0 && ext != 0)
|
||||
val = val&(*ext);
|
||||
#endif
|
||||
@ -3768,7 +3794,7 @@ static void WINAPI expInitCommonControls(void)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
/* needed by QuickTime.qts */
|
||||
static HWND WINAPI expCreateUpDownControl (DWORD style, INT x, INT y, INT cx, INT cy,
|
||||
HWND parent, INT id, HINSTANCE inst,
|
||||
@ -4427,7 +4453,7 @@ static MMRESULT WINAPI exptimeBeginPeriod(UINT wPeriod)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
static MMRESULT WINAPI exptimeEndPeriod(UINT wPeriod)
|
||||
{
|
||||
dbgprintf("timeEndPeriod(%u) !\n", wPeriod);
|
||||
@ -4543,6 +4569,12 @@ static WIN_BOOL WINAPI expSetThreadPriority(
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void WINAPI expTerminateProcess( DWORD process, DWORD status )
|
||||
{
|
||||
printf("EXIT - process %ld code %ld\n", process, status);
|
||||
exit(status);
|
||||
}
|
||||
|
||||
static void WINAPI expExitProcess( DWORD status )
|
||||
{
|
||||
printf("EXIT - code %ld\n",status);
|
||||
@ -4551,7 +4583,7 @@ static void WINAPI expExitProcess( DWORD status )
|
||||
|
||||
static INT WINAPI expMessageBoxA(HWND hWnd, LPCSTR text, LPCSTR title, UINT type){
|
||||
printf("MSGBOX '%s' '%s' (%d)\n",text,title,type);
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
if (type == MB_ICONHAND && !strlen(text) && !strlen(title))
|
||||
return IDIGNORE;
|
||||
#endif
|
||||
@ -4592,6 +4624,28 @@ static WINAPI inline unsigned long int expntohl(unsigned long int netlong)
|
||||
// dbgprintf("ntohl(%x) => %x\n", netlong, ntohl(netlong));
|
||||
return ntohl(netlong);
|
||||
}
|
||||
|
||||
static char* WINAPI expSysAllocStringLen(char *pch, unsigned cch)
|
||||
{
|
||||
char *str;
|
||||
dbgprintf("SysAllocStringLen('%s', %d)\n", pch, cch);
|
||||
str = malloc(cch * 2 + sizeof(unsigned) + 2);
|
||||
*(unsigned *)str = cch;
|
||||
str += sizeof(unsigned);
|
||||
if (pch)
|
||||
memcpy(str, pch, cch * 2);
|
||||
str[cch * 2] = 0;
|
||||
str[cch * 2 + 1] = 0;
|
||||
return str;
|
||||
}
|
||||
|
||||
static void WINAPI expSysFreeString(char *str)
|
||||
{
|
||||
if (str) {
|
||||
free(str - sizeof(unsigned));
|
||||
}
|
||||
}
|
||||
|
||||
static void WINAPI expVariantInit(void* p)
|
||||
{
|
||||
printf("InitCommonControls called!\n");
|
||||
@ -4610,7 +4664,7 @@ static int WINAPI expUnregisterClassA(const char *className, HINSTANCE hInstance
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
/* should be fixed bcs it's not fully strlen equivalent */
|
||||
static int expSysStringByteLen(void *str)
|
||||
{
|
||||
@ -4846,6 +4900,25 @@ static void * WINAPI expDecodePointer(void *p)
|
||||
return p;
|
||||
}
|
||||
|
||||
static DWORD WINAPI expGetThreadLocale(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Very incomplete implementation, return an error for almost all cases.
|
||||
*/
|
||||
static DWORD WINAPI expGetLocaleInfoA(DWORD locale, DWORD lctype, char* lpLCData, int cchData)
|
||||
{
|
||||
if (lctype == 0x1004) { // LOCALE_IDEFAULTANSICODEPAGE
|
||||
if (cchData < 4)
|
||||
return cchData == 0 ? 4 : 0;
|
||||
strcpy(lpLCData, "437");
|
||||
return 4;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct exports
|
||||
{
|
||||
char name[64];
|
||||
@ -4880,7 +4953,7 @@ struct exports exp_kernel32[]=
|
||||
FF(SetEvent, -1)
|
||||
FF(ResetEvent, -1)
|
||||
FF(WaitForSingleObject, -1)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(WaitForMultipleObjects, -1)
|
||||
FF(ExitThread, -1)
|
||||
FF(CreateMutexA,-1)
|
||||
@ -4941,7 +5014,7 @@ struct exports exp_kernel32[]=
|
||||
FF(GetStartupInfoA, -1)
|
||||
FF(GetStdHandle, -1)
|
||||
FF(GetFileType, -1)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(GetFileAttributesA, -1)
|
||||
#endif
|
||||
FF(SetHandleCount, -1)
|
||||
@ -4988,7 +5061,7 @@ struct exports exp_kernel32[]=
|
||||
FF(CreateFileA,-1)
|
||||
FF(GetSystemDirectoryA,-1)
|
||||
FF(GetWindowsDirectoryA,-1)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(GetCurrentDirectoryA,-1)
|
||||
FF(SetCurrentDirectoryA,-1)
|
||||
FF(CreateDirectoryA,-1)
|
||||
@ -4997,6 +5070,7 @@ struct exports exp_kernel32[]=
|
||||
FF(GetFullPathNameA,-1)
|
||||
FF(SetErrorMode, -1)
|
||||
FF(IsProcessorFeaturePresent, -1)
|
||||
FF(IsDebuggerPresent, -1)
|
||||
FF(GetProcessAffinityMask, -1)
|
||||
FF(InterlockedExchange, -1)
|
||||
FF(InterlockedCompareExchange, -1)
|
||||
@ -5017,12 +5091,15 @@ struct exports exp_kernel32[]=
|
||||
FF(GlobalMemoryStatus,-1)
|
||||
FF(GetThreadPriority,-1)
|
||||
FF(SetThreadPriority,-1)
|
||||
FF(TerminateProcess,-1)
|
||||
FF(ExitProcess,-1)
|
||||
{"LoadLibraryExA", -1, (void*)&LoadLibraryExA},
|
||||
FF(SetThreadIdealProcessor,-1)
|
||||
FF(SetProcessAffinityMask, -1)
|
||||
FF(EncodePointer, -1)
|
||||
FF(DecodePointer, -1)
|
||||
FF(GetThreadLocale, -1)
|
||||
FF(GetLocaleInfoA, -1)
|
||||
UNDEFF(FlsAlloc, -1)
|
||||
UNDEFF(FlsGetValue, -1)
|
||||
UNDEFF(FlsSetValue, -1)
|
||||
@ -5101,11 +5178,14 @@ struct exports exp_winmm[]={
|
||||
FF(OpenDriver, -1)
|
||||
FF(timeGetDevCaps, -1)
|
||||
FF(timeBeginPeriod, -1)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(timeEndPeriod, -1)
|
||||
FF(waveOutGetNumDevs, -1)
|
||||
#endif
|
||||
};
|
||||
struct exports exp_psapi[]={
|
||||
FF(GetModuleBaseNameA, -1)
|
||||
};
|
||||
struct exports exp_user32[]={
|
||||
FF(LoadIconA,-1)
|
||||
FF(LoadStringA, -1)
|
||||
@ -5117,7 +5197,7 @@ struct exports exp_user32[]={
|
||||
FF(LoadCursorA,-1)
|
||||
FF(SetCursor,-1)
|
||||
FF(GetCursorPos,-1)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(ShowCursor,-1)
|
||||
#endif
|
||||
FF(RegisterWindowMessageA,-1)
|
||||
@ -5129,7 +5209,7 @@ struct exports exp_user32[]={
|
||||
FF(MessageBoxA, -1)
|
||||
FF(RegisterClassA, -1)
|
||||
FF(UnregisterClassA, -1)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(GetWindowRect, -1)
|
||||
FF(MonitorFromWindow, -1)
|
||||
FF(MonitorFromRect, -1)
|
||||
@ -5173,7 +5253,7 @@ struct exports exp_gdi32[]={
|
||||
FF(DeleteObject, -1)
|
||||
FF(GetDeviceCaps, -1)
|
||||
FF(GetSystemPaletteEntries, -1)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(CreatePalette, -1)
|
||||
FF(GetObjectA, -1)
|
||||
FF(CreateRectRgn, -1)
|
||||
@ -5202,7 +5282,7 @@ struct exports exp_crtdll[]={
|
||||
struct exports exp_comctl32[]={
|
||||
FF(StringFromGUID2, -1)
|
||||
FF(InitCommonControls, 17)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(CreateUpDownControl, 16)
|
||||
#endif
|
||||
};
|
||||
@ -5220,8 +5300,10 @@ struct exports exp_msdmo[]={
|
||||
FF(MoInitMediaType, -1)
|
||||
};
|
||||
struct exports exp_oleaut32[]={
|
||||
FF(SysAllocStringLen, 4)
|
||||
FF(SysFreeString, 6)
|
||||
FF(VariantInit, 8)
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
FF(SysStringByteLen, 149)
|
||||
#endif
|
||||
};
|
||||
@ -5261,7 +5343,7 @@ struct exports exp_pncrt[]={
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
struct exports exp_ddraw[]={
|
||||
FF(DirectDrawCreate, -1)
|
||||
};
|
||||
@ -5302,6 +5384,7 @@ struct libs libraries[]={
|
||||
LL(kernel32)
|
||||
LL(msvcrt)
|
||||
LL(winmm)
|
||||
LL(psapi)
|
||||
LL(user32)
|
||||
LL(advapi32)
|
||||
LL(gdi32)
|
||||
@ -5315,7 +5398,7 @@ struct libs libraries[]={
|
||||
#ifdef REALPLAYER
|
||||
LL(pncrt)
|
||||
#endif
|
||||
#ifdef QTX
|
||||
#ifdef CONFIG_QTX_CODECS
|
||||
LL(ddraw)
|
||||
#endif
|
||||
LL(comdlg32)
|
||||
|
@ -13,10 +13,6 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
/*
|
||||
* Win32 was easy to implement under Unix since most (all?) 32-bit
|
||||
* Unices uses the same type model (ILP32) as Win32, where int, long
|
||||
@ -165,8 +161,4 @@ typedef __uint32 DWORD_PTR, *PDWORD_PTR;
|
||||
typedef INT_PTR SSIZE_T, *PSSIZE_T;
|
||||
typedef UINT_PTR SIZE_T, *PSIZE_T;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
#endif /* MPLAYER_BASETSD_H */
|
||||
|
@ -26,10 +26,6 @@ typedef struct
|
||||
int limit_in_pages; /* is the limit in pages or bytes? */
|
||||
enum seg_type type; /* segment type */
|
||||
} ldt_entry;
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
void LDT_BytesToEntry( const unsigned long *buffer, ldt_entry *content );
|
||||
void LDT_EntryToBytes( unsigned long *buffer, const ldt_entry *content );
|
||||
int LDT_GetEntry( int entry, ldt_entry *content );
|
||||
@ -92,8 +88,5 @@ extern unsigned char ldt_flags_copy[LDT_SIZE];
|
||||
(!((sel) & 4) || (SELECTOR_TO_ENTRY(sel) < FIRST_LDT_ENTRY_TO_ALLOC))
|
||||
#define IS_SELECTOR_32BIT(sel) \
|
||||
(IS_SELECTOR_SYSTEM(sel) || (GET_SEL_FLAGS(sel) & LDT_FLAGS_32BIT))
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_LDT_H */
|
||||
|
@ -9,10 +9,6 @@
|
||||
#include "driver.h"
|
||||
#include "mmreg.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
//typedef WORD VERSION; /* major (high byte), minor (low byte) */
|
||||
|
||||
typedef UINT16 MMVERSION16;
|
||||
@ -934,8 +930,4 @@ MMRESULT WINAPI acmStreamUnprepareHeader(
|
||||
HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
#endif /* MPLAYER_MSACM_H */
|
||||
|
@ -6,10 +6,6 @@
|
||||
|
||||
#include "pshpack1.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define NTAPI __stdcall
|
||||
|
||||
#ifndef IN
|
||||
@ -92,10 +88,6 @@ typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
|
||||
}
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "poppack.h"
|
||||
|
||||
#endif /* MPLAYER_NTDEF_H */
|
||||
|
@ -6,10 +6,6 @@
|
||||
#ifndef MPLAYER_VFW_H
|
||||
#define MPLAYER_VFW_H
|
||||
//#include "pshpack1.h"
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "windef.h"
|
||||
|
||||
typedef struct __attribute__((__packed__))
|
||||
@ -667,7 +663,4 @@ typedef struct {
|
||||
#define AVIERR_USERABORT MAKE_AVIERR(198)
|
||||
#define AVIERR_ERROR MAKE_AVIERR(199)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* MPLAYER_VFW_H */
|
||||
|
@ -7,10 +7,6 @@
|
||||
#include "pshpack1.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct tagCOORD {
|
||||
INT16 x;
|
||||
INT16 y;
|
||||
@ -1778,8 +1774,4 @@ VOID WINAPI SetLastError(DWORD);
|
||||
#define GetCurrentProcess() ((HANDLE)0xffffffff)
|
||||
#define GetCurrentThread() ((HANDLE)0xfffffffe)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_WINBASE_H */
|
||||
|
@ -13,14 +13,6 @@
|
||||
|
||||
# include "config.h"
|
||||
|
||||
#ifdef _EGCS_
|
||||
#define __stdcall
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Misc. constants. */
|
||||
|
||||
#ifdef FALSE
|
||||
@ -91,11 +83,9 @@ extern "C" {
|
||||
|
||||
#ifdef __i386__
|
||||
# if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
|
||||
# ifndef _EGCS_
|
||||
#define __stdcall __attribute__((__stdcall__))
|
||||
#define __cdecl __attribute__((__cdecl__))
|
||||
# define RESTORE_ES __asm__ volatile("pushl %ds\n\tpopl %es")
|
||||
# endif
|
||||
# else
|
||||
// # error You need gcc >= 2.7 to build Wine on a 386
|
||||
# endif
|
||||
@ -460,11 +450,9 @@ typedef LRESULT CALLBACK (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
|
||||
/* Macro for structure packing. */
|
||||
|
||||
#ifdef __GNUC__
|
||||
#ifndef _EGCS_
|
||||
#define WINE_PACKED __attribute__((packed))
|
||||
#define WINE_UNUSED __attribute__((unused))
|
||||
#define WINE_NORETURN __attribute__((noreturn))
|
||||
#endif
|
||||
#else
|
||||
#define WINE_PACKED /* nothing */
|
||||
#define WINE_UNUSED /* nothing */
|
||||
@ -633,8 +621,4 @@ typedef const RECTL *LPCRECTL;
|
||||
((r16)->left = (INT16)(r32)->left, (r16)->top = (INT16)(r32)->top, \
|
||||
(r16)->right = (INT16)(r32)->right, (r16)->bottom = (INT16)(r32)->bottom)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_WINDEF_H */
|
||||
|
@ -1,10 +1,6 @@
|
||||
#ifndef MPLAYER_WINDOWS_H
|
||||
#define MPLAYER_WINDOWS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
@ -31,8 +27,4 @@ typedef KANJISTRUCT *PKANJISTRUCT;
|
||||
|
||||
#endif /* 0 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_WINDOWS_H */
|
||||
|
@ -7,10 +7,6 @@
|
||||
#include "winbase.h"
|
||||
#include "winnt.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
/*
|
||||
#define SHELL_ERROR_SUCCESS 0L
|
||||
#define SHELL_ERROR_BADDB 1L
|
||||
@ -50,8 +46,4 @@ typedef struct value_entW {
|
||||
|
||||
typedef ACCESS_MASK REGSAM;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
#endif /* MPLAYER_WINREG_H */
|
||||
|
@ -5,10 +5,6 @@
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "windef.h"
|
||||
#include "pshpack1.h"
|
||||
|
||||
@ -2923,8 +2919,4 @@ VOID WINAPI ScreenSwitchEnable16(WORD);
|
||||
|
||||
#define WC_DIALOG (LPSTR)((DWORD)((WORD)( 0x8002)))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* MPLAYER_WINUSER_H */
|
||||
|
@ -9,11 +9,6 @@
|
||||
|
||||
#include "wine/msacmdrv.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
|
||||
typedef struct WINE_ACMDRIVERID *PWINE_ACMDRIVERID;
|
||||
typedef struct WINE_ACMDRIVER *PWINE_ACMDRIVER;
|
||||
|
||||
@ -65,8 +60,4 @@ PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID);
|
||||
PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver);
|
||||
PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* defined(__cplusplus) */
|
||||
|
||||
#endif /* MPLAYER_WINEACM_H */
|
||||
|
@ -1158,6 +1158,11 @@ void init_vo_spudec(struct MPContext *mpctx)
|
||||
spudec_free(vo_spudec);
|
||||
mpctx->initialized_flags &= ~INITIALIZED_SPUDEC;
|
||||
vo_spudec = NULL;
|
||||
|
||||
// we currently can't work without video stream
|
||||
if (!mpctx->sh_video)
|
||||
return;
|
||||
|
||||
if (spudec_ifo) {
|
||||
unsigned int palette[16], width, height;
|
||||
current_module="spudec_init_vobsub";
|
||||
@ -3848,7 +3853,7 @@ if(!mpctx->sh_video && !mpctx->sh_audio){
|
||||
demux_info_print(mpctx->demuxer);
|
||||
|
||||
//================== Read SUBTITLES (DVD & TEXT) ==========================
|
||||
if(vo_spudec==NULL && mpctx->sh_video &&
|
||||
if(vo_spudec==NULL &&
|
||||
(mpctx->stream->type==STREAMTYPE_DVD || mpctx->stream->type == STREAMTYPE_DVDNAV)){
|
||||
init_vo_spudec(mpctx);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user