Changeset 148099 in webkit


Ignore:
Timestamp:
Apr 10, 2013 9:25:14 AM (11 years ago)
Author:
eric.carlson@apple.com
Message:

Update all float attributes in HTMLMediaElement to double
https://bugs.webkit.org/show_bug.cgi?id=113615

Reviewed by Geoffrey Garen
Patch by Aaron Colwell

No new tests. Primary behavior doesn't change. Just time, playbackRate, and volume precision.
All existing LayoutTests/media tests still pass.

  • WebCore.exp.in: Remove function that no longer need to be exported.
  • html/HTMLMediaElement.cpp: Change all float attributes to double.
  • html/HTMLMediaElement.h: Ditto.
  • html/HTMLMediaElement.idl: Ditto.
  • html/MediaController.cpp: Ditto.
  • html/MediaController.h: Ditto.
  • html/MediaControllerInterface.h: Ditto.
  • html/TimeRanges.cpp: Ditto.
  • html/TimeRanges.idl: Ditto.
  • html/shadow/MediaControlElementTypes.cpp: Ditto.
  • html/shadow/MediaControlElementTypes.h: Ditto.
  • html/shadow/MediaControlElements.cpp: Ditto.
  • html/shadow/MediaControlElements.h: Ditto.
  • html/shadow/MediaControls.cpp: Ditto.
  • html/shadow/MediaControlsApple.cpp: Ditto.
  • html/shadow/MediaControlsBlackBerry.cpp: Ditto.
  • html/shadow/MediaControlsBlackBerry.h: Ditto.
  • html/shadow/MediaControlsGtk.cpp: Ditto.
  • html/track/TextTrackCue.cpp: Ditto.
  • html/track/TextTrackCue.h: Ditto.
  • platform/Clock.h: Ditto.
  • platform/ClockGeneric.cpp: Ditto.
  • platform/ClockGeneric.h: Ditto.
  • platform/graphics/MediaPlayer.cpp: Ditto.
  • platform/graphics/MediaPlayer.h: Ditto.
  • platform/graphics/MediaPlayerPrivate.h: Ditto.
  • platform/mac/PlatformClockCA.cpp: Ditto.
  • platform/mac/PlatformClockCA.h: Ditto.
  • platform/mac/PlatformClockCM.h: Ditto.
  • platform/mac/PlatformClockCM.mm: Ditto.
Location:
trunk/Source/WebCore
Files:
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r148098 r148099  
     12013-04-10  Eric Carlson  <eric.carlson@apple.com>
     2
     3        Update all float attributes in HTMLMediaElement to double
     4        https://bugs.webkit.org/show_bug.cgi?id=113615
     5
     6        Reviewed by Geoffrey Garen
     7        Patch by Aaron Colwell
     8
     9        No new tests. Primary behavior doesn't change. Just time, playbackRate, and volume precision.
     10        All existing LayoutTests/media tests still pass.
     11
     12        * WebCore.exp.in: Remove function that no longer need to be exported.
     13
     14        * html/HTMLMediaElement.cpp: Change all float attributes to double.
     15        * html/HTMLMediaElement.h: Ditto.
     16        * html/HTMLMediaElement.idl: Ditto.
     17        * html/MediaController.cpp: Ditto.
     18        * html/MediaController.h: Ditto.
     19        * html/MediaControllerInterface.h: Ditto.
     20        * html/TimeRanges.cpp: Ditto.
     21        * html/TimeRanges.idl: Ditto.
     22        * html/shadow/MediaControlElementTypes.cpp: Ditto.
     23        * html/shadow/MediaControlElementTypes.h: Ditto.
     24        * html/shadow/MediaControlElements.cpp: Ditto.
     25        * html/shadow/MediaControlElements.h: Ditto.
     26        * html/shadow/MediaControls.cpp: Ditto.
     27        * html/shadow/MediaControlsApple.cpp: Ditto.
     28        * html/shadow/MediaControlsBlackBerry.cpp: Ditto.
     29        * html/shadow/MediaControlsBlackBerry.h: Ditto.
     30        * html/shadow/MediaControlsGtk.cpp: Ditto.
     31        * html/track/TextTrackCue.cpp: Ditto.
     32        * html/track/TextTrackCue.h: Ditto.
     33        * platform/Clock.h: Ditto.
     34        * platform/ClockGeneric.cpp: Ditto.
     35        * platform/ClockGeneric.h: Ditto.
     36        * platform/graphics/MediaPlayer.cpp: Ditto.
     37        * platform/graphics/MediaPlayer.h: Ditto.
     38        * platform/graphics/MediaPlayerPrivate.h: Ditto.
     39        * platform/mac/PlatformClockCA.cpp: Ditto.
     40        * platform/mac/PlatformClockCA.h: Ditto.
     41        * platform/mac/PlatformClockCM.h: Ditto.
     42        * platform/mac/PlatformClockCM.mm: Ditto.
     43
    1442013-04-10  Patrick Gansterer  <paroga@webkit.org>
    245
  • trunk/Source/WebCore/WebCore.exp.in

    r147952 r148099  
    26682668__ZN7WebCore16HTMLMediaElement14beginScrubbingEv
    26692669__ZN7WebCore16HTMLMediaElement14exitFullscreenEv
    2670 __ZN7WebCore16HTMLMediaElement14setCurrentTimeEfRi
    26712670__ZN7WebCore16HTMLMediaElement15clearMediaCacheEv
    26722671__ZN7WebCore16HTMLMediaElement20getSitesInMediaCacheERN3WTF6VectorINS1_6StringELm0ENS1_15CrashOnOverflowEEE
     
    26742673__ZN7WebCore16HTMLMediaElement4playEv
    26752674__ZN7WebCore16HTMLMediaElement5pauseEv
    2676 __ZN7WebCore16HTMLMediaElement6rewindEf
    26772675__ZN7WebCore16HTMLMediaElement8setMutedEb
    2678 __ZN7WebCore16HTMLMediaElement9setVolumeEfRi
    26792676__ZNK7WebCore16HTMLMediaElement11currentTimeEv
    26802677__ZNK7WebCore16HTMLMediaElement13platformMediaEv
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r148050 r148099  
    253253    , m_previousProgressTime(numeric_limits<double>::max())
    254254    , m_lastTimeUpdateEventWallTime(0)
    255     , m_lastTimeUpdateEventMovieTime(numeric_limits<float>::max())
     255    , m_lastTimeUpdateEventMovieTime(numeric_limits<double>::max())
    256256    , m_loadState(WaitingForSource)
    257257#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
     
    10801080
    10811081
    1082 void HTMLMediaElement::updateActiveTextTrackCues(float movieTime)
     1082void HTMLMediaElement::updateActiveTextTrackCues(double movieTime)
    10831083{
    10841084    // 4.8.10.8 Playing the media resource
     
    11151115    // algorithm was last run for this media element, if this is not the first
    11161116    // time it has run.
    1117     float lastTime = m_lastTextTrackUpdateTime;
     1117    double lastTime = m_lastTextTrackUpdateTime;
    11181118
    11191119    // 4 - If the current playback position has, since the last time this
     
    11281128
    11291129        for (size_t i = 0; i < potentiallySkippedCues.size(); ++i) {
    1130             float cueStartTime = potentiallySkippedCues[i].low();
    1131             float cueEndTime = potentiallySkippedCues[i].high();
     1130            double cueStartTime = potentiallySkippedCues[i].low();
     1131            double cueEndTime = potentiallySkippedCues[i].high();
    11321132
    11331133            // Consider cues that may have been missed since the last seek time.
     
    20102010}
    20112011
    2012 void HTMLMediaElement::rewind(float timeDelta)
     2012void HTMLMediaElement::rewind(double timeDelta)
    20132013{
    20142014    LOG(Media, "HTMLMediaElement::rewind(%f)", timeDelta);
     
    20222022}
    20232023
    2024 void HTMLMediaElement::addPlayedRange(float start, float end)
     2024void HTMLMediaElement::addPlayedRange(double start, double end)
    20252025{
    20262026    LOG(Media, "HTMLMediaElement::addPlayedRange(%f, %f)", start, end);
     
    20492049}
    20502050
    2051 void HTMLMediaElement::seek(float time, ExceptionCode& ec)
     2051void HTMLMediaElement::seek(double time, ExceptionCode& ec)
    20522052{
    20532053    LOG(Media, "HTMLMediaElement::seek(%f)", time);
     
    20672067    // Get the current time before setting m_seeking, m_lastSeekTime is returned once it is set.
    20682068    refreshCachedTime();
    2069     float now = currentTime();
     2069    double now = currentTime();
    20702070
    20712071    // 2 - If the element's seeking IDL attribute is true, then another instance of this algorithm is
     
    20832083
    20842084    // 6 - If the new playback position is less than the earliest possible position, let it be that position instead.
    2085     float earliestTime = m_player->startTime();
     2085    double earliestTime = m_player->startTime();
    20862086    time = max(time, earliestTime);
    20872087
     
    20922092    // fire a 'seeked' event.
    20932093#if !LOG_DISABLED
    2094     float mediaTime = m_player->mediaTimeForTimeValue(time);
     2094    double mediaTime = m_player->mediaTimeForTimeValue(time);
    20952095    if (time != mediaTime)
    20962096        LOG(Media, "HTMLMediaElement::seek(%f) - media timeline equivalent is %f", time, mediaTime);
     
    21992199
    22002200// playback state
    2201 float HTMLMediaElement::currentTime() const
     2201double HTMLMediaElement::currentTime() const
    22022202{
    22032203#if LOG_CACHED_TIME_WARNINGS
     
    22152215    if (m_cachedTime != MediaPlayer::invalidTime() && m_paused) {
    22162216#if LOG_CACHED_TIME_WARNINGS
    2217         float delta = m_cachedTime - m_player->currentTime();
     2217        double delta = m_cachedTime - m_player->currentTime();
    22182218        if (delta > minCachedDeltaForWarning)
    22192219            LOG(Media, "HTMLMediaElement::currentTime - WARNING, cached time is %f seconds off of media time when paused", delta);
     
    22312231        // Not too soon, use the cached time only if it hasn't expired.
    22322232        if (wallClockDelta < maximumDurationToCacheMediaTime) {
    2233             float adjustedCacheTime = static_cast<float>(m_cachedTime + (m_playbackRate * wallClockDelta));
     2233            double adjustedCacheTime = m_cachedTime + (m_playbackRate * wallClockDelta);
    22342234
    22352235#if LOG_CACHED_TIME_WARNINGS
    2236             float delta = adjustedCacheTime - m_player->currentTime();
     2236            double delta = adjustedCacheTime - m_player->currentTime();
    22372237            if (delta > minCachedDeltaForWarning)
    22382238                LOG(Media, "HTMLMediaElement::currentTime - WARNING, cached time is %f seconds off of media time when playing", delta);
     
    22452245    if (maximumDurationToCacheMediaTime && now > m_minimumWallClockTimeToCacheMediaTime && m_cachedTime != MediaPlayer::invalidTime()) {
    22462246        double wallClockDelta = now - m_cachedTimeWallClockUpdateTime;
    2247         float delta = m_cachedTime + (m_playbackRate * wallClockDelta) - m_player->currentTime();
     2247        double delta = m_cachedTime + (m_playbackRate * wallClockDelta) - m_player->currentTime();
    22482248        LOG(Media, "HTMLMediaElement::currentTime - cached time was %f seconds off of media time when it expired", delta);
    22492249    }
     
    22552255}
    22562256
    2257 void HTMLMediaElement::setCurrentTime(float time, ExceptionCode& ec)
     2257void HTMLMediaElement::setCurrentTime(double time, ExceptionCode& ec)
    22582258{
    22592259    if (m_mediaController) {
     
    22642264}
    22652265
    2266 float HTMLMediaElement::startTime() const
     2266double HTMLMediaElement::startTime() const
    22672267{
    22682268    if (!m_player)
     
    22822282}
    22832283
    2284 float HTMLMediaElement::duration() const
     2284double HTMLMediaElement::duration() const
    22852285{
    22862286    if (m_player && m_readyState >= HAVE_METADATA)
    22872287        return m_player->duration();
    22882288
    2289     return numeric_limits<float>::quiet_NaN();
     2289    return numeric_limits<double>::quiet_NaN();
    22902290}
    22912291
     
    22952295}
    22962296
    2297 float HTMLMediaElement::defaultPlaybackRate() const
     2297double HTMLMediaElement::defaultPlaybackRate() const
    22982298{
    22992299    return m_defaultPlaybackRate;
    23002300}
    23012301
    2302 void HTMLMediaElement::setDefaultPlaybackRate(float rate)
     2302void HTMLMediaElement::setDefaultPlaybackRate(double rate)
    23032303{
    23042304    if (m_defaultPlaybackRate != rate) {
     
    23082308}
    23092309
    2310 float HTMLMediaElement::playbackRate() const
     2310double HTMLMediaElement::playbackRate() const
    23112311{
    23122312    return m_playbackRate;
    23132313}
    23142314
    2315 void HTMLMediaElement::setPlaybackRate(float rate)
     2315void HTMLMediaElement::setPlaybackRate(double rate)
    23162316{
    23172317    LOG(Media, "HTMLMediaElement::setPlaybackRate(%f)", rate);
     
    23292329void HTMLMediaElement::updatePlaybackRate()
    23302330{
    2331     float effectiveRate = m_mediaController ? m_mediaController->playbackRate() : m_playbackRate;
     2331    double effectiveRate = m_mediaController ? m_mediaController->playbackRate() : m_playbackRate;
    23322332    if (m_player && potentiallyPlaying() && m_player->rate() != effectiveRate)
    23332333        m_player->setRate(effectiveRate);
     
    26252625}
    26262626
    2627 float HTMLMediaElement::volume() const
     2627double HTMLMediaElement::volume() const
    26282628{
    26292629    return m_volume;
    26302630}
    26312631
    2632 void HTMLMediaElement::setVolume(float vol, ExceptionCode& ec)
     2632void HTMLMediaElement::setVolume(double vol, ExceptionCode& ec)
    26332633{
    26342634    LOG(Media, "HTMLMediaElement::setVolume(%f)", vol);
     
    27592759    // Some media engines make multiple "time changed" callbacks at the same time, but we only want one
    27602760    // event at a given time so filter here
    2761     float movieTime = currentTime();
     2761    double movieTime = currentTime();
    27622762    if (movieTime != m_lastTimeUpdateEventMovieTime) {
    27632763        scheduleEvent(eventNames().timeupdateEvent);
     
    27722772}
    27732773
    2774 float HTMLMediaElement::percentLoaded() const
     2774double HTMLMediaElement::percentLoaded() const
    27752775{
    27762776    if (!m_player)
    27772777        return 0;
    2778     float duration = m_player->duration();
     2778    double duration = m_player->duration();
    27792779
    27802780    if (!duration || std::isinf(duration))
    27812781        return 0;
    27822782
    2783     float buffered = 0;
     2783    double buffered = 0;
    27842784    RefPtr<TimeRanges> timeRanges = m_player->buffered();
    27852785    for (unsigned i = 0; i < timeRanges->length(); ++i) {
    2786         float start = timeRanges->start(i, IGNORE_EXCEPTION);
    2787         float end = timeRanges->end(i, IGNORE_EXCEPTION);
     2786        double start = timeRanges->start(i, IGNORE_EXCEPTION);
     2787        double end = timeRanges->end(i, IGNORE_EXCEPTION);
    27882788        buffered += end - start;
    27892789    }
     
    34633463    scheduleTimeupdateEvent(false);
    34643464
    3465     float now = currentTime();
    3466     float dur = duration();
     3465    double now = currentTime();
     3466    double dur = duration();
    34673467   
    34683468    // When the current playback position reaches the end of the media resource when the direction of
     
    35063506    beginProcessingMediaPlayerCallback();
    35073507    if (m_player) {
    3508         float vol = m_player->volume();
     3508        double vol = m_player->volume();
    35093509        if (vol != m_volume) {
    35103510            m_volume = vol;
     
    35353535    mediaPlayerCharacteristicChanged(player);
    35363536
    3537     float now = currentTime();
    3538     float dur = duration();
     3537    double now = currentTime();
     3538    double dur = duration();
    35393539    if (now > dur)
    35403540        seek(dur, IGNORE_EXCEPTION);
     
    36913691{
    36923692    if (m_playing) {
    3693         float time = currentTime();
     3693        double time = currentTime();
    36943694        if (time > m_lastSeekTime)
    36953695            addPlayedRange(m_lastSeekTime, time);
     
    37233723bool HTMLMediaElement::endedPlayback() const
    37243724{
    3725     float dur = duration();
     3725    double dur = duration();
    37263726    if (!m_player || std::isnan(dur))
    37273727        return false;
     
    37373737    // of playback is forwards, Either the media element does not have a loop attribute specified,
    37383738    // or the media element has a current media controller.
    3739     float now = currentTime();
     3739    double now = currentTime();
    37403740    if (m_playbackRate > 0)
    37413741        return dur > 0 && now >= dur && (!loop() || m_mediaController);
     
    37663766}
    37673767
    3768 float HTMLMediaElement::minTimeSeekable() const
     3768double HTMLMediaElement::minTimeSeekable() const
    37693769{
    37703770    return 0;
    37713771}
    37723772
    3773 float HTMLMediaElement::maxTimeSeekable() const
     3773double HTMLMediaElement::maxTimeSeekable() const
    37743774{
    37753775    return m_player ? m_player->maxTimeSeekable() : 0;
     
    37843784    if (!processingMediaPlayerCallback()) {
    37853785        Page* page = document()->page();
    3786         float volumeMultiplier = page ? page->mediaVolume() : 1;
     3786        double volumeMultiplier = page ? page->mediaVolume() : 1;
    37873787        bool shouldMute = m_muted;
    37883788
     
    38493849        m_playbackProgressTimer.stop();
    38503850        m_playing = false;
    3851         float time = currentTime();
     3851        double time = currentTime();
    38523852        if (time > m_lastSeekTime)
    38533853            addPlayedRange(m_lastSeekTime, time);
     
    47134713    // position relative to the MediaController's timeline or after the end of the media resource
    47144714    // relative to the MediaController's timeline.
    4715     float mediaControllerPosition = m_mediaController->currentTime();
     4715    double mediaControllerPosition = m_mediaController->currentTime();
    47164716    if (mediaControllerPosition < startTime() || mediaControllerPosition > startTime() + duration())
    47174717        return true;
     
    47234723{
    47244724    MediaFragmentURIParser fragmentParser(m_currentSrc);
    4725     float dur = duration();
     4725    double dur = duration();
    47264726   
    47274727    double start = fragmentParser.startTime();
  • trunk/Source/WebCore/html/HTMLMediaElement.h

    r147675 r148099  
    9898    virtual bool hasAudio() const;
    9999
    100     void rewind(float timeDelta);
     100    void rewind(double timeDelta);
    101101    void returnToRealtime();
    102102
     
    147147
    148148// playback state
    149     float currentTime() const;
    150     void setCurrentTime(float, ExceptionCode&);
     149    double currentTime() const;
     150    void setCurrentTime(double, ExceptionCode&);
    151151    double initialTime() const;
    152     float startTime() const;
    153     float duration() const;
     152    double startTime() const;
     153    double duration() const;
    154154    bool paused() const;
    155     float defaultPlaybackRate() const;
    156     void setDefaultPlaybackRate(float);
    157     float playbackRate() const;
    158     void setPlaybackRate(float);
     155    double defaultPlaybackRate() const;
     156    void setDefaultPlaybackRate(double);
     157    double playbackRate() const;
     158    void setPlaybackRate(double);
    159159    void updatePlaybackRate();
    160160    bool webkitPreservesPitch() const;
     
    209209    bool controls() const;
    210210    void setControls(bool);
    211     float volume() const;
    212     void setVolume(float, ExceptionCode&);
     211    double volume() const;
     212    void setVolume(double, ExceptionCode&);
    213213    bool muted() const;
    214214    void setMuted(bool);
     
    220220    bool canPlay() const;
    221221
    222     float percentLoaded() const;
     222    double percentLoaded() const;
    223223
    224224#if ENABLE(VIDEO_TRACK)
     
    496496    void stopPeriodicTimers();
    497497
    498     void seek(float time, ExceptionCode&);
     498    void seek(double time, ExceptionCode&);
    499499    void finishSeek();
    500500    void checkIfSeekNeeded();
    501     void addPlayedRange(float start, float end);
     501    void addPlayedRange(double start, double end);
    502502   
    503503    void scheduleTimeupdateEvent(bool periodicEvent);
     
    523523
    524524#if ENABLE(VIDEO_TRACK)
    525     void updateActiveTextTrackCues(float);
     525    void updateActiveTextTrackCues(double);
    526526    HTMLTrackElement* showingTrackWithSameKind(HTMLTrackElement*) const;
    527527
     
    550550    bool couldPlayIfEnoughData() const;
    551551
    552     float minTimeSeekable() const;
    553     float maxTimeSeekable() const;
     552    double minTimeSeekable() const;
     553    double maxTimeSeekable() const;
    554554
    555555    // Pauses playback without changing any states or generating events
    556556    void setPausedInternal(bool);
    557557
    558     void setPlaybackRateInternal(float);
     558    void setPlaybackRateInternal(double);
    559559
    560560    virtual void mediaCanStart();
     
    600600    OwnPtr<GenericEventQueue> m_asyncEventQueue;
    601601
    602     float m_playbackRate;
    603     float m_defaultPlaybackRate;
     602    double m_playbackRate;
     603    double m_defaultPlaybackRate;
    604604    bool m_webkitPreservesPitch;
    605605    NetworkState m_networkState;
     
    610610    RefPtr<MediaError> m_error;
    611611
    612     float m_volume;
    613     float m_lastSeekTime;
     612    double m_volume;
     613    double m_lastSeekTime;
    614614   
    615615    unsigned m_previousProgress;
     
    620620
    621621    // The last time a timeupdate event was sent in movie time.
    622     float m_lastTimeUpdateEventMovieTime;
     622    double m_lastTimeUpdateEventMovieTime;
    623623   
    624624    // Loading state.
     
    647647#endif
    648648
    649     mutable float m_cachedTime;
     649    mutable double m_cachedTime;
    650650    mutable double m_cachedTimeWallClockUpdateTime;
    651651    mutable double m_minimumWallClockTimeToCacheMediaTime;
     
    696696    bool m_haveVisibleTextTrack : 1;
    697697    bool m_processingPreferenceChange : 1;
    698 
    699698    float m_lastTextTrackUpdateTime;
     699
    700700    CaptionUserPreferences::CaptionDisplayMode m_captionDisplayMode;
    701701
  • trunk/Source/WebCore/html/HTMLMediaElement.idl

    r147857 r148099  
    6464
    6565// playback state
    66 attribute float currentTime
     66attribute double currentTime
    6767    setter raises (DOMException);
    6868readonly attribute double initialTime;
    69 readonly attribute float startTime;
    70 readonly attribute float duration;
     69readonly attribute double startTime;
     70readonly attribute double duration;
    7171readonly attribute boolean paused;
    72 attribute float defaultPlaybackRate;
    73 attribute float playbackRate;
     72attribute double defaultPlaybackRate;
     73attribute double playbackRate;
    7474readonly attribute TimeRanges played;
    7575readonly attribute TimeRanges seekable;
     
    8282// controls
    8383attribute boolean controls;
    84 attribute float volume
     84attribute double volume
    8585    setter raises (DOMException);
    8686attribute boolean muted;
  • trunk/Source/WebCore/html/MediaController.cpp

    r142810 r148099  
    130130}
    131131
    132 float MediaController::duration() const
     132double MediaController::duration() const
    133133{
    134134    // FIXME: Investigate caching the maximum duration and only updating the cached value
    135135    // when the slaved media elements' durations change.
    136     float maxDuration = 0;
    137     for (size_t index = 0; index < m_mediaElements.size(); ++index) {
    138         float duration = m_mediaElements[index]->duration();
     136    double maxDuration = 0;
     137    for (size_t index = 0; index < m_mediaElements.size(); ++index) {
     138        double duration = m_mediaElements[index]->duration();
    139139        if (std::isnan(duration))
    140140            continue;
     
    144144}
    145145
    146 float MediaController::currentTime() const
     146double MediaController::currentTime() const
    147147{
    148148    if (m_mediaElements.isEmpty())
     
    151151    if (m_position == MediaPlayer::invalidTime()) {
    152152        // Some clocks may return times outside the range of [0..duration].
    153         m_position = max(0.0f, min(duration(), m_clock->currentTime()));
     153        m_position = max(0.0, min(duration(), m_clock->currentTime()));
    154154        m_clearPositionTimer.startOneShot(0);
    155155    }
     
    158158}
    159159
    160 void MediaController::setCurrentTime(float time, ExceptionCode& code)
     160void MediaController::setCurrentTime(double time, ExceptionCode& code)
    161161{
    162162    // When the user agent is to seek the media controller to a particular new playback position,
    163163    // it must follow these steps:
    164164    // If the new playback position is less than zero, then set it to zero.
    165     time = max(0.0f, time);
     165    time = max(0.0, time);
    166166   
    167167    // If the new playback position is greater than the media controller duration, then set it
     
    218218}
    219219
    220 void MediaController::setDefaultPlaybackRate(float rate)
     220void MediaController::setDefaultPlaybackRate(double rate)
    221221{
    222222    if (m_defaultPlaybackRate == rate)
     
    231231}
    232232
    233 float MediaController::playbackRate() const
     233double MediaController::playbackRate() const
    234234{
    235235    return m_clock->playRate();
    236236}
    237237
    238 void MediaController::setPlaybackRate(float rate)
     238void MediaController::setPlaybackRate(double rate)
    239239{
    240240    if (m_clock->playRate() == rate)
     
    252252}
    253253
    254 void MediaController::setVolume(float level, ExceptionCode& code)
     254void MediaController::setVolume(double level, ExceptionCode& code)
    255255{
    256256    if (m_volume == level)
  • trunk/Source/WebCore/html/MediaController.h

    r136295 r148099  
    6161    virtual PassRefPtr<TimeRanges> played();
    6262   
    63     virtual float duration() const;
    64     virtual float currentTime() const;
    65     virtual void setCurrentTime(float, ExceptionCode&);
     63    virtual double duration() const;
     64    virtual double currentTime() const;
     65    virtual void setCurrentTime(double, ExceptionCode&);
    6666   
    6767    virtual bool paused() const { return m_paused; }
     
    7070    void unpause();
    7171   
    72     virtual float defaultPlaybackRate() const { return m_defaultPlaybackRate; }
    73     virtual void setDefaultPlaybackRate(float);
     72    virtual double defaultPlaybackRate() const { return m_defaultPlaybackRate; }
     73    virtual void setDefaultPlaybackRate(double);
    7474   
    75     virtual float playbackRate() const;
    76     virtual void setPlaybackRate(float);
     75    virtual double playbackRate() const;
     76    virtual void setPlaybackRate(double);
    7777   
    78     virtual float volume() const { return m_volume; }
    79     virtual void setVolume(float, ExceptionCode&);
     78    virtual double volume() const { return m_volume; }
     79    virtual void setVolume(double, ExceptionCode&);
    8080   
    8181    virtual bool muted() const { return m_muted; }
     
    144144    Vector<HTMLMediaElement*> m_mediaElements;
    145145    bool m_paused;
    146     float m_defaultPlaybackRate;
    147     float m_volume;
    148     mutable float m_position;
     146    double m_defaultPlaybackRate;
     147    double m_volume;
     148    mutable double m_position;
    149149    bool m_muted;
    150150    ReadyState m_readyState;
  • trunk/Source/WebCore/html/MediaControllerInterface.h

    r100159 r148099  
    4646    virtual PassRefPtr<TimeRanges> played() = 0;
    4747   
    48     virtual float duration() const = 0;
    49     virtual float currentTime() const = 0;
    50     virtual void setCurrentTime(float, ExceptionCode&) = 0;
     48    virtual double duration() const = 0;
     49    virtual double currentTime() const = 0;
     50    virtual void setCurrentTime(double, ExceptionCode&) = 0;
    5151   
    5252    virtual bool paused() const = 0;
     
    5454    virtual void pause() = 0;
    5555   
    56     virtual float defaultPlaybackRate() const = 0;
    57     virtual void setDefaultPlaybackRate(float) = 0;
     56    virtual double defaultPlaybackRate() const = 0;
     57    virtual void setDefaultPlaybackRate(double) = 0;
    5858   
    59     virtual float playbackRate() const = 0;
    60     virtual void setPlaybackRate(float) = 0;
     59    virtual double playbackRate() const = 0;
     60    virtual void setPlaybackRate(double) = 0;
    6161   
    62     virtual float volume() const = 0;
    63     virtual void setVolume(float, ExceptionCode&) = 0;
     62    virtual double volume() const = 0;
     63    virtual void setVolume(double, ExceptionCode&) = 0;
    6464   
    6565    virtual bool muted() const = 0;
  • trunk/Source/WebCore/html/TimeRanges.cpp

    r142271 r148099  
    3535using namespace std;
    3636
    37 TimeRanges::TimeRanges(float start, float end)
     37TimeRanges::TimeRanges(double start, double end)
    3838{
    3939    add(start, end);
     
    5454{
    5555    RefPtr<TimeRanges> inverted = TimeRanges::create();
    56     float posInf = std::numeric_limits<float>::infinity();
    57     float negInf = -std::numeric_limits<float>::infinity();
     56    double posInf = std::numeric_limits<double>::infinity();
     57    double negInf = -std::numeric_limits<double>::infinity();
    5858
    5959    if (!m_ranges.size())
    6060        inverted->add(negInf, posInf);
    6161    else {
    62         if (float start = m_ranges.first().m_start != negInf)
     62        if (double start = m_ranges.first().m_start != negInf)
    6363            inverted->add(negInf, start);
    6464
     
    6666            inverted->add(m_ranges[index].m_end, m_ranges[index + 1].m_start);
    6767
    68         if (float end = m_ranges.last().m_end != posInf)
     68        if (double end = m_ranges.last().m_end != posInf)
    6969            inverted->add(end, posInf);
    7070    }
     
    9696}
    9797
    98 float TimeRanges::start(unsigned index, ExceptionCode& ec) const
     98double TimeRanges::start(unsigned index, ExceptionCode& ec) const
    9999{
    100100    if (index >= length()) {
     
    105105}
    106106
    107 float TimeRanges::end(unsigned index, ExceptionCode& ec) const
     107double TimeRanges::end(unsigned index, ExceptionCode& ec) const
    108108{
    109109    if (index >= length()) {
     
    114114}
    115115
    116 void TimeRanges::add(float start, float end)
     116void TimeRanges::add(double start, double end)
    117117{
    118118    ASSERT(start <= end);
     
    157157}
    158158
    159 bool TimeRanges::contain(float time) const
     159bool TimeRanges::contain(double time) const
    160160{
    161161    for (unsigned n = 0; n < length(); n++) {
     
    166166}
    167167
    168 float TimeRanges::nearest(float time) const
     168double TimeRanges::nearest(double time) const
    169169{
    170     float closest = 0;
     170    double closest = 0;
    171171    unsigned count = length();
    172172    for (unsigned ndx = 0; ndx < count; ndx++) {
    173         float startTime = start(ndx, IGNORE_EXCEPTION);
    174         float endTime = end(ndx, IGNORE_EXCEPTION);
     173        double startTime = start(ndx, IGNORE_EXCEPTION);
     174        double endTime = end(ndx, IGNORE_EXCEPTION);
    175175        if (time >= startTime && time <= endTime)
    176176            return time;
  • trunk/Source/WebCore/html/TimeRanges.h

    r100159 r148099  
    4242        return adoptRef(new TimeRanges);
    4343    }
    44     static PassRefPtr<TimeRanges> create(float start, float end)
     44    static PassRefPtr<TimeRanges> create(double start, double end)
    4545    {
    4646        return adoptRef(new TimeRanges(start, end));
     
    5353
    5454    unsigned length() const { return m_ranges.size(); }
    55     float start(unsigned index, ExceptionCode&) const;
    56     float end(unsigned index, ExceptionCode&) const;
     55    double start(unsigned index, ExceptionCode&) const;
     56    double end(unsigned index, ExceptionCode&) const;
    5757   
    58     void add(float start, float end);
     58    void add(double start, double end);
    5959   
    60     bool contain(float time) const;
     60    bool contain(double time) const;
    6161   
    62     float nearest(float time) const;
     62    double nearest(double time) const;
    6363
    6464private:
    6565    TimeRanges() { }
    66     TimeRanges(float start, float end);
     66    TimeRanges(double start, double end);
    6767    TimeRanges(const TimeRanges&);
    6868
     
    7070    struct Range {
    7171        Range() { }
    72         Range(float start, float end)
     72        Range(double start, double end)
    7373        {
    7474            m_start = start;
    7575            m_end = end;
    7676        }
    77         float m_start;
    78         float m_end;
     77        double m_start;
     78        double m_end;
    7979
    80         inline bool isPointInRange(float point) const
     80        inline bool isPointInRange(double point) const
    8181        {
    8282            return m_start <= point && point < m_end;
  • trunk/Source/WebCore/html/TimeRanges.idl

    r141034 r148099  
    2929] interface TimeRanges {
    3030    readonly attribute unsigned long length;
    31     float start(in unsigned long index)
     31    double start(in unsigned long index)
    3232        raises (DOMException);
    33     float end(in unsigned long index)
     33    double end(in unsigned long index)
    3434        raises (DOMException);
    3535};
  • trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp

    r147675 r148099  
    3535#include "CSSValueKeywords.h"
    3636#include "ExceptionCodePlaceholder.h"
    37 #include "FloatConversion.h"
    3837#include "HTMLNames.h"
    3938#include "MouseEvent.h"
     
    4948
    5049// FIXME: These constants may need to be tweaked to better match the seeking in the QuickTime plug-in.
    51 static const float cSkipRepeatDelay = 0.1f;
    52 static const float cSkipTime = 0.2f;
    53 static const float cScanRepeatDelay = 1.5f;
    54 static const float cScanMaximumRate = 8;
     50static const double cSkipRepeatDelay = 0.1;
     51static const double cSkipTime = 0.2;
     52static const double cScanRepeatDelay = 1.5;
     53static const double cScanMaximumRate = 8;
    5554
    5655HTMLMediaElement* toParentMediaElement(Node* node)
     
    135134}
    136135
    137 void MediaControlTimeDisplayElement::setCurrentValue(float time)
     136void MediaControlTimeDisplayElement::setCurrentValue(double time)
    138137{
    139138    m_currentValue = time;
     
    230229}
    231230
    232 float MediaControlSeekButtonElement::nextRate() const
    233 {
    234     float rate = std::min(cScanMaximumRate, fabsf(mediaController()->playbackRate() * 2));
     231double MediaControlSeekButtonElement::nextRate() const
     232{
     233    double rate = std::min(cScanMaximumRate, fabs(mediaController()->playbackRate() * 2));
    235234    if (!isForwardButton())
    236235        rate *= -1;
     
    241240{
    242241    if (m_seekType == Skip) {
    243         float skipTime = isForwardButton() ? cSkipTime : -cSkipTime;
     242        double skipTime = isForwardButton() ? cSkipTime : -cSkipTime;
    244243        mediaController()->setCurrentTime(mediaController()->currentTime() + skipTime, IGNORE_EXCEPTION);
    245244    } else
     
    269268        return;
    270269
    271     float volume = narrowPrecisionToFloat(value().toDouble());
     270    double volume = value().toDouble();
    272271    if (volume != mediaController()->volume())
    273272        mediaController()->setVolume(volume, ASSERT_NO_EXCEPTION);
     
    292291}
    293292
    294 void MediaControlVolumeSliderElement::setVolume(float volume)
    295 {
    296     if (value().toFloat() != volume)
     293void MediaControlVolumeSliderElement::setVolume(double volume)
     294{
     295    if (value().toDouble() != volume)
    297296        setValue(String::number(volume));
    298297}
  • trunk/Source/WebCore/html/shadow/MediaControlElementTypes.h

    r147675 r148099  
    130130class MediaControlTimeDisplayElement : public MediaControlDivElement {
    131131public:
    132     void setCurrentValue(float);
    133     float currentValue() const { return m_currentValue; }
     132    void setCurrentValue(double);
     133    double currentValue() const { return m_currentValue; }
    134134
    135135protected:
     
    137137
    138138private:
    139     float m_currentValue;
     139    double m_currentValue;
    140140};
    141141
     
    174174    void startTimer();
    175175    void stopTimer();
    176     float nextRate() const;
     176    double nextRate() const;
    177177    void seekTimerFired(Timer<MediaControlSeekButtonElement>*);
    178178
     
    190190    virtual bool willRespondToMouseMoveEvents() OVERRIDE;
    191191    virtual bool willRespondToMouseClickEvents() OVERRIDE;
    192     void setVolume(float);
     192    void setVolume(double);
    193193    void setClearMutedOnUserInteraction(bool);
    194194
  • trunk/Source/WebCore/html/shadow/MediaControlElements.cpp

    r148061 r148099  
    3838#include "EventTarget.h"
    3939#include "ExceptionCodePlaceholder.h"
    40 #include "FloatConversion.h"
    4140#include "Frame.h"
    4241#include "GraphicsContext.h"
     
    630629{
    631630    if (event->type() == eventNames().clickEvent) {
    632         mediaController()->setCurrentTime(max(0.0f, mediaController()->currentTime() - 30), IGNORE_EXCEPTION);
     631        mediaController()->setCurrentTime(max(0.0, mediaController()->currentTime() - 30), IGNORE_EXCEPTION);
    633632        event->setDefaultHandled();
    634633    }
     
    946945        return;
    947946
    948     float time = narrowPrecisionToFloat(value().toDouble());
     947    double time = value().toDouble();
    949948    if (event->type() == eventNames().inputEvent && time != mediaController()->currentTime())
    950949        mediaController()->setCurrentTime(time, IGNORE_EXCEPTION);
     
    963962}
    964963
    965 void MediaControlTimelineElement::setPosition(float currentTime)
     964void MediaControlTimelineElement::setPosition(double currentTime)
    966965{
    967966    setValue(String::number(currentTime));
    968967}
    969968
    970 void MediaControlTimelineElement::setDuration(float duration)
     969void MediaControlTimelineElement::setDuration(double duration)
    971970{
    972971    setAttribute(maxAttr, String::number(std::isfinite(duration) ? duration : 0));
  • trunk/Source/WebCore/html/shadow/MediaControlElements.h

    r148050 r148099  
    334334    virtual bool willRespondToMouseClickEvents() OVERRIDE;
    335335
    336     void setPosition(float);
    337     void setDuration(float);
     336    void setPosition(double);
     337    void setDuration(double);
    338338
    339339private:
  • trunk/Source/WebCore/html/shadow/MediaControls.cpp

    r148050 r148099  
    9393    updateCurrentTimeDisplay();
    9494
    95     float duration = m_mediaController->duration();
     95    double duration = m_mediaController->duration();
    9696    if (std::isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
    9797        m_timeline->setDuration(duration);
     
    215215void MediaControls::updateCurrentTimeDisplay()
    216216{
    217     float now = m_mediaController->currentTime();
     217    double now = m_mediaController->currentTime();
    218218
    219219    Page* page = document()->page();
  • trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp

    r147675 r148099  
    324324        m_fullScreenButton->hide();
    325325
    326     float duration = m_mediaController->duration();
     326    double duration = m_mediaController->duration();
    327327    if (std::isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
    328328        m_timeline->setDuration(duration);
     
    382382void MediaControlsApple::updateCurrentTimeDisplay()
    383383{
    384     float now = m_mediaController->currentTime();
    385     float duration = m_mediaController->duration();
     384    double now = m_mediaController->currentTime();
     385    double duration = m_mediaController->duration();
    386386
    387387    Page* page = document()->page();
  • trunk/Source/WebCore/html/shadow/MediaControlsBlackBerry.cpp

    r144891 r148099  
    3434#include "DOMTokenList.h"
    3535#include "ExceptionCodePlaceholder.h"
    36 #include "FloatConversion.h"
    3736#include "Frame.h"
    3837#include "HTMLMediaElement.h"
     
    482481    timeline->ensureUserAgentShadowRoot();
    483482    timeline->setType("range");
    484     timeline->setAttribute(precisionAttr, "float");
     483    timeline->setAttribute(precisionAttr, "double");
    485484    return timeline.release();
    486485}
     
    506505        return;
    507506
    508     float time = narrowPrecisionToFloat(value().toDouble());
     507    double time = value().toDouble();
    509508    if (event->type() == eventNames().inputEvent && time != mediaController()->currentTime())
    510509        mediaController()->setCurrentTime(time, IGNORE_EXCEPTION);
     
    523522}
    524523
    525 void MediaControlFullscreenTimelineElement::setPosition(float currentTime)
     524void MediaControlFullscreenTimelineElement::setPosition(double currentTime)
    526525{
    527526    setValue(String::number(currentTime));
    528527}
    529528
    530 void MediaControlFullscreenTimelineElement::setDuration(float duration)
     529void MediaControlFullscreenTimelineElement::setDuration(double duration)
    531530{
    532531    setAttribute(maxAttr, String::number(std::isfinite(duration) ? duration : 0));
     
    912911            m_fullscreenFullScreenButton->hide();
    913912    }
    914     float duration = m_mediaController->duration();
     913    double duration = m_mediaController->duration();
    915914    if (std::isfinite(duration) || page->theme()->hasOwnDisabledStateHandlingFor(MediaSliderPart)) {
    916         float now = m_mediaController->currentTime();
     915        double now = m_mediaController->currentTime();
    917916        m_timeline->setDuration(duration);
    918917        m_fullscreenTimeline->setDuration(duration);
     
    956955    // playback playbackProgressed() will take care of it.
    957956    if (m_mediaController->paused()) {
    958         float now = m_mediaController->currentTime();
     957        double now = m_mediaController->currentTime();
    959958        m_timeline->setPosition(now);
    960959        m_fullscreenTimeline->setPosition(now);
     
    964963void MediaControlsBlackBerry::playbackStarted()
    965964{
    966     float now = m_mediaController->currentTime();
     965    double now = m_mediaController->currentTime();
    967966    m_playButton->updateDisplayType();
    968967    m_fullscreenPlayButton->updateDisplayType();
     
    977976void MediaControlsBlackBerry::playbackProgressed()
    978977{
    979     float now = m_mediaController->currentTime();
     978    double now = m_mediaController->currentTime();
    980979    m_timeline->setPosition(now);
    981980    m_fullscreenTimeline->setPosition(now);
     
    988987void MediaControlsBlackBerry::playbackStopped()
    989988{
    990     float now = m_mediaController->currentTime();
     989    double now = m_mediaController->currentTime();
    991990    m_playButton->updateDisplayType();
    992991    m_fullscreenPlayButton->updateDisplayType();
     
    10011000void MediaControlsBlackBerry::updateCurrentTimeDisplay()
    10021001{
    1003     float now = m_mediaController->currentTime();
    1004     float duration = m_mediaController->duration();
     1002    double now = m_mediaController->currentTime();
     1003    double duration = m_mediaController->duration();
    10051004
    10061005    Page* page = document()->page();
  • trunk/Source/WebCore/html/shadow/MediaControlsBlackBerry.h

    r137514 r148099  
    194194
    195195    virtual bool willRespondToMouseClickEvents() OVERRIDE;
    196     void setPosition(float);
    197     void setDuration(float);
     196    void setPosition(double);
     197    void setDuration(double);
    198198
    199199private:
  • trunk/Source/WebCore/html/shadow/MediaControlsGtk.cpp

    r145403 r148099  
    156156        return;
    157157
    158     float duration = m_mediaController->duration();
     158    double duration = m_mediaController->duration();
    159159    m_durationDisplay->setInnerText(page->theme()->formatMediaControlsTime(duration), ASSERT_NO_EXCEPTION);
    160160    m_durationDisplay->setCurrentValue(duration);
     
    173173void MediaControlsGtk::updateCurrentTimeDisplay()
    174174{
    175     float now = m_mediaController->currentTime();
    176     float duration = m_mediaController->duration();
     175    double now = m_mediaController->currentTime();
     176    double duration = m_mediaController->duration();
    177177
    178178    Page* page = document()->page();
  • trunk/Source/WebCore/html/track/TextTrackCue.cpp

    r148050 r148099  
    765765}
    766766
    767 void TextTrackCue::updateDisplayTree(float movieTime)
     767void TextTrackCue::updateDisplayTree(double movieTime)
    768768{
    769769    // The display tree may contain WebVTT timestamp objects representing
  • trunk/Source/WebCore/html/track/TextTrackCue.h

    r148050 r148099  
    148148    PassRefPtr<HTMLDivElement> element() const { return m_cueBackgroundBox; }
    149149
    150     void updateDisplayTree(float);
     150    void updateDisplayTree(double);
    151151    void removeDisplayTree();
    152152    void markFutureAndPastNodes(ContainerNode*, double, double);
  • trunk/Source/WebCore/platform/Clock.h

    r99222 r148099  
    3737    virtual ~Clock() { }
    3838
    39     virtual void setCurrentTime(float) = 0;
    40     virtual float currentTime() const = 0;
     39    virtual void setCurrentTime(double) = 0;
     40    virtual double currentTime() const = 0;
    4141
    42     virtual void setPlayRate(float) = 0;
    43     virtual float playRate() const = 0;
     42    virtual void setPlayRate(double) = 0;
     43    virtual double playRate() const = 0;
    4444
    4545    virtual void start() = 0;
  • trunk/Source/WebCore/platform/ClockGeneric.cpp

    r118205 r148099  
    2727#include "ClockGeneric.h"
    2828
    29 #include "FloatConversion.h"
    3029#include <wtf/CurrentTime.h>
    3130
     
    4039}
    4140
    42 void ClockGeneric::setCurrentTime(float time)
     41void ClockGeneric::setCurrentTime(double time)
    4342{
    4443    m_startTime = m_lastTime = now();
     
    4645}
    4746
    48 float ClockGeneric::currentTime() const
     47double ClockGeneric::currentTime() const
    4948{
    5049    if (m_running)
    5150        m_lastTime = now();
    52     float time = narrowPrecisionToFloat(((m_lastTime - m_startTime) * m_rate) + m_offset);
    53     return time;
     51    return ((m_lastTime - m_startTime) * m_rate) + m_offset;
    5452}
    5553
    56 void ClockGeneric::setPlayRate(float rate)
     54void ClockGeneric::setPlayRate(double rate)
    5755{
    5856    m_offset = now();
     
    8482    return WTF::currentTime();
    8583}
    86 
  • trunk/Source/WebCore/platform/ClockGeneric.h

    r118205 r148099  
    3636
    3737private:
    38     virtual void setCurrentTime(float);
    39     virtual float currentTime() const;
     38    virtual void setCurrentTime(double);
     39    virtual double currentTime() const;
    4040
    41     virtual void setPlayRate(float);
    42     virtual float playRate() const { return m_rate; }
     41    virtual void setPlayRate(double);
     42    virtual double playRate() const { return m_rate; }
    4343
    4444    virtual void start();
     
    4949
    5050    bool m_running;
    51     float m_rate;
     51    double m_rate;
    5252    double m_offset;
    5353    double m_startTime;
  • trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp

    r147888 r148099  
    114114    virtual void setVisible(bool) { }
    115115
    116     virtual float duration() const { return 0; }
    117 
    118     virtual float currentTime() const { return 0; }
    119     virtual void seek(float) { }
     116    virtual double durationDouble() const { return 0; }
     117
     118    virtual double currentTimeDouble() const { return 0; }
     119    virtual void seekDouble(double) { }
    120120    virtual bool seeking() const { return false; }
    121121
    122     virtual void setRate(float) { }
     122    virtual void setRateDouble(double) { }
    123123    virtual void setPreservesPitch(bool) { }
    124124    virtual bool paused() const { return false; }
    125125
    126     virtual void setVolume(float) { }
     126    virtual void setVolumeDouble(double) { }
    127127
    128128    virtual bool supportsMuting() const { return false; }
     
    135135    virtual MediaPlayer::ReadyState readyState() const { return MediaPlayer::HaveNothing; }
    136136
    137     virtual float maxTimeSeekable() const { return 0; }
     137    virtual double maxTimeSeekableDouble() const { return 0; }
    138138    virtual PassRefPtr<TimeRanges> buffered() const { return TimeRanges::create(); }
    139139
     
    512512#endif
    513513
    514 float MediaPlayer::duration() const
    515 {
    516     return m_private->duration();
    517 }
    518 
    519 float MediaPlayer::startTime() const
    520 {
    521     return m_private->startTime();
     514double MediaPlayer::duration() const
     515{
     516    return m_private->durationDouble();
     517}
     518
     519double MediaPlayer::startTime() const
     520{
     521    return m_private->startTimeDouble();
    522522}
    523523
     
    527527}
    528528
    529 float MediaPlayer::currentTime() const
    530 {
    531     return m_private->currentTime();
    532 }
    533 
    534 void MediaPlayer::seek(float time)
    535 {
    536     m_private->seek(time);
     529double MediaPlayer::currentTime() const
     530{
     531    return m_private->currentTimeDouble();
     532}
     533
     534void MediaPlayer::seek(double time)
     535{
     536    m_private->seekDouble(time);
    537537}
    538538
     
    607607}
    608608
    609 float MediaPlayer::volume() const
     609double MediaPlayer::volume() const
    610610{
    611611    return m_volume;
    612612}
    613613
    614 void MediaPlayer::setVolume(float volume)
     614void MediaPlayer::setVolume(double volume)
    615615{
    616616    m_volume = volume;
    617617
    618618    if (m_private->supportsMuting() || !m_muted)
    619         m_private->setVolume(volume);
     619        m_private->setVolumeDouble(volume);
    620620}
    621621
     
    645645}
    646646
    647 float MediaPlayer::rate() const
     647double MediaPlayer::rate() const
    648648{
    649649    return m_rate;
    650650}
    651651
    652 void MediaPlayer::setRate(float rate)
     652void MediaPlayer::setRate(double rate)
    653653{
    654654    m_rate = rate;
    655     m_private->setRate(rate);   
     655    m_private->setRateDouble(rate);
    656656}
    657657
     
    677677}
    678678
    679 float MediaPlayer::maxTimeSeekable()
    680 {
    681     return m_private->maxTimeSeekable();
     679double MediaPlayer::maxTimeSeekable()
     680{
     681    return m_private->maxTimeSeekableDouble();
    682682}
    683683
     
    852852}
    853853
    854 float MediaPlayer::mediaTimeForTimeValue(float timeValue) const
    855 {
    856     return m_private->mediaTimeForTimeValue(timeValue);
     854double MediaPlayer::mediaTimeForTimeValue(double timeValue) const
     855{
     856    return m_private->mediaTimeForTimeValueDouble(timeValue);
    857857}
    858858
     
    950950}
    951951
    952 void MediaPlayer::volumeChanged(float newVolume)
     952void MediaPlayer::volumeChanged(double newVolume)
    953953{
    954954    m_volume = newVolume;
  • trunk/Source/WebCore/platform/graphics/MediaPlayer.h

    r147675 r148099  
    299299    bool seeking() const;
    300300
    301     static float invalidTime() { return -1.0f;}
    302     float duration() const;
    303     float currentTime() const;
    304     void seek(float time);
    305 
    306     float startTime() const;
     301    static double invalidTime() { return -1.0;}
     302    double duration() const;
     303    double currentTime() const;
     304    void seek(double time);
     305
     306    double startTime() const;
    307307
    308308    double initialTime() const;
    309309
    310     float rate() const;
    311     void setRate(float);
     310    double rate() const;
     311    void setRate(double);
    312312
    313313    bool preservesPitch() const;   
     
    316316    PassRefPtr<TimeRanges> buffered();
    317317    PassRefPtr<TimeRanges> seekable();
    318     float maxTimeSeekable();
     318    double maxTimeSeekable();
    319319
    320320    bool didLoadingProgress();
    321321
    322     float volume() const;
    323     void setVolume(float);
     322    double volume() const;
     323    void setVolume(double);
    324324
    325325    bool muted() const;
     
    365365    void networkStateChanged();
    366366    void readyStateChanged();
    367     void volumeChanged(float);
     367    void volumeChanged(double);
    368368    void muteChanged(bool);
    369369    void timeChanged();
     
    415415    bool didPassCORSAccessCheck() const;
    416416
    417     float mediaTimeForTimeValue(float) const;
     417    double mediaTimeForTimeValue(double) const;
    418418
    419419    double maximumDurationToCacheMediaTime() const;
     
    488488    Preload m_preload;
    489489    bool m_visible;
    490     float m_rate;
    491     float m_volume;
     490    double m_rate;
     491    double m_volume;
    492492    bool m_muted;
    493493    bool m_preservesPitch;
  • trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h

    r147675 r148099  
    7171    virtual void setVisible(bool) = 0;
    7272
    73     virtual float duration() const = 0;
    74 
    75     virtual float currentTime() const = 0;
    76     virtual void seek(float time) = 0;
     73    virtual float duration() const { return 0; }
     74    virtual double durationDouble() const { return duration(); }
     75
     76    virtual float currentTime() const { return 0; }
     77    virtual double currentTimeDouble() const { return currentTime(); }
     78
     79    virtual void seek(float) { }
     80    virtual void seekDouble(double time) { seek(time); }
     81
    7782    virtual bool seeking() const = 0;
    7883
    7984    virtual float startTime() const { return 0; }
     85    virtual double startTimeDouble() const { return startTime(); }
    8086
    8187    virtual double initialTime() const { return 0; }
    8288
    83     virtual void setRate(float) = 0;
     89    virtual void setRate(float) { }
     90    virtual void setRateDouble(double rate) { setRate(rate); }
     91
    8492    virtual void setPreservesPitch(bool) { }
    8593
    8694    virtual bool paused() const = 0;
    8795
    88     virtual void setVolume(float) = 0;
     96    virtual void setVolume(float) { }
     97    virtual void setVolumeDouble(double volume) { return setVolume(volume); }
    8998
    9099    virtual bool supportsMuting() const { return false; }
     
    98107
    99108    virtual PassRefPtr<TimeRanges> seekable() const { return maxTimeSeekable() ? TimeRanges::create(0, maxTimeSeekable()) : TimeRanges::create(); }
    100     virtual float maxTimeSeekable() const = 0;
     109    virtual float maxTimeSeekable() const { return 0; }
     110    virtual double maxTimeSeekableDouble() const { return maxTimeSeekable(); }
    101111    virtual PassRefPtr<TimeRanges> buffered() const = 0;
    102112
     
    150160    // engine uses rational numbers to represent media time.
    151161    virtual float mediaTimeForTimeValue(float timeValue) const { return timeValue; }
     162    virtual double mediaTimeForTimeValueDouble(double timeValue) const { return timeValue; }
    152163
    153164    // Overide this if it is safe for HTMLMediaElement to cache movie time and report
  • trunk/Source/WebCore/platform/mac/PlatformClockCA.cpp

    r103249 r148099  
    3030#include "PlatformClockCA.h"
    3131
    32 #include "FloatConversion.h"
    3332#include <AudioToolbox/CoreAudioClock.h>
    3433#include <CoreAudio/AudioHardware.h>
     
    6261}
    6362
    64 void PlatformClockCA::setCurrentTime(float time)
     63void PlatformClockCA::setCurrentTime(double time)
    6564{
    6665    if (m_running)
     
    7473}
    7574
    76 float PlatformClockCA::currentTime() const
     75double PlatformClockCA::currentTime() const
    7776{
    7877    CAClockTime caTime;
     
    8281    if (m_running) {
    8382        if (CAClockGetCurrentTime(m_clock, kCAClockTimeFormat_Seconds, &caTime) == noErr)
    84             return narrowPrecisionToFloat(caTime.time.seconds);
     83            return caTime.time.seconds;
    8584    } else {
    8685        if (CAClockGetStartTime(m_clock, kCAClockTimeFormat_Seconds, &caTime) == noErr)
    87             return narrowPrecisionToFloat(caTime.time.seconds);
     86            return caTime.time.seconds;
    8887    }
    8988    return 0;
    9089}
    9190
    92 void PlatformClockCA::setPlayRate(float rate)
     91void PlatformClockCA::setPlayRate(double rate)
    9392{
    9493    CAClockSetPlayRate(m_clock, rate);
    9594}
    9695
    97 float PlatformClockCA::PlatformClockCA::playRate() const
     96double PlatformClockCA::PlatformClockCA::playRate() const
    9897{
    9998    double rate = 0;
    10099    if (CAClockGetPlayRate(m_clock, &rate) == noErr)
    101         return narrowPrecisionToFloat(rate);
     100        return rate;
    102101    return 0;
    103102}
  • trunk/Source/WebCore/platform/mac/PlatformClockCA.h

    r99222 r148099  
    4141
    4242private:
    43     virtual void setCurrentTime(float);
    44     virtual float currentTime() const;
     43    virtual void setCurrentTime(double);
     44    virtual double currentTime() const;
    4545
    46     virtual void setPlayRate(float);
    47     virtual float playRate() const;
     46    virtual void setPlayRate(double);
     47    virtual double playRate() const;
    4848
    4949    virtual void start();
  • trunk/Source/WebCore/platform/mac/PlatformClockCM.h

    r106978 r148099  
    4545    void initializeWithTimingSource(CMClockRef);
    4646
    47     virtual void setCurrentTime(float);
    48     virtual float currentTime() const;
     47    virtual void setCurrentTime(double);
     48    virtual double currentTime() const;
    4949
    50     virtual void setPlayRate(float);
    51     virtual float playRate() const { return m_rate; }
     50    virtual void setPlayRate(double);
     51    virtual double playRate() const { return m_rate; }
    5252
    5353    virtual void start();
     
    5656
    5757    RetainPtr<CMTimebaseRef> m_timebase;
    58     float m_rate;
     58    double m_rate;
    5959    bool m_running;
    6060};
  • trunk/Source/WebCore/platform/mac/PlatformClockCM.mm

    r118204 r148099  
    3030#import "PlatformClockCM.h"
    3131
    32 #import "FloatConversion.h"
    3332#import "SoftLinking.h"
    3433#import <CoreMedia/CMAudioDeviceClock.h>
     
    7473}
    7574
    76 void PlatformClockCM::setCurrentTime(float time)
     75void PlatformClockCM::setCurrentTime(double time)
    7776{
    7877    CMTime cmTime = CMTimeMakeWithSeconds(time, DefaultTimeScale);
     
    8079}
    8180
    82 float PlatformClockCM::currentTime() const
     81double PlatformClockCM::currentTime() const
    8382{
    8483    CMTime cmTime = CMTimebaseGetTime(m_timebase.get());
    85     return narrowPrecisionToFloat(CMTimeGetSeconds(cmTime));
     84    return CMTimeGetSeconds(cmTime);
    8685}
    8786
    88 void PlatformClockCM::setPlayRate(float rate)
     87void PlatformClockCM::setPlayRate(double rate)
    8988{
    9089    if (m_rate == rate)
Note: See TracChangeset for help on using the changeset viewer.