After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 474841 - Quicktime: scroll bar doesn't move
Quicktime: scroll bar doesn't move
Status: RESOLVED OBSOLETE
Product: totem
Classification: Core
Component: Browser plugin (obsolete)
unspecified
Other Linux
: Normal normal
: ---
Assigned To: totem-browser-maint
totem-browser-maint
Depends on:
Blocks:
 
 
Reported: 2007-09-08 13:52 UTC by Bastien Nocera
Modified: 2010-01-07 16:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
totem-more-qt-javascript.patch (17.80 KB, patch)
2007-09-10 00:45 UTC, Bastien Nocera
none Details | Review

Description Bastien Nocera 2007-09-08 13:52:38 UTC
It should be able to though...
http://www.apple.com/uk/ipodtouch/guidedtour/small.html
Comment 1 Bastien Nocera 2007-09-08 13:54:25 UTC
** Message: WARNING: Site uses unimplemented function 'totemINarrowSpacePlayer::GetRate'
** Message: WARNING: Site uses unimplemented function 'totemINarrowSpacePlayer::GetMaxBytesLoaded'
** Message: WARNING: Site uses unimplemented function 'totemINarrowSpacePlayer::GetMovieSize'
** Message: WARNING: Site uses unimplemented function 'totemINarrowSpacePlayer::GetTime'
** Message: WARNING: Site uses unimplemented function 'totemINarrowSpacePlayer::GetDuration'
Comment 2 Bastien Nocera 2007-09-10 00:44:45 UTC
All the code is hiding there:
http://www.apple.com/euro/global/scripts/ac_quicktime.js
Comment 3 Bastien Nocera 2007-09-10 00:45:56 UTC
Created attachment 95239 [details] [review]
totem-more-qt-javascript.patch

Slight problem, the tick callback in the plugin is never getting called, so the play state keeps being wrong. The play/pause button on the site thus doesn't work.
Comment 4 Bastien Nocera 2007-09-10 10:25:36 UTC
Stupid mistake, wrong args for the signal in totemPlugin.cpp

We're also missing an implementation of totemINarrowSpacePlayer::SetTime for the seeking on the seek bar.
Comment 5 Bastien Nocera 2007-09-10 10:31:52 UTC
But how do we implement seeking on an fd :)
Comment 6 Bastien Nocera 2007-09-10 10:32:31 UTC
2007-09-10  Bastien Nocera  <hadess@hadess.net>

        * browser-plugin/totem-plugin-viewer-commands.h: Rename this...
        * browser-plugin/totem-plugin-viewer-constants.h: ...to that
        and add the states to those constants

        * browser-plugin/Makefile.am:
        * browser-plugin/org_gnome_totem_PluginViewer.xml:
        * browser-plugin/totempluginviewer-marshal.list:
        * browser-plugin/totemPlugin.cpp:
        * browser-plugin/totemPlugin.h:
        * browser-plugin/totem-plugin-viewer.c:
        (totem_embedded_class_init), (totem_embedded_set_state),
        (totem_embedded_set_logo_by_name), (totem_embedded_open_internal),
        (totem_embedded_play), (totem_embedded_pause),
        (totem_embedded_stop), (on_play_pause), (on_got_redirect),
        (on_video_button_press_event), (on_eos_event), (on_error_event),
        (on_tick), (totem_embedded_construct), (main):
        Add a Tick signal to the viewer, and catch it in the plugin. It
        gets the Time, Duration and state of the player
        Remember the length of a stream

        * browser-plugin/totemNarrowSpacePlugin.cpp:
        * browser-plugin/totemNarrowSpacePlugin.h: implement
        GetRate, GetMaxBytesLoaded, GetMovieSize, GetTime and GetDuration
        (Helps: #474841)
Comment 7 Christian Persch 2007-09-10 20:16:45 UTC
In totemScriptablePlugin::GetMaxBytesLoaded and the others where you access mPlugin you need to ensure it's not null: NS_ENSURE_STATE (IsValid());
Comment 8 Bastien Nocera 2007-09-11 14:55:10 UTC
(In reply to comment #7)
> In totemScriptablePlugin::GetMaxBytesLoaded and the others where you access
> mPlugin you need to ensure it's not null: NS_ENSURE_STATE (IsValid());

Good call, done now.
Comment 9 Bastien Nocera 2008-02-21 01:50:30 UTC
Shame that no websites seem to implement the necessary support for it to be seekable.

I reverted this commit:

2008-02-21  Bastien Nocera  <hadess@hadess.net>

        * browser-plugin/totemNarrowSpacePlugin.cpp:
        * browser-plugin/totemPlugin.cpp:
        * browser-plugin/totemPlugin.h: Implement SetTime
        using NPN_RequestRead() if it's available on the stream
        (which it usually never is...) (Closes: #474841)

http://svn.gnome.org/viewvc/totem?view=revision&revision=5158

After some changes on top of it:
- setting the stype to NP_SEEK; when not local
- not checking for mSeekable in RequestRead

I only got loads of GStreamer errors, as it doesn't seem to be able to resync with the data provided. I also think that there might be multiple requests going on at the same time, which isn't helping.

Needs more work. Christian, any input?
Comment 10 Bastien Nocera 2010-01-07 16:50:05 UTC
Page is gone, closing.