Menu

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 - mark.farnell

#1
General Development / Re: supporting > 4GB videos
March 30, 2013, 01:04:46 AM
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?
#2
General Development / supporting > 4GB videos
March 29, 2013, 11:30:14 PM
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?
#3
Quote from: 1% on March 14, 2013, 05:47:09 AM
Some... I tried patching a whole bunch of places. I made a fair bit of logs on 6D, I could upload them.

Its kind of hard to test as it takes 30 minutes. I tried to get it to stop early but couldn't.

By the way, do your patches work or not?  Are these patches specific to 6D, or generic to other cameras such as 60D?  I have a 60D..... and I am happy to test.

Also when you said "I tried to get it to stop early but couldn't", do you mean your patches now make the camera unable to stop recording when you press the red button the second time?  The (our) desired behaviour of the camera is that the camera should stop recording only when:

- the disk is full
- the user presses the red button again

Also, can we test your patches on an emulator such as eCos?  If we can, then this would certain make it much safer...... I don't want to brick my 60D!!!!!!!!!!!!!!!!!!!


Finally, where can we get your patches and/or logs?  in git?  or other places?

Thanks!

Mark
#4
Quote from: a1ex on March 29, 2013, 09:55:12 PM
Yes, only for emulation. I don't need to emulate the entire Canon firmware, just ML code.

So at this stage, is it possible to emulate the ML code with eCos?  If so, how?

Also will the ability of emulating the ML code make developing safer?  ( I mean detecting silly mistakes such as writing wrong values to NVRAM variables, that can potentially brick the camera)
#5
Thanks g3gg0 for these very illustrative diagrams...... Should they go to the developer's documentation on the ML website?  Newbie developers do need to understand the big picture first before they can progress further......
#6
Quote from: jplxpto on March 23, 2013, 03:15:40 AM
I'm very interested in this subject.

I'll be glad to help you.

Maybe this can help us ... The eCos is another option (http://ecos.sourceware.org/about.html) and it already has support for GDB.

In this case, is eCos a replacement of qemu?  However it says it is an operating system.... so do you mean to replace DryOS with eCos altogether? 
#7
Quote from: g3gg0 on March 16, 2013, 12:52:30 AM
i have no picture for you, but some words.

DryOS is the operating system, the canon firmware uses and is widely used on cameras in field.
Operating system = basic I/O, tasks, semaphores, memory management, etc.

canon firmware is the DryOS plus a lot of application code like menu, state machines for every camera function.

Boot loader is the first code executed after processor reset. it checks flash and jumps to canon firmware.
it also checks for boot flag and autoexec.bin on card and executes it (ML loading)

Thanks!  So where does ML sit?  Is ML augmenting/patching the  "application code" that you talked about, or the DryOS code, or both?  I am confused........

Also are camera functions such as recording movies, and limiting movie time length to 1799 seconds belong to the user space application code rather than the DryOS code?
#8
Quote from: 1% on March 15, 2013, 01:00:19 AM
6D has a few more (ie timecode) but 600D had the same stuff. Its not DryOS, its canon stuff on top of it.

Ptool directly modifies fw (AFAIK) and they have a software encoder.

I am a total newbie to ML development and I am just starting to learn...
Where can I find a diagram explaining the architectural relationship between:

- Canon camera hardware
- DryOS
- ML
- other "canon stuff" above the DryOS that 1% mentioned

When people say firmware and software, I am a bit confused about where do they sit on the above list.  Does firmware cover DryOS or does it only cover things below the DryOS?  What does "firmware" cover for our purpose?

Also does ML work by replacing part of the "other canon stuff" above the DryOS, or the DryOS, or both?

Thanks!

Mark
#9
Quote from: 1% on March 14, 2013, 05:47:09 AM
Some... I tried patching a whole bunch of places. I made a fair bit of logs on 6D, I could upload them.

Its kind of hard to test as it takes 30 minutes. I tried to get it to stop early but couldn't.

Thanks for doing all these hard work..... btw... do you think these functions are specific to 6D, or are identical across the DryOS family?

Also, how come the PTool project can remove the 30 minutes limit on Panasonic cameras so easily?
#10
General Development / Re: supporting > 30min videos
March 14, 2013, 04:30:32 AM
Quote from: 1% on March 12, 2013, 06:01:48 AM

The counter is not so easy to patch. I tried and failed a few different ways. There are actually several of them and they fire off events which stop recording. You can try cache hacks but will have to  dig in the FW and find all of the counters or modify the functions to make recording not stop.


So in another word: should we try to identify all events that stop recording, and the function that stops recording when the recording button is pressed during a recording.  Then we need to change the functions so that recording can only be stopped by pressing the recording button while recording, right?  So far, have we managed to identify events that stop recording?



#11
Quote from: 1% on March 12, 2013, 01:40:30 AM
600D is lucky in that it has address space for files over 4gb. Its still a hack.. needs exfat and movie rewritten afterwards on a computer.

6D just splits the files but from looking it could be hacked the same way even though its unnecessary.

okay... so are you saying that:

- no matter what, the camera will stop for a few seconds before recording a new video clip regardless of length of the previous clip (3 seconds or 30 minutes)?

- magic lantern has no way to split video files (is the function implemented in firmware or hardware or DryOS or ML?)


Also for the 1799 seconds counter you talked about, is it in the DryOS, or the hardware?  And can it be accessed/modified by ML?

I am now reading the ML mercurial repository, apart from doxygen, are there any documentation that gives the big picture of the ML mechanism?

Thanks!

Mark

#12
Quote from: 1% on March 11, 2013, 07:57:38 PM
That hella won't work. There is no file size limit in reality, only a counter of 1799 seconds somewhere (multiple functions).

The 600D 4gb limit is broken. 6d splits the files. 50MB would be a drop in the bucket when video is like 1gb a minute.

so another word: it is the counter that really limit the recording time (if the 4GB limit is broken), so if we were to break the 30 minute limit, then we need to identify the counter, functions that use the counter and a way to reset the counter (or enlarge the counter to make it effectively infinity), right?

By the way, when you say "The 600D 4gb limit is broken" do you mean that the camera will be happily making files larger than 4GB, or multiple files when needed?  At this moment, most Canon DSLRs, including the 60D still has this 4GB limit.......
#13

1%:  You haven't answered the question below yet.......

Quote from: mark.farnell on March 11, 2013, 05:14:44 AM
Last time, we were talking about when the magic lantern does the automatic new video when the video reaches 4GB, or exceed 30 minutes, the recording will stop for a few seconds to allow the content of the buffer to flush to disk.

However, if we make a new file say in every 50 MB in a continuous recording, then will the time taken to flush the file shorten, and hopefully we can only lose a few frames per new file, rather than a few second of recording?


If the video file is smaller (say 50MB), then can the camera take a much shorter time before starting a new file/recording?  If the above proposal does work, then we can effectively break the 30min limit..........
#14
Last time, we were talking about when the magic lantern does the automatic new video when the video reaches 4GB, or exceed 30 minutes, the recording will stop for a few seconds to allow the content of the buffer to flush to disk.

However, if we make a new file say in every 50 MB in a continuous recording, then will the time taken to flush the file shorten, and hopefully we can only lose a few frames per new file, rather than a few second of recording?

So far, magic lantern is a user-space program that can do all these wonderful things..... however are there projects similar to the Panasonic PTool that offers a patch or a complete replacement of the firmware and be able to modify things at a lower level, such as adding codecs, removing 30 minutes limits etc?
#15
Quote from: scrax on January 01, 2013, 05:20:49 PM
I'm not a video guy, but you can adjust aperture pressing AE and scroolwheel on 600D. But it will not be gradual, it will chande of 1/3stop. Maybe a lens for movie with manual aperture is needed for that?

You're right, perhaps I need a lens that have gradual manual aperture.


Quote from: scrax on January 01, 2013, 05:20:49 PM
This is what I have for enabling clean screen quickly:

PREFS->Misc key settings->Sticky DOF Preview : ON
PREFS->Misc key settings->Powersave in LV-> Enable p s : on Rec
DISPLAY->ClearOverlay->Halfshutter/DOF

I keep those setting always like this and so i can have clean screen pressing DOF in LV, this is good for me to check the DOF and image without any distracting overlay before the shoot.
So for me DOF button is the one you are requesting, or not?

That's right..... though it would be cumbersome if we have to do it every time when we record, and revert the settings when we do still.

This is why we really need an "HDMI stream" button that apply the above settings only during the streaming session, and stream the audio into the HDMI stream.  Can this "HDMI stream" button be implemented for ML 2.4?
#16
Quote from: 1% on December 31, 2012, 10:17:42 PM
There should be an easy HDMI setup on/off. There hasn't been enough interest shooting this way until now because of the crippled output.

Okay..... if it is easy, then would it be possible to put the HDMI streaming into the TODO list of 2.4?


Quote from: 1% on December 31, 2012, 10:17:42 PM
I have scroll wheel disabled in menus so it changes aperture and shutter whenever already.

I don't quite get you...... In the video mode, during liveviewing (i.e. not recording), I can only use the scroll wheel to change exposure, but *not* aperture.  So are there any ways for us to gradually change aperture during liveview streaming?
#17
Quote from: scrax on December 31, 2012, 05:08:32 AM
yep first time you press it it will stay pressed until you repress it when engaged you will se HR on screen for like a second before clean up (i've not tried it for more than some minutes)

Thanks! so you will press the half-shutter exactly once when you start streaming.

I have just put a feature request for an HDMI streaming function that automatically stream HD to the HDMI output with indefinite length. You can have a look at the feature request section of this forum.
#18
Quote from: 1% on December 31, 2012, 09:10:53 PM
Monitor mode audio would have to be routed to HDMI which from the FW looks possible but nobody has tried yet. Would work on 600D, dunno about "AK" audio. It looks pretty broken on new cameras (audio is done more like 600D audio now just with different commands).

In this case, can we implement this function in stages?  First, we assign a button (or an ML menu item) for HDMI streaming.  This should be the easiest to achieve, as we don't need to access anything extra from the hardware.  Is it realistic to get this part done by 2.4?  Even if the subsequent stages turn out to be unfeasible, just getting the first part done would substantially improve the video capability of the camera, as the audio can be handled separately by the computer the camera attaches to.

Then the next stage would be to route the audio to the HDMI mode...... yeah I know the sound quality maybe suboptimal, but for many people, this will be good enough as they just use the audio to sync the video stream of this camera with other cameras during post-production.

Finally, would it be feasible to assign one of the dials to change aperture during HDMI streaming?  This would allow the shallow depth of field effects typical in professional video cameras.



#19
To stream continuous video longer than 30 minutes, it is possible to implement a video stream functionality (can be assigned to a camera button, or an item in the ML menu), that:

- sets all parameters for HDMI streaming, such as clear overlay and make sure camera does not sleep while streaming
- turn on the audio recorder and include audio in the HDMI stream while streaming
- allow change of aperture during streaming (by using one of the wheels?)

This function would save users from manually changing the ML configuration, and press the half-trigger button etc, and make the camera on par with professional video recorders.......

Would this function be feasible to implement?
#20
okay..... so for HDMI stream, I need to use the liveview mode.......

One more question: I turned on the Misc key->sticky halfshutter, turned off auto off (Canon menu), set the powersave mode to record only (ML) and turn off all three powersave items in ML

However when I leave the camera at the video mode liveview, the mirror still lowers at 30 minutes, and then it goes back up and liveview restarts.  How can I stop that?  Isn't setting the sticky halfshutter already prevents this?  Or do I need to press the halfshutter once?

#21
Thx.... I have managed to turn off powersaving mode and clear overlay, so the camera no longer shuts off.  Also, the fact that LCD turns off when connected to HDMI is a good thing, as it saves battery power, as well as the LCD screen life :)

However, when I want to record HD video continuously over 30 minutes over the HDMI, then should I use the record mode (press the record button) or just the live-view mode?

If in the latter case, will audio be included in the HDMI stream?

Thanks!

Mark
#22
I have a Canon 60D with ML 2.3 installed.  I want to record a continuous HD clip of > 30 minutes with this camera (ie. my camera doubles as a video camera).

The ML manual says that one can stream the footage through the mini-HDMI to an external HDMI recorder to bypass the 12/30 minute restriction.  (For example, the last movement of Beethoven Symphony No. 9 lasts for an hour, non-stop)

I have a few questions:

- Does the HDMI stream only starts when I activate the record button, or is it on all the time?

- Does the HDMI output stream capture the audio from the camera?

- When I want to record a long video (> 30 minutes) through HDMI, should I activate the video record mode (will this mode be subject to the 12/30 minute limitation?), or just the live preview mode?

- In the latter case, when the LCD is cut due to inactivity, the mirror will also be flipped down and cut the video.  Is there a function in the ML menu to suppress this behaviour and ensure liveview is not interrupted?

- Also in the video liveview mode (without recording to the card), if I close the LCD screen, the LCD screen will stop being lit.  However is it possible to do this without stopping the HDMI output stream?  If this is possible, then we can save a lot of battery power.


The above questions may sound stupid to you, but I am only a beginner, and I have just managed to boot my 60D with ML :)

Thanks!

Mark