annotate TOOLS/realcodecs/drv2.c @ 18715:30d7ddf08889

Fix window position when changing videos while in fullscreen and for window managers that modify position on Map. Oked by Alexander Strasser.
author reimar
date Thu, 15 Jun 2006 08:00:37 +0000
parents 99d2902782ed
children 3b80b74b6813
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
1 /*
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
2 GPL v2 blah blah
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
3
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
4 This is a small dll that works as a wrapper for the actual cook.so.6.0
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
5 dll from real player 8.0.
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
6 */
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
7
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
8 /*
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
9 Assuming that RACloseCodec is the last call.
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
10 */
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
11
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
12 #include <stddef.h>
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
13 #include <stdio.h>
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
14 #include <dlfcn.h>
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
15 #include <sys/time.h>
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
16
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
17 typedef unsigned long ulong;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
18
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
19 ulong (*rvyuvCustomMessage)(ulong,ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
20 ulong (*rvyuvFree)(ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
21 ulong (*rvyuvHiveMessage)(ulong,ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
22 ulong (*rvyuvInit)(ulong,ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
23 ulong (*rvyuvTransform)(ulong,ulong,ulong,ulong,ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
24 ulong (*rvyuvRNFRUFree)(ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
25 ulong (*rvyuvRNFRUGetFrame)(ulong,ulong,ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
26 ulong (*rvyuvRNFRUInit)(ulong,ulong,ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
27 ulong (*rvyuvRNFRUSetup)(ulong,ulong,ulong,ulong,ulong,ulong,ulong,ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
28
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
29 //void (*setDLLAccessPath)(ulong);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
30
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
31 int b_dlOpened=0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
32 void *handle=NULL;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
33
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
34 /* exits program when failure */
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
35 void loadSyms() {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
36 fputs("loadSyms()\n", stderr);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
37 if (!b_dlOpened) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
38 char *error;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
39
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
40 fputs("opening dll...\n",stderr);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
41 handle = dlopen ("/usr/local/RealPlayer8/Codecs/realdrv2.so.6.0", RTLD_LAZY);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
42 if (!handle) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
43 fputs (dlerror(), stderr);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
44 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
45 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
46
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
47 rvyuvCustomMessage = dlsym(handle, "RV20toYUV420CustomMessage");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
48 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
49 fprintf (stderr, "dlsym(rvyuvCustomMessage): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
50 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
51 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
52 fprintf(stderr, "RV20toYUV420CustomMessage()=0x%0x\n", rvyuvCustomMessage);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
53 rvyuvFree = dlsym(handle, "RV20toYUV420Free");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
54 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
55 fprintf (stderr, "dlsym(rvyuvFree): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
56 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
57 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
58 fprintf(stderr, "RV20toYUV420Free()=0x%0x\n", rvyuvFree);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
59 rvyuvHiveMessage = dlsym(handle, "RV20toYUV420HiveMessage");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
60 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
61 fprintf (stderr, "dlsym(rvyuvHiveMessage): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
62 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
63 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
64 fprintf(stderr, "RV20toYUV420HiveMessage()=0x%0x\n", rvyuvHiveMessage);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
65 rvyuvInit = dlsym(handle, "RV20toYUV420Init");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
66 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
67 fprintf (stderr, "dlsym(rvyuvInit): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
68 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
69 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
70 fprintf(stderr, "RV20toYUV420Init()=0x%0x\n", rvyuvInit);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
71 rvyuvTransform = dlsym(handle, "RV20toYUV420Transform");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
72 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
73 fprintf (stderr, "dlsym(rvyuvTransform): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
74 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
75 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
76 fprintf(stderr, "RV20toYUV420Transform()=0x%0x\n", rvyuvTransform);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
77 rvyuvRNFRUFree = dlsym(handle, "RV20toYUV420_RN_FRU_Free");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
78 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
79 fprintf (stderr, "dlsym(rvyuvRNFRUFree): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
80 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
81 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
82 fprintf(stderr, "RV20toYUV420_RN_FRU_Free()=0x%0x\n", rvyuvRNFRUFree);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
83 rvyuvRNFRUGetFrame = dlsym(handle, "RV20toYUV420_RN_FRU_GetFrame");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
84 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
85 fprintf (stderr, "dlsym(rvyuvRNFRUGetFrame): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
86 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
87 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
88 fprintf(stderr, "RV20toYUV420_RN_FRU_GetFrame()=0x%0x\n", rvyuvRNFRUGetFrame);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
89 rvyuvRNFRUInit = dlsym(handle, "RV20toYUV420_RN_FRU_Init");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
90 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
91 fprintf (stderr, "dlsym(rvyuvRNFRUInit): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
92 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
93 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
94 fprintf(stderr, "RV20toYUV420_RN_FRU_Init()=0x%0x\n", rvyuvRNFRUInit);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
95 rvyuvRNFRUSetup = dlsym(handle, "RV20toYUV420_RN_FRU_Setup");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
96 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
97 fprintf (stderr, "dlsym(rvyuvRNFRUSetup): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
98 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
99 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
100 fprintf(stderr, "RV20toYUV420_RN_FRU_Setup()=0x%0x\n", rvyuvRNFRUSetup);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
101
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
102 /* setDLLAccessPath = dlsym(handle, "SetDLLAccessPath");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
103 if ((error = dlerror()) != NULL) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
104 fprintf (stderr, "dlsym(SetDLLAccessPath): %s\n", error);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
105 exit(1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
106 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
107 */ b_dlOpened=1;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
108 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
109 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
111 void closeDll() {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
112 if (handle) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
113 b_dlOpened=0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
114 dlclose(handle);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
115 handle=NULL;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
116 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
117 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
118
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
119 void _init(void) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
120 loadSyms();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
121 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
122
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
123 struct timezone tz;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
124 struct timeval tv1, tv2;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
125
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
126 void tic() {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
127 gettimeofday(&tv1, &tz);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
128 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
129
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
130 void toc() {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
131 long secs, usecs;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
132 gettimeofday(&tv2, &tz);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
133 secs=tv2.tv_sec-tv1.tv_sec;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
134 usecs=tv2.tv_usec-tv1.tv_usec;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
135 if (usecs<0) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
136 usecs+=1000000;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
137 --secs;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
138 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
139 // fprintf(stderr, "Duration: %d.%0.6ds\n", secs, usecs);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
140 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
141
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
142
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
143 static void hexdump(void *pos, int len) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
144 unsigned char *cpos=pos, *cpos1;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
145 int lines=(len+15)>>4;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
146 while(lines--) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
147 int len1=len, i;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
148 fprintf(stderr, "#R# %0x ", (int)cpos-(int)pos);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
149 cpos1=cpos;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
150 for (i=0;i<16;i++) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
151 if (len1>0) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
152 fprintf(stderr, "%02x ", *(cpos++));
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
153 } else {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
154 fprintf(stderr, " ");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
155 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
156 len1--;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
157 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
158 fputs(" ", stderr);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
159 cpos=cpos1;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
160 for (i=0;i<16;i++) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
161 if (len>0) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
162 unsigned char ch=(*(cpos++));
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
163 if ((ch<32)||(ch>127)) ch='.';
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
164 fputc(ch, stderr);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
165 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
166 len--;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
167 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
168 fputs("\n", stderr);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
169 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
170 fputc('\n', stderr);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
171 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
172
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
173
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
174 ulong RV20toYUV420CustomMessage(ulong* p1,ulong p2) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
175 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
176 ulong *pp1=p1;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
177 ulong temp[16];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
178 fprintf(stderr, "#R# => RV20toYUV420CustomMessage(%p,%p) [%d,%d,%d] \n", p1, p2, p1[0],p1[1],p1[2]);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
179
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
180 /*
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
181 if(p1[0]!=17) return 0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
182
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
183 if(p1[1]!=1) return 0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
184
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
185 if(p1[0]==105) return 0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
186 if(p1[0]==3) return 0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
187 if(p1[0]==18) return 0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
188 if(p1[0]==30) return 0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
189 */
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
190
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
191 if(p1[0]==0x24){
7846
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
192 #if 1
7110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
193 hexdump(p1[2],64);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
194 memset(temp,0x77,16*4);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
195 memcpy(temp,p1[2],16);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
196 p1[2]=temp;
7846
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
197 #endif
7110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
198 } else {
7846
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
199 switch(p1[0]){
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
200 case 17:
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
201 if(p1[1]==1)
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
202 break;
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
203 case 18:
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
204 case 30:
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
205 case 3:
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
206 default:
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
207 return 0;
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
208 }
7110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
209 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
210 // fprintf(stderr, "ulong p2=0x%0x(%d))\n", p2, p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
211 // hexdump((void*)p1, 12);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
212 // if (pp1[0]==0x24) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
213 // hexdump((void*)(pp1[2]),128);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
214 // }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
215 // tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
216 result=(*rvyuvCustomMessage)(p1,p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
217 // toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
218 fprintf(stderr, "#R# <= RV20toYUV420CustomMessage --> 0x%0x(%d)\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
219 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
220 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
221
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
222 ulong RV20toYUV420Free(ulong p1) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
223 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
224 fprintf(stderr, "RV20toYUV420Free(ulong p1=0x%0x(%d))\n", p1, p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
225 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
226 tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
227 result=(*rvyuvFree)(p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
228 toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
229 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
230 fprintf(stderr, "RV20toYUV420Free --> 0x%0x(%d)\n\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
231 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
232 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
233
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
234 char h_temp[32768];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
235
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
236 ulong RV20toYUV420HiveMessage(ulong *p1,ulong p2) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
237 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
238 fprintf(stderr, "#R# RV20toYUV420HiveMessage(%p,%p)\n", p1, p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
239 // p1->constant,p1->width,p1->height,p1->format1,p1->format2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
240 // fprintf(stderr, "ulong p2=0x%0x(%d))\n", p2, p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
241 // hexdump((void*)p1, sizeof(struct init_data));
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
242
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
243 fprintf(stderr,">HIVE %d %p\n",p1[0],p1[1]);
7846
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
244
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
245 if(p1[0]!=0) return 0;
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
246
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
247 p1[1]=0x10000000;
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
248 return 0;
7110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
249
7846
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
250 // fprintf(stderr,"COPY INIT DATA!\n");
7110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
251 memset(h_temp,0x77,1000);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
252 memcpy(h_temp,p1,4);
7846
99d2902782ed some fixes
arpi
parents: 7110
diff changeset
253 // fprintf(stderr,"COPY OK!\n");
7110
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
254
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
255 // tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
256 // result=(*rvyuvHiveMessage)(p1,p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
257 result=(*rvyuvHiveMessage)(h_temp,p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
258 // toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
259
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
260 fprintf(stderr,"COPY INIT DATA!\n");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
261 memcpy(p1,h_temp,8);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
262 fprintf(stderr,"COPY OK!\n");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
263
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
264 memset(h_temp,0x77,1000);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
265
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
266 // p1[0]=0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
267 // p1[1]=0x20000000;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
268
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
269 fprintf(stderr,"<HIVE %d %p\n",p1[0],p1[1]);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
270
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
271 // hexdump((void*)p1, sizeof(struct init_data));
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
272 // hexdump((void*)p1, 8);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
273 fprintf(stderr, "#R# RV20toYUV420HiveMessage --> 0x%0x(%d)\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
274 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
275 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
276
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
277 struct init_data {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
278 short constant; //=0xb;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
279 short width, height;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
280 short x1,x2,x3;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
281 // 12
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
282 ulong format1;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
283 long x4;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
284 ulong format2;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
285 // long unknown[32];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
286 };
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
287
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
288 static char i_temp[32768];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
289
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
290 ulong RV20toYUV420Init(ulong p1,ulong p2) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
291 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
292 fprintf(stderr, "#R# RV20toYUV420Init(ulong p1=0x%0x(%d), ", p1, p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
293 fprintf(stderr, "ulong p2=0x%0x(%d))\n", p2, p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
294
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
295 fprintf(stderr,"COPY INIT DATA!\n");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
296 memcpy(i_temp,p1,24);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
297 p1=i_temp;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
298 fprintf(stderr,"COPY OK!\n");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
299
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
300 hexdump((void*)p1, 24);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
301 tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
302 result=(*rvyuvInit)(p1,p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
303 toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
304 hexdump((void*)p1, 24);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
305
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
306 memset(i_temp,0x77,1000);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
307
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
308 // hexdump(*((void**)p2), 512);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
309 fprintf(stderr, "#R# RV20toYUV420Init --> 0x%0x(%d)\n\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
310 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
311 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
312
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
313 unsigned long build_crc(unsigned char *pch, unsigned long len) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
314 unsigned long crc=0, a, b;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
315 // it's not the real crc function, but so what...
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
316 while (len--) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
317 a=*(pch++);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
318 // a=a+(a<<6);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
319 // a^=0x555;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
320 // b=(crc>>29)&7;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
321 // crc=((crc<<3)+b)^a;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
322 crc^=a;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
323 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
324 return crc;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
325 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
326
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
327 #define MIN(a,b) ((a)<(b)?(a):(b))
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
328
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
329 // p1=input data (stream)
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
330 // p2=output buffer
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
331 // p3=input struct
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
332 // p4=output struct
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
333 // p5=rvyuv_main
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
334 ulong RV20toYUV420Transform(ulong p1,ulong p2,ulong p3,ulong p4,ulong p5) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
335
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
336 //result=RV20toYUV420Transform(char *input_stream, char *output_data,
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
337 // struct transin *, struct transout *, struct rvyuvMain *);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
338
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
339 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
340 ulong *pp3=p3;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
341 ulong *pp4=p4;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
342 void *v;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
343 ulong temp[128];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
344 int i;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
345
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
346 unsigned long len,crc_src, crc0, crc1, crc2;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
347 unsigned char *pch=(char *)p1;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
348 fprintf(stderr, "#R# RV20toYUV420Transform(in=%p,out=%p,tin=%p,tout=%p,yuv=%p)\n",p1,p2,p3,p4,p5);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
349 // input data, length=*p3
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
350 // hexdump((void*)p1, /*MIN(64,*/ *((ulong*)p3) /*)*/ );
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
351 // v=p5;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
352 // v+=0x3c;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
353 // v=*((void **)v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
354 // pp3=v;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
355 // len=pp3[3]*pp3[4]*3/2;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
356 // pch=p2;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
357 // while(--len) *(pch++)=0;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
358 // hexdump((char*)p2, 64);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
359 // hexdump((void*)p3, 32);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
360 // hexdump((void*)p5, 64);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
361 // pp3=p3;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
362 // if (pp3[3]>1024) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
363 // hexdump((void*)(pp3[3]),32);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
364 // pp3=pp3[3];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
365 // }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
366
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
367 pp3=p3;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
368 // it's not the real crc function, but so what...
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
369 pch=p1;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
370 crc_src=build_crc(pch, pp3[0]);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
371
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
372 pp4=pp3[3];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
373 fprintf(stderr,"transin1[%p]: {%d/%d} ",pp4,pp3[2],pp3[0]);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
374 // pp4[0],pp4[1],pp4[2],pp4[3],
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
375 // pp4[4],pp4[5],pp4[6],pp4[7]);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
376
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
377 memset(temp,0x77,128*4);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
378
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
379 memcpy(temp,pp4,8*(pp3[2]+1));
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
380 for(i=0;i<=pp3[2];i++){
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
381 fprintf(stderr," %p(%d)",temp[i*2],temp[i*2+1]);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
382 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
383 fprintf(stderr,"\n");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
384
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
385
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
386 pp3[3]=pp4=temp;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
387
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
388 // pp4[2]=
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
389 // pp4[3]=
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
390 // pp4[4]=NULL;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
391
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
392 //pp4[6]=pp4[5];
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
393
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
394 v=p5;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
395 /* fprintf(stderr, "rvyuvMain=0x%0x\n", v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
396 v+=0x3c;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
397 v=*((void **)v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
398 fprintf(stderr, "[$+3ch]=0x%0x\n", v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
399 hexdump(v, 512);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
400 v+=0x60;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
401 v=*((void **)v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
402 fprintf(stderr, "[$+60h]=0x%0x\n", v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
403 hexdump(v, 512);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
404 v+=0x28;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
405 v=*((void **)v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
406 fprintf(stderr, "[$+28h]=0x%0x\n", v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
407 hexdump(v, 512);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
408 */
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
409 /* v+=0x178;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
410 hexdump(v, 16);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
411 v=*((void **)v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
412 if (v>0x8000000) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
413 fprintf(stderr, "[$+178h]=0x%0x\n", v);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
414 hexdump(v, 128);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
415 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
416 */
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
417 // tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
418 result=(*rvyuvTransform)(p1,p2,p3,p4,p5);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
419 // toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
420
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
421 crc0=build_crc(p2, 176*144);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
422 // crc1=build_crc(p2+pp4[3]*pp4[4]/2, pp4[3]*pp4[4]/2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
423 // crc2=build_crc(p2+pp4[3]*pp4[4], pp4[3]*pp4[4]/2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
424
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
425 // pp3=p3;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
426 // TRANSFORM: <timestamp> <numblocks> <len> <crc_src> <crc_dest> <p4[4]>
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
427 // fprintf(stderr, "TRAFO:\t%d\t%d\t%d\t%.8X\t%.8X\t%d\n",
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
428 // pp3[5], pp3[2], pp3[0], crc_src, crc0, pp3[4]);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
429 fprintf(stderr, "#R# Decode: %d(%d) [%08X] pts=%d -> %d [%08X]\n",
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
430 pp3[0],pp3[2],crc_src,pp3[5],
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
431 result,crc0);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
432
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
433 // output
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
434 // hexdump((char*)p2, /*64*/ pp4[3]*pp4[4]/2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
435 // hexdump((void*)p4, 20);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
436 // hexdump((void*)p5, 512);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
437 // fprintf(stderr, "RV20toYUV420Transform --> 0x%0x(%d)\n\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
438 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
439 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
440
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
441 ulong RV20toYUV420_RN_FRU_Free(ulong p1) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
442 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
443 fprintf(stderr, "RV20toYUV420_RN_FRU_Free(ulong p1=0x%0x(%d))\n", p1, p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
444 tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
445 result=(*rvyuvRNFRUFree)(p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
446 toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
447 fprintf(stderr, "RV20toYUV420_RN_FRU_Free --> 0x%0x(%d)\n\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
448 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
449 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
450
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
451 ulong RV20toYUV420_RN_FRU_GetFrame(ulong p1,ulong p2,ulong p3) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
452 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
453 // fprintf(stderr, "RV20toYUV420_RN_FRU_GetFrame(ulong p1=0x%0x(%d), ", p1, p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
454 // fprintf(stderr, "ulong p2=0x%0x(%d),\n\t", p2, p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
455 // fprintf(stderr, "ulong p3=0x%0x(%d))\n", p3, p3);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
456 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
457 tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
458 result=(*rvyuvRNFRUGetFrame)(p1,p2,p3);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
459 toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
460 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
461 // fprintf(stderr, "RV20toYUV420_RN_FRU_GetFrame --> 0x%0x(%d)\n\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
462 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
463 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
464
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
465 ulong RV20toYUV420_RN_FRU_Init(ulong p1,ulong p2,ulong p3) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
466 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
467 // fprintf(stderr, "RV20toYUV420_RN_FRU_Init(ulong p1=0x%0x(%d), ", p1, p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
468 // fprintf(stderr, "ulong p2=0x%0x(%d),\n\t", p2, p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
469 // fprintf(stderr, "ulong p3=0x%0x(%d))\n", p3, p3);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
470 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
471 tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
472 result=(*rvyuvRNFRUInit)(p1,p2,p3);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
473 toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
474 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
475 // fprintf(stderr, "RV20toYUV420_RN_FRU_Init --> 0x%0x(%d)\n\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
476 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
477 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
478
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
479 ulong RV20toYUV420_RN_FRU_Setup(ulong p1,ulong p2,ulong p3,ulong p4,
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
480 ulong p5,ulong p6,ulong p7,ulong p8) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
481 ulong result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
482 // fprintf(stderr, "RV20toYUV420_RN_FRU_Setup(ulong p1=0x%0x(%d), ", p1, p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
483 // fprintf(stderr, "ulong p2=0x%0x(%d),\n\t", p2, p2);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
484 // fprintf(stderr, "ulong p3=0x%0x(%d), ", p3, p3);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
485 // fprintf(stderr, "ulong p4=0x%0x(%d),\n\t", p4, p4);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
486 // fprintf(stderr, "ulong p5=0x%0x(%d), ", p5, p5);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
487 // fprintf(stderr, "ulong p6=0x%0x(%d),\n\t", p6, p6);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
488 // fprintf(stderr, "ulong p7=0x%0x(%d), ", p7, p7);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
489 // fprintf(stderr, "ulong p8=0x%0x(%d))\n", p8, p8);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
490 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
491 tic();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
492 result=(*rvyuvRNFRUSetup)(p1,p2,p3,p4,p5,p6,p7,p8);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
493 toc();
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
494 // hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
495 // fprintf(stderr, "RV20toYUV420_RN_FRU_Setup --> 0x%0x(%d)\n\n\n", result, result);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
496 return result;
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
497 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
498
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
499 /*void SetDLLAccessPath(ulong p1) {
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
500 fprintf(stderr, "SetDLLAccessPath(ulong p1=0x%0x(%d))\n", p1, p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
501 hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
502 (*setDLLAccessPath)(p1);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
503 hexdump((void*)p1, 44);
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
504 fprintf(stderr, "--> void\n\n\n");
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
505 }
86c478bea7ce realplayer codecs wrappers, originaly written by Florian Schneider, extended
arpi
parents:
diff changeset
506 */