1. Trammell Hudson
  2. Magic Lantern
  3. Branches

Branches

crop_rec_4k

View source
crop_rec_4k
  • Contributors
    1. Loading...
Author Commit Message Date Builds
7 commits behind unified.
g3gg0
Backed out changeset: 1cc2f99d6ddc
g3gg0
mlv_dump: fix using realloc instead of malloc (thanks bouncyball)
g3gg0
mlv_dump: apply changes to LZMA code also (which is going to be removed in future)
g3gg0
mlv_dump: remove unnecessary realloc
g3gg0
mlv_dump: ensure allocated memory is zeroed
Alex
mlv_rec/mlv_lite: moved write_mlv_vers_blocks to mlv.c/h (avoids duplicate code)
Alex
mlv_lite: fix bad merge
g3gg0
mlv_dump: further rework on subtraction/average buffer handling
g3gg0
mlv_dump: reworked allocation a bit more, properly clean re-allocated memory
g3gg0
mlv_dump: correct buffer allocations which caused trouble for compressed MLVs
Alex
Merged unified into crop_rec_4k
g3gg0
mlv_rec: reduce chunk count to keep room for other files to create (and circumvent mlv_play failing playback)
g3gg0
mlv_rec: insert alignment NULL block before writers start to write aligned sizes
g3gg0
mlv_rec: ensure 32 bit alignment for VERS block sizes. just because.
g3gg0
mlv_play: when raw_twk is loaded, use 16bpp output for lossless decompression
g3gg0
raw_twk: rework to support 16bpp input data
g3gg0
raw_twk: properly clean up EDMAC so it wont lock up when used in combination with e.g. lossless decompression
g3gg0
mlv_dump: added bug fix for invalid NULL block sizes
Alex
5D3 1.2.3: fix CARD_A_MAKER (off by one)
Alex
mlv_lite: fix speed regression introduced in e67faca http://www.magiclantern.fm/forum/index.php?topic=19300.msg184290#msg184290
Alex
crop_rec: fix pink highlight issue in 3x3 modes http://www.magiclantern.fm/forum/index.php?topic=19300.msg185903#msg185903
g3gg0
mlv_play: finally fix the black screen issue happening after playing back a few files
g3gg0
mlv_play: show bit depth and compression in top bar
g3gg0
mlv_play: fix playback of normal mlv_lite 14 bit files
g3gg0
mlv_play: add lossless playback support
g3gg0
mlv_play: display message when video format is not supported
g3gg0
mlv_dump: switch some remaining printf's to print_msg
g3gg0
mlv_dump: added hex/ascii dump modes and --extract-type to select block types
g3gg0
dual_iso: change cr2hdr to use the same wrapper for module_strings like mlv_dump, also fixes compile error caused by a module.h change from static to global
g3gg0
mlv_dump: fixed dependency order
g3gg0
mlv_dump: added version string information, printed when calling with --version
g3gg0
mlv_dump: properly delete object files on 'make clean'
g3gg0
mlv_dump: changed back behavior of DNG white/black level correction on bit depth change
g3gg0
mlv_rec: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording
g3gg0
mlv_lite: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording
g3gg0
mlv_lite: use FIO_SeekSkipFile to determine file header size
g3gg0
mlv_dump: handle VERS blocks
g3gg0
mlv_rec: added code and structures to helper routines to get version information embedded into the MLV file
g3gg0
added routines and made a module loader routine non-static to allow other code to fetch e.g. strings from modules
g3gg0
mlv_dump: added an additional safety check, small change to raw_info patching, and small formatting changes
g3gg0
mlv_dump: fix missing update of frame_buffer_size causing incompletely written uncompressed DNGs after bit depth conversion, thanks Danne.
g3gg0
mlv_dump: fix crash situation for empty XREF files
g3gg0
mlv_dump: added --visualize and --skip-xref for showing a less confusing map of block types in the file
g3gg0
mlv_dump: relaxed mode for decompression, but not for compression
g3gg0
mlv_dump: added video length display
g3gg0
mlv_dump: added advanced payload/header manipulation features useful for debugging
g3gg0
mlv_dump: re-adding 14bpp enforcement for DNG
g3gg0
mlv_dump: rework help a bit, fixed compression routines added new modes for compressed DNG modes (uncompressed, compressed using lj92, original canon lossless) the last one is very fast, but results in unprocessed output (no stripe fix etc) just call it with "--dng -c -c" and it will pass through original lossless data
g3gg0
mlv_dump: reorder LJ92 header tags so it will match canon's order
g3gg0
mlv_dump: clear LZMA flag when de-/compressing
g3gg0
mlv_dump: comments, code cleanup and some simplification
Alex
Raw backend: free the larger raw buffer when it's no longer needed (when switching back to a lower resolution)
Alex
Raw backend: use a different (hopefully unused) buffer for regular LiveView RAW stream (the LiveView buffer allocated by Canon is overwritten as soon as leaving/pausing LiveView)
Alex
mlv_lite: reworked status indicators - avoid duplicate code between lvinfo and standalone indicators - fix various bugs in recording time estimations - show estimated remaining time if it's about to stop
Alex
mlv_lite: minor fixes - assert when stopping on error (e.g. card full) - redraw after H.264 stops
Alex
mlv_lite: moved time measurements in the main loop (minor fix when crossing 4GB limit)
Alex
mlv_lite: more conservative behavior when buffer becomes full (should reduce the frequency of early stops)
Alex
mlv_lite: moved DEBUG_BUFFERING_GRAPH from compile-time option to menu; minor additions
Alex
mlv_lite: fix memory warning (full-res buffer no longer needs explicit free)
Alex
mlv_lite: throttle raw recording task while also recording H.264 (experiment)
Alex
mlv_lite: disable H.264 proxy in incompatible modes; menu warnings/advice
Alex
Raw backend: only allocate from SRM when using very high resolutions (should fix conflict with H.264 proxy)
Alex
Merged raw-h264-proxy into crop_rec_4k
bouncyball
mlv_dump: lj92.c substituted by cleaner version
bouncyball
mlv_dump: set correct videoClass flag (0x21) when compressing MLV, main header's being overwritten by 'fix frame count' code at the end
g3gg0
mlv_dump: add lj92 lib to mingw build
g3gg0
mlv_dump: small printf output change
g3gg0
mlv_dump: fixed LJ92 compression, removed LZMA compression (decompression still possible, to be verified)
g3gg0
mlv_dump: add basic lossless decoding support, thanks martinhering http://www.magiclantern.fm/forum/index.php?topic=19300.msg182502#msg182502
Alex
mlv_lite: fix frame corruption bug in lossless mode http://www.magiclantern.fm/forum/index.php?topic=19300.msg183553#msg183553
Alex
mlv_lite: only use single-buffering for uncompressed output or if there's no other way to allocate memory; reworked memory allocation for full-res buffer, to be able to use the SRM memory for both full-res buffer and frame slots
Alex
crop_rec: 4096x3072 at 12 and 12.5 FPS
Alex
mlv_lite: always override (toggle) the preview mode on *long* half-shutter press, when not autofocusing (avoids transient screen changes on quick half-shutter presses)
Alex
crop_rec: fix shutter speed in centered x5 zoom
Alex
mlv_lite: auto-select optimal bit depth between 8 and 11, depending on ISO see http://www.magiclantern.fm/forum/index.php?topic=19300.msg183231#msg183231
Alex
mlv_lite: prevent recording in x10 zoom (to be used for focusing)
Alex
mlv_lite: ignore compression errors caused by corrupted frames in standby (many of them are transient, when switching video modes)
Alex
mlv_lite: disabled low bit depth setup (image darkening) while focusing (x10 zoom and half-shutter press in standby)
Alex
mlv_lite: disabled 8...12-bit lossless in modes with increased resolution (fall back to 14-bit lossless)
Alex
Silent pics: fix lossless DNG output and memory allocation (bad metadata in LiveView, corrupted output in full-res mode)
Alex
crop_rec: do not center x10 zoom, leave it for focusing (known bug: vertical bars when entering x10 zoom from x5)
Alex
crop_rec: re-enabled centered x5 zoom (3.5K 1:1 compatible with 8...12-bit lossless compression)
Alex
Raw backend: clamp black level to 2047 on recent models, if autodetection agrees (let's keep the source ready for ISO tweaks, which may reduce black level)
Alex
mlv_lite: always darken the screen when using 8-12 bit lossless compression (hopefully better than flicker; use our preview by default with these settings)
Alex
mlv_lite: another race condition fix (dcdf743)
Alex
Raw backend: render previews with proper brightness, according to white level (very low white levels also handled well, showing top 10 bits from the useful range)
Alex
mlv_lite: preview both full-size buffers while recording (to catch future bugs that might cause the raw buffer to update every other frame)
Alex
Raw backend: exact height autodetection for 5D3 (lossless 8-12 bit compression works!)
Alex
Raw backend: when using digital gain, fix white level getting restored when updating raw settings
Alex
mlv_lite: experimental lossless compression at lower bit depths - container is still 14-bit, but digital gain is used to scale the data - real-time preview will get darker when recording and when estimating compression ratio - raw histogram should be OK while recording
Alex
Raw backend: ability to set digital gain for the raw stream (experimental)
Alex
mlv_lite: fix time indicator when pre-recording is not used
Alex
crop_rec: back to old tuning for 48p
Alex
mlv_lite: fix race condition from commit b8bc13b
Alex
mlv_lite: detailed pre-recording indicator: mm:ss.f + ss.f (experiment - lvinfo only)
Alex
crop_rec: fine-tuned 45/48p modes; fix typo in comments
Alex
crop_rec: allow full-res LiveView to increase FPS when reducing vertical resolution (up to 5796x400 @ 48 fps; CMOS[1] must be adjusted manually)
Alex
FPS override: disable in x10 mode when half-shutter is pressed, to help with focusing (example setup: full-res LiveView, FPS override at 4 FPS for continuous recording, zoom on half-shutter)
Alex
mlv_lite: rec trigger shows either "1-frame" or "pre only", based on pre-recording settings
Alex
mlv_lite: fix pre-recording with variable frame sizes when buffer gets full (this allows operation with only 2 buffers in 1-frame trigger mode)
Alex
mlv_lite: use single-buffering at very large resolutions (where it's usually safe and any extra memory helps)
Alex
mlv_lite: undo f6b0d39 and e7e1fdb (re-enable double-buffering)
Alex
mlv_lite: re-enabled dummy lossless compression (with null pointer bug fixed)
Alex
Experiment: prevent Canon code from saving RING and RASEN settings at shutdown after a crash (5D3 only; to be made generic if all goes well)
Alex
Shutdown: load modules after opening battery door; minor cleanups
Alex
Experiment: prevent Canon code from saving RING and RASEN settings when removing the battery (5D3 only; to be made generic if all goes well)
Alex
null pointer check: ignore some false warnings
Alex
debug.c: check whether your camera was affected by a null pointer bug in 2017Apr04 build (if you have used this build, we strongly recommend you to run the test - it runs automatically at camera startup)
Alex
mlv_lite: don't reuse memory suite for lossless compression limit compressed output size at multiple of 4096 bytes (seems to help with previously unexplained crashes - alignment constraints on max size?!)
Alex
mlv_lite: disabled dummy lossless compression (suspected for mysterious stack overflows) Use a buffer from SRM instead (with use-after-free) Also do a test allocation on startup =>: write speed estimations working without having to record a test clip
Alex
mlv_lite: update compression ratio from compress_task (no more busy waiting; also updated while recording)
Alex
mlv_lite: assume compressed frames do not exceed 85% of the native size; this gives: - more buffers in full-res LiveView (6 instead of 2) - more space available for pre-recording - continuous full-res recording at 5 FPS with lossless compression!
Alex
mlv_lite: fix shutter button remaining locked after recording with Frozen LV (problem from exmem backend; not sure how to do a proper fix)
Alex
crop_rec: silence ENGIO debug messages
Alex
crop_rec: fine-tuned 1080p48
Alex
crop_rec: lock buttons while refreshing LiveView (should help with fast button presses)
Alex
mlv_lite: fix a race condition when checking raw settings in background
Alex
mlv_lite: slow down color preview to let lower-priority tasks run (such as histogram)
Alex
mlv_lite: experimental use-after-free for SRM memory (should fix half-shutter quirks and should no longer display BUSY message)
Alex
mlv_lite: option to check whether it's safe to use single-buffering (Advanced -> Show EDMAC)
Alex
mlv_lite: experiment - disable double buffering (EDMAC read pointer appears to be well in advance of edmac_raw_slurp's write pointer, so double-buffering may not be necessary)
Alex
mlv_lite: fix possibly incorrect behavior when resizing frame slots (might happen when recording clips at different resolutions)
Alex
mlv_lite: use dummy lossless operation when estimating compression ratio
Alex
lossless.c: allow dummy operation (to get compression ratio without saving the output)
Alex
FPS override: display rolling shutter in the main menu when available (either when raw recording is enabled or while recording H.264) (useful for diagnosing the new crop modes)
Alex
FPS override: also display rolling shutter as percentage of frame duration
Alex
mlv_lite: do not print debug info when freezing LiveView (seems to help with corrupted frames in modes with resolution pushed to limit, e.g. 1080p48)
Alex
crop_rec: reduced UHD resolutions a bit (corrupted frames)
Alex
mlv_lite: nicer error message when corrupted frames are detected
Alex
mlv_lite: prevent recording starting before fully initialized
Alex
mlv_lite: measure compression ratio during standby (every 2 seconds)
Alex
mlv_lite: let the compress_task always run (we'll need it during standby)
Alex
crop_rec: fix black screen in 1080p48 at 1/48 shutter speed (regression after shutter speed fix)
Alex
Include strstr in ML core
Alex
silent: forgot a fix in ab36b84
Alex
mlv_lite: fix squeeze info in menu for 50/60p modes
Alex
mlv_play, silent, pic_view: updated after API change (todo: mlv_rec)
Alex
mlv_lite: fix aspect ratio of raw previews in 50/60p modes
Alex
Raw backend: allow displaying raw buffers with arbitrary aspect ratios (raw_force_aspect_ratio_1to1 -> raw_force_aspect_ratio)
Alex
crop_rec: forgot debug info
Alex
mlv_lite: use squeeze factor from raw_capture_info (which is updated by crop_rec)
Alex
mlv_lite: display actual aspect ratio in menu, if different from selection
Alex
mlv_lite: fine-tuned menu for Frozen LV mode (previously known as Hacked Preview)
Alex
mlv_lite: reworked preview options with (hopefully) a lot more reasonable defaults - color preview with correct framing whenever plain LiveView is not accurate (crop/zoom modes etc) - only use grayscale preview when recording speed is critical - renamed the preview options - half-shutter to override the automatic preview choice
Alex
mlv_lite: fix valid_slot_count
Alex
crop_rec: in modes with lower FPS, map the usual shutter speed range of 1/4000...1/30 (or 1/60) to 1/15000...1/fps
Alex
crop_rec: fix shutter speeds in high-resolution modes
Alex
Silent pictures: in-place lossless compression (in the same buffer) (simplifies memory management a lot)
Alex
Silent pictures: adapted buffer preparing routine from mlv_lite (less convoluted; fixes pointer alingment)
Alex
Merged crop_rec (compressed_raw) into crop_rec_4k
Alex
crop_rec: reduce full-res frame rate to 7.4 FPS (helps with corrupted frames)
Alex
Merged compressed_raw into crop_rec
Alex
Merged raw_video_10bit_12bit into crop_rec (p2)
Alex
Merged raw_video_10bit_12bit into crop_rec (p1)
Alex
crop_rec: menu cleanup
Alex
crop_rec: fix zoom with new presets
Alex
crop_rec: 1920x960 50p, 1920x800 60p, 1920x1080 45/48p; fixes here and there
Alex
crop_rec: refactored new presets for easier fine-tuning
Alex
crop_rec: experimental 4K and UHD modes also refactored modes with higher vertical resolution
Alex
crop_rec: full-resolution LiveView!!
Alex
mlv_lite: presets with higher resolutions
Alex
silent: awareness of raw backend's use after free
Alex
mlv_lite: awareness of raw backend's use after free
Alex
Raw backend: experimental allocation for a full-size raw buffer - it exploits use after free with a SRM buffer (very hackish) - this buffer is probably not going to be touched by Canon code while in LiveView - keeping it allocated would prevent the raw recorders from using the SRM memory and would also show BUSY on the screen
Alex
Raw backend: allow displaying raw previews without conflicting with LiveView info bars; updated mlv_lite to use this capability
Alex
raw_lv_request_bpp: update frame_size
Alex
crop_rec: experimental 1:1 modes with higher resolution 1920x2048 24p; 1920x1800 25p; 1920x1580 30p; 1920x820 50p; 1920x780 60p (Canon preview cropped) 3072x2048 24p; 3072x1800 25p; 3072x1580 30p; 3072x820 50p; 3072x780 60p (Canon preview broken)
Alex
Temporarily undo c42732aaf809 (centered zoom)
Alex
Merged allocate-raw-lv-buffer into crop_rec
Alex
mlv_lite: better fix for invalid block size metadata (see commit 9d5a239) (introduced a new state for frame slots - capturing in progress)
Alex
Dummy merge of raw_video_10bit_12bit into compressed_raw
Alex
Merged patchmgr into crop_rec
Alex
Merged unified into raw_video_10bit_12bit
Alex
Merged rec-trigger into raw_video_10bit_12bit
Alex
Merged unified into crop_rec
Alex
Merged raw_fixes into crop_rec
Alex
Merged rec-trigger into crop_rec
Alex
mlv_dump: show the meaning of sensor crop factor
Alex
mlv_rec, mlv_lite: fix minor crop factor display issue (division by 0 in photo mode)
Alex
lossless.c: disable debug messages
Alex
mlv_lite: fix false assertion when resizing frames
Alex
mlv_lite: fix overflow at low resolutions (too many frame slots)
Alex
Merged unified into compressed_raw
Alex
mlv_lite: fix invalid block size metadata (some blocks incorrectly had the uncompressed block size in metadata) (writing to card started too early, before knowing the compressed size)
Alex
mlv_lite: workaround for a very mysterious lock-up
Alex
mlv_lite: count the number of reserved and regular (valid) slots (fixes pre-buffering allocation, among others)
Alex
mlv_lite: compute average compression rate (used in menu and for recording time estimations)
Alex
Merged rec-trigger into compressed_raw
Alex
mlv_dump: workaround to decode compressed MLV files (processing unsupported; todo - fix and port mlv_rec_lj92 branch)
Alex
chdk-dng: fixes for mlv_dump
Alex
mlv_lite: properly tag MLV files as lossless JPEG
Alex
mlv_lite: more detailed buffer status display (including buffer sizes)
Alex
mlv_lite: resize frame slots on the fly, after compression (todo: fix indicators, stats etc)
Alex
mlv_lite: moved VIDF initialization to init_mlv_chunk_headers
Alex
mlv_lite: prepare to support variable frame size (refactored to avoid hardcoding frame_size everywhere)
Alex
mlv_lite: move all EDMAC activity to compress_task (compression requires separate task, so use it for uncompressed cropping as well, to simplify code) (to be tested for corrupted frames)
Alex
Merged raw_video_10bit_12bit into compressed_raw
Alex
mlv_lite: lossless compression works! (proof of concept) To decode: mlv_dump --no-stripes --no-fixcp TODO: fix MLV metadata, reduce frame sizes, integrate with 10/12-bit recording
Alex
lossless.c: allow compressing a cropped area of the source image (similar to edmac_copy_rectangle)
Alex
lossless.c: no need for vsync-friendly API (it doesn't even work from vsync)
Alex
Lossless compression: support for 5D3 1.2.3
Alex
Merged unified into compressed_raw
Alex
lossless.c: nicer handling of debug messages
Alex
mlv_lite: in "pre only" trigger mode, use all available RAM for pre-recording
Alex
mlv_lite: fix max pre-recording frame count in low memory conditions
Alex
mlv_lite: fix roundoff error in pre-recorded buffer size and indicators
Alex
mlv_lite: display fractions of seconds when the pre-recording buffer becomes full; change rounding seconds to show fully completed seconds
Alex
mlv_lite: fix 1-frame trigger (was actually recording 2 frames); Renamed this option to "pre only" (as the saved frame(s) are always pre-recorded) and updated help
Alex
Merged rec-trigger into crop_rec
Alex
mlv_lite: fix some issues related to changing resolution (crash on submenu open while recording; message about max resolution not displayed)
Alex
mlv_rec, mlv_lite: save RAWC (raw_capture_info)
Alex
mlv_dump: print RAWC (raw_capture_info)
Alex
mlv.h: RAWC block (struct raw_capture_info)
Alex
crop_rec: hook to update raw_capture_info with modified pixel binning / line skipping factors
Alex
Raw backend: new CBR for modules (CBR_RAW_INFO_UPDATE)
Alex
Raw backend: new structure about image capture parameters (resolution, pixel binning modes) (also updated mlv_lite and mlv_rec) (can you suggest a better name?)
Alex
Merged raw_video_10bit_12bit into crop_rec
Alex
raw.c: fix bad merge (duplicate DEFAULT_RAW_BUFFER entries)
Alex
mlv_lite: show pre-recording buffer size in menu (requires recording a test clip first)
Alex
mlv_lite: allow pre-record duration in 1-second increments
Alex
mlv_lite: allow frame skipping during pre-recording, between half-shutter triggers This will avoid recording stopping between (half-shutter) triggers, as these skipped frames would probably be dropped anyway. The pre-recording buffer is now maxed out in the 1-frame trigger mode.
Alex
mlv_lite: dynamic buffer allocation for pre-recording (reserve at least 50% of RAM for pre-recording, or more -- as long as it can record 500+ frames with 90% of measured write speed)
Alex
mlv_lite: fix pre-recording buffer size rounding (minor)
Alex
mlv-lite: experimental half-shutter trigger (compatible with pre-recording)
Alex
mlv_lite: prepare to allow multiple triggers with pre-recording
Alex
mlv_lite: refactor with INC_MOD (minor optimization in vsync hook)
Alex
imath.h: macro for incrementing a variable modulo N
Alex
mlv_lite: attempt to fix lockup when the H.264 stream stops automatically When H.264 stops, Canon code appears to wait for all the memory resources to be freed (including ours). During this process, LiveView is frozen (visible without ML as well). If this process takes "too long", the camera locks up and requires battery out (some tasks may or may not continue to run). Allocating a smaller amount of memory (rather than all available memory) doesn't seem to help. Workaro…
Alex
mlv_lite: when using H.264 proxy, try to match MLV filenames with Canon's
Alex
Merged raw-h264-proxy into raw_video_10bit_12bit
Alex
Merged unified into raw_video_10bit_12bit
Alex
Merged raw_fixes into raw_video_10bit_12bit
Alex
mlv_lite: getting DCIM dir suffix from property doesn't seem to work (limitation of module properties); get it from ML core instead
Alex
fio-ml: added get_dcim_dir_suffix(); moved get_dcim_dir() from dryos.h
Alex
Merged unified (mlv-lite) into raw-h264-proxy
Alex
raw_rec: allow audio recording via H.264 proxy
Alex
raw_rec: prefer recording to CF whenever possible (when using H.264 proxy, select SD in Canon menu for best performance)
Alex
raw_rec: experimental H.264 proxy recording earlier attempts: http://www.magiclantern.fm/forum/index.php?topic=16608.msg177236#msg177236
Daniel Fort
conform raw_rec Bit depth menu to match mlv_rec
Alex
mlv_dump: fix dark/flat frame operation when the two clips have different spacing/padding offsets Test files: http://www.magiclantern.fm/forum/index.php?topic=16650.msg178809#msg178809
Alex
Raw backend: fix black borders on raw previews
Alex
Merged raw_video_10bit_12bit into crop_rec
Alex
mlv_rec: fix bad merge (to be tested)
Alex
1100D: enabled CONFIG_EDMAC_MEMCPY
Alex
Moved bit depth setup from raw_rec/mlv_rec to raw backend; raw overlays should now refuse to run at bit depths other than 14
Alex
raw_rec, mlv_rec: minimize roundoff error when scaling black and white levels (using --black-fix in mlv_dump should be no longer needed)
Alex
Merged raw_video_10bit_12bit into crop_rec
Alex
Merged 5D3-113-and-123 into crop_rec
Alex
mlv_dump: fix long exposure metadata in DNG
Alex
chdk-dng: drop APEX exposure metadata (redundant, conflicts with regular exposure tags)
161 commits not shown.