Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - theBilalFakhouri

5D3 can't shoot in 1920x1080 @ 60 FPS in 3x3 Binning because of slow sensor , however IIRC you can get these:

-1920x1080 @ 45 FPS 3x3
-1920x1040 @ 48 FPS 3x3
-1920x960 @ 50 FPS 3x3
-1920x800 @ 60 FPS 3x3
-1920x648 @ 60 FPS in 5x3 (1920x1080 after de-squeezing)
Quote from: reddeercity on April 17, 2024, 05:48:40 AMSo i need to find a 5D3 setup log or any logs with CF card on the 5D3 to know the reg set
but in the mean time i'll search some more on the forum , i'm sure i saw some , just cant remember where.  :)

BTW, CF clock speed config (UDMA modes) and related registers were found years ago, check:

Also there a is test was done by waza57 on 5D2 in the past, he claimed that he got 30% write speed improvement on 5D2, but during his experiment he ended up with a corrupted file system for the CF card:
Quote from: names_are_hard on April 19, 2024, 03:16:20 PMWhere's the code to generate the logs?  Lots of people have 5d3 and can run tests.

dm-spy-experiments, io_trace and io_trace_full branches from official repo, compile with:
CONFIG_DEBUG_INTERCEPT_STARTUP = yin Makefile.user.default file.

There are some differences among these branches, startup log might be broken in io_trace_full (last time I tested the camera froze), but dm-spy-experiments worked.

For logging MMIO, compile with:
Not sure if MMIO with startup logging works (probably not in io_trace_full branch), it might require hardcoded buffer for io_trace_full, io_trace might work, check:
Reverse Engineering / Re: LiveView Investigation
April 16, 2024, 06:12:14 PM
Hello @kizza1234, since you asked, here is a small progress update:

In the past few weeks I was working on 5D3 and was digging into preview stuff and EEKO code, well, I finally found the missing piece which I mentioned many times :)

Also I found some new registers in C0F1 range for 5D3 which being set by EEKO (entrly-level models have these also in C0F1, but on 5D3 they have diffrenet addresses and probably diffrenet functionality, both of them are used for the same purpose), they are used to config YUV stuff (preview) e.g for resizing/cropping preview image (like in x5 vs x10 modes on 5D3) . .

This means:
I probably have all required pieces to start with preview experiments (by understanding how these registers work and how to control them properly).

I tried some quick experiments to force x5 to x10 on 5D3, also tried to force x6.0 preview to x3.0 on 70D (when using digital zoom mode) from these low level registers (by using EngDrvOut from ICU a.k.a main core), unfortunately it didn't work properly, resulting either in frozen preview or registers values overwrite by EEKO EngDrvOut,

This probably means I need to hook EngDrvOut function from EEKO side if I want to control these registers properly, and this is the hard part for now, because we don't have hooking code for EEKO core yet (cache hacks don't work here), but this doesn't mean it's impossible to hook it.

The next step for now is to implement a way to hook EEKO code easily, DIGIC 6 cams will benefit from this too (they have Omar core which is similar to EEKO), @names_are_hard told me he might be able help in this.

Quote from: kizza1234 on April 16, 2024, 01:26:25 AMbut I do own a 5D III if you needed me to test anything etc.

Thanks! I have a 5D3 actually, currently there are no tests.
Quote from: gabriielangel on March 20, 2024, 08:04:37 PMRaw video needs to be turned off,

It's a memory problem, RAW video (mlv_lite) allocate all available memory when it's active, iirc this break screenshots, this issue does exist in official builds, see:

Quote from: ArcziPL on March 06, 2019, 10:24:51 AMBTW: no in-cam screenshots for the last case, as trying to take them in movie mode results in a memory error. Just checked on 700D and it's same.

Quote from: a1ex on March 06, 2019, 10:48:59 AMWith mlv_lite's RAW Video enabled, the entire memory is preallocated during stanby. I'm seriously thinking to revert this change, just haven't managed to code anything in this direction. Been focusing on new ports + QEMU lately (as my main camera is defective anyway).

There are many side effects because of mlv_lite and when "the entire memory is preallocated during stanby", broken screenshots is one of them.


Quote from: gabriielangel on March 20, 2024, 08:04:37 PMRaw video needs to be turned off, so False colors and other overlays are not recorded.

I think you are refering to x5 mode, because in x5 mode, ML global draw won't be active only in one case, when  RAW video is turned on (it works like this by ML design). In normal Canon video modes like 1080p and 720p, ML global draw will be active with or without RAW video.

When crop mood is active, all presets will use x5 mode and patch x5 mode to the selected preset.
So the main issue here is memory allocation actually, fixing it will make you take screenshot when RAW video is enabled.
Share Your Videos / Re: Canon 70D Test Footage
March 01, 2024, 11:12:43 AM
Quote from: Noah1 on March 01, 2024, 05:11:49 AMI'd love to see the capabilities of this camera get pushed as far as the EOS M's too. Its a shame one of the most active developers literally does not own the camera body 💀

Me and names_are_hard have this camera actually, but we either have no time to work on it or it's low priority.

I did some work for 70D in my repo last year:

-High resolution presets are possible, got true UHD 1:1 preset working 3840x2160 @ 23.976 FPS, but no continuous recording, it seems lossless encoder can't keep up with this much data (reducing resolution works).
-Got 1x3 mode working, it seems limited because of DualPixel sensor, not quite sure yet.
-Improved SD Overclocking stablitly on 70D.
-Improved RAW recording stablitly, all video modes are stable except for 720p @ 60 FPS.

I didn't release a build yet, I want to fix some bugs first, like FPS override glitch.

But unfortunately, there is no time for me to work on it for now.
Not that important but, @g3gg0 it seems you disabled location setting completely?
Because the new update made it displayed under account name in every post.

IIRC it was public in the past, but also it was only displayed when you visit someone profile . .
Yay, I can change my profile photo now, thanks g3gg0 for bringing it back!
(it was disabled in the past for spammy reasons)

This gif seems missing:

I think it's used in Contributor profiles, e.g. Walter profile look like this:

While other profiles have these colored squares:
Camera-specific Development / Re: 200D shoots raw video
February 09, 2024, 05:37:38 PM
It also might be already in SDR104 mode but running at low clock speed (e.g. 96 MHz).
Comparing 77D vs 200D should help (both are DIGIC 7 and both have similar / identical functions or strings for SD stuff).
Camera-specific Development / Re: Canon 7D Mark II
February 03, 2024, 03:31:09 AM
Quote from: heder on February 02, 2024, 09:53:35 AM
Also I will look into card spamming on mlv_lite as this could enable 3k@14bit recording ~ 195 MiB/s ..

This commit adds card spanning support for mlv_lite might help you too.
Camera-specific Development / Re: Canon 7D Mark II
January 24, 2024, 05:02:48 AM
Quote from: kitor on January 23, 2024, 09:46:09 PM
selected by lv_set_raw_wp.  There are 26 formats (?) to choose from,

Possibly something related:
Quote from: Danne on January 10, 2024, 09:51:37 PM
I talked to bilal and he might try and make a real time preview possible. Preview kind of works with 2:35.1 but shows only part of the image but this indicates bilal should probably be able and fix this. I cross my fingers ;).

Previewing 1736x3478 in LiveView works :D
(Code was sent, check it out!)
Thanks for the tests Skinny, that's awesome!

Quote from: Skinny on December 27, 2023, 10:15:32 AM
And mlv_play doesn't work, it is counting but the frames are black.

Yes, same on all ML builds and models, you need to load to get 12-bit and 10-bit uncompressed MLV playback support (not sure how much stable the module is).
Quote from: Danne on December 26, 2023, 09:58:56 PM
Nice. Thought 10bit existed already on 5d2..


Yes, your thought is correct, Walter made some tests to verify if it stable on 5D2, he didn't have corrupted frames and LiveView was working during recording in 10-bit,
I read some reports that said LiveView will be frozen while recording in 10-bit on 5D2, also others reported clips with corrupted frames.

Corrupted frames issue might still be a thing today (not sure what is cuasing it, but it seems to happen sometime), we probably need more tests using both (with too) and for now let's make the tests on 500D and 550D.

Can't give promises on lossless :P
Let's blow the dust a little bit from this thread :P

Yesterday I was looking into 10/12-bit branch, mainly for DIGIC 4 models (the older ones), what I found:

-Both 5D2 and 50D have working 12/10-bit in uncompressed MLV (Walter did some tests and verified that using, thanks!).
Official builds are available here under 10/12-bit RAW video.

-12/10-bit does also work on 7D, a1ex and dfort worked on it before, but the commit wasn't merged back to main repo, check this, also some footage.

-Remaining models are 550D and 500D, what's up with them?
dfort actually did make a try in the past without success back then, what was happening?

After taking a look today, I found that StartImagePass_x1_SetEDmac is slightly different on 500D and 550D compared to 5D2 and 50D, it turned out to be a bit similar to 7D actually, which mean we need to patch the address for StartImagePass_x1_SetEDmac like we did on 7D, also the addresses which were picked by dfort for StartImagePass_x1_SetEDmac were actually not correct, and probably no one checked them in the past other than dfort.

-Adding support to 500D and 550D:

First define CONFIG_EDMAC_RAW_PATCH in internals.h for each camera:
/** experimental - patch raw buffer parameters in Canon code */

Add these addresses in stubs.S:

/** LiveView RAW patches **/
NSTUB(0xff1f7160, StartImagePass_x1_SetEDmac)            /* right before the SetEDmac call from StartImagePass_x1/x5 CrawAddr / KindOfCraw */
NSTUB(0xff1f7dc0, StartImagePass_x5_SetEDmac)

/** LiveView RAW patches **/
NSTUB(0xff242f10, StartImagePass_x1_SetEDmac)            /* right before the SetEDmac call from StartImagePass_x1/x5 CrawAddr / KindOfCraw */
NSTUB(0xff243cc4, StartImagePass_x5_SetEDmac)

Do this tweak in raw.c:

#if defined(CONFIG_550D) || defined(CONFIG_500D)
    patch_hook_function((uint32_t) &StartImagePass_x1_SetEDmac, 0xE3A00010, raw_lv_setedmac_patch, "RAW LV x1");
    patch_hook_function((uint32_t) &StartImagePass_x1_SetEDmac, 0xE3A03202, raw_lv_setedmac_patch, "RAW LV x1");
    patch_hook_function((uint32_t) &StartImagePass_x5_SetEDmac, 0xE3A03202, raw_lv_setedmac_patch, "RAW LV x5");

-Compiled builds for running tests:

Walter did some tests on 550D using in 10-bit in 1080p mode, first clip was corrupted other were fine! (Thanks again).
For users who have 500D or 550D, please make recording tests in 12-bit and 10-bit in different video modes and frame rates, and don't forget to share you results!
General Chat / Re: Anyone see Zeek lately?
November 10, 2023, 02:29:03 AM
Zeek seems okay?

a post from user "Cole Power" from MLV RAW ON EOS M Facebook group:

Screenshot-2023-11-10-042030" border="0

Link to the mentioned youtube channel:

(last video was ~month ago, last comment from the YT channel is ~3 hours ago on the same video).
Raw Video / Re: Looking for 3x1 samples (any camera)
September 23, 2023, 04:55:17 PM
Here is new sample in 1:1, 1x3 and 3x1 modes (two frames for each MLV):

To me, it seems 3x1 is sharper than 1x3? but 1x3 looks cleaner (due to vertical line skipping in 3x1),
both 1x3 and 3x1 has "stairs" artifacts due to stretching (it become more visible depends on objects in the scene).

It doesn't make sense to use 3x1 in models which does vertical pixel skipping (has a lot more aliasing compared to 1x3) IMO.
Will make try to make 3x1 preset on 5D3 in future and get some samples (it does vertical pixel binning instead of skipping).

Good luck!
Raw Video / Re: Looking for 3x1 samples (any camera)
September 20, 2023, 07:16:30 PM
Note: these pictures in Skinny reply were taken from my old post, and at that time these jagged lines were an issue in 3x1 Binning mode, if you follow the later replies you will find that we were able to fix it.
So this 3x1 image doesn't represent 3x1 actual quality (details).

I will try to capture new frames in 1:1, 1x3 and 3x1 modes tomorrow using my 700D with a static scene.
General Help Q&A / Re: survey about sd overclocking
September 14, 2023, 04:20:29 PM
I had a plan in the past to work on DIGIC 4 in these aspects:

-Lossless compression (if it's possible).
-SD Overclokcing (if it's possible).
-crop_rec stuff (beside real-time preview).

I don't have any DIGIC 4 models, but more likely the community might be able to donate the amount to buy a DIGIC 4 model (like 600D) via crowdfunding,
Unfortuntatly and currently I don't have time to work on DIGIC 4, I have two models to work on which are 5D3 and 70D, will be focusing on these in my ML time.

I am not sure if SD Overclocking is possible i.e the UHS-I speeds/modes, the controller might not support these modes (it could be an old version on DIGIC 4),

If a dev want to work on SD OC on DIGIC 4, he might need SD card board extender or a way to measure SD voltage, because DIGIC 4 lacks SD voltage switch function in ROM unlike DIGIC 5 models which have it by default.
(implemetning SD voltage switch on DIGIC 4 might be easy if the controller support it, UHS-I mode requires 1.8 voltage, I think DIGIC 4 uses 3.3v by default).

In general, getting either SD OC or lossless compression working on DIGIC 4 will give you longer recording times for RAW video (I think that's what DIGIC 4 users want in this case).
Quote from: Grognard on August 21, 2023, 06:27:04 PM
That's because the exposure in liveview is not accurate. I know that we have to focus on the Histogram and try to expose to the right.
The problem is that falsecolors are accurate in greyscale liveview  but not in realtime preview!

You should get the same results in any ML build or in native Canon video modes in crop mood build (by turning off crop mood module), that's how Canon designed its LiveView,
because Canon real-time preview doesn't represet how actual RAW data look like, it's lossy and it does throw some of the RAW image info (e.g. it shows less dynamic range . .)

ML does already provide many exposure tools which help you to expose correctly or to the right (I never rely on Canon real-time preview for exposing).
ML falsecolor relies on whatever preview is active either Framing or Real-Time.
Quote from: Corallaro on August 20, 2023, 01:46:12 PM
But, a fix for freeze preview with AF in 1080p mode?

Set focus box slightly below center to make LiveView work in 1080p 3x3 mode (as shown in build walkthrough video).
Quote from: chrisfree123 on August 20, 2023, 04:43:58 AM
My crop mood installed. It records video.
But for some reason I can't turn on Crop Mood. The option is 0? It won't let me turn it on?

Am I doing something wrong?

Format SD card in PC, re-install crop mood build then report back please.
Quote from: Ernani on August 14, 2023, 09:37:58 PM
I always enable Kill Global Draw get more reliability and continuous recording. I noticed that the different modes react differently to KGD, for example: 3x1 modes display an accurate preview on all aspect ratios with and without KGD, whereas 3x3 will ALWAYS display a full sensor preview (3:2) with KGD, no matter what aspect is picked, turning the preview unusable when Kill Global Draw is enabled.

.. would it be a simple task to do the same for the regular 1080p previews?

The native 1080p mode from Canon has actually 3:2 RAW resolution (like 1736x1160 on entry-level models and 1920x1280 on 5D3 .. etc) with 3:2 LiveView image,
EOS M act as 720p while idle in 1080p, that's why I created 1080p preset in crop mood, it's basically has the same behavior as native 1080p from Canon.

The way how KGD work in crop mood build is the same as in official builds too, RAW video crop marks will be disabled since it depends on ML global draw,
To solve this issue, we will need to make RAW video crop marks don't rely on global draw or find a way to draw it again after killing global draw, I never checked these stuff, will try to take a look soon.

In the native 1080p mode, we get various aspect ratios by cropping the RAW frame before saving it to SD card, but the sensor is actually always scanning 1736x1160 3:2 and LiveView will always show 3:2 AR,
in other crop mood presets/modes like in HFR and 1x3, we are cropping the RAW frame by actaully scaning a smaller sensor area, e.g.:

-HFR 16:9 will scan 1736x976 --> LiveView will show 1736x976 i.e 16:9 image
-HFR 2.35:1 will scan 1736x738 --> LiveView will show 1736x738 i.e 2.35:1 image
-etc . .

If you choose HFR 16:9 mode (from crop mood), and set aspect ratio from RAW video to 2.35:1 (with KGD) then hit recording button --> now you will see 16:9 image in LiveView, but you will actually be recording 2.35:1.
(basically the same case as 1080p preset).

Current workaround: you mostly don't need to use KGD for 1080p mode since 1080p mode is lite and doesn't require high write speed.
Quote from: HugoMouteira on August 21, 2023, 01:52:14 PM
I noticed is that 6D lacks a 5k mode, unlike eos M or even 5dIII. Could you explain me why?

5.2K 1x3 2.35:1 on EOS M / 700D has 1736x2214 RAW resolution (1736 is Binned from 5208), then in post it must be stretched by e.g. up-scaling it to 5208x2214 to get corret aspect ratio, so the camera doesn't record the full native 5208 width resolution in 1x3 modes, it records Binned 5208 width resolution which become 5208 / 3 = 1736 (we are capturing the light from all 5208 horizontal pixels).

6D has one 1x3 mode which is 1640x2156 @ 24 FPS, it become 4920x2156 after stretching, if we follow the same naming for 1x3 presets from 5D3 and 700D, this 1x3 mode on 6D will be 4.9K.
Reverse Engineering / Re: LiveView Investigation
August 21, 2023, 08:37:08 PM

Thanks! if you mean getting real-time preview for custom high resolution presets on 6D:

6D is more similar to 5D3 and 70D (all of them have DIGIC 5+ SoC), current preview work (in crop mood) does only work on 650D / 700D / EOS M / EOS M2 / 100D (DIGIC 5, without plus) and this due to some differences among DIGIC 5 and DIGIC 5+ families, hence we will need to reverse engineer LiveView on DIGIC 5+ mostly from scratch, and currently I am still in the beginning phase.

I have both 5D3 and 70D, any progress on one of these model will mostly translate to the other two models, if I could achieve something on 5D3, it willl mostly be just matter of copy paste to 6D (due to similarities).
Unfortunately, no one can predict when we will get something working on 5D3, it may take months / years or may not happen at all, so I can't promise anything, but I can say that I am currently working on it.