Author Topic: Cropped zebra or zebra specific OSD  (Read 12480 times)

Offline dzsemx

  • Sr. Member
  • ****
  • Posts: 299
  • [A650][A630]
Re: Cropped zebra or zebra specific OSD
« Reply #30 on: 21 / August / 2008, 01:04:55 »
another minor bug...
when using zebra and isoshift on print button, the screen is not updated when pressing print button, because the original FW osd is stored in a buffer...

Offline PhyrePhoX

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 2254
  • make RAW not WAR
    • PhyreWorX
Re: Cropped zebra or zebra specific OSD
« Reply #31 on: 30 / August / 2008, 17:44:32 »
atm we still have the zebra/osd bug in juciphox - screen isnt properly redrawn (or for example text isnt "cleared"). i more or less wasnt involved in this, can someone point me to a fix or tell me how to do it or show me the proper patch (somehow i cannot find it !? didnt search for too long though!).

thanks

Offline fudgey

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 1690
  • a570is
Re: Cropped zebra or zebra specific OSD
« Reply #32 on: 30 / August / 2008, 18:05:37 »
I believe I'm using this one

http://chdk.setepontos.com/index.php/topic,1849.msg17451.html#msg17451

but with this modification to gui_osd.c increase blink rates:

Code: [Select]
   
            case ZEBRA_MODE_BLINKED_1:
                f = timer&1;
                break;
            case ZEBRA_MODE_BLINKED_3:
                f = timer&4;
                break;
            case ZEBRA_MODE_BLINKED_2:
            default:
                f = timer&2;
                break;


I mentioned this in http://chdk.setepontos.com/index.php/topic,688.msg20190.html#msg20190.

Offline PhyrePhoX

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 2254
  • make RAW not WAR
    • PhyreWorX
Re: Cropped zebra or zebra specific OSD
« Reply #33 on: 01 / September / 2008, 02:11:55 »
darn, no patch, just the gui_osd attached there. don't have really much time now, maybe someone can supply me with a diff/patch against current version? thanks in advance!

Offline fudgey

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 1690
  • a570is
Re: Cropped zebra or zebra specific OSD
« Reply #34 on: 01 / September / 2008, 03:45:11 »
in trunk, gui_osd.c hasn't been changed since rev 396 in May so it's still current to trunk. Attached the diff I used against trunk.

Juciphox is a more complicated since a number of changesets have modified it and 485 in the needs to be reversed... so I grabbed juciphox 484 and made a diff against it, attached as well. I tested it very quickly...it builds on all platforms and seems to work on a570is 1.00e.

Offline PhyrePhoX

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 2254
  • make RAW not WAR
    • PhyreWorX
Re: Cropped zebra or zebra specific OSD
« Reply #35 on: 02 / September / 2008, 03:06:55 »
hm call me an idiot, i fail to apply the diff. tortoise tells me the diff is outdated or at least it was diffed against an outdated gui_osd.c?

Offline fudgey

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 1690
  • a570is
Re: Cropped zebra or zebra specific OSD
« Reply #36 on: 02 / September / 2008, 03:15:15 »
hm call me an idiot, i fail to apply the diff. tortoise tells me the diff is outdated or at least it was diffed against an outdated gui_osd.c?

Yes because it's applied against juciphox 484, after which 485 and some newer one have modified it. But since the mod in 485 needs to be reversed (it's the zebraosd fix with the problematic transparency), this is the most recent I was able provide while staying sane myself. I'm really no good with version control and diff/patch tools, never got around to learning them for real.

I believe it should be fine for trunk but I didn't try that yesterday, just checked trunk gui_osd.c hadn't been changed in assembla logs and assumed it would work since it did before.

Offline PhyrePhoX

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 2254
  • make RAW not WAR
    • PhyreWorX
Re: Cropped zebra or zebra specific OSD
« Reply #37 on: 02 / September / 2008, 03:33:15 »
hm, i guess we have to wait for jucifer to fix this then, i have lost track :)
i tried "undoing" the patch, but to no avail.

edit: reverted to "normal" state. i will give it another shot though, but maybe jucifer is faster than me at trying :)
« Last Edit: 02 / September / 2008, 04:52:27 by PhyrePhoX »

Offline PhyrePhoX

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 2254
  • make RAW not WAR
    • PhyreWorX
Re: Cropped zebra or zebra specific OSD
« Reply #38 on: 19 / December / 2008, 02:28:21 »
so, since this was revived somewhere else, we might tackle this problem somehow, sometime.

so, was there a working diff that does not add any bugs?
perhaps some people did not consider some things as bugs (like microsoft: it's not a bug, it's a feature!)? so we might make it an option? via a toggle in conf.c? huh?
who's up for the task? and while ur at it, please open a bugticket for this.

CHDK Forum

Re: Cropped zebra or zebra specific OSD
« Reply #38 on: 19 / December / 2008, 02:28:21 »

Offline fudgey

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 1690
  • a570is
Re: Cropped zebra or zebra specific OSD
« Reply #39 on: 19 / December / 2008, 04:19:25 »
so, since this was revived somewhere else, we might tackle this problem somehow, sometime.

so, was there a working diff that does not add any bugs?
perhaps some people did not consider some things as bugs (like microsoft: it's not a bug, it's a feature!)? so we might make it an option? via a toggle in conf.c? huh?
who's up for the task? and while ur at it, please open a bugticket for this.

Somewhere above may be a working diff or working replacement gui_osd.c (or whatever it was, I can't check right now) to allbest trunk rev xxx. Unless different camera models have different requirements with display buffers or whatever, this is something that lets us remove some of those more cryptic zebra parameters, not add one more. It's just so beautiful and perfect it's hard to describe. ::)

The patch that was tried in Juciphox was incorrect, and did not work well. The reason why I haven't done this is that the C files that this patch/modification changes were significantly changed in Juciphox at the time of developing this zebra improvement, and it got too much for my tiny brain to handle back then.

I think/hope I have a working patched trunk copy of the build I'm using that has the good zebra. The osd/zebra code itself is a bit too puzzly for me to dig into in the little time that I have to put in.

Offline PhyrePhoX

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 2254
  • make RAW not WAR
    • PhyreWorX
Re: Cropped zebra or zebra specific OSD
« Reply #40 on: 19 / December / 2008, 06:18:21 »
hm, well, ok, so we need a master of puzzles then :D
right now i dont have much time on my hands, but a lot of hands on my time, so i definitly can't do it :(

Offline dzsemx

  • Sr. Member
  • ****
  • Posts: 299
  • [A650][A630]
Re: Cropped zebra or zebra specific OSD
« Reply #41 on: 19 / December / 2008, 13:49:40 »
master of puzzles  :lol
maybe it's more easy to rewrite the whole thing from the beginning by knowing the bugs

Offline fudgey

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 1690
  • a570is
Re: Cropped zebra or zebra specific OSD
« Reply #42 on: 20 / December / 2008, 04:10:51 »
Good golly. I just read back the thread a bit to remind myself what the status was and found that I had prepared a diff for juciphox 484 but it was never applied because 485 was already broken by the incorrect patch that caused ugly character borders and was later reversed...

I looked at the revisions and it became clear to me that the important bits are still the same. So, it was easy to port the juciphox 484 diff to current trunk, see the attached diff against trunk 645. It only changes core/gui_osd.c. As the old diffs, it also speeds up blink modes because with this improved zebra their old main purpose of providing a way to read Canon OSD is no longer needed.

It appears to work on a570is 100e and builds on all platforms in trunk 645. There is one problem that was not present with allbest 443: parts of CHDK OSD (misc values / dof calculator at least) seem to disappear if zebra is draw. Sometimes in full, sometimes partially. I have no clue why this happens or how to fix it. Histogram is always ok, though.



For those who don't yet know the purpose of this modification: Without this the patch, when zebra is drawn, Canon's OSD elements disappear. That means Tv, Av, ISO settings etc if you had them visible. In automatic modes this means that if zebra is active, the values chosen by the camera only blink very shortly on screen, almost too fast to be seen. Blink zebra modes allow one to periodically see those values, but it makes people seasick ;).

This patch makes CHDK draw zebra under the OSD so that all half shoot OSD including Canon's and CHDK's stays visible. It does not suffer from the "ugly characters" problem, at least not on my camera it doesn't.

The very slight drawback of the patch is that zebra will naturally no longer alert you from things that are under osd elements. But in half-shoot mode that's not a large portion of the screen unless you choose a hugest histogram there is and fill the screen with all the . And when hand held, you can always move the camera around slightly to cover every last bit if you need to be sure. Of course you can also disable OSD temporarily too.

Please note that the CHDK histogram has text elements (like the multiplier thingy) which are not always visible, but always have an area reserved. Zebra will not draw over this reserved area even though it looks it's empty. To see what I mean, enable hsitogram, point the camera at a dark spot, half shoot, then while still half shooting, move the camera to a lamp and you'll see which parts of the screen don't have active zebra.

Offline whim

  • Guru Member
  • ******
  • Posts: 1954
  • A620/A630/A590-101b/i70-101b/i870-101a/i300
Re: Cropped zebra or zebra specific OSD
« Reply #43 on: 20 / December / 2008, 06:02:12 »
@fudgey

Excellent !

applied patch and compiled flawlessly (just the usual main.c warnings typical for 4.3.2) (CHDKShell+GCC 4.3.2)

Works 'as advertised' on A590_101b and ixus70_sd1000_101b - thanks for this  :xmas gift

just a quick test w/ blink 2 + histo though - time for sleep here ...


wim


Offline fudgey

  • Global Moderator
  • Guru Member
  • *****
  • Posts: 1690
  • a570is
Re: Cropped zebra or zebra specific OSD
« Reply #44 on: 20 / December / 2008, 14:23:47 »
Oh and to fill in on the osd overwrite problem, there is no problem. When testing, I just forgot we have the "draw over zebra" option.

When it's "OSD", Canon OSD, CHDK OSD and CHDK Histogram all are fine.
When it's "Histo", Canon OSD, and CHDK Histogram are fine, but CHDK OSD gets overwritten by zebra as it should.


The "Restore original screen" and "Restore OSD" options may have no purpose now, but I'm not sure. Someone may still want to use them, but the default should probably be OFF. When "Restore original screen" is enabled, Zebra BLINK mode blinks CHDK OSD letting one periodically see the entire image (but it blinks zebra too, so the option does not increase zebra area). If "Restore OSD" is also enabled, only parts of the OSD are blinked (at least MISC and Histogram stay put, but battery and disk space indicators blink).

I did notice a bug when both "Restore original screen" and "Restore OSD" were enabled (they are by default): Zebra BLINK mode sometimes (quite rarely) causes Canon's autoexposure selected Tv value to toggle between two values on screen in rythm of the zebra blink (one of the Tv values is correct, the other one is an old value from another display buffer, I'm guessing a "restored" one).

I'm not sure if these restore screen/osd options affect this bug at all, but I'm leaving them off for now because without them I haven't yet been able to reproduce it (but note that I'm not able to quickly reproduce it even with them enabled). Also, in "zebra 1" I haven't noticed incorrect Tv being displayed when compared to the photo exif display of play mode.


 


SimplePortal 2.3.3 © 2008-2010, SimplePortal