2010-12-01  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Martin Robinson.

        Volume control not correctly initialized
        https://bugs.webkit.org/show_bug.cgi?id=36299

        Replaced the mute/volume Timers with g_timeouts which are (for
        now, at least) more reliable than Timers for one-shot-fire-now
        actions.

        Test: media/video-volume.html

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::~MediaPlayer): Reset the raw pointers to 0
        when destructing the player.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::mediaPlayerPrivateVolumeChangeTimeoutCallback):
        (WebCore::mediaPlayerPrivateMuteChangeTimeoutCallback):
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange):
        (WebCore::MediaPlayerPrivateGStreamer::volumeChanged):
        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfMute):
        (WebCore::MediaPlayerPrivateGStreamer::muteChanged):
        (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Set
        playbin2 volume/mute base on MediaPlayer related values.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73014 268f45cc-cd09-0410-ab3c-d52691b4dbfc
4 files changed