1
Camera-specific Development / Re: Canon 40D
« on: August 08, 2022, 11:18:21 AM »No one have documented to JPEG engine and registers so it's a black box.
Have you tried to logging MMIO traffic through JPCore?
Etiquette, expectations, entitlement...
@autoexec_bin | #magiclantern | Discord | Reddit | Server issues
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
No one have documented to JPEG engine and registers so it's a black box.
time, x_axis, y_axis, z_axis
0, 2066, 1029, 2036
20, 2065, 1031, 2038
40, 2067, 1036, 2038
60, 2067, 1029, 2042
80, 2067, 1027, 2042
.
.
.
537380, 3074, 2003, 1986
537400, 3074, 2004, 1986
537420, 3074, 2004, 1985
537440, 3074, 2004, 1984
537460, 3074, 2004, 1984
537480, 3076, 2003, 1988
uint handle_PTP_OC_0x9050
(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
undefined4 param_5)
{
uint uVar1;
uint uVar2;
uint uVar3;
uint uVar4;
uint uVar5;
uint uVar6;
uint uVar7;
undefined2 local_38 [2];
undefined4 local_34;
undefined4 uStack48;
undefined4 local_2c;
uVar7 = 0;
j_bzero(local_38,0x24);
uStack48 = param_5;
local_2c = 0;
DAT_0000ef68 += 1;
local_34 = param_4;
if (DAT_0000ef68 == 3) {
uVar1 = add_ptp_handler(&DAT_00009052,handle_PTP_OC_0x9052 + 1,0);
uVar2 = add_ptp_handler(&DAT_00009053,handle_PTP_OC_0x9053 + 1,0);
uVar3 = add_ptp_handler(&DAT_00009057,handle_PTP_OC_0x9057 + 1,0);
uVar4 = add_ptp_handler(&DAT_00009058,handle_PTP_OC_0x9058 + 1,0);
uVar5 = add_ptp_handler(&DAT_00009059,handle_PTP_OC_0x9059 + 1,0);
uVar6 = add_ptp_handler(&DAT_0000905a,handle_PTP_OC_0x905a + 1,0);
uVar7 = add_ptp_handler(&DAT_0000905b,handle_PTP_OC_0x905b + 1,0);
uVar7 |= uVar6 | uVar5 | uVar4 | uVar3 | uVar2 | uVar1;
DAT_0000ef64 = 1;
}
if ((uVar7 & 1) == 0) {
local_38[0] = 0x2001;
(*(code *)param_2[3])(*param_2,local_38);
}
else {
local_38[0] = 0x201f;
(*(code *)param_2[3])(*param_2,local_38);
uVar7 = 1;
}
return uVar7;
}
python3 ./print_device_info.py
Container:
StandardVersion = 100
VendorExtensionID = Microsoft
VendorExtensionVersion = 100
VendorExtensionDesc =
FunctionalMode = 0
OperationsSupported = ['GetDevicePropDesc', 'GetDevicePropValue', 'SetDevicePropValue', 'ResetDevicePropValue', 'GetDeviceInfo', 'OpenSession', 'CloseSession', 'CheckEvent', 36956, 36957, 'ChangeUSBProtocol', 'GetStorageIDs', 'GetStorageInfo', 'GetNumObjects', 'GetObjectHandles', 'GetObjectInfo', 'GetObject', 'GetThumb', 'GetPartialObject', 'SendObjectInfo', 'SendObject', 'DeleteObject', 'FormatStore', 'SetObjectProtection', 'GetObjectSize', 'GetObjectInfoEx', 'GetPartialObjectEx', 'GetObjectAttributes', 'SendPartialObject', 'GetObjectHandleByName', 'SetObjectTime', 'SetObjectArchive', 36940, 'SendObjectInfoByPath', 'SendObjectByPath', 36920, 36921, 36922, 36923, 36939, 36960, 36962, 38913, 38914, 38915, 38916, 38917, 'EOSGetEvent', 'EOSGetStorageIDs', 'EOSGetStorageInfo', 'EOSGetObjectInfo', 'EOSDeleteObject', 'EOSFormatStore', 'EOSGetPartialObject', 'EOSGetObjectInfoEx', 'EOSGetThumbEx', 'EOSSetObjectAttributes', 'EOSTransferComplete', 'EOSCancelTransfer', 37164, 37170, 37173, 37184, 37185, 37187, 'EOSPCHDDCapacity', 37183, 'EOSSetEventMode', 'EOSSetUILock', 'EOSResetUILock', 'EOSKeepDeviceOn', 37181, 37174, 37175, 'EOSSetRemoteMode', 'EOSGetViewFinderImage', 'EOSRemoteReleaseOn', 'EOSRemoteReleaseOff', 'EOSZoom', 'EOSZoomPosition', 'EOSDoAf', 'EOSAfCancel', 'EOSDriveLens', 37211, 36911, 'EOSSetDevicePropValueEx', 'EOSRequestDevicePropValue', 37250, 37251, 37252, 37253, 36944, 36945]
EventsSupported = ['CancelTransaction', 'ObjectAdded', 'ObjectRemoved', 'StoreAdded', 'StoreRemoved', 'DevicePropChanged', 'ObjectInfoChanged', 'DeviceInfoChanged', 'RequestObjectTransfer', 'StoreFull', 'DeviceReset', 'StorageInfoChanged', 'UnreportedStatus', 49153, 49157, 49162, 49409]
DevicePropertiesSupported = [53317, 53322, 53294, 53295, 'BatteryLevel', 53250, 'ViewfinderMode', 'UnixTime', 53319, 53318, 53296, 53321, 'CameraModel', 'CameraOwner', 'FlashMemory', 53328, 53329, 53330, 53331, 53332, 53335, 54274, 54278, 54279, 54019]
CaptureFormats = ['EXIF_JPEG']
ImageFormats = ['Association', 'Script', 'DPOF', 'WAV', 'EXIF_JPEG', 'UndefinedImage', 'CRW3', 47490, 45317, 48897]
Manufacturer = Canon Inc.
Model = Canon EOS M3
DeviceVersion = 3-14.0.1.0
SerialNumber = *
Good and bad at the same time.It's not a big problem. Look at CHDK: they support 160 cameras and 320+ firmwares.
Bad - considering XimrContext struct changed multiple times in Digic6 gen and then for each next generation. It will require work for multiple models.
Good - I noticed this week that GUI code on R swaps buffer addresses inside VRAM struct used for 1st layer (GUI) somewhere on early boot. If I grab GUI VRAM struct fast enough, I get pBitmap address of overlays buffer instead of GUI. Thus hardcoded addresses would fail quickly.
Static source and destination addresses or you somehow parsed XimrContext?The second one. ATM I use only one RGBA buffer. It's should be enough for playback mode
Good to see a progress on that.It is bad that A1ex and other 'guru' developers show little activity now. There are less than 20 commits for two years.
FIO_SeekSkipFile: should be testable in QEMU, with a large SD image and the test code from selftest.mo. That test will create a large file (2GB) and seek within that file.
There are two versions in Canon firmware: one that accepts 32 bits for the position and another one that accepts 64 bits. They are not interchangeable at binary level.
This delay can apparently cause some electronic parts of the lens to take physical damage, perhaps due to an ongoing electrical impulse
(so the guy at the repair center told me)
I am excited to take a look into MJPEG codeYou can look into my current version
On newer models (DIGIC 5, IIRC also 60D and newer DIGIC 4), this function no longer runs automagically while in LiveView, so this approach is only valid for older models.
Your best bet would be to find someone who backed up the BitBucket Hg repos and grab a copy of my code from what used to be https://bitbucket.org/chris_miller, and see how you go from there.