Page 1 of 14

Re: NetSurf Web browser for SamyGO TV - FIRST RELEASE

Posted: Fri Feb 19, 2010 11:47 pm
by dasilverpaladin
Very nice work you have done with this.

Tried it on my LE37B650 CI+ and it works.
Tried it with Mouse and Keyboard extension i found here, but mouse didn`t work, had no spare keyboard to test.

Attached is my output.log, had to rar it, forum doesn`t allow .log extension for upload...


Changed Resolution in options file to full hd, TV hang up and i had to pull the powerplug.
Is the resolution limited by TV?

Code: Select all

Hello Netsurf!
setjmp() --> 0
desktop/netsurf.c netsurf_init 369: version '2.1 (23 May 2009)'
desktop/netsurf.c netsurf_init 376: NetSurf on <Linux>, node <localhost>, release <2.6.18_SELP-ARM>, version <#191 PREEMPT Thu Apr 30 15:51:33 KST 2009>, machine <armv6l>
desktop/netsurf.c lib_init 434: xmlParserVersion 20632, LIBXML_VERSION_STRING 20632
framebuffer/fb_gui.c gui_init 294: argc 1, argv 0x722fee0c
framebuffer/fb_gui.c gui_init 297: Using '/dtv/usb/sdb1/NetSurf/framebuffer/res/Aliases' as Aliases file
framebuffer/fb_gui.c gui_init 304: Using '/dtv/usb/sdb1/NetSurf/framebuffer/res/messages' as Messages file
framebuffer/fb_gui.c gui_init 309: Using '/dtv/usb/sdb1/NetSurf/framebuffer/res/Options' as Preferences file
framebuffer/fb_gui.c gui_init 316: Using 'file:///dtv/usb/sdb1/NetSurf/framebuffer/res/default.css' as Default CSS URL
Unable to set video: Resolution bigger then 960x540 not supported
die called - reason: Error initialising framebuffer
setjmp() --> 1
exiting because of die()

Re: NetSurf Web browser for SamyGO TV - FIRST RELEASE

Posted: Sat Feb 20, 2010 3:07 am
by erdem_ua
Oh thanks, It's really good to have web browser on our TV! :)

Re: NetSurf Web browser for SamyGO TV - FIRST RELEASE

Posted: Sat Feb 20, 2010 3:43 pm
by erdem_ua
I tested utility. It supports Mouse & Keyboard properly on my B650. Yeehaa! :D
But there is problems.
The biggest problem that I see, when I move the mouse, flash disk shows read/write. It's weird.My USB Flash is slow device 128 MB, so Mouse freezes at that read/write operation.
I think utility uses USB disk for cache/log purposes.
I think it's better to have temp/cache files to /mtd_ram/NetSurf directory. This way we have speedy web surfer. :)
Thanks for the package ffischer.

I copy this to internal TV memory, now mouse is lot more responsive but have awful lag.
I put this tool to NFS share and It became better. But again mouse cursor has too much lag.
Is there could be a solution for that?

Also My Keyboard does not recognize its enter key. Might be useful mapping keyboard scheme for Mouse & Keyboard Driver


Re: NetSurf Web browser for SamyGO TV - FIRST RELEASE

Posted: Sat Feb 20, 2010 6:38 pm
by arris69
nice work,

so people don't need to use handycam may you like to implement little screenshoot routine (if app use sdlsurface)?
loginfo can dropped out, i used it for testing.

ScCo is a global counter:

Code: Select all

void TakeShoot(void){
        char ScreenshotName[100];

        SDL_Surface *ss_surface = SDL_CreateRGBSurface(SDL_SWSURFACE, WIDTH, HEIGHT, DEPTH, rmask, gmask, bmask, amask);
        SDL_BlitSurface(screen, NULL, ss_surface, NULL);


        if(!png_save_surface(ScreenshotName, ss_surface))
                loginfo("Failed to save /mtd_wiselink/Screenshot-%03d.png",ScCo);
savesurf.h (not by me, found in some sample app):

Code: Select all

#include <SDL_image.h>
#include <png.h>

/* import log */
extern void loginfo(const char *, ...);

static int png_colortype_from_surface(SDL_Surface *surface)
        int colortype = PNG_COLOR_MASK_COLOR; /* grayscale not supported */

        if (surface->format->palette)
                colortype |= PNG_COLOR_MASK_PALETTE;
        else if (surface->format->Amask)
                colortype |= PNG_COLOR_MASK_ALPHA;

        return colortype;

void png_user_warn(png_structp ctx, png_const_charp str)
        loginfo("libpng: warning: %s\n", str);

void png_user_error(png_structp ctx, png_const_charp str)
        loginfo("libpng: error: %s\n", str);

int png_save_surface(char *filename, SDL_Surface *surf)
        FILE *fp;
        png_structp png_ptr;
        png_infop info_ptr;
        int i, colortype;
        png_bytep *row_pointers;

        /* Opening output file */
        fp = fopen(filename, "wb");
        if (fp == NULL) {
                loginfo("fopen error");
                return -1;

        /* Initializing png structures and callbacks */
        png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,
                NULL, png_user_error, png_user_warn);
        if (png_ptr == NULL) {
                loginfo("png_create_write_struct error!\n");
                return -1;

        info_ptr = png_create_info_struct(png_ptr);
        if (info_ptr == NULL) {
                png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
                loginfo("png_create_info_struct error!\n");

        if (setjmp(png_jmpbuf(png_ptr))) {
                png_destroy_write_struct(&png_ptr, &info_ptr);

        png_init_io(png_ptr, fp);

        colortype = png_colortype_from_surface(surf);
        png_set_IHDR(png_ptr, info_ptr, surf->w, surf->h, 8, colortype, PNG_INTERLACE_NONE,

        /* Writing the image */
        png_write_info(png_ptr, info_ptr);

        row_pointers = (png_bytep*) malloc(sizeof(png_bytep)*surf->h);
        for (i = 0; i < surf->h; i++)
                row_pointers[i] = (png_bytep)(Uint8 *)surf->pixels + i*surf->pitch;
        png_write_image(png_ptr, row_pointers);
        png_write_end(png_ptr, info_ptr);

        /* Cleaning out... */
        png_destroy_write_struct(&png_ptr, &info_ptr);

        return 0;