raw_video_10bit_12bit_LVState

View source
raw_video_10bit_12bit_LVState
  • Contributors
    1. Loading...
Author Commit Message Date Builds
76 commits behind unified.
Alex
50D: experimental CONFIG_EDMAC_RAW_PATCH support from aprofiti https://www.magiclantern.fm/forum/index.php?topic=5601.msg206383#msg206383
Alex
mlv_rec: fix compilation
Alex
Raw backend: experimental method for overriding raw stream parameters in Canon firmware (CONFIG_EDMAC_RAW_PATCH) Stubs for 5D2. Clean footage in 1080p30 10-bit!
Alex
Merged patchmgr into raw_video_10bit_12bit_LVState
Alex
Raw backend: use generic resolution autodetection for LVState models (experimental)
Alex
mlv.c: fix buffer overflow in mlv_build_vers
Alex
Merged allocate-raw-lv-buffer into raw_video_10bit_12bit
Daniel Fort
6D DEFAULT_RAW_BUFFER_SIZE https://www.magiclantern.fm/forum/index.php?topic=5601.msg196632#msg196632
Daniel Fort
650D DEFAULT_RAW_BUFFER_SIZE is the same as on the 700D https://www.magiclantern.fm/forum/index.php?topic=5601.msg196632#msg196632
Alex
arm-mcr.h: minor cleanups, non-functional: - moved _sync_caches in the old place - commented out setup_memory_region et al
Alex
Patch manager: provide a default sync_caches for targets that don't include it (minimal, installer, reboot)
Alex
Patch manager: moved sync_caches in patch.c and removed the "weak" trickery (fixes patch restoring when called from modules)
Alex
Patch manager: reworked mechanism for re-applying cache patches when needed * arm-mcr.h: clean_d_cache and flush_i_cache are now private (sync_caches is the high-level function to be used) * replaced all calls to clean_d_cache/flush_i_cache with sync_caches * should fix issues with randomly "disappearing" cache patches * to be tested for performance issues etc
Alex
Modules: patch.h no longer needed
Alex
Raw backend: DEFAULT_RAW_BUFFER_SIZE for 700D and EOSM (thanks dfort)
Alex
mem.c: fix compiling for 5D3.123 (display buffer address depends on HDMI options)
Alex
selftest: EOSM takes the crown for the lowest amount of shoot_memory available (fragmented allocation can no longer be tested with hardcoded value)
Alex
Raw backend: 60D appears to allocate 28MB for the raw buffer
Alex
Raw backend: updated 5D3 hypothesis about Canon LV RAW buffer (todo: re-check 1.2.3)
Alex
Raw backend: attempt to autodetect Canon's raw buffer size Usage: - compile with CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP (config-defines.h) - open the console (Debug menu) and enable something that uses LiveView RAW features (raw video, raw histogram etc) - test by starting the camera in all video modes (photo, 1080p, 720p, crop, x5 etc) - take a screenshot or write down the console messages
Alex
Raw backend: fix compilation on very old models (without CONFIG_EDMAC_RAW_SLURP)
Alex
1100D: CONFIG_ALLOCATE_RAW_LV_BUFFER may not be needed, after all http://www.magiclantern.fm/forum/index.php?topic=1009.1450
Alex
Free Memory dialog: updated common addresses to allow dynamically allocated buffers (not just hardcoded ones); also show current RAW and BMP buffer(s), not just the YUV ones
Alex
Raw backend: 1100D also needs DEFAULT_RAW_BUFFER / DEFAULT_RAW_BUFFER_SIZE
Alex
Merged allocate-raw-lv-buffer into raw_video_10bit_12bit (1100D raw video, updated memory management)
Alex
60D: use channel #1 for edmac_memcpy (channel #6 appears used; figure out why it seems to work)
Alex
Raw backend: 1100D needs CONFIG_ALLOCATE_RAW_LV_BUFFER after refactoring
Alex
Raw backend: use dummy DEFAULT_RAW_BUFFER_SIZE until the real size is found without this, most builds would be broken fixme: old models without CONFIG_EDMAC_RAW_SLURP are still broken
Alex
Raw backend: sync memory allocation routines with crop_rec_4k (squashed 8287b4f, 0ff9f1f, 3948408, d55423f, ebf206a, 3bc3637, cad72ea and 2bc5c3a, keeping only changes to raw.c)
Alex
mlv_lite, mlv_rec: dialog_refresh_timer_addr for 1100D (to be tested)
Alex
Merged unified into allocate-raw-lv-buffer
Alex
selftest: reduced memory requirements to allow 1100D to pass the memory tests
Alex
1100D: raw skip offsets for LiveView
Alex
Patch manager: nicer way to avoid calling _reapply_cache_patches when not present (fixes compiling the installer target and removes the need for defining NO_CACHE_PATCHES)
Alex
Merged unified into patchmgr
Alex
Merged unified into raw_video_10bit_12bit
Alex
Patch manager: moved reapply_cache_patches into sync_caches also made it private
Alex
Merged unified into patchmgr
Alex
reloc: allow up to 16 fixups; fix stop condition
Alex
reloc: handle PC-relative add (ADR) (also updated sign handling in LDR, for consistency)
Alex
patchmgr: fix bad merge in reloc.c (52b733594b2e)
Alex
Merged unified into raw_video_10bit_12bit
Alex
Patch manager: ensure valid menu name for all entries
Alex
patch.c: fix warning
Alex
Merged unified into patchmgr
Georg Hofstetter
mlv_rec: reduce chunk count to keep room for other files to create (and circumvent mlv_play failing playback)
Georg Hofstetter
mlv_rec: insert alignment NULL block before writers start to write aligned sizes
Georg Hofstetter
mlv_rec: ensure 32 bit alignment for VERS block sizes. just because.
Alex
Merged unified into raw_video_10bit_12bit
Alex
Merged cache-fixes into raw_video_10bit_12bit
Alex
Merged unified into raw_video_10bit_12bit
Alex
raw_lv_request_bpp: update frame_size (in MLV metadata: raw_info.frame_size at lower bit depths)
Alex
Patch manager: with CONFIG_QEMU, simply patch as if writing to RAM (and ignore cache issues)
Alex
Patch manager: use const char * for patch_hook_function's description
Alex
Merged unified into patchmgr
Alex
Merged unified into patchmgr
Alex
Merged unified into raw_video_10bit_12bit
Alex
Merged rec-trigger into raw_video_10bit_12bit
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
mlv_lite: fix some issues related to changing resolution (crash on submenu open while recording; message about max resolution not displayed)
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
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
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
mlv_dump: fix long exposure metadata in DNG
Alex
chdk-dng: drop APEX exposure metadata (redundant, conflicts with regular exposure tags)
Alex
mlv_dump: fix black level bias when converting from lower bit depths (on 5D3, please use --black-fix=2048 at all bit depths from now on) http://www.magiclantern.fm/forum/index.php?topic=5601.msg177802#msg177802
Georg Hofstetter
mlv_dump: changed default white level (if no parameter given) for --white-fix to 15k as recommended by a1ex
Georg Hofstetter
mlv_dump: added option to set white level manually, correct white level setting when black level was set
Georg Hofstetter
mlv_dump: modify black level code to properly scale or set black level as expected
Alex
Merged raw_fixes into raw_video_10bit_12bit
Alex
Raw backend: small fixes related to ALLOCATE_RAW_LV_BUFFER - thread safety - alocate uncacheable large buffer - compiler error on missing DEFAULT_RAW_BUFFER or RAW_LV_BUFFER_ALLOC_SIZE
Alex
Merged raw_fixes into allocate-raw-lv-buffer
Alex
Merged unified into allocate-raw-lv-buffer
Alex
Merged raw_fixes into raw_video_10bit_12bit
Alex
Merged raw_fixes into raw_video_10bit_12bit
Georg Hofstetter
mlv_dump: put DNG 14bpp enforcement at the right position
Georg Hofstetter
mlv_dump: enforce 14bpp correction for DNG output mode. code seems still buggy for 12bpp.
Georg Hofstetter
mlv_dump: preallocate buffers on RAWI
Georg Hofstetter
mlv_dump: remove pointer arithmetics for xref table reading
Georg Hofstetter
mlv_dump: added patches from 5f7a9d850d71 and a22302855d05 regarding black level correction for other bit depths
Daniel Fort
mlv_dump: fix to extract only the first frame (numbered 0)
Georg Hofstetter
mlv_rec: fixed chroma smooth regression in mlv_dump caused by API change in 5167619. thanks dfort/danne/bouncyball.
Georg Hofstetter
mlv_dump: removed ancient bugfix options. if there are buggy files, they can get recovered using older versions.
eNnvi
Added 6D support and changed default 700D PREFERRED_RAW_TYPE
Georg Hofstetter
mlv_rec: fix startup delay
Georg Hofstetter
mlv_rec: synchronize parts of code with raw_rec, more needed. use double buffering again. fix alternating frame errors.
Alex
Merged in daniel_fort/magic-lantern/raw_video_10bit_12bit_700D_slurp (pull request #781) 650D and 700D: enable CONFIG_EDMAC_RAW_SLURP
Daniel Fort
650D: enable CONFIG_EDMAC_RAW_SLURP
Daniel Fort
700D: enable CONFIG_EDMAC_RAW_SLURP
Georg Hofstetter
mlv_play: added direct raw_twk support along with zoom support (5D3 tested)
Georg Hofstetter
raw_twk: added experimental module that uses engines (PACK16, DEF, DSUNPACK) to accelerate raw->YUV conversion
Alex
Merged in daniel_fort/magic-lantern/raw_video_10bit_12bit_debug (pull request #780) Increase RAW_DEBUG_TYPE limit
Daniel Fort
use hex units for PREFERRED_RAW_TYPE debugging
Daniel Fort
finding usable RAW_DEBUG_TYPE above the 64 limit
Alex
Merge new_raw_format
Alex
raw_rec: fix some resolution inconsistencies
Alex
raw_rec: minor resolution fine-tuning fix
Georg Hofstetter
mlv_play: restore bpp and black level in raw_info on exit
Alex
raw_rec: remove unused odd bit depths from menu
Alex
engio_write wrapper
Georg Hofstetter
mlv_rec/mlv_play: add variable bit depth support. mlv_play requires experimental raw_twk if you want to playback other than 14bpp
Alex
raw_rec: allow max width to be multiple of 2 bytes and 8 pixels; all others are multiple of 16px
Alex
raw_rec: fix odd resolutions bug (make sure width is multiple of 8 pixels)
Alex
60D: use PREFERRED_RAW_TYPE (fixes digital ISO behavior and bad pixels in preview)
Alex
Raw backend: fix image freeze on 60D, maybe others (typo in 193dc59)
Alex
Raw backend: RAW_TYPE_ADDRESS no longer needed
Alex
raw_rec: allow 16-pixel increments for X resolution (experiment)
Alex
edmac_memcpy: looks like we can use widths that are not modulo 8 bytes
Alex
edmac-memcpy.c: refactored to avoid static struct edmac_info
Alex
raw_set_geometry: allow bit depths other than 14
Alex
Merge new_raw_format
David Milligan
EOSM: enable CONFIG_EDMAC_RAW_SLURP
David Milligan
raw bit depth: skip some frames after setting a new bit depth
Alex
Patch manager: fix lockup on VxWorks models, thanks Ant123
David Milligan
raw bit depth: override bit depth related raw_info fields when changing bit depth
Alex
mlv_dump: fix DNG output for lower bit depths You need to disable all processing, e.g. mlv_dump M00-1234.MLV --dng --no-fixcp --no-stripes
Alex
Raw backend: fix image corruption when using other bit depths, on cameras using CONFIG_EDMAC_RAW_SLURP Other models will either have to enable this method, or patch Canon code to adjust image size.
David Milligan
10bit and 12bit raw video implementation for MLV Lite (confirmed working on 60D)
Alex
Patch manager: PATCH_HOOK_OUT_REGS is not needed
Alex
Patch manager: save/restore CPSR flags for logging hooks
Alex
Patch manager: minor refactoring to remove some hardcoded offsets from logging hooks code
Alex
Patch manager: refactored logging hooks code (nonfunctional, less verbose)
Alex
Patch manager: better check for jump ranges
Alex
Patch manager: use long jump for the logging function (so it can be used from modules on cameras that load them on RscMgr)
Alex
Patch manager: check jump ranges before installing logging hooks
Alex
Patch manager: minor fix (braces in macro)
Alex
merged unified into patchmgr
Alex
reloc.c: fix bad merge
Alex
Patch manager: fix compilation on cameras that use reloc.c
Alex
patch.h: added PATCH_HOOK_OUT_REGS (for overriding registers in the original function)
Alex
Patch manager: check for too many patches
Alex
Patch manager: fix crash with unpatch_memory_matrix (easy to reproduce with ettr + dual iso)
Alex
Patch manager: re-applied 654b09f (got lost during refactoring)
Alex
Merged unified into patchmgr
Alex
raw_rec/mlv_rec: updated with patch_instruction
Alex
Patch manager: everything back to patch.c
Alex
Patch manager: added matrix patches into patch-simple.c (so now it's quite far from simple, but this gives a clean diff)
Alex
Patch manager: renames to prepare merging both patch types in a single file
Alex
Patch manager: fix error display in menu, when ROM patches are active
Alex
Patch manager: print all errors to console when in debug mode
Alex
Patch manager: human-readable errors
Alex
Patch manager: fine-tuned error codes
Alex
Merged unified into patchmgr
Alex
Patch manager: fix relocation of LDR Rn, [PC, #negative_offset]
Alex
Patch manager: allow up to 32 logging hooks
Alex
reloc.c: fix compilation
Alex
Patch manager: updated comments
Alex
Patch manager: handle PC-relative LDRs in logging hooks (adapted from reloc.c)
Alex
Patch manager: experimental logging hooks (similar to GDB hooks, but lighter), credits Maqs
Alex
Patch manager: when removing a cache patch, unlock the cache and re-apply the remaining ones from scratch (slower, but should no longer give collisions for old patches that are no longer applied)
Alex
Patch manager: fixed some 5D2 cache sync quirks, and refactored
Alex
Patch manager: minor cleanups
Alex
Patch manager: minor menu tweak
Alex
modules.c/reloc.c: after syncing caches, also reapply cache patches, if any
Alex
Merged unified into patchmgr
Alex
Patch manager: warning fix
Alex
Patch manager: disable cache lockdown after some delay (fixes flood of cache enabling/disabling when used with one ROM watchpoint)
Alex
Patch manager: also check for errors when re-applying cache patches
Alex
Patch manager: check if cache patching actually worked
Alex
cache_hacks: workaround for bad index size detection (fixme)
Alex
Patch manager: check for cache collisions
Alex
Patch manager: separate the code for matrix patching vs single memory patching (some duplicate code, but easier to read) - WIP
Alex
GDB hooks: no more lock-up with ADTG GUI!
Alex
Patch manager: experimental support for patching instructions (including RAM ones) and re-applying the ROM (cache) patches
Alex
cache_hacks, cache_is_patchable: added option to get current cached value
Alex
Patch manager: re-applied b3d6c7a2df41 and 2f8f31bf6421 (let's give it another chance)
Alex
Patch manager: undo b3d6c7a2df41 and 2f8f31bf6421 (too slow for adtg_gui)
Alex
Fix bad merge
Alex
Merged unified into patchmgr
Giovanni Nanomad Condello
Fix 1100D RAW_LV_BUFFER_ALLOC_SIZE
Giovanni Nanomad Condello
Update CONFIG_EDMAC_RAW_SLURP documentation with porting tips
Giovanni Nanomad Condello
EXPERIMENTAL: 1100D raw LV support using CONFIG_EDMAC_RAW_SLURP and ML-allocated buffer
Giovanni Nanomad Condello
Fix typo in macro names
Giovanni Nanomad Condello
raw.c : Allow the backend to allocate a buffer for RAW lv if CONFIG_EDMAC_RAW_SLURP and CONFIG_BROKEN_RAW_LV_BUFFER are defined Also try to detect possible misconfigurations at compile-time