Movie time limit investigation - General Discussion and Assistance - CHDK Forum  

Movie time limit investigation

  • 22 Replies
  • 7620 Views
*

Offline srsa_4c

  • ******
  • 4430
Movie time limit investigation
« on: 30 / July / 2011, 13:37:11 »
Advertisements
I've done some investigation about movie time limits in some cameras. My motivation was to lift the 3 minutes limit in the models I'm working on (A410, A420).

I was able to find the function that sets up (some) things :) at start of a recording, and found out the following.
The replacement parts of the code are originating from the A430 firmware (I compared the A420 and A430 initially, A420 has 3 minutes limit in every mode, A430's limits are set to 60 minutes).

(code snippet from A410 CHDK code, changed the order of some instructions for clarity)

Code: [Select]
loc_FFD1E798: @R8 can be used here
                CMP   R9, #0x280            @640x480 video (10fps)
                BNE   loc_FFD1E7D4
@               ADD  R2, R11, R11,LSL#1     @old: R2=fps+fps*2 (30)
@               RSB  R2, R2, R2,LSL#4       @old: R2=15*R2 (450)
@               MOV  R3, #0xB40             @old: seems like size for audio indexes (3 minutes)
@               MOV  R0, R2,LSL#2           @old: R0=R2*4 (1800) -> 1800 frames limit (180 sec)
                    RSB R8, R11, R11, LSL#4 @new: R8=15*fps (150)
                    RSB R2, R8, R8, LSL#4   @new: R2=15*R8 (2250), also used in index size calculation
                    MOV R3, #0xE100         @new: size for audio indexes, 60 minutes
                    MOV R0, R2, LSL#4       @new: R0=R2*16 (36000) -> 36000 frames limit (60 min)
                ADD  R3, R3, #8             @R3=0xb48 for 3 minutes limit, 0xe108 for 60 minutes
                LDR   R12, =0x7424C
                LDR   R5, =0x7427C
                MOV   R1, #0x40000          @maybe buffer size for 1 video frame
                STR   R1, [R5]
                STR   R0, [R12]             @frame number limit stored
@               ADD  R12, R3, R2,LSL#6 @old: R12=R3+R2*64 (2888+450*64=31688) total size for indexes, I think (3 minutes)
                    ADD R12, R3, R2, LSL#8 @new: R12=R3+R2*256 (57608+2250*256=633608) total size for indexes (60 minutes)
                MOV   R2, #2
                B    loc_FFD1E860
 loc_FFD1E7D4:@R8 can be used here
                CMP   R9, #0x140 @320x240 video (20fps)
                BNE   loc_FFD1E830
@               ADD  R2, R11, R11,LSL#1
@               RSB  R2, R2, R2,LSL#4
@               MOV  R3, #0xB40
@               MOV  R0, R2,LSL#2
                     RSB R8, R11, R11, LSL#4
                     RSB R2, R8, R8, LSL#4
                     MOV R3, #0xE100
                     MOV R0, R2, LSL#4
                ADD   R3, R3, #8
                LDR   R5, =0x7427C
                LDR   LR, =0x7424C
                MOV   R1, #0x20000          @maybe buffer size for 1 video frame
@               ADD  R12, R3, R2,LSL#6
                     ADD R12, R3, R2, LSL#8
                CMP   R11, #0x3C @the non-existing 60fps mode
                MOV   R3, #1
                STR   R1, [R5]
                STR   R0, [LR]              @frame number limit stored
                STR   R3, [SP,#0x38-0x34]
                BNE   loc_FFD1E864          @jump if not 60fps
@               RSB  R3, R11, R11,LSL#4
@               MOV  R2, R3,LSL#6
@               MOV  R3, R3,LSL#2
@               STR  R3, [LR]
@               ADD  R12, R2, #0x3C8
                     MOV  R3, R8, LSL#2
                     MOV  R2, #0xE400
                     STR  R3, [LR]          @frame number limit
                     ADD  R12, R2, #0xC8    @R12=0xE400+0xC8 has to be the total size for indexes
                B    loc_FFD1E864
 loc_FFD1E830: @160x120 video, untouched code (15fps)
                ADD   R2, R11, R11,LSL#1
                RSB   R2, R2, R2,LSL#4
                LDR   R12, =0x7424C
                LDR   R5, =0x7427C
                MOV   R3, #0xB40
                MOV   R0, R2,LSL#2
                MOV   R1, #0x10000          @maybe buffer size for 1 video frame
                ADD   R3, R3, #8
                STR   R1, [R5]
                STR   R0, [R12]             @frame number limit stored
                ADD   R12, R3, R2,LSL#6
                MOV   R2, #0
 loc_FFD1E860:
                STR   R2, [SP,#0x38-0x34]

*

Offline srsa_4c

  • ******
  • 4430
Re: Movie time limit investigation
« Reply #1 on: 30 / July / 2011, 13:39:11 »
Had to split my post into 3 pieces, forum limitation...

The code looks very much like this in early VxWorks cameras. In a later VxWorks camera (A570IS, 1.00e) it's a bit different, but can be recognized:

Code: [Select]
fff27f58:       e3570d0a        cmp     r7, #640        ; 0x280
fff27f5c:       e5827000        str     r7, [r2]
fff27f60:       e1a06000        mov     r6, r0
fff27f64:       e583b000        str     r11, [r3]
fff27f68:       e5889000        str     r9, [r8]
fff27f6c:       e58d100c        str     r1, [sp, #12]
fff27f70:       1a000013        bne     fff27fc4 <_start+0x327fc4>
fff27f74:       e59f42e4        ldr     r4, [pc, #740]  ; fff28260: (000a3488)
fff27f78:       e3a03701        mov     r3, #262144     ; 0x40000
fff27f7c:       e3a01002        mov     r1, #2
fff27f80:       e3590000        cmp     r9, #0
fff27f84:       e5843000        str     r3, [r4]
fff27f88:       e58d1004        str     r1, [sp, #4]
fff27f8c:       0a000006        beq     fff27fac <_start+0x327fac>
fff27f90:       e3a0086d        mov     r0, #7143424    ; 0x6d0000
fff27f94:       e1a01009        mov     r1, r9
fff27f98:       e2800cdd        add     r0, r0, #56576  ; 0xdd00
fff27f9c:       ebf697f7        bl      ffccdf80 <_start+0xcdf80>
fff27fa0:       e59f32bc        ldr     r3, [pc, #700]  ; fff28264: (000a345c)
fff27fa4:       e5830000        str     r0, [r3]
fff27fa8:       ea00001f        b       fff2802c <_start+0x32802c>
fff27fac:       e06b320b        rsb     r3, r11, r11, lsl #4
fff27fb0:       e0633203        rsb     r3, r3, r3, lsl #4
fff27fb4:       e59f22a8        ldr     r2, [pc, #680]  ; fff28264: (000a345c)
fff27fb8:       e1a03203        lsl     r3, r3, #4
fff27fbc:       e5823000        str     r3, [r2]
fff27fc0:       ea000019        b       fff2802c <_start+0x32802c>
fff27fc4:       e3570d05        cmp     r7, #320        ; 0x140
fff27fc8:       1a00000d        bne     fff28004 <_start+0x328004>
fff27fcc:       e06b120b        rsb     r1, r11, r11, lsl #4
fff27fd0:       e59f4288        ldr     r4, [pc, #648]  ; fff28260: (000a3488)
fff27fd4:       e59f0288        ldr     r0, [pc, #648]  ; fff28264: (000a345c)
fff27fd8:       e0612201        rsb     r2, r1, r1, lsl #4
fff27fdc:       e1a02202        lsl     r2, r2, #4
fff27fe0:       e3a03802        mov     r3, #131072     ; 0x20000
fff27fe4:       e5843000        str     r3, [r4]
fff27fe8:       e35b003c        cmp     r11, #60        ; 0x3c
fff27fec:       e5802000        str     r2, [r0]
fff27ff0:       e3a02001        mov     r2, #1
fff27ff4:       e58d2004        str     r2, [sp, #4]
fff27ff8:       01a03101        lsleq   r3, r1, #2
fff27ffc:       05803000        streq   r3, [r0]
fff28000:       ea000009        b       fff2802c <_start+0x32802c>
fff28004:       e08b308b        add     r3, r11, r11, lsl #1
fff28008:       e0633203        rsb     r3, r3, r3, lsl #4
fff2800c:       e59f424c        ldr     r4, [pc, #588]  ; fff28260: (000a3488)
fff28010:       e59f124c        ldr     r1, [pc, #588]  ; fff28264: (000a345c)
fff28014:       e1a03103        lsl     r3, r3, #2
fff28018:       e3a02801        mov     r2, #65536      ; 0x10000
fff2801c:       e5842000        str     r2, [r4]
fff28020:       e5813000        str     r3, [r1]
fff28024:       e3a03000        mov     r3, #0
fff28028:       e58d3004        str     r3, [sp, #4]
fff2802c:       e59d1008        ldr     r1, [sp, #8]

*

Offline srsa_4c

  • ******
  • 4430
Re: Movie time limit investigation
« Reply #2 on: 30 / July / 2011, 13:44:06 »
For a DryOS camera (SX100, 1.00c), here's a function, that I think is relevant (please note #640, #320 for resolutions, #3600 for 1 hour limit, and 0x40000, 0x20000, 0x10000 for buffer sizes) :
(this is only a suspicion, haven't tried anything yet)

Code: [Select]
ffd1263c:    e92d47f0     push    {r4, r5, r6, r7, r8, r9, r10, lr}
ffd12640:    e1a05002     mov     r5, r2
ffd12644:    e5922000     ldr     r2, [r2]
ffd12648:    e51f6630     ldr     r6, [pc, #-1584]     ; ffd12020: (0000a4c0)
ffd1264c:    e1a07003     mov     r7, r3
ffd12650:    e59d3020     ldr     r3, [sp, #32]
ffd12654:    e59da024     ldr     r10, [sp, #36]  ; 0x24
ffd12658:    e1a08000     mov     r8, r0
ffd1265c:    e5862088     str     r2, [r6, #136]  ; 0x88
ffd12660:    e5950004     ldr     r0, [r5, #4]
ffd12664:    e1a09001     mov     r9, r1
ffd12668:    e586008c     str     r0, [r6, #140]  ; 0x8c
ffd1266c:    e5950008     ldr     r0, [r5, #8]
ffd12670:    e3520d0a     cmp     r2, #640     ; 0x280
ffd12674:    e5860090     str     r0, [r6, #144]  ; 0x90
ffd12678:    e5971000     ldr     r1, [r7]
ffd1267c:    e5861094     str     r1, [r6, #148]  ; 0x94
ffd12680:    e5971010     ldr     r1, [r7, #16]
ffd12684:    e5861098     str     r1, [r6, #152]  ; 0x98
ffd12688:    e1d711b4     ldrh    r1, [r7, #20]
ffd1268c:    e586109c     str     r1, [r6, #156]  ; 0x9c
ffd12690:    e5971004     ldr     r1, [r7, #4]
ffd12694:    e1c610b0     strh    r1, [r6]
ffd12698:    e5971008     ldr     r1, [r7, #8]
ffd1269c:    e1c610b2     strh    r1, [r6, #2]
ffd126a0:    e5971018     ldr     r1, [r7, #24]
ffd126a4:    e58610a0     str     r1, [r6, #160]  ; 0xa0
ffd126a8:    e5951010     ldr     r1, [r5, #16]
ffd126ac:    e58630f0     str     r3, [r6, #240]  ; 0xf0
ffd126b0:    e3a03ee1     mov     r3, #3600    ; 0xe10
ffd126b4:    e58610a4     str     r1, [r6, #164]  ; 0xa4
ffd126b8:    1a000008     bne     ffd126e0 <_start+0x1126e0>
ffd126bc:    e3510000     cmp     r1, #0
ffd126c0:    e3a02701     mov     r2, #262144     ; 0x40000
ffd126c4:    e3a04002     mov     r4, #2
ffd126c8:    e586206c     str     r2, [r6, #108]  ; 0x6c
ffd126cc:    00000093     muleq   r0, r3, r0
ffd126d0:    0a000011     beq     ffd1271c <_start+0x11271c>
ffd126d4:    e59f0f04     ldr     r0, [pc, #3844] ; ffd135e0: (006ddd00)
ffd126d8:    eb0517ce     bl      ffe58618 <_start+0x258618>
ffd126dc:    ea00000e     b    ffd1271c <_start+0x11271c>
ffd126e0:    e3520d05     cmp     r2, #320     ; 0x140
ffd126e4:    1a000007     bne     ffd12708 <_start+0x112708>
ffd126e8:    e3a01802     mov     r1, #131072     ; 0x20000
ffd126ec:    e586106c     str     r1, [r6, #108]  ; 0x6c
ffd126f0:    e0010093     mul     r1, r3, r0
ffd126f4:    e350003c     cmp     r0, #60 ; 0x3c
ffd126f8:    e5861040     str     r1, [r6, #64]   ; 0x40
ffd126fc:    e3a04001     mov     r4, #1
ffd12700:    05863040     streq   r3, [r6, #64]   ; 0x40
ffd12704:    ea000005     b    ffd12720 <_start+0x112720>
ffd12708:    e3a01801     mov     r1, #65536      ; 0x10000
ffd1270c:    e586106c     str     r1, [r6, #108]  ; 0x6c
ffd12710:    e3a010b4     mov     r1, #180     ; 0xb4
ffd12714:    e0000091     mul     r0, r1, r0
ffd12718:    e3a04000     mov     r4, #0
ffd1271c:    e5860040     str     r0, [r6, #64]   ; 0x40
ffd12720:    e595000c     ldr     r0, [r5, #12]
ffd12724:    e3a01060     mov     r1, #96 ; 0x60
ffd12728:    e1b05000     movs    r5, r0
ffd1272c:    e596006c     ldr     r0, [r6, #108]  ; 0x6c
ffd12730:    13a05001     movne   r5, #1
ffd12734:    e58a0000     str     r0, [r10]
ffd12738:    e597000c     ldr     r0, [r7, #12]
ffd1273c:    e586005c     str     r0, [r6, #92]   ; 0x5c
ffd12740:    e288000f     add     r0, r8, #15
ffd12744:    e3c0000f     bic     r0, r0, #15
ffd12748:    e2800008     add     r0, r0, #8
ffd1274c:    e58600ac     str     r0, [r6, #172]  ; 0xac
ffd12750:    e58600c4     str     r0, [r6, #196]  ; 0xc4
ffd12754:    e2800020     add     r0, r0, #32
ffd12758:    eb051198     bl      ffe56dc0 <_start+0x256dc0>
ffd1275c:    e59600c4     ldr     r0, [r6, #196]  ; 0xc4
ffd12760:    e0887009     add     r7, r8, r9
ffd12764:    e2800080     add     r0, r0, #128    ; 0x80
ffd12768:    e58600c0     str     r0, [r6, #192]  ; 0xc0
ffd1276c:    e1d610b2     ldrh    r1, [r6, #2]
ffd12770:    e3a0904b     mov     r9, #75 ; 0x4b
ffd12774:    e3a08020     mov     r8, #32
ffd12778:    e3510000     cmp     r1, #0
ffd1277c:    0a000030     beq     ffd12844 <_start+0x112844>
ffd12780:    e3a01060     mov     r1, #96 ; 0x60
ffd12784:    e2800020     add     r0, r0, #32
ffd12788:    eb05118c     bl      ffe56dc0 <_start+0x256dc0>
ffd1278c:    e59600c0     ldr     r0, [r6, #192]  ; 0xc0
ffd12790:    e59fee4c     ldr     lr, [pc, #3660] ; ffd135e4: (0000a5b4)
ffd12794:    e2800080     add     r0, r0, #128    ; 0x80
ffd12798:    e58600cc     str     r0, [r6, #204]  ; 0xcc
ffd1279c:    e5962090     ldr     r2, [r6, #144]  ; 0x90
ffd127a0:    e0010299     mul     r1, r9, r2
ffd127a4:    e0881301     add     r1, r8, r1, lsl #6
ffd127a8:    e0811081     add     r1, r1, r1, lsl #1
ffd127ac:    e0800081     add     r0, r0, r1, lsl #1
ffd127b0:    e2803901     add     r3, r0, #16384  ; 0x4000
ffd127b4:    e2833dc5     add     r3, r3, #12608  ; 0x3140
ffd127b8:    e58600c8     str     r0, [r6, #200]  ; 0xc8
ffd127bc:    e58630b0     str     r3, [r6, #176]  ; 0xb0
ffd127c0:    e596105c     ldr     r1, [r6, #92]   ; 0x5c
ffd127c4:    e0470003     sub     r0, r7, r3
ffd127c8:    e261c000     rsb     r12, r1, #0
ffd127cc:    e080008c     add     r0, r0, r12, lsl #1
ffd127d0:    e2400010     sub     r0, r0, #16
ffd127d4:    e1a007a0     lsr     r0, r0, #15
ffd127d8:    e1a00780     lsl     r0, r0, #15
ffd127dc:    e083c000     add     r12, r3, r0
ffd127e0:    e58600bc     str     r0, [r6, #188]  ; 0xbc
ffd127e4:    e51f7774     ldr     r7, [pc, #-1908]     ; ffd12078: (62773130)
ffd127e8:    e586c0b4     str     r12, [r6, #180] ; 0xb4
ffd127ec:    e3a00000     mov     r0, #0
ffd127f0:    e28e8008     add     r8, lr, #8
ffd127f4:    e281a008     add     r10, r1, #8
ffd127f8:    e586c0b8     str     r12, [r6, #184] ; 0xb8
ffd127fc:    e029c09a     mla     r9, r10, r0, r12
ffd12800:    e2899002     add     r9, r9, #2
ffd12804:    e3c99003     bic     r9, r9, #3
ffd12808:    e7889100     str     r9, [r8, r0, lsl #2]
ffd1280c:    e5897000     str     r7, [r9]
ffd12810:    e7989100     ldr     r9, [r8, r0, lsl #2]
ffd12814:    e5891004     str     r1, [r9, #4]
ffd12818:    e78e3100     str     r3, [lr, r0, lsl #2]
ffd1281c:    e2800001     add     r0, r0, #1
ffd12820:    e3500002     cmp     r0, #2
ffd12824:    bafffff4     blt     ffd127fc <_start+0x1127fc>
ffd12828:    e1a01005     mov     r1, r5
ffd1282c:    e1a00004     mov     r0, r4
ffd12830:    ebfe2ade     bl      ffc9d3b0 <_start+0x9d3b0>
ffd12834:    e596105c     ldr     r1, [r6, #92]   ; 0x5c
ffd12838:    e0800001     add     r0, r0, r1
ffd1283c:    e5860054     str     r0, [r6, #84]   ; 0x54
ffd12840:    e8bd87f0     pop     {r4, r5, r6, r7, r8, r9, r10, pc}

All of these functions are called from a function that is called after "our" unlock_optical_zoom in movie_rec.c
It's also worth noting that this might only apply to cameras that create .avi videos with MJPG codec...

*

Offline srsa_4c

  • ******
  • 4430
Re: Movie time limit investigation
« Reply #3 on: 30 / July / 2011, 13:45:11 »
In the meantime, my A420 has finished recording a 640x480, 10fps video, over 121 minutes in length (well, I messed up calculating the new frame number limit, which ended up being 124 minutes).
The video seems to be error-free on the computer (checked with VirtualDub), but the camera doesn't recognize it (unidentified image).


*

Offline srsa_4c

  • ******
  • 4430
Re: Movie time limit investigation
« Reply #4 on: 31 / July / 2011, 11:45:42 »
I did more tests: the created avi videos are correct, but the camera's replay mode doesn't recognize them when they're longer than 60 minutes. Tried to "show" these videos to a later camera (SX100), same result. The avi format created by these early cameras is avi 1.0. Later models switched to OPENDML avis.

Re: Movie time limit investigation
« Reply #5 on: 31 / July / 2011, 12:44:02 »

I was able to find the function that sets up (some) things :) at start of a recording



If you have time, can you tell me if there is any locations where the start of recording can be delayed up to 30 msec ?

Do your AVI's playback OK ?


David

*

Offline srsa_4c

  • ******
  • 4430
Re: Movie time limit investigation
« Reply #6 on: 31 / July / 2011, 14:33:54 »
If you have time, can you tell me if there is any locations where the start of recording can be delayed up to 30 msec ?

In A410's code:

Code: [Select]
void __attribute__((naked,noinline)) movie_record_task(){
 asm volatile(
"                 STMFD   SP!, {R4,LR}\n"
"                 SUB     SP, SP, #4\n"
"                 MOV     R4, SP\n"
"                 B       loc_FFD1D02C\n"
" loc_FFD1CF7C:\n"
"                 LDR     R3, =0x73EB8\n"
"                 LDR     R2, [R3]\n"
"                 CMP     R2, #0\n"
"                 BNE     loc_FFD1D018\n"
"                 SUB     R3, R12, #1\n"
"                 CMP     R3, #0xA\n"
"                 LDRLS   PC, [PC,R3,LSL#2]\n"
"                 B       loc_FFD1D018\n"
"                 .long loc_FFD1CFC8\n"
"                 .long loc_FFD1CFD0\n"
"                 .long loc_FFD1CFE8\n"
"                 .long loc_FFD1CFF0\n"
"                 .long loc_FFD1CFF8\n"
"                 .long loc_FFD1CFD8\n"
"                 .long loc_FFD1D000\n"
"                 .long loc_FFD1CFE0\n"
"                 .long loc_FFD1D018\n"
"                 .long loc_FFD1D010\n"
"                 .long loc_FFD1D008\n"
" loc_FFD1CFC8:\n"
"                 BL      sub_FFD1D0AC\n"
"                 B       loc_FFD1D014\n"
" loc_FFD1CFD0:\n"//this is executed right after start of recording
"                 BL      unlock_optical_zoom\n" // +
"                 BL      sub_FFD1D2E0_my\n" //->this is code that (among other things) calls the setup function this thread is about
//*********************
"                 B       loc_FFD1D014\n"
" loc_FFD1CFD8:\n"
"                 BL      sub_FFD1D7A8_my\n" //
"                 B       loc_FFD1D014\n"
" loc_FFD1CFE0:\n"

The "setup" function I'm talking about always precedes any actual recording, because it sets up things like buffers, initializes variables. I've tried to put a SleepTask() call right into that function, and (in another try) to the place marked with the asterisks. Both seemed to work with lower values (30, 200 ms), but 1000ms delay caused shutdown (not really a surprise).
As you're trying to synchronize cameras, I don't know how accurate this method can be (there's a lot of code to execute there).
Another thing: the sensor and image acquisition part of the hardware might work independently of this, in that case the delay here won't have any synchronizing effect...

Please note, that I'm not really an expert, so somebody who is (like reyalp) could help you more.

Quote
Do your AVI's playback OK ?

Yes, they are fine (except that the camera won't recognize videos exceeding 60 minutes in length).

Re: Movie time limit investigation
« Reply #7 on: 31 / July / 2011, 15:01:20 »
the sensor and image acquisition part of the hardware might work independently of this, in that case the delay here won't have any synchronizing effect...

i suspect that is the case.

I am going to try to change one of the three clock frequencies for a brief time, assuming it can be.

I think that is how GoPro stereo works.



*

Offline srsa_4c

  • ******
  • 4430
Re: Movie time limit investigation
« Reply #8 on: 31 / July / 2011, 16:56:44 »
Found some suspicious things in the IXUS310 1.00a firmware.
(All I do is trying to look for values, that could have special meanings)
The function below is referenced only once (as in case of the other ones I posted here).
My remarks are after @ signs.

Code: [Select]
ff303920:   e92d5fff    push    {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, lr}
ff303924:   e1a09000    mov r9, r0
ff303928:   e5920010    ldr r0, [r2, #16]
ff30392c:   e59d8038    ldr r8, [sp, #56]   ; 0x38
ff303930:   e3500000    cmp r0, #0
ff303934:   059f1318    ldreq   r1, [pc, #792]  ; ff303c54: (0000032a)
ff303938:   059f02f4    ldreq   r0, [pc, #756]  ; ff303c34: (ff3028f4)  **"MovWriter.c"
ff30393c:   e3a05000    mov r5, #0
ff303940:   e1a04002    mov r4, r2
ff303944:   e1a0a003    mov r10, r3
ff303948:   e1a07005    mov r7, r5
ff30394c:   0bf42ccd    bleq    ff00ec88 <_start+0xec88>
ff303950:   e59f62e8    ldr r6, [pc, #744]  ; ff303c40: (0000cf78)
ff303954:   e5940000    ldr r0, [r4]
ff303958:   e3a0b01e    mov r11, #30                              @ 30fps as default?
ff30395c:   e58600d0    str r0, [r6, #208]  ; 0xd0
ff303960:   e5940004    ldr r0, [r4, #4]
ff303964:   e58600d4    str r0, [r6, #212]  ; 0xd4
ff303968:   e5940010    ldr r0, [r4, #16]
ff30396c:   e58600e0    str r0, [r6, #224]  ; 0xe0
ff303970:   e5941008    ldr r1, [r4, #8]
ff303974:   e59f02dc    ldr r0, [pc, #732]  ; ff303c58: (00007530)
ff303978:   e351000b    cmp r1, #11
ff30397c:   308ff101    addcc   pc, pc, r1, lsl #2
ff303980:   ea000021    b   ff303a0c <_start+0x303a0c>
ff303984:   ea00000d    b   ff3039c0 <_start+0x3039c0>
ff303988:   ea000008    b   ff3039b0 <_start+0x3039b0>
ff30398c:   ea000015    b   ff3039e8 <_start+0x3039e8>
ff303990:   ea000019    b   ff3039fc <_start+0x3039fc>
ff303994:   ea00001c    b   ff303a0c <_start+0x303a0c>
ff303998:   ea00001b    b   ff303a0c <_start+0x303a0c>
ff30399c:   ea00001a    b   ff303a0c <_start+0x303a0c>
ff3039a0:   ea000019    b   ff303a0c <_start+0x303a0c>
ff3039a4:   ea00000d    b   ff3039e0 <_start+0x3039e0>
ff3039a8:   ea00000a    b   ff3039d8 <_start+0x3039d8>
ff3039ac:   ea000005    b   ff3039c8 <_start+0x3039c8>
ff3039b0:   e59f72a4    ldr r7, [pc, #676]  ; ff303c5c: (00005dc0)
ff3039b4:   e3a00018    mov r0, #24                                @ 24fps?
ff3039b8:   e586712c    str r7, [r6, #300]  ; 0x12c
ff3039bc:   ea00000c    b   ff3039f4 <_start+0x3039f4>
ff3039c0:   e1a07000    mov r7, r0
ff3039c4:   ea000000    b   ff3039cc <_start+0x3039cc>
ff3039c8:   e59f7290    ldr r7, [pc, #656]  ; ff303c60: (000005dc)
ff3039cc:   e586012c    str r0, [r6, #300]  ; 0x12c
ff3039d0:   e586b0d8    str r11, [r6, #216] ; 0xd8
ff3039d4:   ea00000f    b   ff303a18 <_start+0x303a18>
ff3039d8:   e59f7284    ldr r7, [pc, #644]  ; ff303c64: (00000bb8)
ff3039dc:   eafffffa    b   ff3039cc <_start+0x3039cc>
ff3039e0:   e59f7280    ldr r7, [pc, #640]  ; ff303c68: (00001770)
ff3039e4:   eafffff8    b   ff3039cc <_start+0x3039cc>
ff3039e8:   e59f727c    ldr r7, [pc, #636]  ; ff303c6c: (0003a980)
ff3039ec:   e586012c    str r0, [r6, #300]  ; 0x12c
ff3039f0:   e3a000f0    mov r0, #240    ; 0xf0                     @ 240fps?
ff3039f4:   e58600d8    str r0, [r6, #216]  ; 0xd8
ff3039f8:   ea000006    b   ff303a18 <_start+0x303a18>
ff3039fc:   e586012c    str r0, [r6, #300]  ; 0x12c
ff303a00:   e59f7268    ldr r7, [pc, #616]  ; ff303c70: (0001d4c0)
ff303a04:   e3a00078    mov r0, #120    ; 0x78                     @ 120fps?
ff303a08:   eafffff9    b   ff3039f4 <_start+0x3039f4>
ff303a0c:   e59f1260    ldr r1, [pc, #608]  ; ff303c74: (0000035b)
ff303a10:   e59f021c    ldr r0, [pc, #540]  ; ff303c34: (ff3028f4)  **"MovWriter.c"
ff303a14:   ebf42c9b    bl  ff00ec88 <_start+0xec88>
ff303a18:   e59600d8    ldr r0, [r6, #216]  ; 0xd8
ff303a1c:   e59f1254    ldr r1, [pc, #596]  ; ff303c78: (00000e0f) @ 3600-1, 1 hour limit? -> R1 register
ff303a20:   e1a000a0    lsr r0, r0, #1
ff303a24:   e58600dc    str r0, [r6, #220]  ; 0xdc
ff303a28:   e59a0000    ldr r0, [r10]
ff303a2c:   e58600e4    str r0, [r6, #228]  ; 0xe4
ff303a30:   e1da01b0    ldrh    r0, [r10, #16]
ff303a34:   e58600e8    str r0, [r6, #232]  ; 0xe8
ff303a38:   e59a0004    ldr r0, [r10, #4]
ff303a3c:   e1c600b2    strh    r0, [r6, #2]
ff303a40:   e59a0008    ldr r0, [r10, #8]
ff303a44:   e1c600b4    strh    r0, [r6, #4]
ff303a48:   e59a0014    ldr r0, [r10, #20]
ff303a4c:   e58600ec    str r0, [r6, #236]  ; 0xec
ff303a50:   e5868128    str r8, [r6, #296]  ; 0x128
ff303a54:   e59600d0    ldr r0, [r6, #208]  ; 0xd0
ff303a58:   e3500d05    cmp r0, #320    ; 0x140                    @ 320x240
ff303a5c:   03a00802    moveq   r0, #131072 ; 0x20000              @ buffer size?
ff303a60:   03a05001    moveq   r5, #1
ff303a64:   058600ac    streq   r0, [r6, #172]  ; 0xac
ff303a68:   0a00000f    beq ff303aac <_start+0x303aac>
ff303a6c:   e3500d0a    cmp r0, #640    ; 0x280                    @ 640x480
ff303a70:   059f0204    ldreq   r0, [pc, #516]  ; ff303c7c: (0007a760) @ buffer size?
ff303a74:   03a05002    moveq   r5, #2
ff303a78:   058600ac    streq   r0, [r6, #172]  ; 0xac
ff303a7c:   0a00000a    beq ff303aac <_start+0x303aac>
ff303a80:   e3500c05    cmp r0, #1280   ; 0x500                    @ 1280x720, first HD resolution
ff303a84:   059f01f8    ldreq   r0, [pc, #504]  ; ff303c84: (0011da50) @ buffer size?
ff303a88:   e59f11f0    ldr r1, [pc, #496]  ; ff303c80: (00000257) @ 600-1, 10 minutes limit? -> R1 register
ff303a8c:   03a05004    moveq   r5, #4
ff303a90:   058600ac    streq   r0, [r6, #172]  ; 0xac
ff303a94:   0a000004    beq ff303aac <_start+0x303aac>
ff303a98:   e3500d1e    cmp r0, #1920   ; 0x780                    @ 1920x1080, R1 already set to 10 minutes limit
ff303a9c:   1a000004    bne ff303ab4 <_start+0x303ab4>
ff303aa0:   e3a00602    mov r0, #2097152    ; 0x200000             @ buffer size?
ff303aa4:   e3a05005    mov r5, #5
ff303aa8:   e58600ac    str r0, [r6, #172]  ; 0xac
ff303aac:   e586104c    str r1, [r6, #76]   ; 0x4c                 @ time limit (R1) stored here
ff303ab0:   ea000002    b   ff303ac0 <_start+0x303ac0>
ff303ab4:   e59f11cc    ldr r1, [pc, #460]  ; ff303c88: (00000383)
ff303ab8:   e59f0174    ldr r0, [pc, #372]  ; ff303c34: (ff3028f4)  **"MovWriter.c"
ff303abc:   ebf42c71    bl  ff00ec88 <_start+0xec88>
ff303ac0:   e596004c    ldr r0, [r6, #76]   ; 0x4c
ff303ac4:   e59f11c0    ldr r1, [pc, #448]  ; ff303c8c: (0000138d)
...
...
ff303c24:   e8bd9fff    pop {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, pc}

Re: Movie time limit investigation
« Reply #9 on: 31 / July / 2011, 17:47:53 »
So, 320x240 at 240 fps ?

 

Related Topics