Author Topic: Full-resolution silent pictures  (Read 358548 times)

josepvm

  • Member
  • ***
  • Posts: 206
Re: Full-resolution silent pictures
« Reply #950 on: August 31, 2016, 01:08:31 AM »
I have found them for you:

Code: [Select]

700D
------

capture_err_time_addr = 0xff1e1a38
bulb_end_addr  = 0x24960


Try these values. I have not checked them ( I do not own a 700D), but I think they are correct:

Code: [Select]
"FA_CaptureTestImage(hJob:%#lx)":
ff1e19f0: 435f4146 cmpmi pc, #-2147483631 ; 0x80000011
ff1e19f4: 75747061 ldrbvc r7, [r4, #-97]! ; 0x61
ff1e19f8: 65546572 ldrbvs r6, [r4, #-1394] ; 0x572
ff1e19fc: 6d497473 cfstrdvs mvd7, [r9, #-460] ; 0xfffffe34
ff1e1a00: 28656761 stmdacs r5!, {r0, r5, r6, r8, r9, sl, sp, lr}^
ff1e1a04: 626f4a68 rsbvs r4, pc, #104, 20 ; 0x68000
ff1e1a08: 6c23253a cfstr32vs mvfx2, [r3], #-232 ; 0xffffff18
ff1e1a0c: 00002978 andeq r2, r0, r8, ror r9
"sht_FA_ReleaseStart":
ff1e1a10: 5f746873 svcpl 0x00746873
ff1e1a14: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1a0b: (???)
ff1e1a18: 61656c65 cmnvs r5, r5, ror #24
ff1e1a1c: 74536573 ldrbvc r6, [r3], #-1395 ; 0x573
ff1e1a20: 00747261 rsbseq r7, r4, r1, ror #4
"sht_FA_ReleaseData":
ff1e1a24: 5f746873 svcpl 0x00746873
ff1e1a28: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1a1f: (???)
ff1e1a2c: 61656c65 cmnvs r5, r5, ror #24
ff1e1a30: 61446573 hvcvs 18003 ; 0x4653
ff1e1a34: 00006174 andeq r6, r0, r4, ror r1
ff1e1a38: 00004e20 andeq r4, r0, r0, lsr #28                                < --------------
loc_ff1e1a3c:
ff1e1a3c: 0000017b andeq r0, r0, fp, ror r1
ff1e1a40: ff1e149c ; <UNDEFINED> instruction: 0xff1e149c
"FA_CaptureTestImage Fin":

So capture_err_time_addr = 0xff1e1a38

And:
Code: [Select]
ff14af18: e28f2f81 add r2, pc, #516 ; ff14b124: (42736373)  *"scsBulbEnd"
ff14af1c: e20000ff and r0, r0, #255 ; 0xff
ff14af20: e3a01003 mov r1, #3
ff14af24: eb3ae28c bl loc_395c
ff14af28: e51f0b30 ldr r0, [pc, #-2864] ; ff14a400: (00024950)   <--------
ff14af2c: e3a01001 mov r1, #1
ff14af30: e5801010 str r1, [r0, #16]       <------------------------------------
ff14af34: e5900004 ldr r0, [r0, #4]
ff14af38: e8bd8010 pop {r4, pc}

so  bulb_end_addr  = 0x24950  + 0x10  = 0x24960


hillibilli

  • New to the forum
  • *
  • Posts: 3
Re: Full-resolution silent pictures
« Reply #951 on: August 31, 2016, 08:00:19 PM »
I have a 700D.114 and there the address of capture_err_time_addr is different to the value from @josepvm:

capture_err_time_addr = 0xff1e1dd8

The address of
bulb_end_addr is the same as @josepvm posted = 0x24960

In a first short test I implemented only the capture_err_time_addr
and it works. Now up to 32s are possible.

Bulb mode I have not yet tested.


The code of my ROM1 is:
Code: [Select]
"FA_CaptureTestImage(hJob:%#lx)":
ff1e1d90: 435f4146 cmpmi pc, #-2147483631 ; 0x80000011
ff1e1d94: 75747061 ldrbvc r7, [r4, #-97]! ; 0x61
ff1e1d98: 65546572 ldrbvs r6, [r4, #-1394] ; 0x572
ff1e1d9c: 6d497473 cfstrdvs mvd7, [r9, #-460] ; 0xfffffe34
ff1e1da0: 28656761 stmdacs r5!, {r0, r5, r6, r8, r9, sl, sp, lr}^
ff1e1da4: 626f4a68 rsbvs r4, pc, #104, 20 ; 0x68000
ff1e1da8: 6c23253a cfstr32vs mvfx2, [r3], #-232 ; 0xffffff18
ff1e1dac: 00002978 andeq r2, r0, r8, ror r9
"sht_FA_ReleaseStart":
ff1e1db0: 5f746873 svcpl 0x00746873
ff1e1db4: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1dab: (???)
ff1e1db8: 61656c65 cmnvs r5, r5, ror #24
ff1e1dbc: 74536573 ldrbvc r6, [r3], #-1395 ; 0x573
ff1e1dc0: 00747261 rsbseq r7, r4, r1, ror #4
"sht_FA_ReleaseData":
ff1e1dc4: 5f746873 svcpl 0x00746873
ff1e1dc8: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1dbf: (???)
ff1e1dcc: 61656c65 cmnvs r5, r5, ror #24
ff1e1dd0: 61446573 hvcvs 18003 ; 0x4653
ff1e1dd4: 00006174 andeq r6, r0, r4, ror r1
ff1e1dd8: 00004e20 andeq r4, r0, r0, lsr #28
ff1e1ddc: 0000017b andeq r0, r0, fp, ror r1
ff1e1de0: ff1e183c ; <UNDEFINED> instruction: 0xff1e183c
"FA_CaptureTestImage Fin":

For BulbEnd: (only the code addresses are different, all other is equal)
Code: [Select]
ff14b0cc: e28f2f81 add r2, pc, #516 ; ff14b2d8: (42736373)  *"scsBulbEnd"
ff14b0d0: e20000ff and r0, r0, #255 ; 0xff
ff14b0d4: e3a01003 mov r1, #3
ff14b0d8: eb3ae21f bl loc_395c
ff14b0dc: e51f0b30 ldr r0, [pc, #-2864] ; ff14a5b4: (00024950)
ff14b0e0: e3a01001 mov r1, #1
ff14b0e4: e5801010 str r1, [r0, #16]
ff14b0e8: e5900004 ldr r0, [r0, #4]
ff14b0ec: e8bd8010 pop {r4, pc}
EOS 700D 1.1.4|EF-S 18-55 f/3.5-5.6|Vixen R135S D=135 F=720|Sky-Watcher D=200 F=1000

josepvm

  • Member
  • ***
  • Posts: 206
Re: Full-resolution silent pictures
« Reply #952 on: August 31, 2016, 09:55:42 PM »
For EOS M:

Code: [Select]
capture_err_time_addr = 0xff1df1fc
bulb_end_addr  = 0x3F300

30 sec. FRSP and bulb FRSP are working in this little cam  ;)

I have updated the "silent.c" version I posted in this thread some time ago.  Now with bulb FRSP working for 500D, 50D and EOS M.  And also enabled for 700D, but not tested. This file is prepared to be used with current ML unified branch.

It's based on Greg's branch, and merged with unfied by Dmilligan (see previous posts in this thread).  Now I have added the addresses I found for EOS M and 700D.




IBIRRU

  • New to the forum
  • *
  • Posts: 26
Re: Full-resolution silent pictures
« Reply #953 on: August 31, 2016, 10:13:04 PM »
Thanks a lot josepvm!!

I'll try to compile and use it.

You are great guy!
EOS 700D, EOS 500D

josepvm

  • Member
  • ***
  • Posts: 206
Re: Full-resolution silent pictures
« Reply #954 on: August 31, 2016, 11:21:10 PM »
I have a 700D.114 and there the address of capture_err_time_addr is different to the value from @josepvm:

capture_err_time_addr = 0xff1e1dd8

The address of
bulb_end_addr is the same as @josepvm posted = 0x24960


Oh sorry, my  fault, the 700D ROM1 copy I was looking at  is 1.1.1,  I didn't notice it was not the same as current builds for 700D.

I have updated the "silent.c" file I posted before with your correct values, It should work now.

IBIRRU

  • New to the forum
  • *
  • Posts: 26
Re: Full-resolution silent pictures
« Reply #955 on: September 01, 2016, 09:15:49 PM »
josepvm,
Tried the last silent.c that you share including EOS 700D ..... all is working!!

using intervalometer, bulb 60 s

FRSP BULB MODE is ok
saving DNG is ok
saving MLV is ok

This could be the best feature for astrophotography toghether intervalometer because we save the shutter a lot. We take for just 1 final picture up to 100 x 120s shots (light+ dark + flat +darkflat+bias frame).

Now I will  test the reliability, especially saving in MLV format

Thanks again
 
EOS 700D, EOS 500D

Greg

  • Hero Member
  • *****
  • Posts: 544
Re: Full-resolution silent pictures
« Reply #956 on: September 01, 2016, 10:00:38 PM »
Correct register addresses please add comment - https://bitbucket.org/hudson/magic-lantern/pull-requests/735/frsp-bulb-support/diff
This will help merge in the future.

milank

  • New to the forum
  • *
  • Posts: 30
  • 5D3, 700D
Re: Full-resolution silent pictures
« Reply #957 on: September 01, 2016, 10:33:27 PM »
I have made some more tweaking, to get the module working also in dedicated bulb mode:
Code: [Select]
@@ -145,5 +145,5 @@
         MENU_APPEND_VALUE(", DNG");
     }
     
-    if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && (shooting_mode != SHOOTMODE_M || is_movie_mode()))
+    if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && ((shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB) || is_movie_mode()))
     {
@@ -149,5 +149,5 @@
     {
-        MENU_SET_WARNING(MENU_WARN_NOT_WORKING, "Full-res pictures only work in Manual (M) photo mode.");
+        MENU_SET_WARNING(MENU_WARN_NOT_WORKING, "Full-res pictures only work in Manual (M) or Bulb (B) photo mode.");
     }
     
     silent_pic_check_mlv(entry, info);
@@ -1175,5 +1175,5 @@
     
     char* error_msg = 0;
 
-    if (shooting_mode != SHOOTMODE_M)
+    if (shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB)
     {
@@ -1179,6 +1179,6 @@
     {
-        error_msg = "Manual (M) mode is required.";
-        goto err;
+     error_msg = "Manual (M) or Bulb (B) mode is required.";
+     goto err;
     }
 
     if (prop_iso == 0 || prop_shutter == 0)
@@ -1242,7 +1242,7 @@
      * and creates a "job" object (CreateSkeltonJob)
      */
     void* job = (void*) call("FA_CreateTestImage");
-   
+
     if (prop_shutter == SHUTTER_BULB || (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr))
     {
         /* some cameras reset the cache fake after FRSP, we need it again */
@@ -1257,8 +1257,19 @@
         /* cameras with SHOOTMODE_BULB need fake SHUTTER_BULB */
         if (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr)
         {
-            ASSERT(*(uint8_t*)(job + frsp_tv_addr) == prop_shutter);
-            *(uint8_t*)(job + frsp_tv_addr) = SHUTTER_BULB;
+          printf("job: %x\n", job);
+          printf("prop_shutter: 0x%x\n", prop_shutter);
+
+          for (int i = 0; i < 256; i++)
+          {
+               if(prop_shutter == *(uint8_t*)(job + i))
+               {
+                    printf("FA_CreateTestImage Tv Addr : 0x%x\n", i);
+               }
+          }
+
+          ASSERT(*(uint8_t*)(job + frsp_tv_addr) == prop_shutter);
+          *(uint8_t*)(job + frsp_tv_addr) = SHUTTER_BULB;
         }
         
         delayed_call(bulb_time * 1000, bulb_stop, 0);
@@ -1281,7 +1292,7 @@
      * and available from RAW_PHOTO_EDMAC (defined in raw.c)
      */
     call("FA_CaptureTestImage", job);
-   
+
     int t1 = get_ms_clock_value();
     int capture_time = t1 - t0;
 
@@ -1481,5 +1492,5 @@
     if (!silent_pic_enabled)
         return 0;
 
-    /* fullres silent pics only work in M mode,
+    /* fullres silent pics only work in M or B mode,
      * and they may screw up things if triggered while recording. */
@@ -1485,5 +1496,5 @@
      * and they may screw up things if triggered while recording. */
-    if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && (shooting_mode != SHOOTMODE_M || is_movie_mode()))
+    if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && ((shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB) || is_movie_mode()))
         return 0;
 
     static int silent_pic_countdown;
@@ -1664,6 +1675,14 @@
         frsp_tv_addr = 0x64; // cameras with SHOOTMODE_BULB need fake SHUTTER_BULB
     }
     
+    if (is_camera("5D3",  "1.1.3"))
+    {
+        bulb_end_addr = 0x25294;
+        capture_err_time_addr = 0xFF9BF358;
+        frsp_tv_addr = 0x78; // cameras with SHOOTMODE_BULB need fake SHUTTER_BULB
+     }
+
+
     /* cache fake "ERROR Take Semaphore" time in "FA_CaptureTestImage" */
     /* 20 seconds to (15 + 1) minutes */
     if (bulb_end_addr && capture_err_time_addr)
But on my 5D3.113, it fails to find (http://www.magiclantern.fm/forum/index.php?topic=12523.msg168625#msg168625) correct frsp_tv_addr (both bulb timer ON and OF).
Therefore it always ends up with ASSERT.

josepvm

  • Member
  • ***
  • Posts: 206

josepvm

  • Member
  • ***
  • Posts: 206
Re: Full-resolution silent pictures
« Reply #959 on: September 01, 2016, 11:27:15 PM »
josepvm,
Tried the last silent.c that you share including EOS 700D ..... all is working!!

Ibirru, I have updated the file again. Please, download the new version and try it again.

Previously I enabled "long_exposure_fix_enabled"  for the new cams, and I see now that this is needed only for 500D, 550D and 600D.

EOS M works fine with this option disabled.

IBIRRU

  • New to the forum
  • *
  • Posts: 26
Re: Full-resolution silent pictures
« Reply #960 on: September 01, 2016, 11:57:11 PM »
It works also in 700D. Just compiled and running.  :)
EOS 700D, EOS 500D

milank

  • New to the forum
  • *
  • Posts: 30
  • 5D3, 700D
Re: Full-resolution silent pictures
« Reply #961 on: September 06, 2016, 11:08:21 PM »
Some progress with dedicated BULB dial like 60D, 5D3 etc...with help of Greg.
Extending search range for frsp_tv_shutter to 1000 instead of 256 shows two offsets for 5D3.113 - 0x280 and 0x282.
Therefore:
Code: [Select]
-static uint8_t frsp_tv_addr = 0;
+static uint16_t frsp_tv_addr = 0;
Using 0x280 enables the bulb exposure (3 min max tested), but the image does not get saved onto the card, for some reason.

Greg

  • Hero Member
  • *****
  • Posts: 544
Re: Full-resolution silent pictures
« Reply #962 on: September 07, 2016, 03:59:09 PM »
Updated easy code to find registry tv addr - http://www.magiclantern.fm/forum/index.php?topic=12523.msg168625#msg168625

Code: [Select]
0x0 // Tv1
0x1 // Av1
0x2 // Tv2
0x3 // Av2
0x4 // ISO

You can try to use Tv1 and Tv2.
(0x280 and 0x282)

FRSP related infos - http://www.magiclantern.fm/forum/index.php?topic=14363.0
Look at struct shootParm.


milank

  • New to the forum
  • *
  • Posts: 30
  • 5D3, 700D
Re: Full-resolution silent pictures
« Reply #963 on: September 09, 2016, 07:56:52 AM »
ok, solved.
Image did not save due to "stdev too large" message (failed autodetect_black_level()), for which I have no clue. Dark images do not have this problem.
Finally working bulb FRSP 5D3.113:
Code: [Select]
bulb_end_addr = 0x25294;
capture_err_time_addr = 0xFF1BF358;
frsp_tv_addr = 0x280;
Entire DIFF you find on https://bitbucket.org/milank/ml-frsp-long-expo/branch/BULB%20dial%20test#diff.

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9730
  • 5D Mark Free
Re: Full-resolution silent pictures
« Reply #964 on: September 09, 2016, 08:55:51 AM »
In raw.c, you can define RAW_DEBUG for more verbose messages, and RAW_DEBUG_DUMP to save the raw file that's causing issues.

May be related to this: www.magiclantern.fm/forum/index.php?topic=17579

milank

  • New to the forum
  • *
  • Posts: 30
  • 5D3, 700D
Re: Full-resolution silent pictures
« Reply #965 on: September 09, 2016, 02:21:34 PM »
I have put raw debug on:
Code: [Select]
#define RAW_DEBUG        /* define it to help with porting */
#define RAW_DEBUG_DUMP   /* if you want to save the raw image buffer and the DNG from here */
#define RAW_DEBUG_BLACK  /* for checking black level calibration */
The console.log after two BULB shots (1min and 25s):
Code: [Select]
...
raw update from shoot_task
Photo raw buffer: 86028f8 (5936x3950)
Skip left:138 right:2 top:80 bottom:0
Resolution changed: 0x0 -> 5936x3950
active area: x=138..5934, y=80..3950
lv2raw sx:8203 sy:8221 tx:152 ty:88
raw2lv test: (-1,-1) - (722,482)
  should be: (0,0) - (720,480)
raw2bm test: (-1,-1) - (722,482)
  should be: (0,0) - (720,480)
bm2raw test: (152,88) - (5919,3941)
  should be: (138,80) - (5934,3950)
Black check 1/5: 8316…0.00, ref 2047…6.75, delta=6269
Black 1/5: mean too different (8316, ref 2047…6.75)
Save configs...
raw update from shoot_task
Photo raw buffer: 86028f8 (5936x3950)
Skip left:138 right:2 top:80 bottom:0
active area: x=138..5934, y=80..3950
lv2raw sx:8203 sy:8221 tx:152 ty:88
raw2lv test: (-1,-1) - (722,482)
  should be: (0,0) - (720,480)
raw2bm test: (-1,-1) - (722,482)
  should be: (0,0) - (720,480)
bm2raw test: (152,88) - (5919,3941)
  should be: (138,80) - (5934,3950)
Black check 1/5: 7980…382.40, ref 2047…6.77, delta=5933
Black 1/5: mean too different (7980, ref 2047…6.77)
Save configs...
If I try to save the DNG for debug purposes (using if(0) => if(1)), I receive Error 70.

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9730
  • 5D Mark Free
Re: Full-resolution silent pictures
« Reply #966 on: September 09, 2016, 02:40:19 PM »
Ah, SRM memory issues. The other dumping routine does not use an extra copy, so that one should be fine. If it still doesn't work, I'll look into it.

BTW, in console.log, the "…" is actually the +/- sign (ML uses a non-standard character set).

milank

  • New to the forum
  • *
  • Posts: 30
  • 5D3, 700D
Re: Full-resolution silent pictures
« Reply #967 on: September 09, 2016, 03:50:14 PM »
the same test with MLV is similar:
Code: [Select]
....
raw update from shoot_task
Photo raw buffer: 86028f8 (5936x3950)
Skip left:138 right:2 top:80 bottom:0
active area: x=138..5934, y=80..3950
lv2raw sx:8203 sy:8221 tx:152 ty:88
raw2lv test: (-1,-1) - (722,482)
  should be: (0,0) - (720,480)
raw2bm test: (-1,-1) - (722,482)
  should be: (0,0) - (720,480)
bm2raw test: (152,88) - (5919,3941)
  should be: (138,80) - (5934,3950)
Black check 1/5: 8173…347.29, ref 2047…6.87, delta=6126
Black 1/5: mean too different (8173, ref 2047…6.87)
Save configs...
Enabled DNG diag output results in the same error 70:
Code: [Select]
ASSERT: GetMemoryAddressOfMemoryChunk( GetFirstMemChunk( pMem1AllocateListItem->hMemSuite ) ) == pMessage->pAddress
at SrmActionMemory.c:1505, task RscMgr
lv:0 mode:4
Code: [Select]
....
srm_malloc_suite(1)...
srm buffer #1: 42000064
srm_malloc_suite => 10edb0
srm_free_suite(10edb0)
srm_malloc_suite(0)...
Code: [Select]

mdpark84

  • Just arrived
  • *
  • Posts: 1
Re: Full-resolution silent pictures
« Reply #968 on: September 18, 2016, 01:19:33 AM »
Hoping someone can tell me what I'm doing wrong.  I've read through several pages of this thread and some others but no luck.  I've got a Canon 6D on the latest nightly (Nightly.2016Sep16.6D116).  I've enabled silent pictures, mlv_rec, have a interv. of 15s, and outputting full res to MLV, shutter of 1s, shooting in live mode.  It seems that the files are getting corrupted as MLVMystic, mlv_dump, MLVBrowseSharp are unable to read them.  MLVViewSharp is able to but periodically crashes trying to read them (also I've noticed the brightness increasing from one image to the next when it does work - might be a separate issue).  I tried choosing DNG in Silent Picture (with the same settings as above) and that had no issue (all were of the same brightness level as well).  Am I missing something about the MLV container or a setting perhaps?

DeafEyeJedi

  • Hero Member
  • *****
  • Posts: 2851
  • 5D3 / M1 / 7D / 70D / SL1
Re: Full-resolution silent pictures
« Reply #969 on: October 13, 2016, 08:54:10 AM »
Felt this was worth noting in regards to FRSP from a 1200D -- http://www.magiclantern.fm/forum/index.php?topic=12627.msg173256#msg173256
5D3.113 • 5D3.123 • EOSM.203 • 7D.203 • 70D.112 • 100D.101

breaker

  • Freshman
  • **
  • Posts: 68
Re: Full-resolution silent pictures
« Reply #970 on: January 30, 2017, 09:24:40 PM »
Hi! My 5D3 with fw 1.1.3  /latest nightly keep failing on raw when making Silent pictures with lenght more than approx 1,5 -> 16 seconds (varies a bit). Message is "Raw error, falling back to YUV overlays". Bug or me?  ;) 
EOS 7D | EOS 650D | Sigma 30mm f/1.4 | Canon EF-S 15-85mm f/3.5-5.6 | Canon EF-S 18-135mm f/3.5-5.6 STM | 50D RAW Monster :-D

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 9730
  • 5D Mark Free
Re: Full-resolution silent pictures
« Reply #971 on: January 30, 2017, 09:27:39 PM »
Likely a hot pixel, see http://www.magiclantern.fm/forum/index.php?topic=17579.0.

A DNG might help diagnosing it.

breaker

  • Freshman
  • **
  • Posts: 68
Re: Full-resolution silent pictures
« Reply #972 on: January 30, 2017, 09:53:54 PM »
One white and one black picture - Don't know what's best :)
https://1drv.ms/f/s!AoqojSQR7nORjmAwLqgQp3NIwj7O
EOS 7D | EOS 650D | Sigma 30mm f/1.4 | Canon EF-S 15-85mm f/3.5-5.6 | Canon EF-S 18-135mm f/3.5-5.6 STM | 50D RAW Monster :-D

k2121

  • New to the forum
  • *
  • Posts: 14
Re: Full-resolution silent pictures
« Reply #973 on: April 16, 2017, 08:12:34 PM »
Hi,
when I shoot silent MLV with intervalometer, every picture is in individual MLV file.
How to shoot silent with intervalometer into one mlv file?
It's easier to decompress to dng files.
(shooting mlv without intervalometer save every frame in one mlv)
650d.104 ML • SX1.200h CHDK

Walter Schulz

  • Hero Member
  • *****
  • Posts: 5385
Re: Full-resolution silent pictures
« Reply #974 on: April 16, 2017, 08:21:26 PM »
Why not shooting DNG in the first place?

 

courtesy