![]() |
![]() |
|
|
Compare Products, Prices & Stores For: COMPUTERS, COMPONENTS, COMPUTER ACCESSORIES, COMPUTER MEMORY, HARDWARE, INPUT DEVICES, NETWORKING, PDAs & MOBILE ELECTRONICS, SOFTWARE, STORAGE & MEDIA, DIGITAL CAMERAS, HOME AUDIO, TV& VIDEO |
|
|
|
|
#16
|
|||
|
|||
|
Quote:
|
|
#17
|
|||
|
|||
|
Apologies. The attached diff is against dah31's port using his libosd.
|
|
#18
|
|||||
|
|||||
|
Quote:
The next biggest holdup for Series2 will be figuring out how to get at the caption data (though I've got one idea towards that). Quote:
Then there's the wider issue of a font that actually looks nice on screen. I personally rather like the one used in EEG decoder chips (their own decoders and some television sets), apart from the (lack of) descenders. FreeType support will widen the choices somewhat. :-D Quote:
As for implementation, I reckon something along the lines of rendering the text into two separate buffers (`flash on' and `flash off', as Mr. Miyagi might say) and use some sort of timer to memcpy(3) them into the buffer. That'd probably work okay for pop-on mode, but roll-up would be a particular pain, particularly once smooth scrolling is implemented (see 47 CFR 119(f)(1)(iii)). Quote:
Quote:
You might like to look at my hacks on tivovbi at <URL:http://www.dah31.org/tivo/tivovbi-1.04.tar.bz2>. -- dah31 |
|
#19
|
|||
|
|||
|
Quote:
Quote:
(I actually ran that elseed on my mother's DVR39, and she called me to ask why Dick van Dyke was looking through frosted glass...! I added the ClearOSD() call and kept fiddling with FreeType.) -- dah31 |
|
#20
|
|||||
|
|||||
|
Quote:
Quote:
Quote:
Quote:
Quote:
|
|
#21
|
|||
|
|||
|
Quote:
I can think of three simple approaches: 1) Figure out which ioctl is used to set caption data on a Series 1, locate the appropriate section of code in tivoapp, then find the corresponding function on a Series 2 tivoapp. 2) Log all ioctls coming from myworld, try to dereference anything that looks like it might be a pointer, and see if any caption data turns up. 3) See if the S1 and the S2 happen to use the same ioctl. What would be slick is to write a kernel module that sniffs the caption data coming from userland, and then puts it in our own buffer (called, of course, caption1Buffer and caption1Tail). If done properly, we probably won't even need special S2 support in tivovbi for straight logging. |
|
#22
|
||||||
|
||||||
|
Quote:
All the OSD globals have been encapsulated into a structure (struct osd_info) (except got_own_surface (missed that one)). That should be a big step towards having multiple surfaces in one program. Likewise with struct ft_info for FreeType. Also: newtext2osd's find_colors() is in osd.c (access to S1 colours by name), as is get_colour() (convert colours <0x100 to S2 equivalents). setupBrcmDisplay() and SetupTextOSD() have a new argument, dont_clear_buffer. Set it if you don't want the display buffer cleared; 0 will clear it. Quote:
Quote:
Quote:
Quote:
o Fix spelling inconsistencies (functions, variables, and types should use `colour'; #define `color' equivalents) o Put got_own_surface in the osd_info structure. Quote:
Oh, and there's an environment variable FONT_PATH, which you set to a colon-separated list of directories to search for fonts. openfont_ex() (and openfont()) searches the exact path given, then the FONT_PATH, then the current directory. -- dah31 Last edited by dah31; 05-05-2004 at 04:00 PM. Reason: remembered dont_clear_buffer, libfreetype.so, and FONT_PATH |
|
#23
|
|||
|
|||
|
Quote:
EDIT: Oh, it uses a freetype lib. So much for adapting tivovbi to use a different font. Last edited by dgi; 05-05-2004 at 04:05 PM. |
|
#24
|
|||
|
|||
|
dah31: I have incorporated your 1.04 changes to tivovbi for the most part. Here is a preliminary snapshot of my version with your changes. Hopefully we can start extending it together from here. It is NOT a zip file.
EDIT: I have removed the snapshot as it is no longer current. PS-Also, I got mbm's final cvs snapshot before he abandoned it. It's broken, but it's really rewritten, and doesn't use tvbi-test.o anymore. E-mail me for details. Last edited by dgi; 06-01-2004 at 09:28 PM. Reason: Removed file |
|
#25
|
|||
|
|||
|
Quote:
Quote:
-- dah31 |
|
#26
|
|||
|
|||
|
That screenshot looks good.
Integrating your OSD changes (skewed italics) seems to have introduced another bug. Whenever the captions go all the way to the right edge (column 32), the last character gets only half-drawn. If it's italic, it's hardly visible. |
|
#27
|
|||
|
|||
|
libosd 0.3 + patched elseed on S2 4.0.1b => system reboot
I just tried out the libosd 0.3 and the patched elseed 0.6 binary, and ended up with a rebooting Tivo, and seemingly no log output.
I put the contents of libosd-0.3/lib into /var/hack/lib, put /var/hack/lib in my LD_LIBRARY_PATH, and executed './elseed -c conf/elseed.conf'. Things loaded as expected, and then I dialed my number. This caused the system to reboot. I attempted to capture stdout and stderr, but no output was generated. I had previously installed the vanilla elseed 0.6.0 and configured it to broadcast call info to my Mac. That worked, but no display on the TV. When running the patched elseed, my Mac did not receive any call notification. I briefly tried to do some debugging (first, by compiling a helloworld binary), but was foiled by not having <tivo/osd/osd.h> available on my cross-compiling machine. At that point, I threw up my hands and typed up this post. I'm quite new to Tivo compiling. I do have a cross-compiler up and running on a Linux box, and have written one little hello world program that seems to run, but have not been indoctrinated in the ways of the Tivo just yet. Any help (including appropriate, and hopefully content-rich, flames) would be much appreciated. I'm looking to get elseed working (or rather, to get caller id info on my TV), so help to that end is what I'm really looking for, but obviously, this is a developer forum, so info about what headers etc. I need for cross-compiling with the new OSD stuff or any other relevant info is probably what I'm looking for. System info: Freshly-hacked S2 standalone running 4.0.1b with a single 160-gig drive, with no LBA hack. -Patrick |
|
#28
|
|||
|
|||
|
Quote:
|
|
#29
|
|||
|
|||
|
Quote:
Code:
[elseed.h:]
void osdit ();
[elseed.c:]
int main(int argc, char *argv[]) {
[...]
osdit();
[...]
}
[...]
void osdit(struct osd_info *osd, struct ft_info *ft) {
[...]
}
-- dah31 |
|
#30
|
|||
|
|||
|
s2vbi - fake pxmpegdecode.o for Series2
Here is a fake "pxmpegdecode" module for the Series 2 platform which emulates the circular CC/XDS buffers from the Series 1 CS22 driver. Source and a MIPS 2.4.18/4.0 binary module are included. CC tests with tivovbi 1.03 in text mode were successful; XDS might work but is untested. There's a chance it will work on the Series 1 as well if you rename the stock pxmpegdecode.o and adjust the startup scripts accordingly.
Building tivovbi for MIPS required #include's for time.h and errno.h. dgi's tivovbi sources from post #24 worked after I took the additional step of turning off parity checking. Due to the growing number of schemes in which freely available TiVo hacks are being sold for profit, this code and any derivative work is for personal use only and any redistribution is prohibited. Exceptions: you may post compiled binaries in this thread if you include any source changes, you may post patches in this thread, and the license will revert to GPL on December 31st, 2005. Edit: I have pulled the original attachment and posted version 20040601a. There were bugs in my kernel module which caused the parity issue alluded to earlier. dgi's version now runs correctly, unmodified, with the fixed module. Edit: New version - 20040602 fixes XDS handling. Edit: New version - 20040602a cleans up the intercept. Edit 2005/02/02: s2vbi and tivovbi development has moved to this thread Last edited by alldeadhomiez; 02-02-2005 at 10:28 PM. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|