source: trunk/platform/d10/sub/100a/movie_rec.c @ 938

Revision 938, 12.8 KB checked in by reyalp, 3 years ago (diff)

Add movie_rec stuff for D10. Add d10 to batch builds as beta. Remove beta tag from ixus980_sd990

  • Property svn:eol-style set to native
Line 
1#include "conf.h"
2
3// from sx10
4void change_video_tables(int a, int b){
5}
6
7// from sx10, not sure if the values are right, seems to work
8void  set_quality(int *x){ // -17 highest; +12 lowest
9 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
10}
11
12void __attribute__((naked,noinline)) movie_record_task(){
13 asm volatile(
14"                STMFD   SP!, {R2-R8,LR}\n"
15"                LDR     R8, =0x442\n"
16"                LDR     R7, =0x2710\n"
17"                LDR     R4, =0x5FA8\n"
18"                MOV     R6, #0\n"
19"                MOV     R5, #1\n"
20"loc_FF92F5E0:\n"
21"                LDR     R0, [R4,#0x18]\n"
22"                MOV     R2, #0\n"
23"                ADD     R1, SP, #4\n"
24"                BL      sub_FF826C30\n" // KerQueue.c 0
25"                LDR     R0, [R4,#0x20]\n"
26"                CMP     R0, #0\n"
27"                BNE     loc_FF92F6B0\n"
28"                LDR     R0, [SP,#4]\n"
29"                LDR     R1, [R0]\n"
30"                SUB     R1, R1, #2\n"
31"                CMP     R1, #9\n"
32"                ADDLS   PC, PC, R1,LSL#2\n"
33"                B       loc_FF92F6B0\n"
34"                B       loc_FF92F664\n"
35"                B       loc_FF92F684\n"
36"                B       loc_FF92F694\n"
37"                B       loc_FF92F69C\n"
38"                B       loc_FF92F66C\n"
39"                B       loc_FF92F6A4\n"
40"                B       loc_FF92F674\n"
41"                B       loc_FF92F6B0\n"
42"                B       loc_FF92F6AC\n"
43"                B       loc_FF92F63C\n"
44"loc_FF92F63C:\n"
45// jumptable FF92F60C entry 9
46"                LDR     R0, =0xFF92F2F0\n" // locret
47"                STR     R6, [R4,#0x34]\n"
48"                STR     R0, [R4,#0x9C]\n"
49"                LDR     R0, =0xFF92E96C\n"
50"                LDR     R2, =0xFF92E888\n"
51"                LDR     R1, =0x4B268\n"
52"                STR     R6, [R4,#0x24]\n"
53"                BL      sub_FF839668\n"
54"                STR     R5, [R4,#0x38]\n"
55"                B       loc_FF92F6B0\n"
56"loc_FF92F664:\n"
57// jumptable FF92F60C entry 0
58"                BL      unlock_optical_zoom\n" // +
59"                BL      sub_FF92F3E8\n" // MovieRecorder.c 0
60"                B       loc_FF92F6B0\n"
61"loc_FF92F66C:\n"
62// jumptable FF92F60C entry 4
63"                BL      sub_FF92EF94_my\n" // -> quality override
64"                B       loc_FF92F6B0\n"
65"loc_FF92F674:\n"
66// jumptable FF92F60C entry 6
67"                LDR     R1, [R0,#0x18]\n"
68"                LDR     R0, [R0,#4]\n"
69"                BL      sub_FFA42458\n" // MovWriter.c 0
70"                B       loc_FF92F6B0\n"
71"loc_FF92F684:\n"
72// jumptable FF92F60C entry 1
73"                LDR     R0, [R4,#0x38]\n"
74"                CMP     R0, #5\n"
75"                STRNE   R5, [R4,#0x28]\n"
76"                B       loc_FF92F6B0\n"
77"loc_FF92F694:\n"
78// jumptable FF92F60C entry 2
79"                BL      sub_FF92ECCC\n" // MovieRecorder.c 0
80"                B       loc_FF92F6B0\n"
81"loc_FF92F69C:\n"
82// jumptable FF92F60C entry 3
83"                BL      sub_FF92E9B8\n" // MovieRecorder.c 0
84"                B       loc_FF92F6B0\n"
85"loc_FF92F6A4:\n"
86// jumptable FF92F60C entry 5
87"                BL      sub_FF92E814\n" // MovieRecorder.c 100
88"                B       loc_FF92F6B0\n"
89"loc_FF92F6AC:\n"
90// jumptable FF92F60C entry 8
91"                BL      sub_FF92F818\n" // MovieRecorder.c 100
92"loc_FF92F6B0:\n"
93// jumptable FF92F60C default entry
94// jumptable FF92F60C entry 7
95"                LDR     R1, [SP,#4]\n"
96"                LDR     R3, =0xFF92E678\n" // "MovieRecorder.c"
97"                STR     R6, [R1]\n"
98"                STR     R8, [SP]\n"
99"                LDR     R0, [R4,#0x1C]\n"
100"                MOV     R2, R7\n"
101"                BL      sub_FF827584\n"
102"                B       loc_FF92F5E0\n"
103 );
104}
105
106void __attribute__((naked,noinline)) sub_FF92EF94_my(){
107 asm volatile(
108"                STMFD   SP!, {R4-R9,LR}\n"
109"                SUB     SP, SP, #0x44\n"
110"                MOV     R7, #0\n"
111"                LDR     R6, =0x5FA8\n"
112"                MOV     R4, R0\n"
113"                STR     R7, [SP,#0x34]\n"
114"                STR     R7, [SP,#0x2C]\n"
115"                LDR     R0, [R6,#0x38]\n"
116"                MOV     R8, #4\n"
117"                CMP     R0, #3\n"
118"                STREQ   R8, [R6,#0x38]\n"
119"                LDR     R0, [R6,#0x9C]\n"
120"                BLX     R0\n"
121"                LDR     R0, [R6,#0x38]\n"
122"                CMP     R0, #4\n"
123"                BNE     loc_FF92F0E4\n"
124"                ADD     R3, SP, #0x2C\n"
125"                ADD     R2, SP, #0x30\n"
126"                ADD     R1, SP, #0x34\n"
127"                ADD     R0, SP, #0x38\n"
128"                BL      sub_FFA424F4\n" // MovWriter.c 0
129"                CMP     R0, #0\n"
130"                MOV     R5, #1\n"
131"                BNE     loc_FF92F010\n"
132"                LDR     R1, [R6,#0x28]\n"
133"                CMP     R1, #1\n"
134"                BNE     loc_FF92F0F8\n"
135"                LDR     R1, [R6,#0x4C]\n"
136"                LDR     R2, [R6,#0x3C]\n"
137"                CMP     R1, R2\n"
138"                BCC     loc_FF92F0F8\n"
139"loc_FF92F010:\n"
140"                CMP     R0, #0x80000001\n"
141"                STREQ   R8, [R6,#0x50]\n"
142"                BEQ     loc_FF92F048\n"
143"                CMP     R0, #0x80000003\n"
144"                STREQ   R5, [R6,#0x50]\n"
145"                BEQ     loc_FF92F048\n"
146"                CMP     R0, #0x80000005\n"
147"                MOVEQ   R0, #2\n"
148"                BEQ     loc_FF92F044\n"
149"                CMP     R0, #0x80000007\n"
150"                STRNE   R7, [R6,#0x50]\n"
151"                BNE     loc_FF92F048\n"
152"                MOV     R0, #3\n"
153"loc_FF92F044:\n"
154"                STR     R0, [R6,#0x50]\n"
155"loc_FF92F048:\n"
156"                LDR     R0, =0x4B29C\n"
157"                LDR     R0, [R0,#8]\n"
158"                CMP     R0, #0\n"
159"                BEQ     loc_FF92F060\n"
160"                BL      sub_FF8486D8\n"
161"                B       loc_FF92F064\n"
162"loc_FF92F060:\n"
163"                BL      sub_FF92E814\n" // MovieRecorder.c 100
164"loc_FF92F064:\n"
165"                LDR     R0, [R4,#0x1C]\n"
166"                LDR     R1, [R4,#0x20]\n"
167"                ADD     R3, SP, #0x3C\n"
168"                MVN     R2, #1\n"
169"                ADD     R7, SP, #0x18\n"
170"                STMIA   R7, {R0-R3}\n"
171"                LDR     R2, [R6,#0x64]\n"
172"                LDR     R3, [R6,#0x68]\n"
173"                MOV     R0, #0\n"
174"                ADD     R1, SP, #0x40\n"
175"                ADD     R7, SP, #8\n"
176"                STMIA   R7, {R0-R3}\n"
177"                MOV     R3, #0\n"
178"                MOV     R2, #0x40\n"
179"                STRD    R2, [SP]\n"
180"                LDMIB   R4, {R0,R1}\n"
181"                LDR     R3, =0x4B2B4\n"
182"                MOV     R2, R9\n"
183"                BL      sub_FFA05D9C\n"
184"                LDR     R0, [R6,#0x10]\n"
185"                MOV     R1, #0x3E8\n"
186"                BL      sub_FF82704C\n" // TakeSemaphore
187"                CMP     R0, #9\n"
188"                BEQ     loc_FF92F17C\n"
189"                LDR     R0, [SP,#0x3C]\n"
190"                CMP     R0, #0\n"
191"                BNE     loc_FF92F198\n"
192"                MOV     R0, #1\n"
193"                BL      sub_FFA05E44\n"
194"                BL      sub_FFA05E80\n"
195"                MOV     R0, #5\n"
196"                STR     R0, [R6,#0x38]\n"
197"loc_FF92F0E4:\n"
198"                ADD     SP, SP, #0x44\n"
199"                LDMFD   SP!, {R4-R9,PC}\n"
200"loc_FF92F0EC:\n"
201"                BL      sub_FF877FFC\n" // HardwareDefect
202"                MOV     R0, #1\n"
203"                B       loc_FF92F238\n"
204"loc_FF92F0F8:\n"
205"                LDR     R12, [SP,#0x34]\n"
206"                CMP     R12, #0\n"
207"                BEQ     loc_FF92F298\n"
208"                STR     R5, [R6,#0x2C]\n"
209"                LDR     R0, [R6,#0x4C]\n"
210"                LDR     R8, [R4,#0xC]\n"
211"                CMP     R0, #0\n"
212"                LDRNE   LR, [SP,#0x38]\n"
213"                BNE     loc_FF92F1C4\n"
214"                LDR     R0, [R4,#0x1C]\n"
215"                LDR     R1, [R4,#0x20]\n"
216"                ADD     R3, SP, #0x3C\n"
217"                MVN     R2, #0\n"
218"                ADD     R9, SP, #0x18\n"
219"                STMIA   R9, {R0-R3}\n"
220"                LDR     R0, [SP,#0x2C]\n"
221"                LDR     R2, [R6,#0x64]\n"
222"                LDR     R3, [R6,#0x68]\n"
223"                ADD     R1, SP, #0x40\n"
224"                ADD     R9, SP, #8\n"
225"                STMIA   R9, {R0-R3}\n"
226"                LDR     R3, [SP,#0x30]\n"
227"                STR     R12, [SP]\n"
228"                STR     R3, [SP,#4]\n"
229"                LDMIB   R4, {R0,R1}\n"
230"                LDR     R3, [SP,#0x38]\n"
231"                MOV     R2, R8\n"
232"                BL      sub_FFA05D9C\n"
233"                LDR     R0, [R6,#0x10]\n"
234"                MOV     R1, #0x3E8\n"
235"                BL      sub_FF82704C\n" // TakeSemaphore
236"                CMP     R0, #9\n"
237"                BNE     loc_FF92F18C\n"
238"loc_FF92F17C:\n"
239"                BL      sub_FFA429C0\n"
240"                MOV     R0, #0x90000\n"
241"                STR     R5, [R6,#0x38]\n"
242"                B       loc_FF92F0EC\n"
243"loc_FF92F18C:\n"
244"                LDR     R0, [SP,#0x3C]\n"
245"                CMP     R0, #0\n"
246"                BEQ     loc_FF92F1A8\n"
247"loc_FF92F198:\n"
248"                BL      sub_FFA429C0\n"
249"                MOV     R0, #0xA0000\n"
250"                STR     R5, [R6,#0x38]\n"
251"                B       loc_FF92F0EC\n"
252"loc_FF92F1A8:\n"
253"                MOV     R0, #1\n"
254"                BL      sub_FFA05E44\n"
255"                LDR     R0, [SP,#0x40]\n"
256"                LDR     R1, [SP,#0x38]\n"
257"                ADD     LR, R1, R0\n"
258"                LDR     R1, [SP,#0x34]\n"
259"                SUB     R12, R1, R0\n"
260"loc_FF92F1C4:\n"
261"                LDR     R0, [R4,#0x1C]\n"
262"                LDR     R2, [R6,#0x48]\n"
263"                LDR     R1, [R4,#0x20]\n"
264"                ADD     R3, SP, #0x3C\n"
265"                ADD     R9, SP, #0x18\n"
266"                STMIA   R9, {R0-R3}\n"
267"                LDR     R0, [SP,#0x2C]\n"
268"                LDR     R2, [R6,#0x64]\n"
269"                LDR     R3, [R6,#0x68]\n"
270"                ADD     R1, SP, #0x40\n"
271"                ADD     R9, SP, #8\n"
272"                STMIA   R9, {R0-R3}\n"
273"                LDR     R3, [SP,#0x30]\n"
274"                STR     R12, [SP]\n"
275"                STR     R3, [SP,#4]\n"
276"                LDMIB   R4, {R0,R1}\n"
277"                MOV     R3, LR\n"
278"                MOV     R2, R8\n"
279"                BL      sub_FFA05D9C\n"
280"                LDR     R0, [R6,#0x10]\n"
281"                MOV     R1, #0x3E8\n"
282"                BL      sub_FF82704C\n" // TakeSemaphore
283"                CMP     R0, #9\n"
284"                BNE     loc_FF92F240\n"
285"                BL      sub_FFA429C0\n"
286"                MOV     R0, #0x90000\n"
287"                STR     R5, [R6,#0x38]\n"
288"                BL      sub_FF877FFC\n" // HardwareDefect
289"                MOV     R0, #0\n"
290"loc_FF92F238:\n"
291"                BL      sub_FFA05E44\n"
292"                B       loc_FF92F0E4\n"
293"loc_FF92F240:\n"
294"                LDR     R0, [SP,#0x3C]\n"
295"                CMP     R0, #0\n"
296"                BEQ     loc_FF92F260\n"
297"                BL      sub_FFA429C0\n"
298"                MOV     R0, #0xA0000\n"
299"                STR     R5, [R6,#0x38]\n"
300"                BL      sub_FF877FFC\n" // HardwareDefect
301"                B       loc_FF92F0E4\n"
302"loc_FF92F260:\n"
303"                MOV     R0, #0\n"
304"                BL      sub_FFA05E44\n"
305"                LDR     R0, [SP,#0x38]\n"
306"                LDR     R1, [SP,#0x40]\n"
307"                BL      sub_FFA4271C\n" // MovWriter.c 0
308"                LDR     R0, [R6,#0x48]\n"
309"                LDR     R3, =0x6010\n"
310"                ADD     R1, R0, #1\n"
311"                STR     R1, [R6,#0x48]\n"
312"                STR     R3, [SP]\n"
313"                LDR     R0, [SP,#0x40]\n"
314"                SUB     R3, R3, #4\n"
315"                MOV     R2, #0xF\n"
316"                BL      sub_FFA40A14\n"
317"                LDR     R0, =0x6010-4\n" // +
318"                BL      set_quality\n" // +
319"loc_FF92F298:\n"
320"                LDR     R0, [R6,#0x4C]\n"
321"                ADD     R0, R0, #1\n"
322"                STR     R0, [R6,#0x4C]\n"
323"                LDR     R1, [R6,#0x74]\n"
324"                MUL     R0, R1, R0\n"
325"                LDR     R1, [R6,#0x70]\n"
326"                BL      sub_FFACE280\n"
327"                MOV     R4, R0\n"
328"                BL      sub_FFA429F8\n"
329"                LDR     R1, [R6,#0x6C]\n"
330"                CMP     R1, R4\n"
331"                BNE     loc_FF92F2D4\n"
332"                LDR     R0, [R6,#0x30]\n"
333"                CMP     R0, #1\n"
334"                BNE     loc_FF92F2E8\n"
335"loc_FF92F2D4:\n"
336"                LDR     R1, [R6,#0x80]\n"
337"                MOV     R0, R4\n"
338"                BLX     R1\n"
339"                STR     R4, [R6,#0x6C]\n"
340"                STR     R7, [R6,#0x30]\n"
341"loc_FF92F2E8:\n"
342"                STR     R7, [R6,#0x2C]\n"
343"                B       loc_FF92F0E4\n"
344 );
345}
Note: See TracBrowser for help on using the repository browser.