parent
9c406f6a19
commit
758952adde
@ -1 +1 @@
|
||||
vlc-0.9.4.tar.bz2
|
||||
vlc-0.9.5.tar.bz2
|
||||
|
@ -0,0 +1,209 @@
|
||||
Index: vlc-0.9.0-svn/libs/loader/Makefile.am
|
||||
===================================================================
|
||||
--- vlc-0.9.0-svn.orig/libs/loader/Makefile.am
|
||||
+++ vlc-0.9.0-svn/libs/loader/Makefile.am
|
||||
@@ -16,7 +16,7 @@ endif
|
||||
# TODO: real check for vsscanf() and <sys/mmap.h>
|
||||
AM_CPPFLAGS = -D__WINE__ -DHAVE_SYS_MMAN_H=1 -DHAVE_VSSCANF=1 \
|
||||
-DWIN32_PATH=\"\" -DTRACE\(...\)=\(void\)0
|
||||
-AM_CFLAGS = -fno-PIC `$(top_builddir)/vlc-config --cflags` -U_FILE_OFFSET_BITS \
|
||||
+AM_CFLAGS = -fPIC `$(top_builddir)/vlc-config --cflags` -U_FILE_OFFSET_BITS \
|
||||
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
|
||||
|
||||
noinst_HEADERS = com.h driver.h ext.h ldt_keeper.h loader.h registry.h \
|
||||
Index: vlc-0.9.0-svn/libs/loader/module.c
|
||||
===================================================================
|
||||
--- vlc-0.9.0-svn.orig/libs/loader/module.c
|
||||
+++ vlc-0.9.0-svn/libs/loader/module.c
|
||||
@@ -63,8 +63,8 @@
|
||||
|
||||
#ifdef EMU_QTX_API
|
||||
#include "wrapper.h"
|
||||
-static int report_func(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags);
|
||||
-static int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags);
|
||||
+int report_func(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags);
|
||||
+int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags);
|
||||
#endif
|
||||
|
||||
//#undef TRACE
|
||||
@@ -572,8 +572,6 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR lib
|
||||
fprintf(stderr,"QuickTime.qts patched!!! old entry=%p\n",ptr[0]);
|
||||
|
||||
#ifdef EMU_QTX_API
|
||||
- report_entry = report_func;
|
||||
- report_ret = report_func_ret;
|
||||
wrapper_target=ptr[0];
|
||||
ptr[0]=wrapper;
|
||||
#endif
|
||||
@@ -754,7 +752,7 @@ static int dump_component(char* name,int
|
||||
static uint32_t ret_array[4096];
|
||||
static int ret_i=0;
|
||||
|
||||
-static int report_func(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags)
|
||||
+int report_func(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags)
|
||||
{
|
||||
#ifdef DEBUG_QTX_API
|
||||
int i;
|
||||
@@ -953,7 +951,7 @@ static int report_func(void *stack_base,
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags)
|
||||
+int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags)
|
||||
{
|
||||
int i;
|
||||
short err;
|
||||
@@ -1066,8 +1064,6 @@ FARPROC MODULE_GetProcAddress(
|
||||
// || !strcmp(function,"_CallComponent")
|
||||
){
|
||||
fprintf(stderr,"theQuickTimeDispatcher catched -> %p\n",retproc);
|
||||
- report_entry = report_func;
|
||||
- report_ret = report_func_ret;
|
||||
wrapper_target=(void(*)(void))retproc;
|
||||
retproc=(FARPROC)wrapper;
|
||||
}
|
||||
Index: vlc-0.9.0-svn/libs/loader/stubs.s
|
||||
===================================================================
|
||||
--- vlc-0.9.0-svn.orig/libs/loader/stubs.s
|
||||
+++ vlc-0.9.0-svn/libs/loader/stubs.s
|
||||
@@ -33,3 +33,6 @@ exp_EH_prolog:
|
||||
leal 12(%esp), %ebp
|
||||
pushl %eax
|
||||
ret
|
||||
+
|
||||
+.section .note.GNU-stack,"",@progbits
|
||||
+
|
||||
Index: vlc-0.9.0-svn/libs/loader/wrapper.S
|
||||
===================================================================
|
||||
--- vlc-0.9.0-svn.orig/libs/loader/wrapper.S
|
||||
+++ vlc-0.9.0-svn/libs/loader/wrapper.S
|
||||
@@ -1,17 +1,19 @@
|
||||
.section .data
|
||||
-.globl caller_return
|
||||
caller_return:
|
||||
.long 0
|
||||
-.globl report_entry
|
||||
-report_entry:
|
||||
- .long null_call
|
||||
-.globl report_ret
|
||||
-report_ret:
|
||||
- .long null_call
|
||||
.global wrapper_target
|
||||
wrapper_target:
|
||||
.long null_call
|
||||
|
||||
+#undef __i686 /* gcc define gets in our way */
|
||||
+ .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
|
||||
+.globl __i686.get_pc_thunk.bx
|
||||
+ .hidden __i686.get_pc_thunk.bx
|
||||
+ .type __i686.get_pc_thunk.bx,@function
|
||||
+__i686.get_pc_thunk.bx:
|
||||
+ movl (%esp), %ebx
|
||||
+ ret
|
||||
+
|
||||
.section .text
|
||||
.globl null_call
|
||||
.type null_call, @function
|
||||
@@ -22,46 +24,60 @@ null_call:
|
||||
.type wrapper, @function
|
||||
.balign 16,0x90
|
||||
wrapper:
|
||||
+ pushl $0
|
||||
pusha # store registers (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI)
|
||||
pushf # store flags
|
||||
|
||||
push %ebp # set up a stack frame
|
||||
movl %esp, %ebp
|
||||
|
||||
+ call __i686.get_pc_thunk.bx
|
||||
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||
+
|
||||
leal 4(%ebp), %eax # push flags addr
|
||||
push %eax
|
||||
leal 8(%ebp), %eax # push registers addr
|
||||
push %eax
|
||||
-
|
||||
- leal 40(%ebp), %edx
|
||||
+
|
||||
+ leal 44(%ebp), %edx
|
||||
movl (%ebp), %eax
|
||||
subl %edx, %eax
|
||||
push %eax
|
||||
push %edx
|
||||
-
|
||||
- call *report_entry # report entry
|
||||
-
|
||||
+
|
||||
+ call report_func@PLT # report entry
|
||||
+
|
||||
test %eax, %eax
|
||||
jnz .Ldone
|
||||
|
||||
+ movl 44(%ebp), %eax # switch return addresses
|
||||
+ movl %eax, caller_return@GOTOFF(%ebx)
|
||||
+ leal .Lwrapper_return@GOTOFF(%ebx), %eax
|
||||
+ movl %eax, 40(%ebp)
|
||||
+
|
||||
+ movl wrapper_target@GOTOFF(%ebx), %eax
|
||||
+ mov %eax, 40(%ebp) # wrapper_target should return at .Lwrapper_return
|
||||
+
|
||||
leave # restore %esp, %ebp
|
||||
popf # restore flags
|
||||
popa # restore registers
|
||||
-
|
||||
- popl caller_return # switch return addresses
|
||||
- pushl $.Lwrapper_return
|
||||
-
|
||||
- jmp *wrapper_target # wrapper_target should return at .Lwrapper_return
|
||||
+
|
||||
+ ret
|
||||
|
||||
.balign 16, 0x90
|
||||
.Lwrapper_return:
|
||||
- pushl caller_return # restore the original return address
|
||||
+ pushl $0 # restore the original return address
|
||||
pusha # more for reference sake here
|
||||
pushf
|
||||
|
||||
push %ebp # set up a stack frame
|
||||
movl %esp, %ebp
|
||||
|
||||
+ call __i686.get_pc_thunk.bx
|
||||
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
||||
+ movl caller_return@GOTOFF(%ebx), %eax
|
||||
+ movl %eax, 40(%ebp) # restore the original return address
|
||||
+
|
||||
leal 4(%ebp), %eax # push flags addr
|
||||
push %eax
|
||||
leal 8(%ebp), %eax # push registers addr
|
||||
@@ -73,11 +89,13 @@ wrapper:
|
||||
push %eax
|
||||
push %edx
|
||||
|
||||
- call *report_ret # report the return information (same args)
|
||||
+ call report_func_ret@PLT# report the return information (same args)
|
||||
.Ldone:
|
||||
|
||||
leave
|
||||
popf
|
||||
popa
|
||||
ret
|
||||
-
|
||||
+
|
||||
+.section .note.GNU-stack,"",@progbits
|
||||
+
|
||||
Index: vlc-0.9.0-svn/libs/loader/wrapper.h
|
||||
===================================================================
|
||||
--- vlc-0.9.0-svn.orig/libs/loader/wrapper.h
|
||||
+++ vlc-0.9.0-svn/libs/loader/wrapper.h
|
||||
@@ -7,10 +7,6 @@ typedef struct {
|
||||
uint32_t edi, esi, ebp, esp, ebx, edx, ecx, eax;
|
||||
} reg386_t;
|
||||
|
||||
-typedef int (*wrapper_func_t)(void *stack_base, int stack_size, reg386_t *reg, uint32_t *flags);
|
||||
-
|
||||
-extern wrapper_func_t report_entry, report_ret;
|
||||
-
|
||||
extern void (*wrapper_target)(void);
|
||||
|
||||
extern int wrapper(void);
|
@ -0,0 +1,154 @@
|
||||
Index: vlc-0.9.0-svn/modules/video_chroma/i420_rgb_mmx.h
|
||||
===================================================================
|
||||
--- vlc-0.9.0-svn.orig/modules/video_chroma/i420_rgb_mmx.h
|
||||
+++ vlc-0.9.0-svn/modules/video_chroma/i420_rgb_mmx.h
|
||||
@@ -34,18 +34,18 @@
|
||||
#define USED_U64(foo) \
|
||||
static const uint64_t foo __asm__ (#foo) __attribute__((unused))
|
||||
#endif
|
||||
-USED_U64(mmx_80w) = 0x0080008000800080ULL;
|
||||
-USED_U64(mmx_10w) = 0x1010101010101010ULL;
|
||||
-USED_U64(mmx_00ffw) = 0x00ff00ff00ff00ffULL;
|
||||
-USED_U64(mmx_Y_coeff) = 0x253f253f253f253fULL;
|
||||
-
|
||||
-USED_U64(mmx_U_green) = 0xf37df37df37df37dULL;
|
||||
-USED_U64(mmx_U_blue) = 0x4093409340934093ULL;
|
||||
-USED_U64(mmx_V_red) = 0x3312331233123312ULL;
|
||||
-USED_U64(mmx_V_green) = 0xe5fce5fce5fce5fcULL;
|
||||
+USED_U64(mmx_80w) = 0x0080008000800080ULL; /* Will be referenced as %4 in inline asm */
|
||||
+USED_U64(mmx_10w) = 0x1010101010101010ULL; /* -- as %5 */
|
||||
+USED_U64(mmx_00ffw) = 0x00ff00ff00ff00ffULL; /* -- as %6 */
|
||||
+USED_U64(mmx_Y_coeff) = 0x253f253f253f253fULL; /* -- as %7 */
|
||||
+
|
||||
+USED_U64(mmx_U_green) = 0xf37df37df37df37dULL; /* -- as %8 */
|
||||
+USED_U64(mmx_U_blue) = 0x4093409340934093ULL; /* -- as %9 */
|
||||
+USED_U64(mmx_V_red) = 0x3312331233123312ULL; /* -- as %10 */
|
||||
+USED_U64(mmx_V_green) = 0xe5fce5fce5fce5fcULL; /* -- as %11 */
|
||||
|
||||
-USED_U64(mmx_mask_f8) = 0xf8f8f8f8f8f8f8f8ULL;
|
||||
-USED_U64(mmx_mask_fc) = 0xfcfcfcfcfcfcfcfcULL;
|
||||
+USED_U64(mmx_mask_f8) = 0xf8f8f8f8f8f8f8f8ULL; /* -- as %12 */
|
||||
+USED_U64(mmx_mask_fc) = 0xfcfcfcfcfcfcfcfcULL; /* -- as %13 */
|
||||
#undef USED_U64
|
||||
|
||||
#if defined(CAN_COMPILE_MMX)
|
||||
@@ -59,18 +59,16 @@ USED_U64(mmx_mask_fc) = 0xfcfcfcfcfcfcfc
|
||||
MMX_INSTRUCTIONS \
|
||||
: \
|
||||
: "r" (p_y), "r" (p_u), \
|
||||
- "r" (p_v), "r" (p_buffer) ); \
|
||||
+ "r" (p_v), "r" (p_buffer), \
|
||||
+ "m" (mmx_80w), "m" (mmx_10w), \
|
||||
+ "m" (mmx_00ffw), "m" (mmx_Y_coeff), \
|
||||
+ "m" (mmx_U_green), "m" (mmx_U_blue), \
|
||||
+ "m" (mmx_V_red), "m" (mmx_V_green), \
|
||||
+ "m" (mmx_mask_f8), "m" (mmx_mask_fc) ); \
|
||||
} while(0)
|
||||
|
||||
#define MMX_END __asm__ __volatile__ ( "emms" )
|
||||
|
||||
-/* Use RIP-relative code in PIC mode on amd64 */
|
||||
-#if defined(__x86_64__) && defined(__PIC__)
|
||||
-# define G "(%%rip)"
|
||||
-#else
|
||||
-# define G
|
||||
-#endif
|
||||
-
|
||||
#define MMX_INIT_16 " \n\
|
||||
movd (%1), %%mm0 # Load 4 Cb 00 00 00 00 u3 u2 u1 u0 \n\
|
||||
movd (%2), %%mm1 # Load 4 Cr 00 00 00 00 v3 v2 v1 v0 \n\
|
||||
@@ -103,27 +101,27 @@ movq (%0), %%mm6 # Load 8 Y
|
||||
# convert the chroma part \n\
|
||||
punpcklbw %%mm4, %%mm0 # scatter 4 Cb 00 u3 00 u2 00 u1 00 u0 \n\
|
||||
punpcklbw %%mm4, %%mm1 # scatter 4 Cr 00 v3 00 v2 00 v1 00 v0 \n\
|
||||
-psubsw mmx_80w"G", %%mm0 # Cb -= 128 \n\
|
||||
-psubsw mmx_80w"G", %%mm1 # Cr -= 128 \n\
|
||||
+psubsw %4, %%mm0 # Cb -= 128 \n\
|
||||
+psubsw %4, %%mm1 # Cr -= 128 \n\
|
||||
psllw $3, %%mm0 # Promote precision \n\
|
||||
psllw $3, %%mm1 # Promote precision \n\
|
||||
movq %%mm0, %%mm2 # Copy 4 Cb 00 u3 00 u2 00 u1 00 u0 \n\
|
||||
movq %%mm1, %%mm3 # Copy 4 Cr 00 v3 00 v2 00 v1 00 v0 \n\
|
||||
-pmulhw mmx_U_green"G", %%mm2 # Mul Cb with green coeff -> Cb green \n\
|
||||
-pmulhw mmx_V_green"G", %%mm3 # Mul Cr with green coeff -> Cr green \n\
|
||||
-pmulhw mmx_U_blue"G", %%mm0 # Mul Cb -> Cblue 00 b3 00 b2 00 b1 00 b0 \n\
|
||||
-pmulhw mmx_V_red"G", %%mm1 # Mul Cr -> Cred 00 r3 00 r2 00 r1 00 r0 \n\
|
||||
+pmulhw %8, %%mm2 # Mul Cb with green coeff -> Cb green \n\
|
||||
+pmulhw %11, %%mm3 # Mul Cr with green coeff -> Cr green \n\
|
||||
+pmulhw %9, %%mm0 # Mul Cb -> Cblue 00 b3 00 b2 00 b1 00 b0 \n\
|
||||
+pmulhw %10, %%mm1 # Mul Cr -> Cred 00 r3 00 r2 00 r1 00 r0 \n\
|
||||
paddsw %%mm3, %%mm2 # Cb green + Cr green -> Cgreen \n\
|
||||
\n\
|
||||
# convert the luma part \n\
|
||||
-psubusb mmx_10w"G", %%mm6 # Y -= 16 \n\
|
||||
+psubusb %5, %%mm6 # Y -= 16 \n\
|
||||
movq %%mm6, %%mm7 # Copy 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 \n\
|
||||
-pand mmx_00ffw"G", %%mm6 # get Y even 00 Y6 00 Y4 00 Y2 00 Y0 \n\
|
||||
+pand %6, %%mm6 # get Y even 00 Y6 00 Y4 00 Y2 00 Y0 \n\
|
||||
psrlw $8, %%mm7 # get Y odd 00 Y7 00 Y5 00 Y3 00 Y1 \n\
|
||||
psllw $3, %%mm6 # Promote precision \n\
|
||||
psllw $3, %%mm7 # Promote precision \n\
|
||||
-pmulhw mmx_Y_coeff"G", %%mm6 # Mul 4 Y even 00 y6 00 y4 00 y2 00 y0 \n\
|
||||
-pmulhw mmx_Y_coeff"G", %%mm7 # Mul 4 Y odd 00 y7 00 y5 00 y3 00 y1 \n\
|
||||
+pmulhw %7, %%mm6 # Mul 4 Y even 00 y6 00 y4 00 y2 00 y0 \n\
|
||||
+pmulhw %7, %%mm7 # Mul 4 Y odd 00 y7 00 y5 00 y3 00 y1 \n\
|
||||
"
|
||||
|
||||
/*
|
||||
@@ -168,14 +166,14 @@ punpcklbw %%mm5, %%mm2 #
|
||||
|
||||
#define MMX_YUV_GRAY " \n\
|
||||
# convert the luma part \n\
|
||||
-psubusb mmx_10w"G", %%mm6 \n\
|
||||
+psubusb %5, %%mm6 \n\
|
||||
movq %%mm6, %%mm7 \n\
|
||||
-pand mmx_00ffw"G", %%mm6 \n\
|
||||
+pand %6, %%mm6 \n\
|
||||
psrlw $8, %%mm7 \n\
|
||||
psllw $3, %%mm6 \n\
|
||||
psllw $3, %%mm7 \n\
|
||||
-pmulhw mmx_Y_coeff"G", %%mm6 \n\
|
||||
-pmulhw mmx_Y_coeff"G", %%mm7 \n\
|
||||
+pmulhw %7, %%mm6 \n\
|
||||
+pmulhw %7, %%mm7 \n\
|
||||
packuswb %%mm6, %%mm6 \n\
|
||||
packuswb %%mm7, %%mm7 \n\
|
||||
punpcklbw %%mm7, %%mm6 \n\
|
||||
@@ -183,8 +181,8 @@ punpcklbw %%mm7, %%mm6
|
||||
|
||||
#define MMX_UNPACK_16_GRAY " \n\
|
||||
movq %%mm6, %%mm5 \n\
|
||||
-pand mmx_mask_f8"G", %%mm6 \n\
|
||||
-pand mmx_mask_fc"G", %%mm5 \n\
|
||||
+pand %12, %%mm6 \n\
|
||||
+pand %13, %%mm5 \n\
|
||||
movq %%mm6, %%mm7 \n\
|
||||
psrlw $3, %%mm7 \n\
|
||||
pxor %%mm3, %%mm3 \n\
|
||||
@@ -213,10 +211,10 @@ movq %%mm2, 8(%3)
|
||||
|
||||
#define MMX_UNPACK_15 " \n\
|
||||
# mask unneeded bits off \n\
|
||||
-pand mmx_mask_f8"G", %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\
|
||||
+pand %12, %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\
|
||||
psrlw $3,%%mm0 # ______b7 b6b5b4b3 ______b7 b6b5b4b3 \n\
|
||||
-pand mmx_mask_f8"G", %%mm2 # g7g6g5g4 g3______ g7g6g5g4 g3______ \n\
|
||||
-pand mmx_mask_f8"G", %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\
|
||||
+pand %12, %%mm2 # g7g6g5g4 g3______ g7g6g5g4 g3______ \n\
|
||||
+pand %12, %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\
|
||||
psrlw $1,%%mm1 # __r7r6r5 r4r3____ __r7r6r5 r4r3____ \n\
|
||||
pxor %%mm4, %%mm4 # zero mm4 \n\
|
||||
movq %%mm0, %%mm5 # Copy B7-B0 \n\
|
||||
@@ -249,9 +247,9 @@ movq %%mm5, 8(%3) # store
|
||||
|
||||
#define MMX_UNPACK_16 " \n\
|
||||
# mask unneeded bits off \n\
|
||||
-pand mmx_mask_f8"G", %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\
|
||||
-pand mmx_mask_fc"G", %%mm2 # g7g6g5g4 g3g2____ g7g6g5g4 g3g2____ \n\
|
||||
-pand mmx_mask_f8"G", %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\
|
||||
+pand %12, %%mm0 # b7b6b5b4 b3______ b7b6b5b4 b3______ \n\
|
||||
+pand %13, %%mm2 # g7g6g5g4 g3g2____ g7g6g5g4 g3g2____ \n\
|
||||
+pand %12, %%mm1 # r7r6r5r4 r3______ r7r6r5r4 r3______ \n\
|
||||
psrlw $3,%%mm0 # ______b7 b6b5b4b3 ______b7 b6b5b4b3 \n\
|
||||
pxor %%mm4, %%mm4 # zero mm4 \n\
|
||||
movq %%mm0, %%mm5 # Copy B7-B0 \n\
|
@ -1 +1 @@
|
||||
786628aaf8f30a9b812975b67c88b971 vlc-0.9.4.tar.bz2
|
||||
e5be36243e75fff5476c01cc6083d43d vlc-0.9.5.tar.bz2
|
||||
|
@ -0,0 +1,22 @@
|
||||
Re-enable the embedded video; Patch ported from this commit:
|
||||
|
||||
commit 9c26b8e2a04468aa4b4a158f072d760a991932db
|
||||
Author: Rémi Denis-Courmont <rdenis@simphalempin.com>
|
||||
Date: Thu Oct 9 23:06:21 2008 +0300
|
||||
|
||||
Enable embedded video with Qt >= 4.3 - hopefully fixes #2136
|
||||
|
||||
Index: vlc-0.9.4/modules/gui/qt4/qt4.cpp
|
||||
===================================================================
|
||||
--- vlc-0.9.4.orig/modules/gui/qt4/qt4.cpp
|
||||
+++ vlc-0.9.4/modules/gui/qt4/qt4.cpp
|
||||
@@ -213,7 +213,7 @@ vlc_module_begin();
|
||||
|
||||
set_callbacks( OpenDialogs, Close );
|
||||
|
||||
-#ifdef WIN32
|
||||
+#if !defined (Q_WS_X11) || HAS_QT43
|
||||
add_submodule();
|
||||
set_capability( "vout window", 50 );
|
||||
set_callbacks( WindowOpen, WindowClose );
|
||||
|
Loading…
Reference in new issue