source: trunk/platform/sx30/sub/100h/movie_rec.c @ 1109

Revision 1109, 6.0 KB checked in by reyalP, 2 years ago (diff)

G12 & SX30 that reduces the size of the 'movie_rec.c' code by moving the quality override code to the main loop - from philmoz in http://chdk.setepontos.com/index.php?topic=650.msg63486#msg63486

  • Property svn:eol-style set to native
Line 
1#include "conf.h"
2
3void change_video_tables(int a, int b){
4}
5
6void  set_quality(int *x){ // -17 highest; +12 lowest
7 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
8}
9
10// @ FF883348
11void __attribute__((naked,noinline)) movie_record_task(){
12
13 asm volatile(
14"                STMFD   SP!, {R2-R10,LR} \n"
15"                LDR     R9, =0x5AA \n"
16"                LDR     R8, =0x2710 \n"
17"                LDR     R4, =0x34E0 \n"
18"                LDR     R7, =0xFF882FC4 \n"
19"                MOV     R6, #0 \n"
20"                MOV     R5, #1 \n"
21"                ADD     R10, R9, #0x44 \n"
22
23"loc_FF883368: \n"
24"                LDR     R0, [R4,#0x24] \n"
25"                MOV     R2, #0 \n"
26"                ADD     R1, SP, #4 \n"
27"                BL      sub_FF83A4C8 \n"
28"                LDR     R2, =0xFF881594 \n"    // aMovierecorder_
29"                LDR     R0, [R4,#0xD0] \n"
30"                MOV     R3, R9 \n"
31"                MOV     R1, R8 \n"
32"                BL      _takeSemaphore \n"
33"                LDR     R0, [R4,#0x2C] \n"
34"                CMP     R0, #0 \n"
35"                LDRNE   R0, [R4,#0xC] \n"
36"                CMPNE   R0, #2 \n"
37"                LDRNE   R0, [R4,#0x44] \n"
38"                CMPNE   R0, #6 \n"
39"                BNE     loc_FF8834B0 \n"
40"                LDR     R0, [SP,#4] \n"
41"                LDR     R1, [R0] \n"
42"                SUB     R1, R1, #2 \n"
43"                CMP     R1, #0xC \n"
44"                ADDLS   PC, PC, R1,LSL#2 \n"
45"                B       loc_FF8834B0 \n"
46"loc_FF8833C0: \n"
47"                B       loc_FF883458 \n"
48"loc_FF8833C4: \n"
49"                B       loc_FF883470 \n"
50"loc_FF8833C8: \n"
51"                B       loc_FF883480 \n"
52"loc_FF8833CC: \n"
53"                B       loc_FF883488 \n"
54"loc_FF8833D0: \n"
55"                B       loc_FF883460 \n"
56"loc_FF8833D4: \n"
57"                B       loc_FF883490 \n"
58"loc_FF8833D8: \n"
59"                B       loc_FF883468 \n"
60"loc_FF8833DC: \n"
61"                B       loc_FF8834B0 \n"
62"loc_FF8833E0: \n"
63"                B       loc_FF8834A0 \n"
64"loc_FF8833E4: \n"
65"                B       loc_FF8834A8 \n"
66"loc_FF8833E8: \n"
67"                B       loc_FF883498 \n"
68"loc_FF8833EC: \n"
69"                B       loc_FF883420 \n"
70"loc_FF8833F0: \n"
71"                B       loc_FF8833F4 \n"
72
73"loc_FF8833F4: \n"
74//"; jumptable FF8833B8 entry 12 \n"
75"                STR     R6, [R4,#0x40] \n"
76"                STR     R6, [R4,#0x30] \n"
77"                STR     R6, [R4,#0x34] \n"
78"                STRH    R6, [R4,#6] \n"
79"                STR     R7, [R4,#0xB4] \n"
80"                LDR     R0, [R4,#0xC] \n"
81"                ADD     R0, R0, #1 \n"
82"                STR     R0, [R4,#0xC] \n"
83"                MOV     R0, #6 \n"
84"                STR     R0, [R4,#0x44] \n"
85"                B       loc_FF883444 \n"
86
87"loc_FF883420: \n"
88//"; jumptable FF8833B8 entry 11 \n"
89"                LDR     R0, =0xFF882FC4 \n"
90"                STR     R6, [R4,#0x40] \n"
91"                STR     R0, [R4,#0xBC] \n"
92"                STR     R6, [R4,#0x30] \n"
93"                STR     R7, [R4,#0xB4] \n"
94"                LDR     R0, [R4,#0xC] \n"
95"                ADD     R0, R0, #1 \n"
96"                STR     R0, [R4,#0xC] \n"
97"                STR     R5, [R4,#0x44] \n"
98
99"loc_FF883444: \n"
100"                LDR     R2, =0xFF881ADC \n"
101"                LDR     R1, =0x3B7E8 \n"
102"                LDR     R0, =0xFF881C04 \n"
103"                BL      sub_FF852E4C \n"
104"                B       loc_FF8834B0 \n"
105
106"loc_FF883458: \n"
107//"; jumptable FF8833B8 entry 0            ; LOCATION: MovieRecorder.c:0 \n"
108"                BL      sub_FF883104 \n"
109"                B       loc_FF8834B0 \n"
110
111"loc_FF883460: \n"
112//"; jumptable FF8833B8 entry 4            ; LOCATION: MovieRecorder.c:2032 \n"
113"                BL      sub_FF8829D4 \n"
114
115                "LDR     R0, =0x3568-4\n" // <----   -4 //+ set in sub_FF8829D4 above
116                "BL      set_quality\n"                 //+ reset here to user value
117
118"                B       loc_FF8834B0 \n"
119
120"loc_FF883468: \n"
121//"; jumptable FF8833B8 entry 6 \n"
122"                BL      sub_FF8839C0 \n"
123"                B       loc_FF8834B0 \n"
124
125"loc_FF883470: \n"
126//"; jumptable FF8833B8 entry 1 \n"
127"                LDR     R0, [R4,#0x44] \n"
128"                CMP     R0, #5 \n"
129"                STRNE   R5, [R4,#0x34] \n"
130"                B       loc_FF8834B0 \n"
131
132"loc_FF883480: \n"
133//"; jumptable FF8833B8 entry 2            ; LOCATION: MovieRecorder.c:1000 \n"
134"                BL      sub_FF882670 \n"
135"                B       loc_FF8834B0 \n"
136
137"loc_FF883488: \n"
138//"; jumptable FF8833B8 entry 3            ; LOCATION: MovieRecorder.c:0 \n"
139"                BL      sub_FF8822E4 \n"
140"                B       loc_FF8834B0 \n"
141
142"loc_FF883490: \n"
143//"; jumptable FF8833B8 entry 5            ; LOCATION: MovieRecorder.c:100 \n"
144"                BL      sub_FF881A64 \n"
145"                B       loc_FF8834B0 \n"
146
147"loc_FF883498: \n"
148//"; jumptable FF8833B8 entry 10           ; LOCATION: MovieRecorder.c:100 \n"
149"                BL      sub_FF883914 \n"
150"                B       loc_FF8834B0 \n"
151
152"loc_FF8834A0: \n"
153//"; jumptable FF8833B8 entry 8            ; LOCATION: MovieRecorder.c:0 \n"
154"                BL      sub_FF8821A8 \n"
155"                B       loc_FF8834B0 \n"
156
157"loc_FF8834A8: \n"
158//"; jumptable FF8833B8 entry 9            ; LOCATION: MovieRecorder.c:0 \n"
159"                BL      sub_FF88208C \n"
160"                STR     R5, [R4,#0xF8] \n"
161
162"loc_FF8834B0: \n"
163//"; jumptable FF8833B8 default entry \n"
164//"; jumptable FF8833B8 entry 7 \n"
165"                LDR     R1, [SP,#4] \n"
166"                LDR     R3, =0xFF881594 \n" //;aMovierecorder_
167"                STR     R6, [R1] \n"
168"                STR     R10, [SP] \n"
169"                LDR     R0, [R4,#0x28] \n"
170"                MOV     R2, R8 \n"
171"                BL      sub_FF83AE1C \n"
172"                LDR     R0, [R4,#0xD0] \n"
173"                BL      _eventproc_export_GiveSemaphore \n" // ; LOCATION: KerSem.c:0 \n"
174"                B       loc_FF883368 \n"
175 );
176}
177
Note: See TracBrowser for help on using the repository browser.