Hi there,
First of all I want to admit: this is not the first time when someone modified mlv_dump. I also did it once not so long while ago but this time it's little bit different. This one based on latest vanilla MLVFS source files edited and changed by me.
Also, I can say that digging into MLVFS sources is a real joy

. I love it starting from the idea and ending with the very cool multiplatform implementation. I want to thank David Milligan for this gem, special thanks to Danne (he always supports my development attempts), also a1ex and g3gg0 for all this thing called ML project moving forward and all active maintainers and devs of other ports and all the community around the project. Thank you guys!
Now about the subject:
UPDATE:UPDATE2:UPDATE3 (2018):UPDATE4 (last!): It is merged to official ML's crop_rec_4k branch: Link( hopefully

) it:
1. Saves
16bit any bit depth Cinema DNG files. e.g.
10/12/14 bits compressed or uncompressed, "--no-bitpack" exports 16 bit uncompressed DNGs.
2. Supports any bit depth raw data as input
compressed or uncompressed3. Has additional or reworked switch options:
---
--no-audio for DNG output WAV not saved, for MLV output WAVI/AUDF blocks are not included in destination MLV
---
--no-fixfp do not fix focus pixels
--fixcp2 use aggressive method for revealing more bad pixels
--no-stripes do not fix vertical stripes in highlights
--force-stripes compute stripe correction for every frame
--is-dualiso use dual iso compatible horizontal interpolation of focus and bad pixels
--is-croprec generate focus map for crop_rec mode
--save-bpm save bad pixels to .BPM file
--fixpn fix pattern noise
--deflicker=value per-frame exposure compensation. value is target median in raw units ex: 3072 (default)
--no-bitpack write DNG files with unpacked to 16 bit raw data
--show-progress show DNG file creation progress. ignored when -v or --batch is specified
also works when compressing MLV to MLV and shows compression ratio for each frame
--fpi <method> focus pixel interpolation method: 0 (mlvfs), 1 (raw2dng), default is 1
--bpi <method> bad pixel interpolation method: 0 (mlvfs), 1 (raw2dng), default is 0
---
-c compress video frames using LJ92. if input is lossless, then decompress and recompress again.
-d decompress compressed video and audio frames using LZMA or LJ92
-p pass through original raw data without processing, it works for lossless or uncompressed raw
"--force-stripes" forces stripe detection for each frame separately. Slow but more effective on some footage"-p" option replaces "-c -c" and passes through unmodified data for both uncompressed or lossless compressed raw."--no-audio" for DNG output WAV not saved, for MLV output WAVI/AUDF blocks are not included in destination MLV, it's forced when "-f" used"--no-fixfp" option deactivates fixing of focus pixels""--is-croprec" option generates focus map for crop_rec mode"4. Supports focus pixels the same way MLVFS does, also has ability to override and load '.fpm' manually if file has the same name as input MLV.
Automatically fixes focus pixels for losless or uncompressed MLVs without special maps. If could not fix some dots for some special case map file can be specified as usual to override auto fixing. Auto detects crop_rec mode5. Saves/Loads '.bpm' (bad pixel map) files. Name of the file same as input MLV
6. Can fix pattern noise
7. Has deflicker option of MLVFS
8. --show-progress prints every operation's done while saving DNGs,
also works when compressing MLV to MLV and shows compression ratio for each frame9. Implemented advanced WAV header with iXML for demanding NLEs
10. Includes
'crop_rec_4k' branch goodies/changes
11. Correctly fills up 'Unique Camera Model' tag in dng header and has additional camera matrixes
12.
With "-b" switch you can convert bit depth and related black/white levels and export to that bit depth DNG (uncompressed only) 13.
Chroma smooth code updated to the more advanced one14.
Added pixel interpolation method from raw2dng15.
Introduced two command line switches: "--fpi" and "--bpi" (see usage), by default, for focus pixels RAW2DNG method (correct edge pixel processing added) and for bad pixels MLVFS method is used16.
Supports new focus pixel maps w/header, generated by fpmutil (in addition to original simple .fpm), 'fpmutil' binaries can be downloaded here17. Well... maybe I forgot something to mention
'fpmutil' also updated and can be downloaded from the links above as usualAny feedback is welcome!
Here are
links to the fork and downloads.
Here is a branch with simplified changeset to understand, with less effort, how 'mlv_dump.c' was modified and what has changed.Now it's merged to Magic Lantern repository: LinkThe best regards
bb