elapsed time indicator is gone on nightly build 5D 3

Started by dustatron, November 11, 2013, 07:09:07 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dustatron

I have been playing with the newer nightly builds. One of the things I really miss is the elapsed time indicator for H.264 movies. I have it selected in the menu to display the elapsed time but when I hit record where the indicator would show I just see the temp, file name, frame rate, card size.

I am wondering if I am missing something in the menu.

The other things that I miss is the color indicators for bad settings.


TekAzurik

I have been wondering about this myself for a while now.  Have you heard anything?

Audionut


a1ex

It's very easy to bring it back (see http://www.magiclantern.fm/forum/index.php?topic=8539.msg79753#msg79753 )

(would it be a good idea to have a EasyCoding page to list things that would take 5 lines of code or so? maybe beginner developers can jump in easier)

dustatron

I wonder if this feature is any closer to coming back to life? or do I need to learn to code to get it back?

pompeiisneaks

I'm looking into this, would this be due to the changes to the LVINFO_UPDATE_FUNC and this code is not in that new format?
from src/bitrate-5d3.c:

switch(rec_indicator)
    {
        case 0:
            return;
        case 1: // elapsed
            bmp_printf(
                FONT(FONT_MED, COLOR_WHITE, COLOR_BLACK),
                time_indic_x + 160 - 6 * font_med.width,
                time_indic_y,
                "%3d:%02d",
                elapsed_time / 60,
                elapsed_time % 60
            );
            return;


so if I replaced the code there with the new LVINFO_UPDATE_FUNC information would that do the trick?

a1ex


pompeiisneaks

So question about that then, would I replace this code with something like this:



case 1: // elapsed
            LVINVO_UPDATE_FUNC(elapsed)
            {
                     //code here to get same data avialable?
             }
            );


and then define the elapsed in the lv info section as well?



static struct lvinfo_item info_items[] = {




Also I don't know where the old UI used to show these values?  Bottom, top or wherever it fits?

~Phil


pompeiisneaks

Okay so I think I have a pass at this that is compiling, but all of a sudden, when I do "make zip" it errors out:


cd /home/pdavis/src/123/magic-lantern/platform/all; make docs
make[1]: Entering directory `/home/pdavis/src/123/magic-lantern/platform/all'
cd ../../doc && RST2LATEX=rst2latex.py python2 mkdoc.py
[[Focus distance]]
[[Cropmarks]]
[[External Recorders]]
[[Unbricking]]
[[install]]
[[HDMI recorder]]
sh: rst2latex.py: command not found
make[1]: *** [docs] Error 1
make[1]: Leaving directory `/home/pdavis/src/123/magic-lantern/platform/all'
make: *** [docs] Error 2



I don't know where the python latex script would be provided, but I'm going to search the wiki etc, it seems my build is failing due to docs, but I thought previously that the docs weren't forced on a make zip?

~Phil

pompeiisneaks

I'm building it by bypassing that, I read the Makefile, looks like the target for zip: after the docs is to cd into platform/all and make zip.  I'll report back with progress, I'd still like to know why that python script is missing?

pompeiisneaks

man noob move, I forgot you cd into platform/5D3.123/ to do make zip.  That worked.

~Phil

pompeiisneaks

okay so the compile runs fine, but doesn't work as expected.  If someone can look at my src and tell me what seems off here I'd appreciate the pointers.  I'm sure its my
limited C skills hitting me.

https://bitbucket.org/frenchiefilms/phil/src/e4ae07b43c4879a71774a6524da8cec68d693994/src/bitrate-5d3.c?at=unified

~Phil


a1ex

Quote
if (RECORDING_H264)
    {
        lvinfo_add_item(&info_item);
    }
Try to start recording before ML has a chance to run its init functions (you have at least 200ms, more likely around 1 second) and it should work ;)

pompeiisneaks

Nope, sadly it didn't, it still just shows the top with temp, framerate, and disk remaining.   I did try but it almost takes 3 seconds or more to show the screen.

~Phil

pompeiisneaks

Oh know what, I tweaked a few things as guesses and rebuilt, if you think that is okay, I can try to fix it back and rebuild give me a few.

~Phil

pompeiisneaks

Nope, no luck, I keep thinking I see somthing flicker but not seeing anything.  Are the default overlays covering it up or something?  Is there a way to disable the liveview bars in record mode for testing?  Is that what covers it up?

~Phil

pompeiisneaks

I was looking over the code again and found a few errors in my code, fixed those, tested, and still nothing shows up if I hit rec as soon as I have screen before the liveview ML bars come over the top except the histogram and the rec red light.  Not sure what I'm missing.  If anyone wants to take a peek and give me hints:

https://bitbucket.org/frenchiefilms/phil/src/6c947a0e0965796e040177305aa083f3e17cf43d/src/bitrate-5d3.c?at=unified

~Phil

pompeiisneaks

If nobody says anything in maybe a day, I'll submit a pull request for review so it can at least be tested.   

But I would rather get it working on mine first. 

~Phil

dmilligan

a1ex has already given you the clue as to what is wrong: the way you have it coded, it will only work if the camera is already recording when ML initializes, you should change your code to work no matter what mode the camera is in when it initializes ;)

nanomad

One more clue:

PROP_HANDLER(PROP_MVR_REC_START) gets called every time the canon property PROP_MVR_REC_START changes value (the value is held inside buf[0]). property.h has the values decoded for you. That's one possible way of doing it btw.
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

pompeiisneaks

Quote from: dmilligan on February 12, 2014, 12:17:08 AM
a1ex has already given you the clue as to what is wrong: the way you have it coded, it will only work if the camera is already recording when ML initializes, you should change your code to work no matter what mode the camera is in when it initializes ;)

Oh man I totally missed that, sorry, I saw the smiley but missed the sarcasm, I was literally trying to record within 1 second of boot... /facepalm

~Phil

pompeiisneaks

I tried that again, I think I get what is being hinted at, but not sure if my method is sound, it doesn't work yet anyway.  I'll keep trying, but someone can look and see if what I'm doing makes sense at all maybe:

https://bitbucket.org/frenchiefilms/phil/src/6633808ec34cb23eff9c936681104d2af1ecda66/src/bitrate-5d3.c?at=unified

~Phil

nanomad

Not yet :-)

The thing is init functions are called exactly once per boot / module load.

Property handlers, on the other hand....
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

pompeiisneaks

Yes but I"m using a property handler, I'm guessing I'm doing it wrong obviously, but I do this:


static int movie_recording = 0;
PROP_HANDLER(PROP_MVR_REC_START)
{
    if (buf[0] == 1)
        movie_start_timestamp = get_seconds_clock();
    if (buf[0] == 2)
        movie_recording = 1;
}


to set a flag if the state is 2.  maybe that should be an else if?   and then an else for ==0?  But still, I would think that means it could be 'stuck on' in that case.  But ultimately I was trying to use the PROP_HANDLER on purpose there. 

~Phil