CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
movie_rec.c-Dateireferenz
#include "conf.h"
+ Include-Abhängigkeitsdiagramm für movie_rec.c:

gehe zum Quellcode dieser Datei

Funktionen

void change_video_tables (int a, int b)
 
void __attribute__ ((naked, noinline))
 

Variablen

int * video_quality = &conf.video_quality
 
int * video_mode = &conf.video_mode
 
long def_table1 [9] ={0x2000,0x38D,0x788,0x5800,0x9C5,0x14B8,0x10000,0x1C6A,0x3C45}
 
long def_table2 [9] ={0x1CCD,-0x2E1,-0x579,0x4F33,-0x7EB,-0xF0C,0xE666,-0x170A,-0x2BC6}
 
long table1 [9]
 
long table2 [9]
 
long CompressionRateTable [] ={0x60, 0x5D, 0x5A, 0x57, 0x54, 0x51, 0x4D, 0x48, 0x42, 0x3B, 0x32, 0x29, 0x22, 0x1D, 0x17, 0x14, 0x10, 0xE, 0xB, 9, 7, 6, 5, 4, 3, 2, 1}
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 18 der Datei movie_rec.c.

18  {
19  asm volatile(
20  "CMP R2, #1\n"
21  "STMFD SP!, {R4-R7,LR}\n"
22  "MOV R7, R0\n"
23  "MOV R6, R1\n"
24  "MOVEQ R3, #0x79\n"
25  "STREQ R3, [R6]\n"
26  "LDMEQFD SP!, {R4-R7,PC}\n"
27  "LDR R12, =0x71678\n"
28  "LDR R0, [R12]\n"
29  "LDR R3, =0x71680\n"
30  "CMP R0, #0\n"
31  "LDR R1, [R3]\n"
32  "BEQ loc_FFD52C74\n"
33  "LDR R2, =0x71684\n"
34  "LDR R3, [R2]\n"
35  "CMP R3, #1\n"
36  "BNE loc_FFD52C88\n"
37  "B loc_FFD52C78\n"
38 
39 
40 "loc_FFD52C74:\n"
41  "LDR R2, =0x71684\n"
42 
43 "loc_FFD52C78:\n"
44  "MOV R3, #0\n"
45  "STR R3, [R2]\n"
46  "STR R7, [R12]\n"
47  "B loc_FFD52D40\n"
48 
49 
50 "loc_FFD52C88:\n"
51  "LDR R2, =0x7167C\n"
52  "LDR R3, [R2]\n"
53  "LDR R5, =table1\n" //+ 0xFFD52A9C
54  "ADD R3, R3, R3,LSL#1\n"
55  "MOV LR, R3,LSL#2\n"
56  "LDR R2, [R5,LR]\n"
57  "LDR R4, =table2\n" //+ 0xFFD52AC0
58  "RSB R12, R2, R0\n"
59  "LDR R3, [R4,LR]\n"
60  "CMP R12, #0\n"
61  "RSB R0, R3, R0\n"
62  "BLE loc_FFD52CEC\n"
63  "ADD R3, R5, #4\n"
64  "LDR R2, [R3,LR]\n"
65  "CMP R2, R12\n"
66  "ADDGE R1, R1, #1\n"
67  "BGE loc_FFD52CE0\n"
68  "ADD R3, R5, #8\n"
69  "LDR R2, [R3,LR]\n"
70  "CMP R2, R12\n"
71  "ADDGE R1, R1, #2\n"
72  "ADDLT R1, R1, #3\n"
73 
74 "loc_FFD52CE0:\n"
75 // "CMP R1, #0xE\n" //-
76 // "MOVGE R1, #0xE\n" //-
77 
78  "CMP R1, #0x1A\n" //+
79  "MOVGE R1, #0x1A\n" //+
80 
81  "B loc_FFD52D24\n"
82 
83 
84 "loc_FFD52CEC:\n"
85  "CMP R0, #0\n"
86  "BGE loc_FFD52D24\n"
87  "ADD R3, R4, #4\n"
88  "LDR R2, [R3,LR]\n"
89  "CMP R2, R0\n"
90  "SUBLE R1, R1, #1\n"
91  "BLE loc_FFD52D1C\n"
92  "ADD R3, R4, #8\n"
93  "LDR R2, [R3,LR]\n"
94  "CMP R2, R0\n"
95  "SUBLE R1, R1, #2\n"
96  "SUBGT R1, R1, #3\n"
97 
98 "loc_FFD52D1C:\n"
99  "CMP R1, #0\n"
100  "MOVLT R1, #0\n"
101 
102 "loc_FFD52D24:\n"
103 
104  "LDR R0, =0x71680\n"
105  "LDR R3, [R0]\n"
106  "CMP R1, R3\n"
107  "LDRNE R2, =0x71684\n"
108  "MOVNE R3, #1\n"
109  "STRNE R1, [R0]\n"
110  "STRNE R3, [R2]\n"
111 
112 "loc_FFD52D40:\n"
113  "LDR R3, =0x71680\n"
114 // "LDR R1, =0x61A4\n" //-
115  "LDR R1, =video_mode\n" //+
116  "LDR R0, [R3]\n"
117  "LDR R2, =CompressionRateTable\n" //+ 0xFFD52A60
118  "LDR R12, [R1]\n"
119  "LDR R12, [R12]\n" //+
120  "LDR LR, [R2,R0,LSL#2]\n"
121  "LDR R3, =0x71678\n"
122  "CMP R12, #1\n"
123  "STR R7, [R3]\n"
124  "STR LR, [R6]\n"
125 // "MOVEQ R3, #0xB\n"
126  "LDREQ R3, =video_quality\n" //+
127  "LDREQ R3, [R3]\n" //+
128  "LDREQ R3, [R3]\n" //+
129  "STREQ R3, [R6]\n"
130  "BL mute_on_zoom\n" // +
131  "LDMFD SP!, {R4-R7,PC}\n"
132 
133  );
134 }
void change_video_tables ( int  a,
int  b 
)

Definiert in Zeile 11 der Datei movie_rec.c.

11  {
12  int i;
13  for (i=0;i<9;i++) {table1[i]=(def_table1[i]*a)/b; table2[i]=(def_table2[i]*a)/b;}
14 }

Variablen-Dokumentation

long CompressionRateTable[] ={0x60, 0x5D, 0x5A, 0x57, 0x54, 0x51, 0x4D, 0x48, 0x42, 0x3B, 0x32, 0x29, 0x22, 0x1D, 0x17, 0x14, 0x10, 0xE, 0xB, 9, 7, 6, 5, 4, 3, 2, 1}

Definiert in Zeile 16 der Datei movie_rec.c.

long def_table1[9] ={0x2000,0x38D,0x788,0x5800,0x9C5,0x14B8,0x10000,0x1C6A,0x3C45}

Definiert in Zeile 6 der Datei movie_rec.c.

long def_table2[9] ={0x1CCD,-0x2E1,-0x579,0x4F33,-0x7EB,-0xF0C,0xE666,-0x170A,-0x2BC6}

Definiert in Zeile 7 der Datei movie_rec.c.

long table1[9]

Definiert in Zeile 9 der Datei movie_rec.c.

long table2[9]

Definiert in Zeile 9 der Datei movie_rec.c.

int* video_mode = &conf.video_mode

Definiert in Zeile 4 der Datei movie_rec.c.

int* video_quality = &conf.video_quality

Definiert in Zeile 3 der Datei movie_rec.c.