Author Topic: Memorizing custom settings on the EOS-M as C1, C2 and C3 on the 5DMkIII  (Read 9129 times)

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 8333
Trolling and knowing it ...

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
Trolling and knowing it ...
Word  8)
About folder tree. I am leaning towards getting the directories created upon install. Even though they won't show before a first restart it's nicer than working with a prebuilt SETTINGS folder.
Either a good naming suggestion or keep the C1-C5 for the user to change themselves if needed.
Still puzzled why the folders don't show. Even tried in boot-hack.c.

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
Just tested on another set of 10 clips - with Pre-record active, possible corrupt frames in the beginning of the clip are fully elliminated.  I got this 46 fps setting now stored under one of the custom presets.


IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
Man, you are moving fast!  These custom presets are absolutely amazing! Will test as soon as possible.  Thanks a lot and

Happy Day of Europe!

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
@alex. I am building a directory tree C1, C2, C3, C4, and C5 upon installing ml firmware instead of including a prebuilt SETTINGS folder with subfolders. Nowhere in the chain can I get those folder to show up before I do a full restart of my camera.

Look at config_load() and config_preset_scan().

However, I recommend a different approach: include subfolders in the ML zip file (either empty, or with some default presets to get started for various use cases). Empty folders will be preserved when restoring ML after format. edit: nope, this won't work nicely when upgrading; you could end up with a mix of included presets and user's custom settings.

With your approach, if the user renames existing presets, new folders will be created, eventually overflowing the list. The side effect may be that some of the user's presets will disappear from the menu.

You could decide at the end of config_preset_scan(), i.e. after seeing how many subfolders you have, maybe check which ones (if any) were renamed, and then decide whether new presets have to be created, and how many.

Here we go:

Nitpick: I find it confusing that this feature arrived in the Movie menu. It affects all ML settings, not just video ones.

Man, you are moving fast!

Fast and furious. I'm a bit worried about merging those changes into mainline...

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
I will have a look next week. Interesting stuff.
Still baffled that this preset code slipped under my radar.
Edit: noticed settings apply to both photo and movie mode. Have to think about this too.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
Couldn´t resist a test and surely config load and a preset scan after this fixed it. Forgot about the config_load() prior to scanning.
https://bitbucket.org/Dannephoto/magic-lantern_jip-hop/commits/5c48be9645ad35d0798c73063cb5db725c8182d7

Regarding renewal of CM1, CM2 etc in case they are renamed locally by user shouldn´t be an issue since I run a lock file for a workaround autoenabling a lua script from module.c so if renamed nothing new will happen after first install:
Code: [Select]
/* autoload tlapse lua script on install. Not clean as disabling don´t work directly on testing first restart. Seems related to MENU.CFG not being created on first start */
            char config_file[0x80];
            snprintf(config_file, sizeof(config_file), "%sfirst", get_config_dir());
            int first_run = config_flag_file_setting_load(config_file);
           
            if(!first_run)
            {
                FILE *file = FIO_CreateFile( "ML/SETTINGS/TLAPSE.LEN" );
                FILE *file2 = FIO_CreateFile( "ML/SETTINGS/FIRST" );
                //throw in custom folder here for now
                static char* CM1;
                static char* CM2;
                static char* CM3;
                static char* CM4;
                static char* CM5;
                char preset_dir1[0x80];
                char preset_dir2[0x80];
                char preset_dir3[0x80];
                char preset_dir4[0x80];
                char preset_dir5[0x80];
                snprintf(preset_dir1, sizeof(preset_dir1), "ML/SETTINGS/CM1", CM1);
                snprintf(preset_dir2, sizeof(preset_dir2), "ML/SETTINGS/CM2", CM2);
                snprintf(preset_dir3, sizeof(preset_dir3), "ML/SETTINGS/CM3", CM3);
                snprintf(preset_dir4, sizeof(preset_dir4), "ML/SETTINGS/CM4", CM4);
                snprintf(preset_dir5, sizeof(preset_dir5), "ML/SETTINGS/CM5", CM5);
                if (!is_dir(preset_dir1)) { FIO_CreateDirectory(preset_dir1); }
                if (!is_dir(preset_dir2)) { FIO_CreateDirectory(preset_dir2); }
                if (!is_dir(preset_dir3)) { FIO_CreateDirectory(preset_dir3); }
                if (!is_dir(preset_dir4)) { FIO_CreateDirectory(preset_dir4); }
                if (!is_dir(preset_dir5)) { FIO_CreateDirectory(preset_dir5); }
                config_load();
                config_preset_scan();
            }
Sure doesn´t look nice but gets the job done. Proof of concept, maybe a little more than that.
The ambivalence in this build with movie modes almost acting like photo modes and the way tap display works for fast access custom modes now it is hard to find a place with faster access into these modes. Maybe under Shoot tab so still have to think about it some more regarding photo mode. I am totally biased towards movie making.
And also of course the preset scan check and creating missing subfolders is the way to go in the long run. Easy in bash, a learning experience in c at least for myself.
All in all, very good to see this feature brought to life in my build.


IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
Here is some feed back on today's build:

Good news:
--------------
1) Customizing and jumping presets goes nicely and is pretty straight forward.  Nice instructions and easy to follow too, Danne!

2) I get 42 fps/12bitLL/1736x976 working with very few corrupt frames now.  About 4 to 5 sec. recording is possible, dependent on how bright the scene is.  In a clip like this the corrupt frames typically are between 0 and 2 frames.

3) The image quality is very good!  I have the feeling that aliasing is less than at MCM rewired 1080p/24 fps mode.  This needs more testing, of course.

Bad news:
------------
4) Before switching custom modes, the startup preset needs be set separately and manually to match the mode stored in the custom preset.  If for example, the custom preset if for the 1080p MCM rewire mode, before activating that preset, the startup preset needs to be set manually to 1080p.  It would be nice if the startup preset is also stored in the custom preset.

5) 42 to 46 fps at the same 1736x976 resolution produces lots of corrupt frames here.  Situation seems to be worse than with the older two builds.

6) At 42 fps there are strange vertical strings of bright dots along the entire image.  I am not sure if these are focus dots.  Here is a sample:

https://we.tl/t-Nvd6wKFyQZ

I don't see these artefacts in the slower modes (14 or 24 fps) or the older builds.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
Here is some feed back on today's build:

Good news:
--------------
1) Customizing and jumping presets goes nicely and is pretty straight forward.  Nice instructions and easy to follow too, Danne!

2) I get 42 fps/12bitLL/1736x976 working with very few corrupt frames now.  About 4 to 5 sec. recording is possible, dependent on how bright the scene is.  In a clip like this the corrupt frames typically are between 0 and 2 frames.

3) The image quality is very good!  I have the feeling that aliasing is less than at MCM rewired 1080p/24 fps mode.  This needs more testing, of course.

Bad news:
------------
4) Before switching custom modes, the startup preset needs be set separately and manually to match the mode stored in the custom preset.  If for example, the custom preset if for the 1080p MCM rewire mode, before activating that preset, the startup preset needs to be set manually to 1080p.  It would be nice if the startup preset is also stored in the custom preset.

5) 42 to 46 fps at the same 1736x976 resolution produces lots of corrupt frames here.  Situation seems to be worse than with the older two builds.

6) At 42 fps there are strange vertical strings of bright dots along the entire image.  I am not sure if these are focus dots.  Here is a sample:

https://we.tl/t-Nvd6wKFyQZ

I don't see these artefacts in the slower modes (14 or 24 fps) or the older builds.

1 - New build up already.
2 - This means you move out of the preset fps system. Anything can happen and will.
3 - ?
4 - no idea based on the description what is going on. Works as expected here. Select a custom mode restart and take it from there.
5 - You are enabling fps override. Shit will happen. Stay to intended usage and all is good.
6 - Not relevant and not helping forward. If testing and sharing results please stick to intended use or expect anything.

Please read up on a1ex shared links and posts about shortcomings around this custom mode workflow. It is good and stable but it is not perfect.

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
Build: May 9, 2020 (latest, downloaded immediately before testing)

Video tab settings:
----------------------
presets: 5k anamorphic rewired
raw video: ON, 1736x2928
ratio: OFF
bit depth: 12 bit
white balance: Auto
fps override: OFF (tested also at different values between 1 and 14 fps)
shutter fine tuning: +5,64 ms (to match for shutter speed 1/14,288 s)
shutter range: Full range
sound recording: ON
kill global draw: ON
everything else: OFF
--------------------------------

1) When the record button is pressed, preview turns skewed and starts floating shifted downwards on the screen.  This makes framing impossible during recording .  A similar skewed preview is observed also in the fast 1080p modes at 1736x976 resolution and 38 fps.  Resetting registers with the Menu button or even turning camera off and on again does not fix the issue.

2) It was impossible to change preprogrammed custom modes by just selecting them and restarting camera, not even after restoring ML default settings in the Config menu.  Please provide step by step instructions on how to do this.


Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
1 - Don't kill global draw as it surely kills framing mode of course.

2 - Not sure what you mean. Did you not manage to use the custom modes yet at all?

Follow this:
1 - select a CM mode. RESTART camera.
2 - modify your CM mode.
Done. It's already stored. You can move to a new CM mode redo step 1 and 2.
If any complaints against this please reread a1ex original post and provided links in this thread.

If not working redownload latest build and try again.

If still not working, provide a screen recording of what you do. Thanks.

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
1 - Don't kill global draw as it surely kills framing mode of course.

2 - Did you not manage to use the custom modes yet at all?

Follow this:
1 - select a CM mode. RESTART camera.
2 - modify your CM mode.
Done. It's already stored. You can move to a new CM mode redo step 1 and 2.
If any complaints against this please reread a1ex original post and provided links in this thread.

1.  Yes, reactivating Global draw solved the issue for that particular 5k setting.  I thought, it should be killed for all modes.  It is a little confusing in your instructions.  Please add a comment that Global draw should be killed only when using the fast modes.  A hint reminding the user to kill Global draw when selecting the fast modes, similar to the Sound deactivation hint at 4k crop mode would be very helpful too.

2.  No, I use my custom modes all the time and find them extremely useful!  The problem I have is that switching from one mode to another does not work so smoothly here.  Once I have programmed my settings and stored them under a CM setting, I don't want to modify them at all, as you suggest in your #2. I would like mode switching to work just on selecting it and restarting the camera.  In fact, what happens is that if I am in CM1, containing the settings from my previous post (5k anamorphic, 14fps) and want to switch to CM2 containing my fast fps preset (1080p@43fps), when selecting CM2 and turning camera off and on again, it only partially loads the settings stored under CM2.  Usually, camera stays in 5k anamorphic but at a much lower resolution.  What I need to do is manually changing to the fast 1080p mode and then go to the submenu to manually change the resolution.  What I noticed is that I need to wait at least for 5 seconds between turning camera off and on.  Sometimes this works but most of the time I need to make these additional manual adjustments when switching from one custom mode to the other.  And yes, I read A1ex's thread several times.  I don't seem to be doing anything wrong.

Suggestion:
-------------
Is it possible to store custom settings CM1 - 5 in the Config menu in such manner that once stored, they should stay as they are and should be be editable only from the ML menus (ISO, aperture, resolution, frame rate, etc.) while working, just as it is now?  However, once the user decides to switch from one mode to the other, the original settings of the first mode should stay as stored initially in the Config menu.  This is how they have done it in the 5DMkIII.  If that is possible on the EOS-M too, this will avoid a lot of confusion.

One more thought about fps override:
------------------------------------------
Considering EOS-M's speed limitations, fps override is the only way to get some filming jobs done (time lapses, high-resolution takes, etc.).  Personally, I use it all the time and think that it is one of the most useful ML functions.  I know that once fps override is changed, this may cause stability problems but on the other hand, if users cannot take advantage of it, this will be a serious functionality limitation.  Right now, in the latest version of the May 9-th build, fps override works quite well and is pretty stable.  I get 14 fps working at 5k full sensor readout and the fast modes at 1736x976 working with 43 fps correctly with no corrupt frames at all.  Zeek reported stable 48 fps operation at 1080p and 2,35:1 and 2,39:1 aspect ratios.  It would be great if these and other fps settings that do not exceed the camera speed limits stay as stable as they are right now.

Thanks.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
Use fps override to crank down only for safer results. Or experiment on your own.

Global draw can be used on any preset. User should experience and learn how to use and when to use it.

Custom modes works as intended here. I have a hard time understanding what happens when you say it's not working but per usual a screen recording should safely show what I miss in you description.

48fps still possible with set_25fps option.

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
No time for making screen recordings right now, I am at work.  But what I wrote is very easy to reproduce:

Make three different custom presets - CM1, CM2 and CM3, each with different ML modes, resolutions, frame rates, customized buttons, histogram, zebras, bit rates, etc.  Select CM1 and load it.  Then, while in CM1, select CM2 and turn camera off and on again to load CM2.  Check your CM2 settings to see if all settings loaded correctly or some of them remained from CM1.  Repeat the same procedure by switching from CM2 to CM3.  After a few times of switching modes back and forth, what I describe will happen.

Is someone else experiencing what I described in my previous post?  If not, then I am too stupid to do things right.  If yes, then further work is necessary.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
It´s working fine over here. You need to produce one CM1 and one CM2 which can reproduce your issues exactly over here.
Testing suggestion. You should keep to safe margin settings. Meaning. Don´t overcrank fps override to begin with. Start out with a few settings and test. Then add more stuff until you see what breaks your workflow. Will save us all time. Or screenrecord...

ZEEK

  • Senior
  • ****
  • Posts: 329
It's been working great. Super pleased with this.
I've set the following to my taste:
CM1: MCM 1080 rewire
CM2: 2.5K Raw
CM3: 3K Raw
CM4: Slow-mo High FPS
CM5: 5K Timelapse

No issues experienced so far. All modes have been set and work. Pretty much just set the settings in the CM reset, then change to the next mode and set. Etc...
EOS M

yourboylloyd

  • Contributor
  • Senior
  • *****
  • Posts: 310
It's been working great.

For the lazy people, ZEEK made a whole youtube video and download for those presets. It's actually super helpful:
Join the ML discord! https://discord.gg/H7h6rfq

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
It's been working great. Super pleased with this.
I've set the following to my taste:
CM1: MCM 1080 rewire
CM2: 2.5K Raw
CM3: 3K Raw
CM4: Slow-mo High FPS
CM5: 5K Timelapse

No issues experienced so far. All modes have been set and work. Pretty much just set the settings in the CM reset, then change to the next mode and set. Etc...
Very nice. Hilarious beginning :)(vid above). It´s still expandable so it could max out on like 13 custom modes. Not sure more are needed though.
And don´t forget. This is a1ex work. I merely pick the fruits and put them where they can and should be shown ;).
Eh, not forget to mention Jiphop modifying so we can move menu items around.

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
Zeek,

Fantastic video tutorial!  Thank you so much!

Danne,

I figured it out!  I was not doing anything wrong.  It was the time between camera OFF and ON condition when changing modes.  It can be short enough only if very basic presets are stored in the custom mode, like Zeek showed in the video.  As long as you put lots of other ML settings from different ML tabs, like Zebras, Magic zoom, Power save options, Custom button settings, etc. in your custom mode, camera needs a longer time interval which can reach up to 7-8, maybe 10 sec. before it is turned on again.   If that time is too short, it cannot load the new custom mode properly and things get messed up.  I performed a total of 10x switching modes with 10 sec. time interval between the OFF and ON state and they all went without a glitch.

All in all, this is the build that I have always dreamed of.  Big thanks to A1ex, Danne and everyone else involved in this amazing collective effort.  I hope, we will see these revolutionary improvements in the 5DMkIII, the 100D and other ML capable cameras too.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
7-8 sec. I find that hard to believe.
Anyhow. I pretty much expected most if not all your remarks in your posts. Let's settle with that all worked from the beginning and move on shall we.

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
OK, I agree.  I will keep working with this build and if I notice something not working properly, I will let you know.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
I do you one better. Upload one folder of your settings that needs 7-8s to enable and I test it on my cam.

IDA_ML

  • Hero Member
  • *****
  • Posts: 1014
Here you go, Danne:

https://we.tl/t-4XViZmsyq5

I am sending you two of my custom mode folders.  One is for regular 5k anamorphic/14 fps video and the other one is for timelapse (5k anamorphic/0,5 fps with power save and prerecording active.  Please load them on your camera and try to switch between the two back and forth.  Please share the result here.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7293
Just tested your cm files. Opens up just fine. Takes about two seconds. Are you trolling? I honestly can´t understand any of your issues lately if ever. Sorry, but just feels odd. If not I hope you find your ways into using the camera, maybe slow down on the FPS override trigger ;).