mlv_dump on Mac OSX

Started by marekk, November 01, 2013, 03:18:14 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

marekk

I'm trying to compile mlv_dump on Mac OSX. Make ends with this error:
mlv_dump.c:1456:34: error: no member named 'buffer' in 'struct raw_info'

I'm using this compiler: https://launchpad.net/gcc-arm-embedded/4.7/4.7-2013-q1-update/+download/gcc-arm-none-eabi-4_7-2013q1-20130313-mac.tar.bz2

Maybe someone know how to compile it sucessfully on Mac ?

dmilligan

For starters, unless you are somehow running Mac OSX  on an ARM processor, you shouldn't be using the ARM compiler (the ARM compiler is for ML, b/c the camera's processor is ARM, but mlv_dump is a computer utility, you need to use the compiler for your computer's architecture).  If you have xcode installed with command line tools, you should have a standard version of gcc and also llvm (not sure which versions of those, don't have my mac with me right now). You probably need to modify the makefile to point at the correct compiler for your computer. You might also have to find and download an appropriate version.

marekk

I've got xcode 5.0.1 with command line tools.

gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix

dmilligan

perhaps you need to install and use the "real" gcc compiler rather than apple's llvm version:
http://superuser.com/questions/517218/how-do-i-install-gcc-4-7-2-on-os-x-10-8

those instructions are a little old, I'd go for 4.8 rather than 4.7, but you get the idea.

a1ex

Or maybe you need to look at the error message and propose a fix.

marekk

I installed gcc 4.7.3 and still the same error...

which gcc
/opt/local/bin/gcc

opt/local/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/opt/local/bin/gcc
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin12/4.7.3/lto-wrapper
Target: x86_64-apple-darwin12
Configured with: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc47/gcc47/work/gcc-4.7.3/configure --prefix=/opt/local --build=x86_64-apple-darwin12 --enable-languages=c,c++,objc,obj-c++,lto,fortran,java --libdir=/opt/local/lib/gcc47 --includedir=/opt/local/include/gcc47 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-4.7 --with-libiconv-prefix=/opt/local --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.7 --with-gxx-include-dir=/opt/local/include/gcc47/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --with-ppl=/opt/local --with-cloog=/opt/local --enable-cloog-backend=isl --disable-cloog-version-check --enable-stage1-checking --enable-lto --enable-libstdcxx-time --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld --with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket --disable-ppl-version-check --with-pkgversion='MacPorts gcc47 4.7.3_3+universal'
Thread model: posix
gcc version 4.7.3 (MacPorts gcc47 4.7.3_3+universal)


Quote from: dmilligan on November 01, 2013, 05:28:03 PM
perhaps you need to install and use the "real" gcc compiler rather than apple's llvm version:
http://superuser.com/questions/517218/how-do-i-install-gcc-4-7-2-on-os-x-10-8

those instructions are a little old, I'd go for 4.8 rather than 4.7, but you get the idea.

marekk

raw.h

#if INTPTR_MAX == INT32_MAX     // only works on 32-bit systems
    void* buffer;                   // points to image data
    #else
    uint32_t do_not_use_this;       // this can't work on 64-bit systems
    #endif


I'm trying to compile it on x64 system so there is no buffer..
added -m32 at the end of this line:
LV_CFLAGS=-DMLV_USE_LZMA -Wpadded -mno-ms-bitfields -O2 -Wall $(LFS_FLAGS) -I$(SRC_DIR) -std=c99

and now it ends with:

Quoteld: warning: ignoring file lzma/lib7z.a, file was built for archive which is not the architecture being linked (i386): lzma/lib7z.a
Undefined symbols for architecture i386:
  "_LzmaCompress", referenced from:
      _main in cc8H2Vkr.o
  "_LzmaUncompress", referenced from:
      _main in cc8H2Vkr.o
ld: symbol(s) not found for architecture i386
collect2: error: ld returned 1 exit status
make: *** [mlv_dump] Error 1

marekk

ufffff finally it works..

1. I had to install gcc 4.7.3 (sudo port install gcc47 +universal; sudo port select --set gcc mp-gcc47; hash gcc)
2. Makefile:
QuoteMLV_CFLAGS=-DMLV_USE_LZMA -Wpadded -mno-ms-bitfields -O2 -Wall $(LFS_FLAGS) -I$(SRC_DIR) -std=c99 -m32
QuoteLZMA_CFLAGS=-c -O2 -Wall -c -m32
3. CpuArch.c from lzma lib has a bug as described at http://sourceforge.net/p/sevenzip/bugs/1338/
4. CpuArch.c replaced with http://sourceforge.net/p/sevenzip/bugs/_discuss/thread/ceab2abb/ab04/attachment/CpuArch.c

dubzeebass

Great Job Marek, can you please post the compiled version here?


sebamax

Hi,
how to use mlv_dump on Mac OS X
Thanks

marekk

you should to record a raw video using mlv_rec module, then you can convert *.MLV files to DNG or RAW file.

Quote from: sebamax on November 05, 2013, 03:35:14 PM
Hi,
how to use mlv_dump on Mac OS X
Thanks

sebamax

Hi,
yes I Know it, but I wanted to know how to convert using mlv_dump.
Thanks

dmilligan


sebamax

Hi,
As I try using mlv_dump I write "./desktop/folder/mlv_dump filename.MLV " into Terminal window, it answers:

" Mode of operation:
   - Input MLV file: 'M05-1620.MLV'
   - Verify file structure
[E] Failed to open file 'M05-1620.MLV' "

Where am I wrong?
Please can someone explain me what to do?
Thanks

g3gg0

tried passing the whole path to the file?
Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: [email protected]
ONLY donate for things we have done, not for things you expect!

dmilligan

Quote from: g3gg0 on November 07, 2013, 01:03:19 PM
tried passing the whole path to the file?

Hint: you can drag and drop a file onto the termnial window to get the full path

sebamax

Hi,
I tried but the answer is always the same:

"- Verify file structure
[E] Failed to open file 'M05-1620.MLV' ""

g3gg0

Quote from: sebamax on November 07, 2013, 09:15:46 PM
Hi,
I tried but the answer is always the same:

"- Verify file structure
[E] Failed to open file 'M05-1620.MLV' ""

screenshot please
Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: [email protected]
ONLY donate for things we have done, not for things you expect!


Viktor Fenster

Quote from: marekk on November 01, 2013, 07:33:07 PM
ufffff finally it works..

1. I had to install gcc 4.7.3 (sudo port install gcc47 +universal; sudo port select --set gcc mp-gcc47; hash gcc)
2. Makefile:3. CpuArch.c from lzma lib has a bug as described at http://sourceforge.net/p/sevenzip/bugs/1338/
4. CpuArch.c replaced with http://sourceforge.net/p/sevenzip/bugs/_discuss/thread/ceab2abb/ab04/attachment/CpuArch.c

Marekk, I'm trying to compile on OSX 10.6.8, however, have you come across these errors?


mlv_dump.c: In function 'main':
mlv_dump.c:521: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'
mlv_dump.c:1076: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
mlv_dump.c:1076: warning: format '%d' expects type 'int', but argument 3 has type 'size_t'
mlv_dump.c:1339: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
mlv_dump.c:1737: error: 'struct raw_info' has no member named 'active_area'
mlv_dump.c:1738: error: 'struct raw_info' has no member named 'active_area'
mlv_dump.c:1739: error: 'struct raw_info' has no member named 'active_area'
mlv_dump.c:1740: error: 'struct raw_info' has no member named 'active_area'
make: *** [mlv_dump] Error 1


g3gg0

Quote from: Viktor Fenster on November 18, 2013, 07:01:13 PM
Marekk, I'm trying to compile on OSX 10.6.8, however, have you come across these errors?


mlv_dump.c: In function 'main':
mlv_dump.c:521: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'
mlv_dump.c:1076: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
mlv_dump.c:1076: warning: format '%d' expects type 'int', but argument 3 has type 'size_t'
mlv_dump.c:1339: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
mlv_dump.c:1737: error: 'struct raw_info' has no member named 'active_area'
mlv_dump.c:1738: error: 'struct raw_info' has no member named 'active_area'
mlv_dump.c:1739: error: 'struct raw_info' has no member named 'active_area'
mlv_dump.c:1740: error: 'struct raw_info' has no member named 'active_area'
make: *** [mlv_dump] Error 1


tried this?
> 1. I had to install gcc 4.7.3 (sudo port install gcc47 +universal; sudo port select --set gcc mp-gcc47; hash gcc)
Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: [email protected]
ONLY donate for things we have done, not for things you expect!

Viktor Fenster

Quote from: g3gg0 on November 18, 2013, 10:02:37 PM
tried this?
> 1. I had to install gcc 4.7.3 (sudo port install gcc47 +universal; sudo port select --set gcc mp-gcc47; hash gcc)

Compiling version 4.7.3 right now so I'll get back to the thread after I've played around with the new compiler.

lcemmanuel

Hi everyone and thanks for all what is being done !

I tried to convert .mlv on a mac running osx 10.9.1

I dropped mlv_dump followed by the .mlv onto terminal. Here is what I get :

MLV Dumper v1.0
-----------------

Mode of operation:
   - Input MLV file: '/Users/laurentemmanuel/Desktop/mlvfiles/M03-1804.MLV'
   - Verify file structure
File /Users/laurentemmanuel/Desktop/mlvfiles/M03-1804.MLV opened
File /Users/laurentemmanuel/Desktop/mlvfiles/M03-1804.M00 opened
File /Users/laurentemmanuel/Desktop/mlvfiles/M03-1804.M01 opened
File /Users/laurentemmanuel/Desktop/mlvfiles/M03-1804.M02 opened
Processing...
Reached end of chunk 1/4 after 3370 blocks
Reached end of chunk 2/4 after 3351 blocks
Reached end of chunk 3/4 after 3355 blocks
Reached end of chunk 4/4 after 337 blocks
Processed 5090 video frames
Done

So Terminal says it's done, but it doesn't seem anything happens.

I am not a developer and when I use Terminal, my knowledge is very limited.

Tanks for your insight !

Laurent

g3gg0

you have to specify what to dump.
open a command line and type mlv_dump --help
or use the GUI (MLVBrowseSharp)
Help us with datasheets - Help us with register dumps
magic lantern: 1Magic9991E1eWbGvrsx186GovYCXFbppY, server expenses: [email protected]
ONLY donate for things we have done, not for things you expect!