source: trunk/platform/g12/sub/100e/movie_rec.c @ 1109

Revision 1109, 5.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// @ FF987094
11void __attribute__((naked,noinline)) movie_record_task(){
12
13 asm volatile(
14"                STMFD   SP!, {R2-R10,LR} \n"
15"                LDR     R8, =0x2710 \n"
16"                LDR     R4, =0x7290 \n"
17"                MOV     R7, #1 \n"
18"                LDR     R6, =0xFF986D84 \n"
19"                MOV     R5, #0 \n"
20
21"loc_FF9870AC: \n"
22"                LDR     R0, [R4,#0x24] \n"
23"                MOV     R2, #0 \n"
24"                ADD     R1, SP, #4 \n"
25"                BL      sub_FF83A460 \n"
26"                LDR     R0, [R4,#0x2C] \n"
27"                CMP     R0, #0 \n"
28"                LDRNE   R0, [R4,#0xC] \n"
29"                CMPNE   R0, #2 \n"
30"                LDRNE   R0, [R4,#0x44] \n"
31"                CMPNE   R0, #6 \n"
32"                BNE     loc_FF9871C4 \n"
33"                LDR     R0, [SP,#4] \n"
34"                LDR     R1, [R0] \n"
35"                SUB     R1, R1, #2 \n"
36"                CMP     R1, #0xA \n"
37"                ADDLS   PC, PC, R1,LSL#2 \n"
38
39"                B       loc_FF9871C4 \n"
40"loc_FF9870F0: \n"
41"                B       loc_FF987178 \n"
42"loc_FF9870F4: \n"
43"                B       loc_FF987198 \n"
44"loc_FF9870F8: \n"
45"                B       loc_FF9871A8 \n"
46"loc_FF9870FC: \n"
47"                B       loc_FF9871B0 \n"
48"loc_FF987100: \n"
49"                B       loc_FF987180 \n"
50"loc_FF987104: \n"
51"                B       loc_FF9871B8 \n"
52"loc_FF987108: \n"
53"                B       loc_FF987188 \n"
54"loc_FF98710C: \n"
55"                B       loc_FF9871C4 \n"
56"loc_FF987110: \n"
57"                B       loc_FF9871C0 \n"
58"loc_FF987114: \n"
59"                B       loc_FF987148 \n"
60"loc_FF987118: \n"
61"                B       loc_FF98711C \n"
62
63"loc_FF98711C: \n"
64//"; jumptable entry 10 \n"
65"                STR     R5, [R4,#0x40] \n"
66"                STR     R5, [R4,#0x30] \n"
67"                STR     R5, [R4,#0x34] \n"
68"                STRH    R5, [R4,#6] \n"
69"                STR     R6, [R4,#0xB4] \n"
70"                LDR     R0, [R4,#0xC] \n"
71"                ADD     R0, R0, #1 \n"
72"                STR     R0, [R4,#0xC] \n"
73"                MOV     R0, #6 \n"
74"                STR     R0, [R4,#0x44] \n"
75"                B       loc_FF987164 \n"
76
77"loc_FF987148: \n"
78//"; jumptable entry 9 \n"
79"                STR     R5, [R4,#0x40] \n"
80"                STR     R5, [R4,#0x30] \n"
81"                STR     R6, [R4,#0xB4] \n"
82"                LDR     R0, [R4,#0xC] \n"
83"                ADD     R0, R0, #1 \n"
84"                STR     R0, [R4,#0xC] \n"
85"                STR     R7, [R4,#0x44] \n"
86
87"loc_FF987164: \n"
88"                LDR     R2, =0xFF985F9C \n"
89"                LDR     R1, =0xB3E0C \n"
90"                LDR     R0, =0xFF986098 \n"
91"                BL      sub_FF8532D0 \n"
92"                B       loc_FF9871C4 \n"
93
94"loc_FF987178: \n"
95//"; jumptable entry 0            ; LOCATION: MovieRecorder.c:0 \n"
96
97"               BL      unlock_optical_zoom\n"                  // added to unlock the zoom
98
99"                BL      sub_FF986EAC \n"
100"                B       loc_FF9871C4 \n"
101
102"loc_FF987180: \n"
103//"; jumptable entry 4            ; LOCATION: MovieRecorder.c:2032 \n"
104"                BL      sub_FF9867EC \n"
105
106                "LDR     R0, =0x7318-4\n" // <----   -4 //+ set in sub_FF9867EC above
107                "BL      set_quality\n"                 //+ reset here to user value
108
109"                B       loc_FF9871C4 \n"
110
111"loc_FF987188: \n"
112//"; jumptable entry 6 \n"
113"                               LDR             R1, [R0,#0x18] \n"
114"                               LDR             R0, [R0,#4] \n"
115"                BL      sub_FFB00134 \n"
116"                B       loc_FF9871C4 \n"
117
118"loc_FF987198: \n"
119//"; jumptable entry 1 \n"
120"                LDR     R0, [R4,#0x44] \n"
121"                CMP     R0, #5 \n"
122"                STRNE   R7, [R4,#0x34] \n"
123"                B       loc_FF9871C4 \n"
124
125"loc_FF9871A8: \n"
126//"; jumptable entry 2            ; LOCATION: MovieRecorder.c:1000 \n"
127"                BL      sub_FF986434 \n"
128"                B       loc_FF9871C4 \n"
129
130"loc_FF9871B0: \n"
131//"; jumptable entry 3            ; LOCATION: MovieRecorder.c:0 \n"
132"                BL      sub_FF9860E4 \n"
133"                B       loc_FF9871C4 \n"
134
135"loc_FF9871B8: \n"
136//"; jumptable entry 5            ; LOCATION: MovieRecorder.c:100 \n"
137"                BL      sub_FF985F28 \n"
138"                B       loc_FF9871C4 \n"
139
140"loc_FF9871C0: \n"
141//"; jumptable entry 8            ; LOCATION: MovieRecorder.c:0 \n"
142"                BL      sub_FF9875F4 \n"
143
144"loc_FF9871C4: \n"
145//"; jumptable default entry \n"
146//"; jumptable entry 7 \n"
147"                LDR     R1, [SP,#4] \n"
148"                                MOV     R3, #0x5F0 \n"
149"                STR     R5, [R1] \n"
150"                STR     R3, [SP] \n"
151"                LDR     R0, [R4,#0x28] \n"
152"                LDR     R3, =0xFF985D8C \n" //;aMovierecorder_
153"                MOV     R2, R8 \n"
154"                BL      sub_FF83ADB4 \n"
155"                B       loc_FF9870AC \n"
156 );
157}
158
Note: See TracBrowser for help on using the repository browser.