root/platform/ixus105_sd1300/sub/100d/movie_rec.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. change_video_tables
  2. movie_record_task
  3. sub_FFD1B97C_my
  4. sub_FFE150B0_my

   1 #include "conf.h"
   2 
   3 int *video_quality = &conf.video_quality;
   4 int *video_mode    = &conf.video_mode;
   5 
   6 long def_table[24]={0x2000, 0x38D, 0x788, 0x5800, 0x9C5, 0x14B8, 0x10000, 0x1C6A, 0x3C45, 0x8000, 0xE35, 0x1E23,
   7            0x1CCD, -0x2E1, -0x579, 0x4F33, -0x7EB, -0xF0C, 0xE666, -0x170A, -0x2BC6, 0x7333, -0xB85, -0x15E3};
   8 
   9 long table[24];
  10 
  11 void change_video_tables(int a, int b){
  12  int i;
  13  for (i=0;i<24;i++) table[i]=(def_table[i]*a)/b; 
  14 }
  15 
  16 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};
  17 
  18 
  19 void __attribute__((naked,noinline)) movie_record_task(){ //@ 0xffd1be60
  20  asm volatile(
  21       "    STMFD   SP!, {R2-R8,LR} \n" 
  22       "    LDR     R8, =0x346 \n" 
  23       "    LDR     R7, =0x2710 \n" 
  24       "    LDR     R4, =0x5748 \n" 
  25       "    MOV     R6, #0 \n" 
  26       "    MOV     R5, #1 \n" 
  27 "loc_FFD1BE78:\n"
  28       "    LDR     R0, [R4, #0x18] \n" 
  29       "    MOV     R2, #0 \n" 
  30       "    ADD     R1, SP, #4 \n" 
  31       "    BL      sub_FFC2936C \n" 
  32       "    LDR     R0, [R4, #0x20] \n" 
  33       "    CMP     R0, #0 \n" 
  34       "    BNE     loc_FFD1BF48 \n" 
  35       "    LDR     R0, [SP, #4] \n" 
  36       "    LDR     R1, [R0] \n" 
  37       "    SUB     R1, R1, #2 \n" 
  38       "    CMP     R1, #9 \n" 
  39       "    ADDLS   PC, PC, R1, LSL #2 \n" 
  40       "    B       loc_FFD1BF48 \n" 
  41       "    B       loc_FFD1BEFC \n" 
  42       "    B       loc_FFD1BF1C \n" 
  43       "    B       loc_FFD1BF2C \n" 
  44       "    B       loc_FFD1BF34 \n" 
  45       "    B       loc_FFD1BF04 \n" 
  46       "    B       loc_FFD1BF3C \n" 
  47       "    B       loc_FFD1BF0C \n" 
  48       "    B       loc_FFD1BF48 \n" 
  49       "    B       loc_FFD1BF44 \n" 
  50       "    B       loc_FFD1BED4 \n" 
  51 "loc_FFD1BED4:\n"
  52       "    LDR     R0, =0xFFD1BB7C \n" 
  53       "    STR     R6, [R4, #0x34] \n" 
  54       "    STR     R0, [R4, #0xA8] \n" 
  55       "    LDR     R0, =0xFFD1B59C \n" 
  56       "    LDR     R2, =0xFFD1B4B8 \n" 
  57       "    LDR     R1, =0x72318 \n" 
  58       "    STR     R6, [R4, #0x24] \n" 
  59       "    BL      sub_FFCBDCC4 \n" 
  60       "    STR     R5, [R4, #0x38] \n" 
  61       "    B       loc_FFD1BF48 \n" 
  62 "loc_FFD1BEFC:\n"
  63         "BL      unlock_optical_zoom\n" //+-----> inserted to unlock the zoom
  64       "    BL      sub_FFD1BC74 \n" 
  65       "    B       loc_FFD1BF48 \n" 
  66 "loc_FFD1BF04:\n"
  67       //"    BL      sub_FFD1B97C \n" 
  68       "    BL      sub_FFD1B97C_my \n"  // -------->
  69       "    B       loc_FFD1BF48 \n" 
  70 "loc_FFD1BF0C:\n"
  71       "    LDR     R1, [R0, #0x10] \n" 
  72       "    LDR     R0, [R0, #4] \n" 
  73       "    BL      sub_FFE16D64 \n" 
  74       "    B       loc_FFD1BF48 \n" 
  75 "loc_FFD1BF1C:\n"
  76       "    LDR     R0, [R4, #0x38] \n" 
  77       "    CMP     R0, #5 \n" 
  78       "    STRNE   R5, [R4, #0x28] \n" 
  79       "    B       loc_FFD1BF48 \n" 
  80 "loc_FFD1BF2C:\n"
  81       "    BL      sub_FFD1B758 \n" 
  82       "    B       loc_FFD1BF48 \n" 
  83 "loc_FFD1BF34:\n"
  84       "    BL      sub_FFD1B5E8 \n" 
  85       "    B       loc_FFD1BF48 \n" 
  86 "loc_FFD1BF3C:\n"
  87       "    BL      sub_FFD1B444 \n" 
  88       "    B       loc_FFD1BF48 \n" 
  89 "loc_FFD1BF44:\n"
  90       "    BL      sub_FFD1C0B0 \n" 
  91 "loc_FFD1BF48:\n"
  92       "    LDR     R1, [SP, #4] \n" 
  93       "    LDR     R3, =0xFFD1B2D4 \n" 
  94       "    STR     R6, [R1] \n" 
  95       "    STR     R8, [SP] \n" 
  96       "    LDR     R0, [R4, #0x1C] \n" 
  97       "    MOV     R2, R7 \n" 
  98       "    BL      sub_FFC29CC0 \n" 
  99       "    B       loc_FFD1BE78 \n" 
 100  );
 101 } 
 102 
 103 void __attribute__((naked,noinline)) sub_FFD1B97C_my(){ 
 104  asm volatile(
 105       "    STMFD   SP!, {R4-R8,LR} \n" 
 106       "    SUB     SP, SP, #0x40 \n" 
 107       "    MOV     R6, #0 \n" 
 108       "    LDR     R5, =0x5748 \n" 
 109       "    MOV     R4, R0 \n" 
 110       "    STR     R6, [SP, #0x30] \n" 
 111       "    STR     R6, [SP, #0x28] \n" 
 112       "    LDR     R0, [R5, #0x38] \n" 
 113       "    MOV     R8, #4 \n" 
 114       "    CMP     R0, #3 \n" 
 115       "    STREQ   R8, [R5, #0x38] \n" 
 116       "    LDR     R0, [R5, #0xA8] \n" 
 117       "    BLX     R0 \n" 
 118       "    LDR     R0, [R5, #0x38] \n" 
 119       "    CMP     R0, #4 \n" 
 120       "    BNE     loc_FFD1BA54 \n" 
 121       "    ADD     R3, SP, #0x28 \n" 
 122       "    ADD     R2, SP, #0x2C \n" 
 123       "    ADD     R1, SP, #0x30 \n" 
 124       "    ADD     R0, SP, #0x34 \n" 
 125       "    BL      sub_FFE16EF8 \n" 
 126       "    CMP     R0, #0 \n" 
 127       "    MOV     R7, #1 \n" 
 128       "    BNE     loc_FFD1B9F8 \n" 
 129       "    LDR     R1, [R5, #0x28] \n" 
 130       "    CMP     R1, #1 \n" 
 131       "    BNE     loc_FFD1BA5C \n" 
 132       "    LDR     R1, [R5, #0x60] \n" 
 133       "    LDR     R2, [R5, #0x3C] \n" 
 134       "    CMP     R1, R2 \n" 
 135       "    BCC     loc_FFD1BA5C \n" 
 136 "loc_FFD1B9F8:\n"
 137       "    CMP     R0, #0x80000001 \n" 
 138       "    STREQ   R8, [R5, #0x64] \n" 
 139       "    BEQ     loc_FFD1BA30 \n" 
 140       "    CMP     R0, #0x80000003 \n" 
 141       "    STREQ   R7, [R5, #0x64] \n" 
 142       "    BEQ     loc_FFD1BA30 \n" 
 143       "    CMP     R0, #0x80000005 \n" 
 144       "    MOVEQ   R0, #2 \n" 
 145       "    BEQ     loc_FFD1BA2C \n" 
 146       "    CMP     R0, #0x80000007 \n" 
 147       "    STRNE   R6, [R5, #0x64] \n" 
 148       "    BNE     loc_FFD1BA30 \n" 
 149       "    MOV     R0, #3 \n" 
 150 "loc_FFD1BA2C:\n"
 151       "    STR     R0, [R5, #0x64] \n" 
 152 "loc_FFD1BA30:\n"
 153       "    LDR     R0, =0x72348 \n" 
 154       "    LDR     R0, [R0, #8] \n" 
 155       "    CMP     R0, #0 \n" 
 156       "    BEQ     loc_FFD1BA48 \n" 
 157       "    BL      sub_FFC48DE4 \n" 
 158       "    B       loc_FFD1BA4C \n" 
 159 "loc_FFD1BA48:\n"
 160       "    BL      sub_FFD1B444 \n" 
 161 "loc_FFD1BA4C:\n"
 162       "    MOV     R0, #5 \n" 
 163       "    STR     R0, [R5, #0x38] \n" 
 164 "loc_FFD1BA54:\n"
 165       "    ADD     SP, SP, #0x40 \n" 
 166       "    LDMFD   SP!, {R4-R8,PC} \n" 
 167 "loc_FFD1BA5C:\n"
 168       "    LDR     LR, [SP, #0x30] \n" 
 169       "    CMP     LR, #0 \n" 
 170       "    BEQ     loc_FFD1BB24 \n" 
 171       "    STR     R7, [R5, #0x2C] \n" 
 172       "    LDR     R0, [R5, #0x7C] \n" 
 173       "    LDR     R1, [R4, #0x14] \n" 
 174       "    LDR     R2, [R4, #0x18] \n" 
 175       "    LDR     R12, [R4, #0xC] \n" 
 176       "    ADD     R3, SP, #0x38 \n" 
 177       "    ADD     R8, SP, #0x14 \n" 
 178       "    STMIA   R8, {R0-R3} \n" 
 179       "    LDR     R3, [R5, #0x68] \n" 
 180       "    ADD     R2, SP, #0x3C \n" 
 181       "    ADD     R8, SP, #8 \n" 
 182       "    LDRD    R0, [SP, #0x28] \n" 
 183       "    STMIA   R8, {R0,R2,R3} \n" 
 184       "    STR     R1, [SP, #4] \n" 
 185       "    STR     LR, [SP] \n" 
 186       "    LDMIB   R4, {R0,R1} \n" 
 187       "    LDR     R3, [SP, #0x34] \n" 
 188       "    MOV     R2, R12 \n" 
 189       "    BL      sub_FFDEA46C \n" 
 190       "    LDR     R0, [R5, #0x10] \n" 
 191       "    LDR     R1, [R5, #0x58] \n" 
 192       "    BL      sub_FFC29788 \n" 
 193       "    CMP     R0, #9 \n" 
 194       "    BNE     loc_FFD1BAD8 \n" 
 195       "    BL      sub_FFE174E4 \n" 
 196       "    MOV     R0, #0x90000 \n" 
 197       "    STR     R7, [R5, #0x38] \n" 
 198       "    B       loc_FFD1BAF0 \n" 
 199 "loc_FFD1BAD8:\n"
 200       "    LDR     R0, [SP, #0x38] \n" 
 201       "    CMP     R0, #0 \n" 
 202       "    BEQ     loc_FFD1BAF8 \n" 
 203       "    BL      sub_FFE174E4 \n" 
 204       "    MOV     R0, #0xA0000 \n" 
 205       "    STR     R7, [R5, #0x38] \n" 
 206 "loc_FFD1BAF0:\n"
 207       "    BL      sub_FFC747A4 \n" 
 208       "    B       loc_FFD1BA54 \n" 
 209 "loc_FFD1BAF8:\n"
 210       "    BL      sub_FFDEA530 \n" 
 211       "    LDR     R0, [SP, #0x34] \n" 
 212       "    LDR     R1, [SP, #0x3C] \n" 
 213       "    BL      sub_FFE1728C \n" 
 214       "    LDR     R0, [R5, #0x5C] \n" 
 215       "    LDR     R1, =0x57C4 \n" 
 216       "    ADD     R0, R0, #1 \n" 
 217       "    STR     R0, [R5, #0x5C] \n" 
 218       "    LDR     R0, [SP, #0x3C] \n" 
 219       "    MOV     R2, #0 \n" 
 220       //"    BL      sub_FFE150B0 \n" 
 221       "    BL      sub_FFE150B0_my \n" // -------------->
 222 
 223 "loc_FFD1BB24:\n"
 224       "    LDR     R0, [R5, #0x60] \n" 
 225       "    ADD     R0, R0, #1 \n" 
 226       "    STR     R0, [R5, #0x60] \n" 
 227       "    LDR     R1, [R5, #0x4C] \n" 
 228       "    MUL     R0, R1, R0 \n" 
 229       "    LDR     R1, [R5, #0x48] \n" 
 230       "    BL      sub_FFEA4864 \n" 
 231       "    MOV     R4, R0 \n" 
 232       "    BL      sub_FFE1751C \n" 
 233       "    LDR     R1, [R5, #0x80] \n" 
 234       "    CMP     R1, R4 \n" 
 235       "    BNE     loc_FFD1BB60 \n" 
 236       "    LDR     R0, [R5, #0x30] \n" 
 237       "    CMP     R0, #1 \n" 
 238       "    BNE     loc_FFD1BB74 \n" 
 239 "loc_FFD1BB60:\n"
 240       "    LDR     R1, [R5, #0x8C] \n" 
 241       "    MOV     R0, R4 \n" 
 242       "    BLX     R1 \n" 
 243       "    STR     R4, [R5, #0x80] \n" 
 244       "    STR     R6, [R5, #0x30] \n" 
 245 "loc_FFD1BB74:\n"
 246       "    STR     R6, [R5, #0x2C] \n" 
 247       "    B       loc_FFD1BA54 \n" 
 248 
 249         );
 250 };
 251 
 252 void __attribute__((naked,noinline)) sub_FFE150B0_my(){
 253         asm volatile(
 254       "    STMFD   SP!, {R4-R8,LR} \n" 
 255       "    LDR     R4, =0x9000 \n" 
 256       "    LDR     LR, [R4] \n" 
 257       "    LDR     R2, [R4, #8] \n" 
 258       "    CMP     LR, #0 \n" 
 259       "    LDRNE   R3, [R4, #0xC] \n" 
 260       "    MOV     R5, R2 \n" 
 261       "    CMPNE   R3, #1 \n" 
 262       "    MOVEQ   R2, #0 \n" 
 263       "    STREQ   R0, [R4] \n" 
 264       "    STREQ   R2, [R4, #0xC] \n" 
 265       "    BEQ     loc_FFE1517C \n" 
 266       "    LDR     R3, [R4, #4] \n" 
 267       "    LDR     R7, =0xFFEED72C \n" 
 268       "    ADD     R12, R3, R3, LSL #1 \n" 
 269       "    LDR     R3, [R7, R12, LSL #2] \n" 
 270       "    ADD     R6, R7, #0x30 \n" 
 271       "    LDR     R8, [R6, R12, LSL #2] \n" 
 272       "    SUB     R3, LR, R3 \n" 
 273       "    CMP     R3, #0 \n" 
 274       "    SUB     LR, LR, R8 \n" 
 275       "    BLE     loc_FFE15138 \n" 
 276       "    ADD     R12, R7, R12, LSL #2 \n" 
 277       "    LDR     LR, [R12, #4] \n" 
 278       "    CMP     LR, R3 \n" 
 279       "    ADDGE   R2, R2, #1 \n" 
 280       "    BGE     loc_FFE1512C \n" 
 281       "    LDR     R12, [R12, #8] \n" 
 282       "    CMP     R12, R3 \n" 
 283       "    ADDLT   R2, R2, #3 \n" 
 284       "    ADDGE   R2, R2, #2 \n" 
 285 "loc_FFE1512C:\n"
 286       //"    CMP     R2, #0x17 \n" 
 287       //"    MOVGE   R2, #0x16 \n" 
 288                 "CMP     R2, #0x1A\n"   // +
 289                 "MOVGE   R2, #0x19\n"   // +
 290       "    B       loc_FFE1516C \n" 
 291 "loc_FFE15138:\n"
 292       "    CMP     LR, #0 \n" 
 293       "    BGE     loc_FFE1516C \n" 
 294       "    ADD     R3, R6, R12, LSL #2 \n" 
 295       "    LDR     R12, [R3, #4] \n" 
 296       "    CMP     R12, LR \n" 
 297       "    SUBLE   R2, R2, #1 \n" 
 298       "    BLE     loc_FFE15164 \n" 
 299       "    LDR     R3, [R3, #8] \n" 
 300       "    CMP     R3, LR \n" 
 301       "    SUBGT   R2, R2, #3 \n" 
 302       "    SUBLE   R2, R2, #2 \n" 
 303 "loc_FFE15164:\n"
 304       "    CMP     R2, #0 \n" 
 305       "    MOVLT   R2, #0 \n" 
 306 "loc_FFE1516C:\n"
 307       "    CMP     R2, R5 \n" 
 308       "    STRNE   R2, [R4, #8] \n" 
 309       "    MOVNE   R2, #1 \n" 
 310       "    STRNE   R2, [R4, #0xC] \n" 
 311 "loc_FFE1517C:\n"
 312       "    LDR     R2, =CompressionRateTable \n" 
 313       "    LDR     R3, [R4, #8] \n" 
 314       "    LDR     R2, [R2, R3, LSL #2] \n" 
 315 
 316                 "LDR     R3, =video_mode\n"      // +
 317                 "LDR     R3, [R3]\n"             // +
 318                 "LDR     R3, [R3]\n"             // +
 319                 "CMP     R3, #1\n"               // +
 320                 "LDREQ   R3, =video_quality\n"   // +
 321                 "LDREQ   R3, [R3]\n"             // +
 322                 "LDREQ   R2, [R3]\n"             // +
 323 
 324       "    STR     R2, [R1] \n" 
 325       "    STR     R0, [R4] \n" 
 326       "    LDMFD   SP!, {R4-R8,PC} \n" 
 327         );
 328 }

/* [<][>][^][v][top][bottom][index][help] */