Menu

Show posts

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.

Show posts Menu

Messages - coutts

#101
Great youtube video that explains some basic ideas that can be applied for all videographers:

#102
Reverse Engineering / Re: RE contributions
March 04, 2013, 03:53:47 PM
Thank you for this Indy, great  8)
#103
Feature Requests / Re: 6D Wifi Video
February 26, 2013, 02:39:44 AM
Quote from: 1% on February 26, 2013, 01:34:18 AM
Encoder is off when wifi is on. I think wifi takes the encoder's dma channel away. I "started" video several times while in wifi and all it did was clear everything from the screen. What will be good to investigate here is what the preview frames become when sent to the app. Ideally they are jpeg and we can record them into a movie.

My wifi with the phone freezes so I plan on trying this with a computer and eos utility and scanning camera ram and packets for jpeg data. Best case scenario would be writing video over wifi (maybe slightly better bandwith?) or turning on wifi and writing jpegs to card as mjpeg. Tethering was the only way jpeg worked on 600D so I'm guessing on 6D its related too.

good idea, i forgot about the phone app! It looks pretty low quality from what i can remember but it might be better on a computer (could be the app making it look bad)
#104
General Chat / Re: Canon 5d Mk2 , 6D 0r 7D.
February 25, 2013, 07:20:00 AM
Quote from: Malcolm Debono on January 21, 2013, 02:52:11 PM
Who wants boring video cameras when you can get cinematic-looking video at an affordable price?  ;)

proof (shot with eos m):


http://www.youtube.com/watch?v=lZPQF64vWwo
#105
Tragic Lantern / Re: Tragic Lantern for 6D
February 24, 2013, 09:34:36 PM
Quote from: 1% on February 24, 2013, 07:04:30 PM
There might be code for patterns somewhere just its not easy to find as the UI parts are gone. Same as the afma problem for 60D/600D. Trying 5d3 props may work like it worked for 50D AFMA. I use them a lot too, those end points like to catch and screw up what you're really focusing on.

Posted a new build so you can enjoy focus ring zoom and afma while I work out the silent pic stuff. Feels like I'm trying to fit a square peg in a round hole

I used the 5d2 cfn.c code with the 5d3 property number, it kind of works. I calibrated 3 of my lenses last night, but when I tried to do my fourth one but now it won't actually confirm focus at all (don't beep), and reports 0. The menu setting for microadjust just reports "(err)".
#106
Quote from: Giusal on February 22, 2013, 06:20:27 PM
Just a question for RAWs.... how can you apply picture styles like cinestyle on lightroom/camera raw?

There's a few selections in Lightroom but not custom ones. From my experience, using 'Faithful' yields the most accurate colors while keeping everything flat, so I can get the most out of post processing.

#107
Scripting Q&A / Re: Motion "control" with picoc
February 14, 2013, 02:19:46 AM
this is great! very neat
#108
Great news! I think enough people complained that they paid $800+ for a camera that can hardly focus (lately I just manual focus.. it's far more reliable than the autofocus).

Couldn't tell you how many times I'd go to take a photo of a group of people, and stand there for a good 15-20 seconds waiting for the focus to stop hunting (in decently lit situations too).
#109
General Development / Re: PtpCam compile error
February 12, 2013, 03:55:58 PM
Quote from: Pelican on February 11, 2013, 10:37:50 PM
Is there anybody who can compile ptpcam uder windows (cygwin)?
I can fix the missing headers, but not the rest.

$ make
gcc-3 -o ptpcam myusb.c properties.c ptp.c ptpcam.c -mno-cygwin -I"/cygdrive/d/u
til/cygwin/home/Pel/7dml/contrib/ptpcam/libusb-win32-bin-1.2.2.0/include" "/cygd
rive/d/util/cygwin/home/Pel/7dml/contrib/ptpcam/libusb-win32-bin-1.2.2.0/lib/gcc
/libusb.a" -lws2_32 -lkernel32
ptpcam.c:2449:24: sys/socket.h: No such file or directory
ptpcam.c:2450:24: netinet/in.h: No such file or directory
ptpcam.c:2451:23: arpa/inet.h: No such file or directory
ptpcam.c:2452:19: netdb.h: No such file or directory
ptpcam.c:2454:1: warning: "INVALID_SOCKET" redefined
In file included from libptp-endian.h:8,
                 from ptp.h:27,
                 from ptpcam.c:21:
/usr/i686-pc-mingw32/sys-root/mingw/include/winsock2.h:296:1: warning: this is t
he location of the previous definition
ptpcam.c: In function `gdb_loop':
ptpcam.c:2511: error: `MSG_DONTWAIT' undeclared (first use in this function)
ptpcam.c:2511: error: (Each undeclared identifier is reported only once
ptpcam.c:2511: error: for each function it appears in.)
ptpcam.c:2524: error: `EWOULDBLOCK' undeclared (first use in this function)
ptpcam.c: In function `gdb_listen':
ptpcam.c:2561: error: `gdb_wsadata' undeclared (first use in this function)
ptpcam.c: In function `chdk':
ptpcam.c:2992: warning: assignment from incompatible pointer type
ptpcam.c:3017: warning: assignment from incompatible pointer type
ptpcam.c:3027: warning: passing arg 1 of `ptp_chdk_get_memory' makes integer fro
m pointer without a cast
ptpcam.c:3027: warning: assignment from incompatible pointer type
ptpcam.c:3045: warning: assignment from incompatible pointer type
ptpcam.c:3066: warning: initialization from incompatible pointer type
Makefile:12: recipe for target `ptpcam' failed
make: *** [ptpcam] Error 1

cygwin should include socket.h, maybe it's a path issue?
#110
note: fixing shoot_malloc() in the 6d (it worked in previous commits but lately I notice it doesn't) should fix the "read test skipped" message.
#111
on EOSM, i was able to unlock the UI by disabling ptpUILock (search for strings in ROM). This allowed me to use the camera while connected via usb (for debugging with ptpcam for example).


From ptp-chdk.c, I call this upon connecting to disable the busy message:
QuoteptpPropSetUILock(0, 2);

ptpPropSetUILock is located at 0xFF2A3378 in EOSM v1.0.6 firmware.
#112
General Chat / Re: Possible Propcall fix
February 08, 2013, 12:00:16 AM
wat
#113
Quote from: craigp on February 06, 2013, 06:14:29 PM
My #1 request is that the team take a look at the AF speed. If there's any help I can provide to facilitate (money, beer, UI design, etc...), please just let me know.

Unfortunately this isn't a very feasible request; it's not as simple as enabling movie mode on the 50d, or enabling some hidden "switch", someone would need to write a whole new focusing algorithm and learn how canon's current one works. For this, I don't even have a clue where to start. So, short answer: don't expect this to happen (probably ever, or for a long long time).




Some bad news today: it looks like display filters, and anything that requires syncing from state objects won't work on the EOSM. This means anamorphic, and defishing, and the (more efficient) new method to sync magic zoom. Even if I adopted the 5d2 method for display filters, we still can't sync them properly so it's not really worth figuring out right now.


Unfortunate.. I had higher hopes for this camera.
#114
I've began working on this again, I fixed the canon / ml overlays interference problem so now ML won't draw on top of canon (thanks Alex for the help).

Next I want to tackle focus info display / focus features.
#116
I think I'm probably going to need to find a new toolchain, but maybe someone has some input.

After commit ab5a4c0 (https://bitbucket.org/hudson/magic-lantern/commits/ab5a4c0b8f1d047a1c36681a559304ad1ca8f955) ML now uses uint64_t, which Yagarto has some issue with. Now compiling produces these errors:

Quote
/Users/coutts/yagarto/yagarto-4.7.1/bin/../lib/gcc/arm-none-eabi/4.7.1/libgcc.a(unwind-arm.o): In function `get_eit_entry':
/Users/mfischer/Projects/yagarto/gcc-build/arm-none-eabi/libgcc/../../../gcc-4.7.1/libgcc/unwind-arm-common.inc:221: undefined reference to `__exidx_start'
/Users/mfischer/Projects/yagarto/gcc-build/arm-none-eabi/libgcc/../../../gcc-4.7.1/libgcc/unwind-arm-common.inc:221: undefined reference to `__exidx_end'

Anyone have some input? I'd like to continue using this toolchain because it's easy / fast to setup, but if required I will begin using a new one if someone has a better option.

#117
Reverse Engineering / Re: Modify EXIF Data through USB
January 30, 2013, 05:23:27 AM
if someone knows how to make the camera read QR codes, they support up to 4000 characters, not sure where to even start with that though.
#118
I've often wondered what (who) makes state machines change their state. Last year while porting the 5dc I mapped some complex structures in VxWorks that all tied into state machines. I've finally done the same for DryOS while investigating EVF (live view) state.

Here's a comment from my commit here which explains how state machines change states:


/**
*  EVF Manager - 6D v1.1.2
*
*  Managers are a high-level data structure in DryOS and VxWorks. For structure definitions, look in state-object.h
*
*  Before, state-objects were the highest level data structure we understood in DryOS, now I understand what actually
*  triggers the state changes, so we can track down the functions that do these changes. For this demonstration I'll
*  examine the EVF Manager in the 6D v1.1.2 firmware.
*
*  The Taskclass structure is pretty important, as this is where events are queued up before processed. Events are
*  posted to the taskclass queue by taskclass_post_message (0x39F04). Arg2 to this function is the event number to
*  post. A taskclass has a generic task, which takes events posted to the taskclass message queue, and calls the
*  respective EventDispatch function, in our case it's evfEventDispatch (0xFF0DD22C). This function is called by the
*  taskclass task via a pointer stored in the Manager struct. It's because of this that we can hijack the EventDispatch
*  handler just like state objects, to catch taskclass events as they're processed.
*
*  All we need to look for to find who posts the events are calls to taskclass_post_message, specifically the ones that
*  reference the EVF Manager's struct. I hijacked the EVF Manager's event dispatch here, and got the same results as when
*  I hijacked the state machine, so it works! For EVF state, i observed 3 events happening in each frame: 5, 3, and 4.
*  Look at my youtube video here of live view slowed down to 2fps, the Tick message happens once every second (on another task).
*      --> www.youtube.com/watch?v=B4n1eh8YUtE
*
*  The debug log after running this looked like:
*
*  [MAGIC] name|arg1|arg2|arg3: Evf | 0x5 | 0x0 | 0x0
*  [MAGIC] name|arg1|arg2|arg3: Evf | 0x3 | 0x0 | 0x0
*  [MAGIC] name|arg1|arg2|arg3: Evf | 0x4 | 0x0 | 0x0
*      (repeated)
*
**/



//~ Structures for DryOS, derived from research on VxWorks.
struct Manager
{
    const char *                    name;                   //~ off_0x00    name of manager. ie: Evf
    int                             off_0x04;               //~ off_0x04    unknown
    struct TaskClass *              taskclass_ptr;          //~ off_0x08    pointer to taskclass struct
    const struct state_object *     stateobj_ptr;           //~ off_0x0C    pointer to stateobject struct
};

struct TaskClass    //~ size=0x18
{
    const char *                identifier;             //~ off_0x00    "TaskClass"
    const char *                name;                   //~ off_0x04    task class name. ie: PropMgr
    int                         off_0x08;               //~ unknown     initialized to 1 in CreateTaskClass
    const struct task *         task_struct_ptr;        //~ off_0x0c    ret_CreateTask (ptr to task struct) called from CreateTaskClass
    const struct msg_queue *    msg_queue_ptr_maybe;    //~ off_0x10    some kind of message queue pointer (very low level functions at work)
    void *                      eventdispatch_func_ptr; //~ off_0x14    event dispatch pointer. ie: propmgrEventDispatch
};




The taskclass reminds me a lot of generics from object-oriented languages like Java. There's one "generic" task for every taskclass, they just rely on the Manage struct passed to them to keep track of the name and state machine associated with the events.


Summary:
Functions post events to the taskclass queue using taskclass_post_message. Each taskclass has a task running at all times, constantly checking a message queue for new "events". If there's an event to process, the taskclass calls the EventDispatch function associated with the manage struct (passed as arg0 to taskclass_post_message), passing the event number as one of the arguments. Through hijacking this EventDispatch function, I've figured out that this is what triggers the state machine to change states. There's a function called by the EventDispatch; a generic "change state" function, which uses the event number to find the offset in the state matrix, to know which state change to call. The state machine changes states, and remains in that state until a new event tells it to change to a different state.

Now, what calls the functions that post to the taskclass queue? From what I've seen, they appear to be callback routine (CBR) functions as far as EVF goes. I'll keep digging, but we're getting close to understanding what copies the LV frame data from the sensor to the LV and HD buffers.
#119
Tragic Lantern / Re: Tragic Lantern for 6D
January 23, 2013, 11:07:45 PM
didn't fix cache hack boot yet but the allocate memory pool thing worked! we now have 400kb+ free (instead of <50k). great news! no more worrying about running out of space
#120
Tragic Lantern / Re: Tragic Lantern for 6D
January 17, 2013, 04:03:04 PM
I fixed vsync for magic zoom, focus peaking, and zebras. Things are running smooth now, MZ only flickers for a second after starting recording then it's fine. It flickers in 60fps mode but Alex says all cameras have some flicker with high framerates, so it's fine.
#121
General Chat / Re: 5D MKII vs. 6D
January 17, 2013, 01:20:02 AM
Quote from: 1% on January 15, 2013, 12:00:21 AM
Then your only choice for a full frame is 6D. Its pretty much 5d3 with no CF/Headphone/Smaller sensor... is it 5dII's sensor? Could be... need to see what other cameras had that MP rating.
canon made a new sensor for the 6D
#122
Reverse Engineering / Re: *.S files for 550D
January 16, 2013, 10:56:55 PM
all cameras' stubs files are in the repository in the platform folder:

https://bitbucket.org/hudson/magic-lantern/src/71a7208685b7bf26c2ef47f4d42690a6a89f7e16/platform?at=unified
#123
General Development / IDA color profiles
January 15, 2013, 08:25:55 PM
This may be more-so geared to g3gg0, but some of you guys have been using IDA longer than us, and might have a good color scheme better than the eye-killing white background stock profile.

Anybody have a color scheme they'd want to share? You can import/export them from Options -> Colors
#124
Alex told me you were having trouble finding the Live View buffer addresses - this morning I discovered a new (easy) way for us to do this. I'm gonna push a new commit soon adding a menu option for it (with config_debugmsg enabled), but basically, run this from "run_test":

Quote
call( "lv_vram_dump" );

and look for 3 new .422 files on the root of your SD card, their filenames are the 3 LV buffer addresses :)
#125
Quote from: andrecbrito on January 03, 2013, 10:18:15 AM
I own a 1000D and i'm a developer, mainly on C# but I'll give it a try... what work has already been done?
The features I would like to see on 1000D are the focus trap, time laps("Intervalometer ")
those seem very possible! To get started, look here:
http://magiclantern.wikia.com/wiki/Developing_info

The magic lantern repo can be found here:
www.bitbucket.org/hudson/magic-lantern

Follow the 5dc and 40d ports, as they are the only VxWorks cameras supported. I did some testing with the 1000d here, you can use it for the bootcode found in entry.s. The code here will boot the firmware and start a user task so it's a great starting point.
www.bitbucket.org/coutts/1000d_dev/src

jxlpto and myself are probably the best to talk to for porting VxWorks, so feel free to pm us with any questions.


good luck :D