RAW Video Module raw_rec [Compiling/Installation]

Started by g3gg0, May 14, 2013, 11:44:37 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

scrax

Quote from: stevegalle on May 14, 2013, 05:58:52 PM
Also regarding the 4gb cutoff, is it possible that the footer isn't getting properly written when the file is cut off? With any file that hit the limit, I get the 'Error: This ain't a lv_rec RAW file' message when I try to convert it. I have not yet tried pasting a footer onto the file.
what are you using to convert them?
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

a1ex

Load a video in a hex editor and scroll until the end - you should see the footer starting with RAWM.

In the converter source, we have:

    FILE* fi = fopen(argv[1], "rb");
    CHECK(fi, "%s", argv[1]);
   
    fseek(fi, -sizeof(lv_rec_file_footer_t), SEEK_END);
    int r = fread(&lv_rec_footer, 1, sizeof(lv_rec_file_footer_t), fi);


which I guess it should work if fseek supports it.

stevegalle

Quote from: scrax on May 14, 2013, 06:02:19 PM
what are you using to convert them?

Using raw2dng on osx. After work tonight I can try it on windows and see if it behaves any better or not.

jordancolburn

Quote from: 1% on May 14, 2013, 04:11:18 PM
That won't work for 550D, its 600D only. I'm  not getting pink frames anymore most of the time.. sometimes jacked up frames. I haven't tried 1738 or 1740 again which were known bad.
What settings are you using on the 600d?  I turned global draw off and went really conservative on the frame size and get constant pink frames every 5-10 frames with the latest binaries from your tragic lantern 2.0 repo.  Btw, thanks for the builds!

scrax

Quote from: stevegalle on May 14, 2013, 06:10:40 PM
Using raw2dng on osx. After work tonight I can try it on windows and see if it behaves any better or not.
it's because it's not 64bit, I need to update it.
I'm using ML2.3 for photography with:
EOS 600DML | EOS 400Dplus | EOS 5D MLbeta5- EF 100mm f/2.8 USM Macro  - EF-S 17-85mm f4-5.6 IS USM - EF 70-200mm f/4 L USM - 580EXII - OsX, PS, LR, RawTherapee, LightZone -no video experience-

1%

QuoteWhat settings are you using on the 600d?

Sraw and then frames like 1280x480 or something like that... a few different ones worked. 960x480 is pretty much continuous. Also recorded in 640x480.. I get a few more MB writing this way up to 18... so shrinking YUV edmacs will have effect... if we figure out how to disable HD buffer and face detection or make it output 1 line only I think there will be noticeable performance improvement.

stevegalle

Quote from: scrax on May 14, 2013, 06:19:45 PM
it's because it's not 64bit, I need to update it.

Ahh ok that explains it, thanks.

paramon

guys , do i need to use EOScard for CF cards?

Limiter

First off, AMAZING WORK ML team!!

Question regarding CF card and the Mark II: Will the KomputerBay cards work with the Mark II (they do work with Mark III)?

sicetime

Thank you for your hard work!

Does anyone have the link to the most updated 5dIII build?

Is this it?

https://docs.google.com/file/d/0B7QlH_BH2m32T3RSTXRUM1VXTWM/edit

sicetime

Quote from: Limiter on May 14, 2013, 07:58:56 PM
Question regarding CF card and the Mark II: Will the KomputerBay cards work with the Mark II (they do work with Mark III)?

I know that Andrew from EOSHD Used the 128gb KomputerBay 1000x when he tested it, but haven't heard anything further.

woj-o

One word A-M-A-Z-I-N-G.
It was very nice commented on EOSHD - 5DMKIII is best cinema camera right now - but that's without any thanks to Canon.

Any chances for it to work on 60D? (having it's low memory and slower (than CF) cards)?

bensyverson

In the raw2dng file, rather than fseek'ing a fixed distance from the end of the file, I would recommend starting at the end of the file and gradually working back until the magic char ("RAWM") is in the "magic" element of the struct. Something like this:


off_t offset = 4;
fseek(fi, -offset, SEEK_END);

int r = fread(&lv_rec_footer, 1, sizeof(lv_rec_file_footer_t), fi);
while (strncmp((char *)fileFooter.magic, "RAWM", 4)) {
offset++;
fseek(fi, -offset, SEEK_END);
r = fread(&lv_rec_footer, 1, sizeof(lv_rec_file_footer_t), fi);
}


That will make it more flexible in case something goes wrong. You'll only need the very beginning of the footer to read the uncompressed data anyway.

Rush

Is raw_rec module is universal for all cameras? Can I replace raw_rec module 600D with the one from 6D?

UPDATE: Answer is yes! (btw, 1%, thanks for adding many resolutions)
Greetings from Russia!

stevegalle

Thinking about it, isn't the 4GB file size a limitation of the FAT32 filesystem? I'm not sure there's any option for longer clips besides opening a new file and continuing the data stream there. raw2dng would obviously need to be updated to work with this scheme. Unless there's something I'm missing?

1%

Don't worry about 4gb limit so much... I recorded over 4GB already, haven't had a chance to decode it... I'll probably have to add that patch above to the converter...

Only reason why its not mainstreamed is because the indicators and write speed get all screwed up form uint64... other than that no issues with longer clips.

Francis Frenkel

Quote from: coutts on May 14, 2013, 01:35:13 PM
5D2 is working now, fyi.

It's working for 5dmar2 ?
How did you try it ?
How can I try it ?
have you got a tutorial to test it on a 5dmark2 ?

It's so greaaat !

Francis
Francis Frenkel
www.ffrenkel.com

stevegalle

Quote from: 1% on May 14, 2013, 09:15:26 PM
Don't worry about 4gb limit so much... I recorded over 4GB already, haven't had a chance to decode it... I'll probably have to add that patch above to the converter...

lol ok, the only reason I'm interested in it is that the ability to record longer clips is make or break for my application (mkIII on a multirotor). I'll take your word that it's not a problem, I just didn't know the filesystem on CF cards was actually able to record past a limit of  4,294,967,295 bytes.

Thanks for the effort that's going into this, the results are really quite spectacular.

Steve

1%

As long as its not fat32 you're ok. 5d3 *should* support exfat since it does for SD cards. I don't have a CF camera to mess with so not sure on like 50D/5dII/7D, etc.

olik

would be cool if 5dmk2 could support exfat or ext3/4 or similar to overcome the 4gb limit of fat32. As an alternative, maybe ML could do a new .raw file when the size limit is reached, unless it would cause dropped frames.

Felixlgr

Quote from: bloomboy on May 14, 2013, 05:54:46 PM
I am looking for a working link to to the compatible OS X 1.1.3. Firmware file, is this on the ML forum somewhere?
As canon has it deleted from their database.
Thanks!
BB ;)

you can get it here along with other Canon Firmwares

http://chdk.wikia.com/wiki/Official_Canon_firmware_updates

domisol

First all, congratulations and many thanks to all Magic Lantern for such a great job, and specially to coutts for porting to 5D2 which I'm using.

One question :
- Is it already possible to record at 24 fps, rather than 30 ? (ML overide doesn't seem to work neither Canon menu). raw_rec module and raw2dng indicates 29.97 fps.

One comment :
- I always get a "This ain't a lv_rec RAW file" error with 4 GB files, but sometimes also with smaller one, not sure exactly in which circumstances.

Thanks again.

Jean-David

a1ex


escho

Just compiled it. I can now convert 4GB. ThankYou for fixing.

Edgar
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

a.d.

Hello Devs!
Since two days, I try to figure out how to compile the raw_rec modules for my 5D2 and it seems to work, but  i have some nasty warning. My Problem The Config Menu is there but I could not load raw_rec!
I'm on VirtualBox
Makefile.user:
ARM_ABI=none-eabi
ARM_PATH=~/arm-toolchain
GCC_VERSION=4.7.3
CONFIG_CONSOLE      = y
CONFIG_TCC          = y
CONFIG_MEMCHECK     = y
CONFIG_MODULES      = y

Warning:

../../src/memcheck.c: In function 'memcheck_add':
../../src/memcheck.c:98:46: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
../../src/memcheck.c: In function 'memcheck_malloc':
../../src/memcheck.c:141:29: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
../../src/memcheck.c:149:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../../src/memcheck.c:159:5: warning: return makes pointer from integer without a cast [enabled by default]
../../src/memcheck.c: In function 'memcheck_free':
../../src/memcheck.c:193:22: warning: pointer targets in initialization differ in signedness [-Wpointer-sign]
../../src/memcheck.c:207:9: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
../../src/memcheck.c:207:9: warning: passing argument 1 of 'free' makes pointer from integer without a cast [enabled by default]
../../src/memcheck.c:207:9: note: expected 'void *' but argument is of type 'unsigned int'
../../src/memcheck.c: In function 'memcheck_main':
../../src/memcheck.c:231:25: warning: initialization makes integer from pointer without a cast [enabled by default]
[ CC       ]   console.o
[ CC       ]   tcc-glue.o
../../src/tcc-glue.c: In function 'tcc_compile_and_run':
../../src/tcc-glue.c:34:9: warning: incompatible implicit declaration of built-in function 'printf' [enabled by default]
../../src/tcc-glue.c:39:11: warning: 'main' is usually a function [-Wmain]
../../src/tcc-glue.c:66:9: warning: incompatible implicit declaration of built-in function 'printf' [enabled by default]
../../src/tcc-glue.c: In function 'open':
../../src/tcc-glue.c:146:5: warning: passing argument 2 of 'FIO_GetFileSize' from incompatible pointer type [enabled by default]
In file included from ../../src/tcc-glue.c:9:0:
../../src/dryos.h:532:1: note: expected 'uint32_t *' but argument is of type 'unsigned int *'
../../src/tcc-glue.c: In function 'read':
../../src/tcc-glue.c:179:5: warning: passing argument 2 of 'memcpy' makes pointer from integer without a cast [enabled by default]
In file included from ../../src/tcc-glue.c:9:0:
../../src/dryos.h:549:1: note: expected 'const void *' but argument is of type 'long unsigned int'
../../src/tcc-glue.c: In function 'close':
../../src/tcc-glue.c:187:5: warning: passing argument 1 of 'free_dma_memory' makes pointer from integer without a cast [enabled by default]
In file included from ../../src/tcc-glue.c:9:0:
../../src/dryos.h:558:1: note: expected 'const void *' but argument is of type 'int'
../../src/tcc-glue.c: In function 'fputc':
../../src/tcc-glue.c:240:1: warning: number of arguments doesn't match built-in prototype [enabled by default]
../../src/tcc-glue.c: In function 'tcc_compile_and_run':
../../src/tcc-glue.c:78:8: warning: 's' may be used uninitialized in this function [-Wuninitialized]

thanks in advance