GNOME Bugzilla – Bug 358277
Unable to view embeded video due to lack of gif support
Last modified: 2007-08-16 18:35:54 UTC
This embeded player refuse to play for me: http://atvs.vg.no/player/player.php?id=5358&bandwidth=1804931&bandwidth_detected=1 Instead I get a message saying that: Totem could not play 'http://atvs.vg.no/video/gfx/vg-tv.gif'. ou do not have a decoder installed to handle this file. You might need to install the necessary plugins. So I guess this site displays a gif file before starting to play the movie clip.
The GIF file works fine here (ubuntu edgy/x86 + GStreamer/totem CVS) - Do you have the gdkpixbufdec decoder element installed? (from -good)? - If yes, does your version of libgdkpixbuf come with a gif pixbuf loader? $ ls -l /usr/lib/gdk-pixbuf/loaders/*gif*
Actually, the xine-lib backend fails with a "BVW_ERROR_STILL_IMAGE" error ("This movie is a still image. You can open it with an image viewer."). Should we remove that?
Ok, I was missing the gif plugin, with it installed the error message goes away, but the video do not start. I assume it might be stuck on the gif file. I don't know how they do it or what they expect us to do, looking at the page source I do notice a lot of javascript, is that another testcase needing us to support WMP javascript interfaces to work?
added URI 'http://atvs.vg.no/video/gfx/vg-tv.gif' with title 'Annonse' genre '(null)' added URI 'mms://video.vg.no/vg/video2005/storage/compressed/5358/wm_56.wmv?WMThinning=1' with title 'empty' genre '(null)' From the playlist file: <Entry CLIENTSKIP="NO"> <Title>Annonse</Title> <Author>VG Multimedia med Kroma & Aptoma NettTV</Author> <Copyright>(c) 2006 VG Multimedia AS</Copyright> <Abstract>Annonse</Abstract> <MoreInfo href=""/> <Ref href="http://atvs.vg.no/video/gfx/vg-tv.gif"/> <DURATION VALUE = "00:00:02" /> </Entry> Ha! We actually don't know how to handle duration values in playlists, but it should be fairly straight-forward to add. We need the playlist parser to allow more properties to be added to the "entry" signal. In the meantime, I guess both Tim and I could add hacks to make the image "eos" after, say, 5 seconds.
Actually, scratch that. I've removed the STILL_IMAGE error on open, and added a STILL_IMAGE video property. The backend can get a decent idea as to whether it is a still image or not. xine-lib, with the gdk-pixbuf plugin, just reads that as a still image and not an animation that it is. After 5 seconds of playback (the length of the animation), the stream is supposed to end. I guess that, for this particular stream, we don't need any playlist parser changes, just bug fixing in the backends.
2006-10-02 Bastien Nocera <hadess@hadess.net> * src/backend/bacon-video-widget-xine.c: (bacon_video_widget_open_with_subtitle): * src/backend/bacon-video-widget.h: * src/totem-mozilla-viewer.c: (totem_embedded_open): * src/totem-video-thumbnailer.c: (video_is_still_image), (main): remove the BVW_ERROR_STILL_IMAGE error on open, and instead use the BVW_INFO_STILL_IMAGE. This should allow us to playback the adverts (sigh) at http://atvs.vg.no (Helps: #358277) The GStreamer backend needs to implement getting the BVW_INFO_STILL_IMAGE property, and (hopefully) fix the playback of this image as an animation. xine-lib needs to do the latter.
Actually, I was talking nonsense, the animation bit doesn't work in GStreamer at the moment and needs fixing (we only decode the first frame right now).
Using Firefox 2 (Mozilla won't work, as it doesn't support the "object" bits used in http://atvs.vg.no/player/js/playerformats/wm.js), I get: added URI 'http://atvs.vg.no/video/gfx/logo_intro.swf' title = 'Annonse' duration = '00:00:02' added URI 'mms://video.vg.no/vg/video2005/storage/compressed/5358/wm_56.wmv?WMThinning=1' title = 'VGTV' added URI 'http://atvs.vg.no/video/gfx/reklame.gif' title = 'Annonse' duration = '00:00:01' added URI 'mms://video.vg.no/vg/video2005/storage/compressed/10823/wm_56.wmv?WMThinning=1' title = 'Annonse' We'd just need to skip over the logo, if we don't know how to play it.
Works with firefox 2, and the following changes. 2007-08-16 Bastien Nocera <hadess@hadess.net> * browser-plugin/totem-plugin-viewer.c: (totem_embedded_open_playlist_item), (on_eos_event), (on_error_event), (totem_pl_item_free), (totem_embedded_clear_playlist), (totem_embedded_parse_duration), (entry_parsed): Store the playlist items in a struct, with associated information Parse (naively) duration information from the playlist parser When an error occurs during playback, and the file to play was marked as "short" (less than 60 seconds), skip to the next item in the playlist, so that unsupported "header" (adverts) are skipped (Closes: #358277)