550D/T2i raw video recording port official thread

Started by dlrpgmsvc, May 22, 2013, 12:11:45 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dlrpgmsvc

Here we will concentrate our efforts to port raw video recording to 550D, and continuously making it better and better !

Current 550D with RAW video builds (older ones are first, newer ones are the last towards the bottom of this post) :
To install: install the latest ML stable version, then substitute (overwrite) the files into the card with these

--------------------------------------------------------------------------------------------------------------------------------------------------------------
MK11174

The main thing is the ability to save RAW settings after restart.

Includes Magic and Tragic as well and Mem fix.

Anyone having hard time deciding which record module they like best out of Magic Unified vs the Tragic version, this will help you.
You will have 2 new option within Magic Lantern.
When you decide which you like best, just delete the other module or just keep both, your choice.


Obsolete link removed - Please use the official nightly builds //Audionut

--------------------------------------------------------------------------------------------------------------------------------------------------------------
MK11174

Anyone wanting to try out Alex's experimental variable buffer Raw Record, this build is all updated and has AUTO ETTR, File Manager and Pic View Module as well.

Obsolete link removed - Please use the official nightly builds //Audionut

--------------------------------------------------------------------------------------------------------------------------------------------------------------
MK11174

Alex disabled debug code and added a bit more speed as it says on the changeset.

Obsolete link removed - Please use the official nightly builds //Audionut

--------------------------------------------------------------------------------------------------------------------------------------------------------------
MK11174

Latest changes to everything. Includes modules, Raw_Rec, File_Man, Pic_View and ETTR, oh and a requested res of 1200 and aspect 2.42:1

Obsolete link removed - Please use the official nightly builds //Audionut

--------------------------------------------------------------------------------------------------------------------------------------------------------------
REWIND

raw_rec module from pravdomil's source:
https://bitbucket.org/pravdomil/magic-lantern-hack/commits/all

Raw_rec has some tasty features like black bars and auto global draw off while recording.

I've noticed a tiny but consistent frame count increase with this. For example, with my previous build i've got about 500–510 frames with 1200x496 at 24 fps, now i'm getting 550-570.

Also, there is a small present for those of you, who dare enough to shoot the tv works on 550d — nice 3X4 cropmark (useful for PAL world ).

Other stuff is from unified.

Notice: I have removed a large set of resolutions (useless for my works), and added 1200 and 1.42:1
This build also includes ETTR, file_man, pic_view.

Thread about this module : http://www.magiclantern.fm/forum/index.php?topic=5655.msg0#new

--------------------------------------------------------------------------------------------------------------------------------------------------------------
MK11174

Incredible milestone: all the previous raw stuff, plus the DUAL ISO feature for PHOTOS AND VIDEO !

Obsolete link removed - Please use the official nightly builds //Audionut





Current state-of-the-art :

Problem : Raw video recording works, finally ! Now we need to try to get more Buffer Memory like the other cams, even the 500D has 95Mb, while 550D only 75Mb as current development (68Mb was the memory available at the beginning of this development). With 500D, one gets higher res than on 550D, with no skip, thanks to the expansion of this memory.
You can see the status from the "0101" menu in ML : scroll down to "Free Memory", then press "Set" button on 550D and you will see the "shoot_malloc total" is 75mb : that needs to be al least 95mb (better if more, obviously). On 500D, this memory is native 95mb, without any intervention... we cannot understand why...

What to do :

[1] It seems we must enable sRAW option, but while on other cams it works, on 550D and EOSM it gives a "err70" error (http://www.magiclantern.fm/forum/index.php?topic=1746.msg6039#msg6039) that bricks the camera (can be un-bricked, however). We have to solve this problem.

[2] Some hints of past tryouts can be found here : https://groups.google.com/forum/?fromgroups#!msg/ml-devel/AyPANkaXbp0/PMwkzwuVy14J

[3] There are clues that, in order to make room for the raw_video_rec module, we used the shoot_malloc memory to put there the ML code, so shrinking it, so we cannot have more shoot_malloc memory anymore... look at this : http://www.magiclantern.fm/forum/index.php?topic=5071.0

[4] Anyway, the source file to play with about this thing, is: src/exmem.c

[5] Without using sRAW option, %1 user managed to expand (even if by very little) the shoot_malloc memory by using this system : This is where he got more memory.
https://bitbucket.org/OtherOnePercent/tragic-lantern-2.0/commits/60b04d7254cf8c5add9ee4a96822a1a7c81e1503

[6] Following point [5], we can play with these values : https://bitbucket.org/hudson/magic-lantern/commits/39d536e2b72c39b81855526fbd08f4281931ccbb

[7] exmem.c - line around 147 -
hsuite = shoot_malloc_suite (max_size + backup_size - 8 * 1024 * 1024)
in this manner, the old version, we obtain 68Mb of shoot memory, good to serve as buffer for raw video (more memory, more resolution)
-----------------------------------------------------------------------------------------
hsuite = shoot_malloc_suite (max_size + backup_size - 1024 * 1024)
in this manner, the new and current version, we obtain 75Mb of shoot memory
-----------------------------------------------------------------------------------------
Our goal is to raise this shoot memory as high as possible, at least the 95Mb of 500D, but the maximum I managed to obtain is :
hsuite = shoot_malloc_suite (max_size + backup_size)
in this manner, we can have 76Mb of shoot memory
If you try even a :
hsuite = shoot_malloc_suite (max_size + backup_size + 1024 * 1024)
the result is 0 of shoot memory !
However, the interesting thing is that the autoexec.bin memory is not affected by the increase of the shoot memory.
-----------------------------------------------------------------------------------------
I have hitted a wall here...  :'(

[8] - Modifying the "backup_size" (by upsizing or downsizing it), doesn't sort any effect at all.
     - Changing the probe size from 4 to 2 and then to 1 (just to dig out more memory chunks), doesn't sort any effect at all.
     - Forcing "size" to zero into the shoot_malloc allocation function, just to force it to allocate the maximum size, takes the camera to stack
        overflows and freezes that need to pull out the battery: no luck...

[9] By a1ex hint: use CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP, but it's defined as "dangerous" by a1ex himself (bricking camera risk ?)
If you think it's impossible, you have lost beforehand

mk11174

Quote from: dlrpgmsvc on May 22, 2013, 12:11:45 PM
Here we will concentrate our efforts to port raw video recording to 550D !

Current state-of-the-art : module loads but when live view is enabled, the camera hangs...  :'(
Confirmed, hangs to black screen when trying to bring up live view in M mode or loading Movie mode. But module does load and shows up in menu, but cant set anything until live view is turned on, it just shows ON 0x0

500D/T1i  550D/T2i  600D/T3i  700D/T5i

IndyP

Hi Everyone,
   Can't help but say a few words concerning RAW video for the T2i 550D. This camera may be considered  old when viewed against current technology or newer models, but it was at the forefront along side the 7D and 5D MK 2 at the beginning of the DSLR revolution.
   Their can be no doubt that many owners of the T2i are still producing great work with this camera and would like to continue doing so. These owners (including myself) would love to step up to a 5D MK3 and work these models along side each other, but the higher cost is a prohibiting factor.
   To myself and the other owners of the T2i that love using ML, the concept of having the capability to use RAW video on the T2i is both fascinating and exciting. I hope somehow, that not only future features, but RAW video, will also become available for this camera.

dlrpgmsvc

Dear IndyP, your toughts are 100% mine also ! They are the main dream and motivation that opened this thread !  Many thanks for sharing your toughts ! They are exactly the soul of the efforts we are producing here !!! :)
If you think it's impossible, you have lost beforehand

briwil

Can we expect any updates in tonight's build or no?

LeviBetz

Oh! I thought they had gotten it working a bit. I guess that must have been the 600D. Well i can't imagine it'll be too long before this is fully up and running on the 550D, as the 600D is already up (and it is, essentially, the same camera).

mk11174

No, not working on 550D yet, module can be loaded but that is it, camera crashes right away before you can do anything. So maybe something still has to be done in the code with addresses to enable it to load on this cam. Funny how not to long ago everything was all about the 550D and now even the 500D is winning this one. I wish I knew what needed to be done, I would do it, but I am not a programmer, but I can compile at least and if I am told what to do or guided I usually can get it done, but I guess we will have to be patient  till some developer with a 550D gets in the mood to finish it off. I just don't get why it is working on the 500D and the 650D but not with this camera, what can be missing?
500D/T1i  550D/T2i  600D/T3i  700D/T5i

1%


mk11174

Quote from: 1% on May 23, 2013, 04:15:39 AM
Memory is fixed? Registers are right?
Anything I can do to start checking?
500D/T1i  550D/T2i  600D/T3i  700D/T5i

1%

Look at what was done to boot-hack.c and 600D consts.h
https://bitbucket.org/OtherOnePercent/tragic-lantern-2.0/commits/all

Its booting into allocate pool and uses 640K bins. Just have to find the addresses in 550D firmware.

unity2k

I too am of the happy 550D/T2i club of owners. I use two of the old cameras and as has been said, the 5D3 is too expensive for me to upgrade to. For those who are undertaking this task, my thanks and my hopes are with you that you find success in bringing raw video to those of us who still love creating content with these reliable cameras.

mk11174

Quote from: 1% on May 23, 2013, 04:55:27 AM
Look at what was done to boot-hack.c and 600D consts.h
https://bitbucket.org/OtherOnePercent/tragic-lantern-2.0/commits/all

Its booting into allocate pool and uses 640K bins. Just have to find the addresses in 550D firmware.
Ah! Thanks for finally clearing that up for me, finally a real technical reason why it crashes when loaded, thank you very much for that info. Plus it gives hope that it should be fixable if the correct addresses are found.
500D/T1i  550D/T2i  600D/T3i  700D/T5i

dlrpgmsvc

Can you tell me more precisely the source files and the lines where there are the addresses to find ? These hints are still so Smoky, at least for me... so I can be of the address-seekers squad !  ;)
If you think it's impossible, you have lost beforehand

mk11174

I to would help, but the last time I disassembled a firmware was 2 years ago for the a3300is to do a chdk port which luckily worked out well, but it seems looking through a firmware for these cams are different, and I am not even sure if I would use IDA like I did for chdk. I wish I knew how to set it up though cause I would surely take the time and start looking. Only thing I have now is the prebuilt compiler with vbox. I was using my own setup with ubuntu with the directions online to install it manually but it was the old toolchain and seemed smarter to start using this nice up to date prebuilt version. These guys in here are awesome for making that up for us wanna be hackers, lol.
500D/T1i  550D/T2i  600D/T3i  700D/T5i

briwil

Quote from: dlrpgmsvc on May 23, 2013, 02:50:44 PM
Can you tell me more precisely the source files and the lines where there are the addresses to find ? These hints are still so Smoky, at least for me... so I can be of the address-seekers squad !  ;)

If you have to ask something so specific... if they knew the answer to this, they could easily do it themselves  :o

internetjoke

is anyone currently trying to figure it out or are we all just waiting for it to magically appear out of thin air?

dlrpgmsvc

Between sarcastic comments of who don't know ever what programming is, and unpolited newcomers with ever worse comments about what Others MUST do freely and FAST for them... i think that thin air is flowing very well for nothing through their mouths  ;)
If you think it's impossible, you have lost beforehand

mk11174

Im guessing the devs are very busy with this new 10bit / 12bit code and the 5d III I am sure eventually it will be set up for us, but probably going to be awhile, they look pretty excited about the new code which may benefit us SD card users if we ever get RAW going on our cam that is. I can use the feature on the 500D I have, just hate that I handed my 500D down to my kid when I got the 550D and now hers has a cooler feature, LOL!! But I am limited on what I know so I am done for now I guess since I don't know how to disassemble the firmware with these cams. Sorry guys!
500D/T1i  550D/T2i  600D/T3i  700D/T5i

noisyboy

Okay - cool it dudes. Let's keep it polite now :)

mk11174

I successfully captured a raw video on the 550D, I had to go into /src/all_features.h and disable many features to get enough memory for it to allow live mode plus the Rec module, but at least it seems to work. So far I was only able to capture 720x406x23.976fps without a skipped frame though. But it does work for sure, I extracted the DNG files from the RAW file it made and these look fine so far, more tests needed for other resolutions though, just thought I would update anyone interested.

And I know its only a temp fix because obviously we need our other features turned on, like 1% said, we need memory from the correct places I guess for it.

I feel better though just seeing it work on this cam!

UPDATE: Best I got with no skipping was 960x408 @23.976
Other Max res I can do with no skip
In 1920x1080x24fps mode
720x540 4:3 @23.976
640x480 4:3 @23.976

In 1280x720x60fps Mode
720x172 3:1 @59.940

In 640x480Crop Mode
640x214 3:1 @59.940

I am using freshly formatted each time 16gig 45mb/s Sandisk Extreme
500D/T1i  550D/T2i  600D/T3i  700D/T5i

ifkey

Quote from: mk11174 on May 24, 2013, 04:09:23 AM
I successfully captured a raw video on the 550D, I had to go into /src/all_features.h and disable many features to get enough memory for it to allow live mode plus the Rec module, but at least it seems to work. So far I was only able to capture 720x406x23.976fps without a skipped frame though. But it does work for sure, I extracted the DNG files from the RAW file it made and these look fine so far, more tests needed for other resolutions though, just thought I would update anyone interested.

And I know its only a temp fix because obviously we need our other features turned on, like 1% said, we need memory from the correct places I guess for it.

I feel better though just seeing it work on this cam!
How to install modules? no menu "M"

mk11174

Quote from: ifkey on May 24, 2013, 04:35:33 AM
How to install modules? no menu "M"
I can share my bin with you to have fun with, but I feel it might be best to wait for a Dev to give the ok since ML is there code, they will know if it is safe for testing in cameras with all the things I had to disable in all_features to get the memory to load the raw_rec module.

But it is running stable with no crashing, just can't have all the other cool ML features enabled for now till someone finds a way to get more memory for the 550D to have all loaded at once. Maybe for now we can just keep 2 bins ready to go and switch back and forth till we get the memory for al features at once.
500D/T1i  550D/T2i  600D/T3i  700D/T5i

ifkey

Quote from: mk11174 on May 24, 2013, 04:45:31 AM
I can share my bin with you to have fun with, but I feel it might be best to wait for a Dev to give the ok since ML is there code, they will know if it is safe for testing in cameras with all the things I had to disable in all_features to get the memory to load the raw_rec module.

But it is running stable with no crashing, just can't have all the other cool ML features enabled for now till someone finds a way to get more memory for the 550D to have all loaded at once. Maybe for now we can just keep 2 bins ready to go and switch back and forth till we get the memory for al features at once.
tnx i will wait

internetjoke

Quote from: mk11174 on May 24, 2013, 04:45:31 AM
I can share my bin with you to have fun with

Can I have a play around on the bin please? If i have this bin on one memory card and the stable on the other i can switch between the cards? I am really eager to play with some raw footage.

Thanks

mk11174

Well, I was able to turn off a few more things to have enough juice to turn FPS back on.

So now we can get 1720x1156 @4fps for timelapse stuff or obviously you can play with FPS to get higher res.

I also can do 1280x720 @10fps no skips

I find that anything that is shows you need 16mb/s or more is to much and skips.

So thanks to the devs for the tweaks to the raw_rec file it gives us that nice info to make the right changes.

Oh, and that is with my card, I don't know what you would have to set to for slower or faster cards.
500D/T1i  550D/T2i  600D/T3i  700D/T5i