https://bitbucket.org/hudson/magic-lantern
Tip revision: 1374e0f81f994f499fa3d5304576ff918e808f7f authored by hudson@kremvax on 20 June 2009, 20:04:51 UTC
Enable low pass filter with same parameters as Canon
Enable low pass filter with same parameters as Canon
Tip revision: 1374e0f
vram.h
#ifndef _video_h_
#define _video_h_
#include "arm-mcr.h"
/** \file
* Interface to the 5D Mark II's video ram (VRAM).
*/
/** VRAM accessors */
extern uint32_t
vram_get_number(
uint32_t number
);
/** Write the VRAM to a BMP file named "A:/test.bmp" */
extern void
dispcheck( void );
extern const char * vram_instance_str_ptr;
/** Retrieve the vram info? */
extern void
vram_image_pos_and_size(
uint32_t * x,
uint32_t * y,
uint32_t * w,
uint32_t * h
);
/** VRAM info structure (maybe?) */
struct vram_object
{
const char * name; // "Vram Instance" 0xFFCA79E5
uint32_t off_0x04;
uint32_t off_0x08;
uint32_t off_0x0c;
uint32_t off_0x10;
struct semaphore * sem; // off 0x14;
};
extern struct vram_object *
vram_instance( void );
extern int
vram_get_lock(
struct vram_object * vram
);
struct bmp_vram_info
{
uint8_t * vram0;
uint32_t off_0x04;
uint8_t * vram2;
//uint32_t off_0x0c;
};
extern struct bmp_vram_info bmp_vram_info[];
/** VRAM info in the BSS.
*
* Pixels are in an unknown format.
* This points to the image VRAM, not the bitmap vram
*/
struct vram_info
{
uint16_t * vram; // off 0x00
uint32_t width; // maybe off 0x04
uint32_t pitch; // maybe off 0x08
uint32_t height; // off 0x0c
uint32_t vram_number; // off 0x10
};
SIZE_CHECK_STRUCT( vram_info, 0x14 );
extern struct vram_info vram_info[2];
extern void
vram_schedule_callback(
struct vram_info * vram,
int arg1,
int arg2,
int width,
int height,
void (*handler)( void * ),
void * arg
);
/** HDMI config.
* This structure is largely unknown.
*/
struct hdmi_config
{
uint32_t off_0x00;
uint32_t off_0x04;
uint32_t off_0x08;
uint32_t off_0x0c;
uint32_t off_0x10;
uint32_t off_0x14;
uint32_t off_0x18;
uint32_t off_0x1c;
uint32_t off_0x20;
uint32_t off_0x24;
uint32_t off_0x28;
uint32_t off_0x2c;
// 0 == 720x480, 1 = 704x480, 2== 704x576, 3==1920x1080
uint32_t hdmi_mode; // off_0x30;
uint32_t off_0x34;
thunk img_request_notify_blank; // off_0x38;
thunk bmp_request_notify_blank; // off_0x3c;
uint32_t off_0x40;
uint32_t off_0x44;
uint32_t off_0x48;
// 0xc0f14070 == video enabled?
uint32_t image_vbuf_playback_enabled; // off_0x4c;
uint32_t off_0x50;
uint32_t off_0x54;
uint32_t off_0x58;
uint32_t off_0x5c;
uint32_t off_0x60;
uint32_t off_0x64;
uint32_t off_0x68;
uint32_t off_0x6c;
uint32_t off_0x70;
uint32_t off_0x74;
uint32_t off_0x78;
uint32_t off_0x7c;
uint32_t off_0x80;
uint32_t off_0x84;
uint32_t off_0x88;
uint32_t off_0x8c;
uint32_t off_0x90;
uint32_t off_0x94;
uint32_t off_0x98;
uint32_t off_0x9c;
uint32_t off_0xa0;
uint32_t off_0xa4;
uint32_t off_0xa8;
uint32_t off_0xac;
uint32_t off_0xb0;
struct semaphore * sem; // off_0xb4;
struct semaphore * bmpddev_sem; // off_0xb8;
struct semaphore * imb_cbr_semaphore; // off_0xbc;
uint32_t off_0xc0;
uint32_t off_0xc4;
uint32_t off_0xc8;
uint32_t off_0xcc;
uint32_t off_0xd0;
uint32_t off_0xd4;
uint32_t off_0xd8;
uint32_t off_0xdc;
uint32_t off_0xe0;
uint32_t off_0xe4;
uint32_t off_0xe8;
uint32_t off_0xec;
uint32_t off_0xf0;
uint32_t off_0xf4;
uint32_t off_0xf8;
uint32_t off_0xfc;
uint32_t off_0x100;
uint32_t off_0x104;
uint32_t off_0x108;
uint32_t off_0x10c;
uint32_t off_0x110;
uint32_t off_0x114;
uint32_t off_0x118;
uint32_t off_0x11c;
uint32_t off_0x120;
uint32_t off_0x124;
struct bmp_vram_info * bmp_info; // off_0x128;
uint32_t off_0x12c;
uint32_t off_0x130;
uint32_t off_0x134;
uint32_t off_0x138;
uint32_t off_0x13c;
uint32_t off_0x140;
uint32_t off_0x144;
void * off_0x148;
uint32_t off_0x14c;
void * off_0x150;
uint32_t off_0x154;
uint32_t off_0x158;
uint32_t off_0x15c;
uint32_t off_0x160;
uint32_t off_0x164;
uint32_t off_0x168;
uint32_t off_0x16c;
uint32_t off_0x170;
uint32_t off_0x174;
uint32_t off_0x178;
uint32_t off_0x17c;
};
extern struct hdmi_config hdmi_config;
#endif