annotate libmpcodecs/ad_realaud.c @ 20755:b4c865e17155

Create binaries with proper executable suffix under Windows.
author diego
date Wed, 08 Nov 2006 00:13:33 +0000
parents 776e4be859e9
children abfc5854e80a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
1
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
2 #include <stdio.h>
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
3 #include <stdlib.h>
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
4 #include <unistd.h>
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
5
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
6 #include "config.h"
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
7
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
8 //#include <stddef.h>
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
9 #ifdef HAVE_LIBDL
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
10 #include <dlfcn.h>
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
11 #endif
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
12 #include "help_mp.h"
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
13
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
14 #include "ad_internal.h"
12356
6a61d694f7d3 minimal fix for alex's 1000000000000l compile errors. imo the fix in
rfelker
parents: 10652
diff changeset
15 #include "wine/windef.h"
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
16
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
17 static ad_info_t info = {
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
18 "RealAudio decoder",
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 7172
diff changeset
19 "realaud",
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
20 "Alex Beregszaszi",
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
21 "Florian Schneider, Arpad Gereoffy, Alex Beregszaszi, Donnie Smith",
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
22 "binary real audio codecs"
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
23 };
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
24
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 7172
diff changeset
25 LIBAD_EXTERN(realaud)
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
26
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
27 void *__builtin_new(unsigned long size) {
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
28 return malloc(size);
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
29 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
30
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
31 // required for cook's uninit:
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
32 void __builtin_delete(void* ize) {
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
33 free(ize);
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
34 }
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
35
15566
3758536dcef3 DragonFly BSD support
diego
parents: 14596
diff changeset
36 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
6404
83b3315c679b Implement Nilmoni's and Bernd Ernesti's patches for:
atmos4
parents: 6380
diff changeset
37 void *__ctype_b=NULL;
6377
203128bcc6be FreeBSD hack
nexus
parents: 6376
diff changeset
38 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
39
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
40 static unsigned long (*raCloseCodec)(void*);
7557
f296ff05bcd0 warning fixes
arpi
parents: 7472
diff changeset
41 static unsigned long (*raDecode)(void*, char*,unsigned long,char*,unsigned int*,long);
6745
9734bfbb200a Avoid ulong typedef clash and replace if by unsigned long, patch by Joey Parrish.
atmos4
parents: 6428
diff changeset
42 static unsigned long (*raFlush)(unsigned long,unsigned long,unsigned long);
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
43 static unsigned long (*raFreeDecoder)(void*);
7557
f296ff05bcd0 warning fixes
arpi
parents: 7472
diff changeset
44 static void* (*raGetFlavorProperty)(void*,unsigned long,unsigned long,int*);
6745
9734bfbb200a Avoid ulong typedef clash and replace if by unsigned long, patch by Joey Parrish.
atmos4
parents: 6428
diff changeset
45 //static unsigned long (*raGetNumberOfFlavors2)(void);
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
46 static unsigned long (*raInitDecoder)(void*, void*);
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
47 static unsigned long (*raOpenCodec)(void*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
48 static unsigned long (*raOpenCodec2)(void*, void*);
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
49 static unsigned long (*raSetFlavor)(void*,unsigned long);
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
50 static void (*raSetDLLAccessPath)(char*);
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
51 static void (*raSetPwd)(char*,char*);
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
52 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
53 static unsigned long WINAPI (*wraCloseCodec)(void*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
54 static unsigned long WINAPI (*wraDecode)(void*, char*,unsigned long,char*,unsigned int*,long);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
55 static unsigned long WINAPI (*wraFlush)(unsigned long,unsigned long,unsigned long);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
56 static unsigned long WINAPI (*wraFreeDecoder)(void*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
57 static void* WINAPI (*wraGetFlavorProperty)(void*,unsigned long,unsigned long,int*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
58 static unsigned long WINAPI (*wraInitDecoder)(void*, void*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
59 static unsigned long WINAPI (*wraOpenCodec)(void*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
60 static unsigned long WINAPI (*wraOpenCodec2)(void*, void*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
61 static unsigned long WINAPI (*wraSetFlavor)(void*,unsigned long);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
62 static void WINAPI (*wraSetDLLAccessPath)(char*);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
63 static void WINAPI (*wraSetPwd)(char*,char*);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
64
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
65 static int dll_type = 0; /* 0 = unix dlopen, 1 = win32 dll */
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
66 #endif
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
67
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
68 static void *rv_handle = NULL;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
69
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
70 #if 0
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
71 typedef struct {
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
72 int samplerate;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
73 short bits;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
74 short channels;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
75 int unk1;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
76 int unk2;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
77 int packetsize;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
78 int unk3;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
79 void* unk4;
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
80 } ra_init_t ;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
81 #else
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
82
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
83 /*
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
84 Probably the linux .so-s were compiled with old GCC without setting
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
85 packing, so it adds 2 bytes padding after the quality field.
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
86 In windows it seems that there's no padding in it.
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
87
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
88 -- alex
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
89 */
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
90
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
91 /* linux dlls doesn't need packing */
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
92 typedef struct /*__attribute__((__packed__))*/ {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
93 int samplerate;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
94 short bits;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
95 short channels;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
96 short quality;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
97 /* 2bytes padding here, by gcc */
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
98 int bits_per_frame;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
99 int packetsize;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
100 int extradata_len;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
101 void* extradata;
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
102 } ra_init_t;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
103
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
104 /* windows dlls need packed structs (no padding) */
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
105 typedef struct __attribute__((__packed__)) {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
106 int samplerate;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
107 short bits;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
108 short channels;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
109 short quality;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
110 int bits_per_frame;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
111 int packetsize;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
112 int extradata_len;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
113 void* extradata;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
114 } wra_init_t;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
115 #endif
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
116
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
117 #ifdef HAVE_LIBDL
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
118 static int load_syms_linux(char *path)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
119 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
120 void *handle;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
121
17721
7b336a5585e4 Reduce Real DLL/so loading verbosity, OKed by Roberto.
diego
parents: 17149
diff changeset
122 mp_msg(MSGT_DECVIDEO, MSGL_V, "opening shared obj '%s'\n", path);
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
123 handle = dlopen(path, RTLD_LAZY);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
124 if (!handle)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
125 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
126 mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Error: %s\n", dlerror());
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
127 return 0;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
128 }
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
129
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
130 raCloseCodec = dlsym(handle, "RACloseCodec");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
131 raDecode = dlsym(handle, "RADecode");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
132 raFlush = dlsym(handle, "RAFlush");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
133 raFreeDecoder = dlsym(handle, "RAFreeDecoder");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
134 raGetFlavorProperty = dlsym(handle, "RAGetFlavorProperty");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
135 raOpenCodec = dlsym(handle, "RAOpenCodec");
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
136 raOpenCodec2 = dlsym(handle, "RAOpenCodec2");
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
137 raInitDecoder = dlsym(handle, "RAInitDecoder");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
138 raSetFlavor = dlsym(handle, "RASetFlavor");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
139 raSetDLLAccessPath = dlsym(handle, "SetDLLAccessPath");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
140 raSetPwd = dlsym(handle, "RASetPwd"); // optional, used by SIPR
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
141
10030
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
142 if (raCloseCodec && raDecode && /*raFlush && */raFreeDecoder &&
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
143 raGetFlavorProperty && (raOpenCodec||raOpenCodec2) && raSetFlavor &&
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
144 /*raSetDLLAccessPath &&*/ raInitDecoder)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
145 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
146 rv_handle = handle;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
147 return 1;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
148 }
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
149
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
150 mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Cannot resolve symbols - incompatible dll: %s\n",path);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
151 dlclose(handle);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
152 return 0;
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
153 }
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
154 #endif
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
155
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
156 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
157
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
158 #ifdef WIN32_LOADER
17012
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 16624
diff changeset
159 #include "loader/ldt_keeper.h"
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
160 #endif
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
161 void* WINAPI LoadLibraryA(char* name);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
162 void* WINAPI GetProcAddress(void* handle,char *func);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
163 int WINAPI FreeLibrary(void *handle);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
164
10652
b04560162c1f sysm --> syms typo fix by Joey Parrish
diego
parents: 10444
diff changeset
165 static int load_syms_windows(char *path)
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
166 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
167 void *handle;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
168
17721
7b336a5585e4 Reduce Real DLL/so loading verbosity, OKed by Roberto.
diego
parents: 17149
diff changeset
169 mp_msg(MSGT_DECVIDEO, MSGL_V, "opening win32 dll '%s'\n", path);
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
170 #ifdef WIN32_LOADER
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
171 Setup_LDT_Keeper();
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
172 #endif
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
173 handle = LoadLibraryA(path);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
174 if (!handle)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
175 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
176 mp_msg(MSGT_DECVIDEO, MSGL_WARN, "Error loading dll\n");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
177 return 0;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
178 }
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
179
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
180 wraCloseCodec = GetProcAddress(handle, "RACloseCodec");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
181 wraDecode = GetProcAddress(handle, "RADecode");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
182 wraFlush = GetProcAddress(handle, "RAFlush");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
183 wraFreeDecoder = GetProcAddress(handle, "RAFreeDecoder");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
184 wraGetFlavorProperty = GetProcAddress(handle, "RAGetFlavorProperty");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
185 wraOpenCodec = GetProcAddress(handle, "RAOpenCodec");
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
186 wraOpenCodec2 = GetProcAddress(handle, "RAOpenCodec2");
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
187 wraInitDecoder = GetProcAddress(handle, "RAInitDecoder");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
188 wraSetFlavor = GetProcAddress(handle, "RASetFlavor");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
189 wraSetDLLAccessPath = GetProcAddress(handle, "SetDLLAccessPath");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
190 wraSetPwd = GetProcAddress(handle, "RASetPwd"); // optional, used by SIPR
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
191
10117
d6153fc16ac5 realaudio 28_8 and 14_4 dll support
faust3
parents: 10101
diff changeset
192 if (wraCloseCodec && wraDecode && /*wraFlush && */wraFreeDecoder &&
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
193 wraGetFlavorProperty && (wraOpenCodec || wraOpenCodec2) && wraSetFlavor &&
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
194 /*wraSetDLLAccessPath &&*/ wraInitDecoder)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
195 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
196 rv_handle = handle;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
197 dll_type = 1;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
198 return 1;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
199 }
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
200
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
201 mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Cannot resolve symbols - incompatible dll: %s\n",path);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
202 FreeLibrary(handle);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
203 return 0;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
204
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
205 }
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
206 #endif
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
207
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
208
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
209 static int preinit(sh_audio_t *sh){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
210 // let's check if the driver is available, return 0 if not.
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
211 // (you should do that if you use external lib(s) which is optional)
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
212 unsigned int result;
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
213 int len=0;
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
214 void* prop;
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
215 char *path;
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
216
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
217 path = malloc(strlen(REALCODEC_PATH)+strlen(sh->codec->dll)+2);
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
218 if (!path) return 0;
6404
83b3315c679b Implement Nilmoni's and Bernd Ernesti's patches for:
atmos4
parents: 6380
diff changeset
219 sprintf(path, REALCODEC_PATH "/%s", sh->codec->dll);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
220
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
221 /* first try to load linux dlls, if failed and we're supporting win32 dlls,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
222 then try to load the windows ones */
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
223
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
224 #ifdef HAVE_LIBDL
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
225 if (strstr(sh->codec->dll,".dll") || !load_syms_linux(path))
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
226 #endif
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
227 #ifdef USE_WIN32DLL
10652
b04560162c1f sysm --> syms typo fix by Joey Parrish
diego
parents: 10444
diff changeset
228 if (!load_syms_windows(sh->codec->dll))
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
229 #endif
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
230 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
231 mp_msg(MSGT_DECVIDEO, MSGL_ERR, MSGTR_MissingDLLcodec, sh->codec->dll);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
232 mp_msg(MSGT_DECVIDEO, MSGL_HINT, "Read the RealAudio section of the DOCS!\n");
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
233 free(path);
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
234 return 0;
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
235 }
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
236
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
237 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
238 if((raSetDLLAccessPath && dll_type == 0) || (wraSetDLLAccessPath && dll_type == 1)){
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
239 #else
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
240 if(raSetDLLAccessPath){
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
241 #endif
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
242 int i;
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
243 // used by 'SIPR'
16037
1cf21d852747 Too little memory alloced.
reimar
parents: 15566
diff changeset
244 path = realloc(path, strlen(REALCODEC_PATH) + 13);
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
245 sprintf(path, "DT_Codecs=" REALCODEC_PATH);
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
246 if(path[strlen(path)-1]!='/'){
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
247 path[strlen(path)+1]=0;
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
248 path[strlen(path)]='/';
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
249 }
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
250 path[strlen(path)+1]=0;
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
251 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
252 if (dll_type == 1)
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
253 {
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
254 for (i=0; i < strlen(path); i++)
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
255 if (path[i] == '/') path[i] = '\\';
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
256 wraSetDLLAccessPath(path);
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
257 }
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
258 else
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
259 #endif
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
260 raSetDLLAccessPath(path);
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
261 }
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
262
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
263 #ifdef USE_WIN32DLL
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
264 if (dll_type == 1){
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
265 if(wraOpenCodec2)
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
266 result=wraOpenCodec2(&sh->context,REALCODEC_PATH "\\");
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
267 else
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
268 result=wraOpenCodec(&sh->context);
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
269 } else
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
270 #endif
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
271 if(raOpenCodec2)
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
272 result=raOpenCodec2(&sh->context,REALCODEC_PATH "/");
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
273 else
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
274 result=raOpenCodec(&sh->context);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
275 if(result){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
276 mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Decoder open failed, error code: 0x%X\n",result);
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
277 return 0;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
278 }
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
279 // printf("opencodec ok (result: %x)\n", result);
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
280 free(path); /* after this it isn't used anymore */
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
281
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
282 sh->samplerate=sh->wf->nSamplesPerSec;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
283 sh->samplesize=sh->wf->wBitsPerSample/8;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
284 sh->channels=sh->wf->nChannels;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
285
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
286 {
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
287 ra_init_t init_data={
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
288 sh->wf->nSamplesPerSec,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
289 sh->wf->wBitsPerSample,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
290 sh->wf->nChannels,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
291 100, // quality
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
292 sh->wf->nBlockAlign, // subpacket size
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
293 sh->wf->nBlockAlign, // coded frame size
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
294 sh->wf->cbSize, // codec data length
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
295 (char*)(sh->wf+1) // extras
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
296 };
13860
d6f716fdd734 remove mac shlb support to use new helix codec for realvideo support on osx
nplourde
parents: 12633
diff changeset
297 #ifdef USE_WIN32DLL
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
298 wra_init_t winit_data={
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
299 sh->wf->nSamplesPerSec,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
300 sh->wf->wBitsPerSample,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
301 sh->wf->nChannels,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
302 100, // quality
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
303 sh->wf->nBlockAlign, // subpacket size
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
304 sh->wf->nBlockAlign, // coded frame size
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
305 sh->wf->cbSize, // codec data length
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
306 (char*)(sh->wf+1) // extras
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
307 };
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
308 #endif
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
309 #ifdef USE_WIN32DLL
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
310 if (dll_type == 1)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
311 result=wraInitDecoder(sh->context,&winit_data);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
312 else
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
313 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
314 result=raInitDecoder(sh->context,&init_data);
13860
d6f716fdd734 remove mac shlb support to use new helix codec for realvideo support on osx
nplourde
parents: 12633
diff changeset
315
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
316 if(result){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
317 mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Decoder init failed, error code: 0x%X\n",result);
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
318 return 0;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
319 }
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
320 // printf("initdecoder ok (result: %x)\n", result);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
321 }
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
322
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
323 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
324 if((raSetPwd && dll_type == 0) || (wraSetPwd && dll_type == 1)){
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
325 #else
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
326 if(raSetPwd){
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
327 #endif
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
328 // used by 'SIPR'
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
329 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
330 if (dll_type == 1)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
331 wraSetPwd(sh->context,"Ardubancel Quazanga");
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
332 else
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
333 #endif
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
334 raSetPwd(sh->context,"Ardubancel Quazanga"); // set password... lol.
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
335 }
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
336
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
337 if (sh->format == mmioFOURCC('s','i','p','r')) {
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
338 short flavor;
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
339
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
340 if (sh->wf->nAvgBytesPerSec > 1531)
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
341 flavor = 3;
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
342 else if (sh->wf->nAvgBytesPerSec > 937)
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
343 flavor = 1;
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
344 else if (sh->wf->nAvgBytesPerSec > 719)
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
345 flavor = 0;
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
346 else
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
347 flavor = 2;
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
348 mp_msg(MSGT_DECAUDIO,MSGL_V,"Got sipr flavor %d from bitrate %d\n",flavor, sh->wf->nAvgBytesPerSec);
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
349
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
350 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
351 if (dll_type == 1)
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
352 result=wraSetFlavor(sh->context,flavor);
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
353 else
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
354 #endif
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
355 result=raSetFlavor(sh->context,flavor);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
356 if(result){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
357 mp_msg(MSGT_DECAUDIO,MSGL_WARN,"Decoder flavor setup failed, error code: 0x%X\n",result);
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
358 return 0;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
359 }
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
360 } // sipr flavor
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
361
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
362 sh->i_bps=sh->wf->nAvgBytesPerSec;
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
363
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
364 sh->audio_out_minsize=128000; // no idea how to get... :(
17149
9a0a376a54b1 Move audio packets reordering from codec interface to demuxers for real
rtognimp
parents: 17012
diff changeset
365 sh->audio_in_minsize = sh->wf->nBlockAlign;
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
366
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
367 return 1; // return values: 1=OK 0=ERROR
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
368 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
369
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
370 static int init(sh_audio_t *sh_audio){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
371 // initialize the decoder, set tables etc...
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
372
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
373 // you can store HANDLE or private struct pointer at sh->context
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
374 // you can access WAVEFORMATEX header at sh->wf
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
375
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
376 // set sample format/rate parameters if you didn't do it in preinit() yet.
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
377
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
378 return 1; // return values: 1=OK 0=ERROR
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
379 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
380
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
381 static void uninit(sh_audio_t *sh){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
382 // uninit the decoder etc...
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
383 // again: you don't have to free() a_in_buffer here! it's done by the core.
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
384 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
385 if (dll_type == 1)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
386 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
387 if (wraFreeDecoder) wraFreeDecoder(sh->context);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
388 if (wraCloseCodec) wraCloseCodec(sh->context);
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
389 }
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
390 #endif
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
391
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
392 if (raFreeDecoder) raFreeDecoder(sh->context);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
393 if (raCloseCodec) raCloseCodec(sh->context);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
394
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
395
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
396 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
397 if (dll_type == 1)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
398 {
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
399 if (rv_handle) FreeLibrary(rv_handle);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
400 } else
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
401 #endif
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
402 // this dlclose() causes some memory corruption, and crashes soon (in caller):
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
403 // if (rv_handle) dlclose(rv_handle);
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
404 rv_handle = NULL;
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
405 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
406
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
407 static int decode_audio(sh_audio_t *sh,unsigned char *buf,int minlen,int maxlen){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
408 int result;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
409 int len=-1;
7104
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
410
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
411 if(sh->a_in_buffer_len<=0){
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
412 // fill the buffer!
19135
776e4be859e9 Quit on eof, was broken by r17150
rtogni
parents: 18771
diff changeset
413 if (sh->ds->eof)
776e4be859e9 Quit on eof, was broken by r17150
rtogni
parents: 18771
diff changeset
414 return 0;
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
415 demux_read_data(sh->ds, sh->a_in_buffer, sh->wf->nBlockAlign);
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
416 sh->a_in_buffer_size=
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
417 sh->a_in_buffer_len=sh->wf->nBlockAlign;
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
418 }
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
419
9395
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
420 #ifdef USE_WIN32DLL
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
421 if (dll_type == 1)
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
422 result=wraDecode(sh->context, sh->a_in_buffer+sh->a_in_buffer_size-sh->a_in_buffer_len, sh->wf->nBlockAlign,
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
423 buf, &len, -1);
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
424 else
2d651a218031 windows support and eleminating some 10ls. Win32 ATRC has audio artifacts, Win32 SIPR is just silent, but at least Win32 COOK works nice -- at least by me, on linux
alex
parents: 8094
diff changeset
425 #endif
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
426 result=raDecode(sh->context, sh->a_in_buffer+sh->a_in_buffer_size-sh->a_in_buffer_len, sh->wf->nBlockAlign,
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
427 buf, &len, -1);
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
428 sh->a_in_buffer_len-=sh->wf->nBlockAlign;
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
429
6376
e3c74c01a3a2 use path & dllname from config
arpi
parents: 6373
diff changeset
430 // printf("radecode: %d bytes, res=0x%X \n",len,result);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
431
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
432 return len; // return value: number of _bytes_ written to output buffer,
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
433 // or -1 for EOF (or uncorrectable error)
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
434 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
435
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
436 static int control(sh_audio_t *sh,int cmd,void* arg, ...){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
437 // various optional functions you MAY implement:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
438 switch(cmd){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
439 case ADCTRL_RESYNC_STREAM:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
440 // it is called once after seeking, to resync.
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
441 // Note: sh_audio->a_in_buffer_len=0; is done _before_ this call!
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
442 return CONTROL_TRUE;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
443 case ADCTRL_SKIP_FRAME:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
444 // it is called to skip (jump over) small amount (1/10 sec or 1 frame)
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
445 // of audio data - used to sync audio to video after seeking
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
446 // if you don't return CONTROL_TRUE, it will defaults to:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
447 // ds_fill_buffer(sh_audio->ds); // skip 1 demux packet
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
448 return CONTROL_TRUE;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
449 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
450 return CONTROL_UNKNOWN;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
451 }