Addr of jpeg buf - General Discussion and Assistance - CHDK Forum
supplierdeeply

Addr of jpeg buf

  • 4 Replies
  • 3173 Views
*

Offline alvm

  • ***
  • 123
Addr of jpeg buf
« on: 28 / April / 2011, 11:28:02 »
Advertisements
Hi,

I need to find latest shootted jpeg in memory. So, are there any signs which can help to do this? (Any strings, for ex.)

Thanks,
Alex.

*

Offline reyalp

  • ******
  • 14080
Re: Addr of jpeg buf
« Reply #1 on: 28 / April / 2011, 12:16:25 »
Hi,

I need to find latest shootted jpeg in memory. So, are there any signs which can help to do this? (Any strings, for ex.)

Thanks,
Alex.
"JPEG BUFF       %p ( %lx )" perhaps ?

Note that no one has yet determined exactly how this is used, when it contains valid data etc. Please post your results ;)
Don't forget what the H stands for.

*

Offline alvm

  • ***
  • 123
Re: Addr of jpeg buf
« Reply #2 on: 28 / April / 2011, 12:41:12 »

"JPEG BUFF       %p ( %lx )" perhaps ?
Thanks  :)

Note that no one has yet determined exactly how this is used, when it contains valid data etc. Please post your results ;)

Of course.

*

Offline reyalp

  • ******
  • 14080
Re: Addr of jpeg buf
« Reply #3 on: 28 / April / 2011, 12:49:49 »
Just a note that the corresponding string for raw buffers prints only one of several possible addresses on many cameras. Jpeg may be similar.
Don't forget what the H stands for.


*

Offline c10ud

  • ***
  • 245
Re: Addr of jpeg buf
« Reply #4 on: 28 / April / 2011, 13:19:04 »
in one of my experiments, i somehow found the pointer to the current jpg.

here's a snippet of the things i found i.e. in g12 100c, it was a while ago, but i saved this text snippet:
Code: [Select]
ROM:FF96C1D0                 LDREQ   R1, =0x77D
ROM:FF96C1D4                 LDREQ   R0, =aWrcachemgr_c
ROM:FF96C1D8                 BLEQ    DebugAssert
ROM:FF96C1DC                 LDR     R0, =0x47109800
ROM:FF96C1E0                 LDR     R1, =0xAF718 --->points to jpg buffer base? 0x47109800
ROM:FF96C1E4                 LDR     R7, =0x6CD0 -> points to actual buffer* +exifdatalen(?)

so, in this case, the pointer to the data was something like

(char*)(*((int*)0x6cd0)-0x3E00);

i found that 0x3E00 by printing the current buffer* and having a look in the whole jpg buffer area, i assumed it was some sort of exif data.

In order to find where the jpg finishes, i searched for the end-jpg marker:
(*jpg == 0xFF && *(jpg+1) == 0xD9)


have fun hacking

 

Related Topics