Lightspark 0.4.1 released


Lightspark 0.4.1 has been released today, fea­tur­ing ini­tial YouTube sup­port, and of course the usual per­for­mance improve­ments. As the plu­gin is cur­rently very sta­ble every­one is invited to test and mea­sure the CPU con­sump­tion of lightspark ver­sus Adobe’s player. Dur­ing my pre­lim­i­nary tests lightspark resulted up to twice as fast! This is of course not a com­pletely fair com­par­i­son, as Lightspark is not fea­ture com­plete yet.

It should be noted that only the YouTube videos served using the new AS3 player are sup­ported, those are the ones with the new UI. YouTube cur­rently uses a legacy AS2/Flash8 player for older con­tent and that should be fully sup­ported by Gnash.

More­over, with this release, Lightspark has been reli­censed from GPL3 to LGPL3 to avoid licens­ing issue when dis­trib­ut­ing the plu­gin with non GPLed browsers such as Chrome

Share on:
  • email
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Reddit
  • LinkedIn
  • StumbleUpon
  • Twitter
  • Slashdot
  • Technorati

, , ,

  • Peter
    I'm seeing the same issues building in F-14 regarding the issues seen with F-13 below.

    Also is there any plans to add support for gstreamer for the underlying media side of things? This would allow easy support of new codecs (such as WebM that adobe has said it will support in Flash) as well as the use of things like HW acceleration on different platforms such as ARM etc where there's quite a bit of support for gstreamer HW acceleration.
  • apignotti
    I've chosen FFmpeg for its lightweight. Support for VP8 and Vorbis (the streams contained in WebM) is guaranteed by FFmpeg. FFmpeg also includes support for libVa which should in the future wrap all the various HW decoding features. Moreover, I don't like the idea of maintaining more than a backend, and FFmpeg has proven to be pretty good performance wise. I will of course welcome any contributions and performance test with GStreamer.
  • Peter
    The problems with FFmpeg is that it will never be packaged in Fedora and similar distros due to the use of various codes. It also doesn't really have a stable api which I think is possibly part of the issue with compiling within fedora. I don't think things like the Broadcom BCM70012 chipset are supported through libVa at the moment and a lot of the ARM chipsets (see Nokia n900 for example) use a gstreamer specific interface to the DSP.
  • Alejandro Nova.
    I try to compile this on Fedora 13 and I stall here, because of the DSO linking feature.

    [ 94%] Built target spark
    Linking CXX executable lightspark
    /usr/bin/ld: /usr/lib64/llvm/libLLVMSystem.a(DynamicLibrary.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
    /usr/bin/ld: note: 'dlsym@@GLIBC_2.2.5' is defined in DSO /usr/lib/gcc/x86_64-redhat-linux/4.4.4/../../../../lib64/libdl.so so try adding it to the linker command line
    /usr/lib/gcc/x86_64-redhat-linux/4.4.4/../../../../lib64/libdl.so: could not read symbols: Invalid operation
    collect2: ld devolvió el estado de salida 1
    make[2]: *** [lightspark] Error 1
    make[1]: *** [CMakeFiles/lightspark.dir/all] Error 2
    make: *** [all] Error 2

    How can I fix this? Any hint?
  • apignotti
    I've received several report of build problems on Fedora. They are related to some weird dynamic loading configuration I have no experience with. I'm hoping to get some feedback upstream.
  • Papouta
    May I suggest to read this post about a similar problem with a fix that could help you?
    http://www.gossamer-threads.com/lists/linux/kernel/1231201
  • Papouta
    I just discovered that a bug in launchpad had been filled and that details about a fix for Fedora (which are mostly the same thing that I proposed below) :
    https://bugs.launchpad.net/lightspark/+bug/592730

    -ldl -lGLU -lrt have to be appended :
    @@ -80, 1 +80,1 @@IF(COMPILE_LIGHTSPARK OR COMPILE_TIGHTSPARK)
    ADD_LIBRARY(spark STATIC ${LIBSPARK_SOURCES})
    TARGET_LINK_LIBRARIES(spark ${lib_pthread} ${lib_glew} ${EXTRA_LIBS_LIBRARIES} ${ZLIB_LIBRARIES} ${LLVM_LIBS_CORE} ${LLVM_LIBS_JIT}
    - ${SDL_LIBRARY} ${CURL_LIBRARIES})
    + ${SDL_LIBRARY} ${CURL_LIBRARIES} -ldl -lrt -lGLU)
  • Papouta
    Here's a fix for this particular bug inspired by the link I provided :
    In CMakeList.txt
    @@ -80, 1 +80,1 @@IF(COMPILE_LIGHTSPARK OR COMPILE_TIGHTSPARK)
    ADD_LIBRARY(spark STATIC ${LIBSPARK_SOURCES})
    TARGET_LINK_LIBRARIES(spark ${lib_pthread} ${lib_glew} ${EXTRA_LIBS_LIBRARIES} ${ZLIB_LIBRARIES} ${LLVM_LIBS_CORE} ${LLVM_LIBS_JIT}
    - ${SDL_LIBRARY} ${CURL_LIBRARIES})
    + ${SDL_LIBRARY} ${CURL_LIBRARIES} -ldl)


    ---
    However, I'm not an expert in prog, so it may not be the real problem and I may be wrong in how to point where the fix goes. I'm just trying to help. With this fix, I get the same error as previously encountered when I tried to compile two weeks ago :

    Linking CXX executable lightspark
    /usr/bin/ld: libspark.a(geometry.cpp.o): undefined reference to symbol 'gluTessProperty'
    /usr/bin/ld: note: 'gluTessProperty' is defined in DSO /usr/lib64/libGLU.so.1 so try adding it to the linker command line
    /usr/lib64/libGLU.so.1: could not read symbols: Invalid operation
    collect2: ld returned 1 exit status
    make[2]: *** [lightspark] Error 1
    make[1]: *** [CMakeFiles/lightspark.dir/all] Error 2
    make: *** [all] Error 2
  • Papouta
    I fixed the problem with libGLU and another one that appeared after that about librt.so :
    (for libGLU) In CMakeList.txt
    @@ -51,1 +51,1 @@FIND_LIBRARY(lib_pthread pthread REQUIRED)
    FIND_LIBRARY(lib_glew GLEW REQUIRED)
    +FIND_LIBRARY(lib_glu GLU REQUIRED)

    (for librt) In CMakeList.txt where the fix for dynamic library was inserted by my previous fix
    @@ -80, 1 +80,1 @@IF(COMPILE_LIGHTSPARK OR COMPILE_TIGHTSPARK)
    ADD_LIBRARY(spark STATIC ${LIBSPARK_SOURCES})
    TARGET_LINK_LIBRARIES(spark ${lib_pthread} ${lib_glew} ${EXTRA_LIBS_LIBRARIES} ${ZLIB_LIBRARIES} ${LLVM_LIBS_CORE} ${LLVM_LIBS_JIT}
    - ${SDL_LIBRARY} ${CURL_LIBRARIES} -ldl)
    + ${SDL_LIBRARY} ${CURL_LIBRARIES} -ldl -lrt)

    ---
    In other words, all the fixes consist in specifically telling to link to librt and libdl with the options -ldl and -lrt, and finding where the libGLU is located with FIND_LIBRARY(lib_glu GLU REQUIRED) as you do for libGLEW
  • Peter
    Looking in launchpad I can only see the 0.4.0 release. Is the 0.4.1 release on launchpad or elsewhere?
  • apignotti
    I've added the 0.4.1 tarball. Thanks for the report.
  • I would be interested in the positioning of Lightpark to Gnash and Swfdec. Why have you decided to create another free flash player instead of contributing to one of the existing players? Are there some technical reasons?

    Btw. great to have a free flash player with youtube support!
  • apignotti
    I've taken a look around gnash code and it's not the kind of code where it's easy to integrate modern functionality. When working on parallel code everything should be designed from the beginning to be thread safe. Moreover, lightspark has been designed to be efficient on modern, mainstream architecture.
  • " that should be fully sup ported by Gnash."
    Can we install Gnash and Lightspark alongside? I didn't think so! Is the choosing of one or another automatical? Or is it a planned feature?
  • apignotti
    Not yet, but I'm thinking about a way to fall back on gnash.
  • Icek
    I tried mozilla plugin. It crashed my system when I tried view youtube video. All I saw was some gray rectangle in right bottom corner of the screen. I'm on Lucid with ati 3200hd and oss driver
  • apignotti
    Please report this bug on launchpad detailing your system configuration (CPU/video card/video driver)
  • How do we run it from the command line? I am following the "README" file and created a yt-args text file using the dumper script. I manually downloaded watch_as3-vfl169211.swf.

    All I get is a brief window creation then exit and tons of NOT_IMPLEMENTED prints on stdout.
  • apignotti
    running it like
    lightspark -p yt-args watch_as3-vfl169211.swf
    should be enough, if not please report the bug on launchpad. Which video have you passed to the dumper script?
blog comments powered by Disqus