supporting > 4GB videos

Started by mark.farnell, March 29, 2013, 11:30:14 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mark.farnell

Currently, each video file is artifically limited to 4GB, and the recording will stop when 4GB is reached.  Therefore the only way to get the camera recording HD to record > 12 min is to decrease the bit rate, which ML is doing :)

And at this stage, only 6D has the ability to start a new file.........  However, would it be feasible to patch the code so that on a FAT64-formatted card, recording will *not* be stopped at the end of 4GB? 

Someone on this list said earlier that the ability to make multiple 4GB files is on the hardware, and either it has the ability or has not.  So if the camera does not have the ability to split into multiple 4GB files, then how else can we make the recording not to stop at 4GB?

1%

You won't be able to split the files but you can record an 8gb file, etc. You'll have to rewrite it with g3gg0's utility when you get it off the card to fix atoms.

The splitting functions are absent from older cameras.


mark.farnell

Quote from: 1% on March 30, 2013, 12:23:45 AM
You won't be able to split the files but you can record an 8gb file, etc. You'll have to rewrite it with g3gg0's utility when you get it off the card to fix atoms.

The splitting functions are absent from older cameras.

Okay........ but the central issue is how to prevent the camera stop recording when it reaches 4GB, without decreasing bitrate...... How large the file ends up to be, or whether postprocessing is required to "fix atoms" doesn't matter....

Then in this case, are there ways to let the camera continue recording past 4GB?

1%

That's what the 600D patch is about. 600D has 64bit space for file size, the fw has the limit set for 4gb. You can write a 16gb file if you want. When its patched the camera will keep writing up to 30 minutes or until whatever size limit you set.

Thing is when we were originally doing this, nobody verified it as working (or not) on 60D. I can't test on a camera I don't have, g3gg0 doesn't either and a1ex wasn't interested.

The 30 minute limit is separate... looking at flush/sync functions yesterday there is a frame counter which may also be related to the stopping and would explain why with fps override you can record for 4 hours.

I want to put some more effort into this but honestly its a <1 second gap.


kcleung

Quote from: 1% on March 30, 2013, 01:26:16 AM
That's what the 600D patch is about. 600D has 64bit space for file size, the fw has the limit set for 4gb. You can write a 16gb file if you want. When its patched the camera will keep writing up to 30 minutes or until whatever size limit you set.

Thing is when we were originally doing this, nobody verified it as working (or not) on 60D. I can't test on a camera I don't have, g3gg0 doesn't either and a1ex wasn't interested.

The 30 minute limit is separate... looking at flush/sync functions yesterday there is a frame counter which may also be related to the stopping and would explain why with fps override you can record for 4 hours.

I want to put some more effort into this but honestly its a <1 second gap.

Okay.... I also have a 60D and I am keen to verify on my 60D.  Is the code already in the trunk?  Or is it already in the standard ML 2.3?

If not, where can I get the code that allows >4GB recording on a exfat card?

 

kcleung

As mentioned in this post:

http://www.magiclantern.fm/forum/index.php?topic=4994.0

I have successfully got ML 2.3 running on my 16GB exfat-formatted card :)

However video recording still stops at 4GB.  (I didn't do anything other than formatting the card, running EOScard and unzipping the ML-2.3 files)

Then I followed the instructions in this post:

http://photography-on-the.net/forum/showthread.php?t=1232870

which says that the original autoexec.bin should be replaced by:

https://bitbucket.org/OtherOnePercent/tragic-lantern/downloads/autoexec.bin.EXfat.600D.Latest


However after I replaced the autoexec.bin on the card, pull the battery out, replace the card and replace the battery, the card door red LED is turned on permanently and the 60D becomes unresponsive.  So I immediately pulled the battery out.

So what else I need to do to test the >4gb recording on the 60D?


kcleung

Quote from: kcleung on March 31, 2013, 04:49:34 AM
As mentioned in this post:

http://www.magiclantern.fm/forum/index.php?topic=4994.0

I have successfully got ML 2.3 running on my 16GB exfat-formatted card :)

However video recording still stops at 4GB.  (I didn't do anything other than formatting the card, running EOScard and unzipping the ML-2.3 files)

Then I followed the instructions in this post:

http://photography-on-the.net/forum/showthread.php?t=1232870

which says that the original autoexec.bin should be replaced by:

https://bitbucket.org/OtherOnePercent/tragic-lantern/downloads/autoexec.bin.EXfat.600D.Latest


However after I replaced the autoexec.bin on the card, pull the battery out, replace the card and replace the battery, the card door red LED is turned on permanently and the 60D becomes unresponsive.  So I immediately pulled the battery out.

So what else I need to do to test the >4gb recording on the 60D?

after restoring the original ML 2.3 autoexec.bin, the camera boots fine, then I followed the rest of the instructions from:

http://photography-on-the.net/forum/showthread.php?t=1232870

and set the CBR to a non-default setting (I set it to 1.1) and decreased the buffer warning to 50%, the 60D still stops recording at 4GB :(

1%

600D bin will not work on 60D.

You actually have to apply the patch and make your own bin or look for some 60D builds in the limit hacking thread.

kcleung

Quote from: 1% on March 31, 2013, 06:29:44 AM
600D bin will not work on 60D.

You actually have to apply the patch and make your own bin or look for some 60D builds in the limit hacking thread.


Okay....... I have a few questions:

- where is the link to "the patch"?

- Do I apply the patch to the current hudson trunk?  If so, on which branch?  unified branch?

https://bitbucket.org/hudson/magic-lantern

On this repository, I saw unified branch, and two 60D branches, If I should go for the 60D branches instead, should I go for 0196ff9 or 03b264a?

- Once I applied the patch and recompiled, do I just copy everything to my exfat card and test?


Francis

It is not a matter of applying a patch from a different model or branch. The support has yet to be coded for this or any model excluding the 600D. This is an undeveloped function.

kcleung

Quote from: 1% on March 30, 2013, 01:26:16 AM
That's what the 600D patch is about. 600D has 64bit space for file size, the fw has the limit set for 4gb. You can write a 16gb file if you want. When its patched the camera will keep writing up to 30 minutes or until whatever size limit you set.


One more question:  Could you please tell us which canon cameras have 64bit space for file size, and which ones have 32-bit space for file size?

Is it true that the ones have 32-bit file address size can only do 4GB file and this is a hard limit that cannot be overcome?  Or is this just depending the type of the size counter that we can change (from uint32 to uint64)?  And could you please point me to the code that deals with file sizes?

And does 60D have 32-bit or 64-bit space?

nanomad

From my understanding all cameras that support EX-FAT should support 64 bit file addressing. So, 600D or newer I suppose
EOS 1100D | EOS 650 (No, I didn't forget the D) | Ye Olde Canon EF Lenses ('87): 50 f/1.8 - 28 f/2.8 - 70-210 f/4 | EF-S 18-55 f/3.5-5.6 | Metz 36 AF-5

kcleung

Quote from: 1% on March 31, 2013, 06:29:44 AM
600D bin will not work on 60D.

You actually have to apply the patch and make your own bin or look for some 60D builds in the limit hacking thread.

I have applied your patch:

https://bitbucket.org/OtherOnePercent/tragic-lantern/commits/a55888def09c0a394c6ececc7a3b77938cd52096

onto the unified branch head of the hudson bitbucket repository successfully, then I removed everything from the exfat card, went to:

platform/60D.111

and run:

make clean
make
sudo make install

I ten plugged the card onto the 60D, and the version string does show that it is a developemntal version (and the menu looks a bit different from 2.3)  I changed the CBR from default to 1.1, and reduced the buffer warning level from 70% to 50% as instructed.

However the recording still stops at 4GB  :(


maybe I need to spend some time on the code to understand what it is doing.



By the way, is it correct to say that we write new tasks to replace some tasks written by Canon, and then our bootloader hooks our new tasks in place of the Canon task that we replace?  Is this how ML work?


1%

Hehe, seems like you're coming along. Read the whole limits be gone thread... 60D had another offset. Also would probably help you to turn the debugging stuff back on and see what the values are. Its set to find the movie recorder then look for the offset and if found patch it. I turned off all the warnings and displays because I got it working...

I don't think we have to find the recorder every time, I don't think the pointer to the offsets changes.. I want to update it to just patch the relevant memory locations with a selectable size as some people have 128gb cards and probably want 32gb files and some people might want 8gb, etc.

You can find the locations and then put them in memory browser to see what is going on. 60D may have to be cache hacked at boot, who knows.

May also help to dump 60D firmware and actually look around max rec sec function to find what is read from what.

kcleung

Quote from: 1% on April 01, 2013, 12:09:53 AM
Hehe, seems like you're coming along. Read the whole limits be gone thread... 60D had another offset. Also would probably help you to turn the debugging stuff back on and see what the values are. Its set to find the movie recorder then look for the offset and if found patch it. I turned off all the warnings and displays because I got it working...

I don't think we have to find the recorder every time, I don't think the pointer to the offsets changes.. I want to update it to just patch the relevant memory locations with a selectable size as some people have 128gb cards and probably want 32gb files and some people might want 8gb, etc.

You can find the locations and then put them in memory browser to see what is going on. 60D may have to be cache hacked at boot, who knows.

May also help to dump 60D firmware and actually look around max rec sec function to find what is read from what.

- So could you please give me the link to the "whole limits be gone thread"?

- Also how can I dump the firmware?

- how can I turn the debugging on?  at the ML menu, or at source code or in the Makefile system?

- and after I dump the firmware, what tools can I use to look at it?

Thx......

1%

The thread is in the Reverse engineering forum. You'll have to make changes in the source to enable dumping. Read the wikia on dev tools, etc... Its too much to just give you a step by step.