annotate libmpcodecs/ad_realaud.c @ 15415:c73564d69136

1.891: vstrict vs mjpeg update, typo 1.892: sync to x264 r137: adaptive B-frame decision, flush delayed frames 1.893: missing linebreak (skipped) 1.894: Move audio filter descriptions to the man page. 1.895: changed noreorder to reorder in mpegopts (ordering disabled by default) (skipped) 1.897: both reorder and noreorder flags are now available (skipped) 1.898: Document reorder and noreorder as (no)reorder. (skipped, last three were fixed prviously) 1.899: where the hell they got these infos from (native-endianness)
author kraymer
date Wed, 11 May 2005 20:57:28 +0000
parents 500eb730c784
children 3758536dcef3
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
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
8 #ifdef USE_REALCODECS
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
9
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
10 //#include <stddef.h>
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
11 #ifdef HAVE_LIBDL
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
12 #include <dlfcn.h>
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
13 #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
14 #include "help_mp.h"
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
15
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
16 #include "ad_internal.h"
12356
6a61d694f7d3 minimal fix for alex's 1000000000000l compile errors. imo the fix in
rfelker
parents: 10652
diff changeset
17 #include "wine/windef.h"
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
18
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
19 static ad_info_t info = {
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
20 "RealAudio decoder",
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 7172
diff changeset
21 "realaud",
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
22 "Alex Beregszaszi",
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
23 "Florian Schneider, Arpad Gereoffy, Alex Beregszaszi, Donnie Smith",
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
24 "binary real audio codecs"
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
25 };
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
26
7174
7672615cc811 sync driver names with codec-cfg
arpi
parents: 7172
diff changeset
27 LIBAD_EXTERN(realaud)
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
28
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
29 void *__builtin_new(unsigned long size) {
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
30 return malloc(size);
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
31 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
32
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
33 // required for cook's uninit:
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
34 void __builtin_delete(void* ize) {
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
35 free(ize);
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
36 }
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
37
10142
1031f03eec7e OpenBSD support by Bjorn Sandell <biorn@dce.chalmers.se>
alex
parents: 10117
diff changeset
38 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
6404
83b3315c679b Implement Nilmoni's and Bernd Ernesti's patches for:
atmos4
parents: 6380
diff changeset
39 void *__ctype_b=NULL;
6377
203128bcc6be FreeBSD hack
nexus
parents: 6376
diff changeset
40 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
41
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
42 static unsigned long (*raCloseCodec)(void*);
7557
f296ff05bcd0 warning fixes
arpi
parents: 7472
diff changeset
43 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
44 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
45 static unsigned long (*raFreeDecoder)(void*);
7557
f296ff05bcd0 warning fixes
arpi
parents: 7472
diff changeset
46 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
47 //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
48 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
49 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
50 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
51 static unsigned long (*raSetFlavor)(void*,unsigned long);
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
52 static void (*raSetDLLAccessPath)(char*);
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
53 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
54 #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
55 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
56 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
57 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
58 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
59 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
60 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
61 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
62 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
63 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
64 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
65 static void WINAPI (*wraSetPwd)(char*,char*);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
66
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
67 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
68 #endif
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
69
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
70 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
71
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
72 #if 0
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
73 typedef struct {
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
74 int samplerate;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
75 short bits;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
76 short channels;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
77 int unk1;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
78 int unk2;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
79 int packetsize;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
80 int unk3;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
81 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
82 } 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
83 #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
84
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 /*
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 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
87 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
88 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
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 -- 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
91 */
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
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 /* 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
94 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
95 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
96 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
97 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
98 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
99 /* 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
100 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
101 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
102 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
103 void* extradata;
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
104 } ra_init_t;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
105
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
106 /* 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
107 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
108 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
109 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
110 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
111 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
112 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
113 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
114 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
115 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
116 } 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
117 #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
118
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
119 #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
120 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
121 {
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
122 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
123
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 mp_msg(MSGT_DECVIDEO, MSGL_INFO, "opening shared obj '%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
125 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
126 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
127 {
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 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
129 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
130 }
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
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 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
133 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
134 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
135 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
136 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
137 raOpenCodec = dlsym(handle, "RAOpenCodec");
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
138 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
139 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
140 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
141 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
142 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
143
10030
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
144 if (raCloseCodec && raDecode && /*raFlush && */raFreeDecoder &&
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
145 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
146 /*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
147 {
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 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
149 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
150 }
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
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 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
153 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
154 return 0;
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
155 }
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
156 #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
157
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
158 #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
159
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
160 #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
161 #include "../loader/ldt_keeper.h"
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
162 #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
163 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
164 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
165 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
166
10652
b04560162c1f sysm --> syms typo fix by Joey Parrish
diego
parents: 10444
diff changeset
167 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
168 {
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
169 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
170
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 mp_msg(MSGT_DECVIDEO, MSGL_INFO, "opening win32 dll '%s'\n", path);
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
172 #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
173 Setup_LDT_Keeper();
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
174 #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
175 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
176 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
177 {
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 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
179 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
180 }
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
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 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
183 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
184 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
185 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
186 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
187 wraOpenCodec = GetProcAddress(handle, "RAOpenCodec");
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
188 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
189 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
190 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
191 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
192 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
193
10117
d6153fc16ac5 realaudio 28_8 and 14_4 dll support
faust3
parents: 10101
diff changeset
194 if (wraCloseCodec && wraDecode && /*wraFlush && */wraFreeDecoder &&
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
195 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
196 /*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
197 {
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 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
199 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
200 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
201 }
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
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 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
204 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
205 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
206
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 }
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
208 #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
209
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
210
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
211 static int preinit(sh_audio_t *sh){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
212 // let's check if the driver is available, return 0 if not.
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
213 // (you should do that if you use external lib(s) which is optional)
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
214 unsigned int result;
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
215 int len=0;
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
216 void* prop;
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
217 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
218
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
219 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
220 if (!path) return 0;
6404
83b3315c679b Implement Nilmoni's and Bernd Ernesti's patches for:
atmos4
parents: 6380
diff changeset
221 sprintf(path, REALCODEC_PATH "/%s", sh->codec->dll);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
222
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
223 /* 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
224 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
225
10093
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
226 #ifdef HAVE_LIBDL
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
227 if (strstr(sh->codec->dll,".dll") || !load_syms_linux(path))
ad83de1c0038 cygwin/mingw32 support by Sascha Sommer
alex
parents: 10030
diff changeset
228 #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
229 #ifdef USE_WIN32DLL
10652
b04560162c1f sysm --> syms typo fix by Joey Parrish
diego
parents: 10444
diff changeset
230 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
231 #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
232 {
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
233 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
234 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
235 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
236 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
237 }
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
238
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
239 #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
240 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
241 #else
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
242 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
243 #endif
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
244 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
245 // used by 'SIPR'
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
246 path = realloc(path, strlen(REALCODEC_PATH) + 12);
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
247 sprintf(path, "DT_Codecs=" REALCODEC_PATH);
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
248 if(path[strlen(path)-1]!='/'){
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
249 path[strlen(path)+1]=0;
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
250 path[strlen(path)]='/';
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
251 }
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
252 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
253 #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
254 if (dll_type == 1)
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
255 {
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
256 for (i=0; i < strlen(path); i++)
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
257 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
258 wraSetDLLAccessPath(path);
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
259 }
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
260 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
261 #endif
7752
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
262 raSetDLLAccessPath(path);
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
263 }
18f8233094da tell the codec wrapper the codec path (fixes realaudio Sipr)
arpi
parents: 7557
diff changeset
264
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
265 #ifdef USE_WIN32DLL
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
266 if (dll_type == 1){
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
267 if(wraOpenCodec2)
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
268 result=wraOpenCodec2(&sh->context,REALCODEC_PATH "\\");
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
269 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
270 result=wraOpenCodec(&sh->context);
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
271 } else
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
272 #endif
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
273 if(raOpenCodec2)
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
274 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
275 else
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
276 result=raOpenCodec(&sh->context);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
277 if(result){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
278 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
279 return 0;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
280 }
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
281 // printf("opencodec ok (result: %x)\n", result);
10101
f3f3e25f8149 use dynamic path[] allocation and possible better wraSetDLLAccessPath mechanism :)
alex
parents: 10093
diff changeset
282 free(path); /* after this it isn't used anymore */
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
283
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
284 sh->samplerate=sh->wf->nSamplesPerSec;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
285 sh->samplesize=sh->wf->wBitsPerSample/8;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
286 sh->channels=sh->wf->nChannels;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
287
7472
c4434bdf6e51 tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bug
arpi
parents: 7180
diff changeset
288 {
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
289 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
290 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
291 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
292 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
293 100, // 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
294 ((short*)(sh->wf+1))[0], // subpacket size
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
295 ((short*)(sh->wf+1))[3], // coded frame size
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 ((short*)(sh->wf+1))[4], // codec data length
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
297 ((char*)(sh->wf+1))+10 // extras
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 };
13860
d6f716fdd734 remove mac shlb support to use new helix codec for realvideo support on osx
nplourde
parents: 12633
diff changeset
299 #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
300 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
301 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
302 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
303 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
304 100, // quality
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
305 ((short*)(sh->wf+1))[0], // subpacket size
8094
b8a90a2af611 - realaudio ATRC (sony atrac3) codec support
arpi
parents: 7752
diff changeset
306 ((short*)(sh->wf+1))[3], // coded frame size
b8a90a2af611 - realaudio ATRC (sony atrac3) codec support
arpi
parents: 7752
diff changeset
307 ((short*)(sh->wf+1))[4], // codec data length
b8a90a2af611 - realaudio ATRC (sony atrac3) codec support
arpi
parents: 7752
diff changeset
308 ((char*)(sh->wf+1))+10 // extras
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
309 };
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
310 #endif
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
311 #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
312 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
313 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
314 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
315 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
316 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
317
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
318 if(result){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
319 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
320 return 0;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
321 }
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
322 // printf("initdecoder ok (result: %x)\n", result);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
323 }
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
324
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
325 #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
326 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
327 #else
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
328 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
329 #endif
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
330 // 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
331 #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
332 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
333 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
334 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
335 #endif
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
336 raSetPwd(sh->context,"Ardubancel Quazanga"); // set password... lol.
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
337 }
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
338
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
339 #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
340 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
341 result=wraSetFlavor(sh->context,((short*)(sh->wf+1))[2]);
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
342 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
343 #endif
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
344 result=raSetFlavor(sh->context,((short*)(sh->wf+1))[2]);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
345 if(result){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
346 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
347 return 0;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
348 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
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)
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
352 prop=wraGetFlavorProperty(sh->context,((short*)(sh->wf+1))[2],0,&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
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
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
355 prop=raGetFlavorProperty(sh->context,((short*)(sh->wf+1))[2],0,&len);
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
356 mp_msg(MSGT_DECAUDIO,MSGL_INFO,"Audio codec: [%d] %s\n",((short*)(sh->wf+1))[2],prop);
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
357
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
358 #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
359 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
360 prop=wraGetFlavorProperty(sh->context,((short*)(sh->wf+1))[2],1,&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
361 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
362 #endif
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
363 prop=raGetFlavorProperty(sh->context,((short*)(sh->wf+1))[2],1,&len);
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
364 if(prop){
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
365 sh->i_bps=((*((int*)prop))+4)/8;
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
366 mp_msg(MSGT_DECAUDIO,MSGL_INFO,"Audio bitrate: %5.3f kbit/s (%d bps) \n",(*((int*)prop))*0.001f,sh->i_bps);
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
367 } else
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
368 sh->i_bps=12000; // dunno :((( [12000 seems to be OK for crash.rmvb too]
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
369
6380
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
370 // prop=raGetFlavorProperty(sh->context,((short*)(sh->wf+1))[2],0x13,&len);
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
371 // mp_msg(MSGT_DECAUDIO,MSGL_INFO,"Samples/block?: %d \n",(*((int*)prop)));
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
372
947d6a639c5a fixed copyright
arpi
parents: 6377
diff changeset
373 sh->audio_out_minsize=128000; // no idea how to get... :(
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
374 sh->audio_in_minsize=((short*)(sh->wf+1))[1]*sh->wf->nBlockAlign;
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
375
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
376 return 1; // return values: 1=OK 0=ERROR
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
377 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
378
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
379 static int init(sh_audio_t *sh_audio){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
380 // initialize the decoder, set tables etc...
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
381
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
382 // you can store HANDLE or private struct pointer at sh->context
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
383 // you can access WAVEFORMATEX header at sh->wf
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
384
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
385 // set sample format/rate parameters if you didn't do it in preinit() yet.
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
386
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
387 return 1; // return values: 1=OK 0=ERROR
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
388 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
389
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
390 static void uninit(sh_audio_t *sh){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
391 // uninit the decoder etc...
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
392 // 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
393 #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
394 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
395 {
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 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
397 if (wraCloseCodec) wraCloseCodec(sh->context);
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
398 }
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
399 #endif
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
400
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
401 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
402 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
403
12628
985e1813e298 support for realvideo codecs under macosx, original patch by Donnie Smith
alex
parents: 12356
diff changeset
404
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
405 #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
406 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
407 {
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
408 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
409 } 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
410 #endif
9551
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
411 // this dlclose() causes some memory corruption, and crashes soon (in caller):
d447d6403faf - removed unused global 'handle'
arpi
parents: 9395
diff changeset
412 // 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
413 rv_handle = NULL;
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
414 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
415
7104
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
416 static unsigned char sipr_swaps[38][2]={
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
417 {0,63},{1,22},{2,44},{3,90},{5,81},{7,31},{8,86},{9,58},{10,36},{12,68},
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
418 {13,39},{14,73},{15,53},{16,69},{17,57},{19,88},{20,34},{21,71},{24,46},
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
419 {25,94},{26,54},{28,75},{29,50},{32,70},{33,92},{35,74},{38,85},{40,56},
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
420 {42,87},{43,65},{45,59},{48,79},{49,93},{51,89},{55,95},{61,76},{67,83},
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
421 {77,80} };
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
422
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
423 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
424 int result;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
425 int len=-1;
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
426 int sps=((short*)(sh->wf+1))[0];
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
427 int w=sh->wf->nBlockAlign; // 5
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
428 int h=((short*)(sh->wf+1))[1];
10030
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
429 int cfs=((short*)(sh->wf+1))[3];
7104
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
430
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
431 // printf("bs=%d sps=%d w=%d h=%d \n",sh->wf->nBlockAlign,sps,w,h);
7086
f0886fe4be89 support for 'sipr' codec - descrambling/reorder not yet fixed.
arpi
parents: 6745
diff changeset
432
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
433 #if 1
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
434 if(sh->a_in_buffer_len<=0){
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
435 // fill the buffer!
10030
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
436 if (sh->format == mmioFOURCC('1','4','_','4')) {
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
437 demux_read_data(sh->ds, sh->a_in_buffer, sh->wf->nBlockAlign);
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
438 sh->a_in_buffer_size=
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
439 sh->a_in_buffer_len=sh->wf->nBlockAlign;
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
440 } else
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
441 if (sh->format == mmioFOURCC('2','8','_','8')) {
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
442 int i,j;
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
443 for (j = 0; j < h; j++)
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
444 for (i = 0; i < h/2; i++)
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
445 demux_read_data(sh->ds, sh->a_in_buffer+i*2*w+j*cfs, cfs);
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
446 sh->a_in_buffer_size=
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
447 sh->a_in_buffer_len=sh->wf->nBlockAlign*h;
a5396aaf128d Support for codec 14_4 and 28_8
rtognimp
parents: 9551
diff changeset
448 } else
14596
500eb730c784 Always select correct descramblig matrix for sipr audio
rtognimp
parents: 13860
diff changeset
449 if((sh->format == mmioFOURCC('s','i','p','r')) || !sps){ // is !sps really needed? (cook with sipr matrix?)
7104
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
450 // 'sipr' way
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
451 int j,n;
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
452 int bs=h*w*2/96; // nibbles per subpacket
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
453 unsigned char *p=sh->a_in_buffer;
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
454 demux_read_data(sh->ds, p, h*w);
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
455 for(n=0;n<38;n++){
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
456 int i=bs*sipr_swaps[n][0];
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
457 int o=bs*sipr_swaps[n][1];
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
458 // swap nibbles of block 'i' with 'o' TODO: optimize
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
459 for(j=0;j<bs;j++){
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
460 int x=(i&1) ? (p[(i>>1)]>>4) : (p[(i>>1)]&15);
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
461 int y=(o&1) ? (p[(o>>1)]>>4) : (p[(o>>1)]&15);
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
462 if(o&1) p[(o>>1)]=(p[(o>>1)]&0x0F)|(x<<4);
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
463 else p[(o>>1)]=(p[(o>>1)]&0xF0)|x;
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
464 if(i&1) p[(i>>1)]=(p[(i>>1)]&0x0F)|(y<<4);
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
465 else p[(i>>1)]=(p[(i>>1)]&0xF0)|y;
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
466 ++i;++o;
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
467 }
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
468 }
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
469 sh->a_in_buffer_size=
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
470 sh->a_in_buffer_len=w*h;
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
471 } else {
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
472 // 'cook' way
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
473 int x,y;
7104
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
474 w/=sps;
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
475 for(y=0;y<h;y++)
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
476 for(x=0;x<w;x++){
6428
88a06ebb3287 audio subpacket reordering fixed for odd matrix height
arpi
parents: 6404
diff changeset
477 demux_read_data(sh->ds, sh->a_in_buffer+sps*(h*x+((h+1)/2)*(y&1)+(y>>1)), sps);
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
478 }
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
479 sh->a_in_buffer_size=
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
480 sh->a_in_buffer_len=w*h*sps;
7104
6d784b2812b9 'sipr' descrambling implemented, at least for 16*6 matrix
arpi
parents: 7097
diff changeset
481 }
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
482 }
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
483
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
484 #else
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
485 if(sh->a_in_buffer_len<=0){
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
486 // fill the buffer!
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
487 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
488 sh->a_in_buffer_size=
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
489 sh->a_in_buffer_len=sh->wf->nBlockAlign;
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
490 }
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
491 #endif
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
492
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
493 #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
494 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
495 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
496 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
497 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
498 #endif
6373
8d5d339f2944 get matrix w*h from the demuxer
arpi
parents: 6370
diff changeset
499 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
500 buf, &len, -1);
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
501 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
502
6376
e3c74c01a3a2 use path & dllname from config
arpi
parents: 6373
diff changeset
503 // printf("radecode: %d bytes, res=0x%X \n",len,result);
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
504
6368
9511fffdb8c6 yeah, it worx! but needs a big cleanup and removal of hardcoded stuff
arpi
parents: 6367
diff changeset
505 return len; // return value: number of _bytes_ written to output buffer,
6367
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
506 // or -1 for EOF (or uncorrectable error)
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
507 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
508
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
509 static int control(sh_audio_t *sh,int cmd,void* arg, ...){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
510 // various optional functions you MAY implement:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
511 switch(cmd){
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
512 case ADCTRL_RESYNC_STREAM:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
513 // it is called once after seeking, to resync.
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
514 // Note: sh_audio->a_in_buffer_len=0; is done _before_ this call!
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
515 return CONTROL_TRUE;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
516 case ADCTRL_SKIP_FRAME:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
517 // 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
518 // of audio data - used to sync audio to video after seeking
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
519 // if you don't return CONTROL_TRUE, it will defaults to:
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
520 // ds_fill_buffer(sh_audio->ds); // skip 1 demux packet
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
521 return CONTROL_TRUE;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
522 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
523 return CONTROL_UNKNOWN;
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
524 }
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
525
489c4bcbda13 readaudio decoder - not yet working
arpi
parents:
diff changeset
526 #endif