2009-04-18 Pierre d'Herbemont <pdherbemont@apple.com>
authoreric.carlson@apple.com <eric.carlson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 18 Apr 2009 20:29:38 +0000 (20:29 +0000)
committereric.carlson@apple.com <eric.carlson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 18 Apr 2009 20:29:38 +0000 (20:29 +0000)
        Reviewed by Mark Rowe.

        <rdar://problem/6781295> video.buffered and video.seekable are not
        the same.

        * WebCore.base.exp: Added wkQTMovieMaxTimeSeekable.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::maxTimeSeekable): Return wkQTMovieMaxTimeSeekable.

        * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeSeekable.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/6781295> video.buffered and video.seekable are not
        the same.

        * WebCoreSupport/WebSystemInterface.m:
        (InitWebCoreSystemInterface): Add wkQTMovieMaxTimeSeekable.

2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/6781295> video.buffered and video.seekable are not
        the same.

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:
        * libWebKitSystemInterfaceTiger.a:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@42642 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/WebCore.base.exp
WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
WebCore/platform/mac/WebCoreSystemInterface.h
WebCore/platform/mac/WebCoreSystemInterface.mm
WebKit/mac/ChangeLog
WebKit/mac/WebCoreSupport/WebSystemInterface.m
WebKitLibraries/ChangeLog
WebKitLibraries/WebKitSystemInterface.h
WebKitLibraries/libWebKitSystemInterfaceLeopard.a
WebKitLibraries/libWebKitSystemInterfaceTiger.a

index 06950acfa66c489ae6a63cdf1c68c61e7a3b55d3..ed3d09ae2b0464507fa2dcb2df75d59b68eb7add 100644 (file)
@@ -2,6 +2,22 @@
 
         Reviewed by Mark Rowe.
 
+        <rdar://problem/6781295> video.buffered and video.seekable are not
+        the same. video.buffered should return only what is buffered and
+        not what is seekable
+
+        * WebCore.base.exp: Added wkQTMovieMaxTimeSeekable.
+
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        (WebCore::MediaPlayerPrivate::maxTimeSeekable): Return wkQTMovieMaxTimeSeekable.
+
+        * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeSeekable.
+        * platform/mac/WebCoreSystemInterface.mm: Ditto.
+
+2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
+
+        Reviewed by Adele Peterson.
+
         <rdar://problem/6747241> work around QTKit no longer reaching
         QTMovieLoadStateComplete
 
index e62545e0920a458fe71ecc693c8759601a8415f5..69d12ba9a2158b29347a653bbcdb9925babfa2a7 100644 (file)
@@ -984,6 +984,7 @@ _wkQTIncludeOnlyModernMediaFileTypes
 _wkQTMovieDataRate
 _wkQTMovieMaxTimeLoaded
 _wkQTMovieMaxTimeLoadedChangeNotification
+_wkQTMovieMaxTimeSeekable
 _wkQTMovieViewSetDrawSynchronously
 _wkSetCGFontRenderingMode
 _wkSetDragImage
index 4ad19f293b3076fa34eebe6f473c0c753ca22a2b..a0964ce19aef44d06964eeeedb59e0f8a3ae15b8 100644 (file)
@@ -611,8 +611,14 @@ float MediaPlayerPrivate::maxTimeBuffered() const
 
 float MediaPlayerPrivate::maxTimeSeekable() const
 {
+    if (!metaDataAvailable())
+        return 0;
+
     // infinite duration means live stream
-    return isinf(duration()) ? 0 : maxTimeLoaded();
+    if (isinf(duration()))
+        return 0;
+
+    return wkQTMovieMaxTimeSeekable(m_qtMovie.get());
 }
 
 float MediaPlayerPrivate::maxTimeLoaded() const
index fa9a46b0948e0b47dc9f65133c3b424f1f2653d3..cbe4aeae853b4e7c86221588a96277ed8a76e245 100644 (file)
@@ -121,6 +121,7 @@ extern unsigned (*wkQTIncludeOnlyModernMediaFileTypes)(void);
 extern int (*wkQTMovieDataRate)(QTMovie*);
 extern float (*wkQTMovieMaxTimeLoaded)(QTMovie*);
 extern NSString *(*wkQTMovieMaxTimeLoadedChangeNotification)(void);
+extern float (*wkQTMovieMaxTimeSeekable)(QTMovie*);
 extern void (*wkQTMovieViewSetDrawSynchronously)(QTMovieView*, BOOL);
 extern void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*);
 extern void (*wkSetDragImage)(NSImage*, NSPoint offset);
index 0c288bd052eaccf7a83108963ab7338b8a25352f..05d1da69406976598bfc0ed1aa0ac7100641b0be 100644 (file)
@@ -55,6 +55,7 @@ unsigned (*wkQTIncludeOnlyModernMediaFileTypes)(void);
 int (*wkQTMovieDataRate)(QTMovie*);
 float (*wkQTMovieMaxTimeLoaded)(QTMovie*);
 NSString *(*wkQTMovieMaxTimeLoadedChangeNotification)(void);
+float (*wkQTMovieMaxTimeSeekable)(QTMovie*);
 void (*wkQTMovieViewSetDrawSynchronously)(QTMovieView*, BOOL);
 void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*);
 void (*wkSetDragImage)(NSImage*, NSPoint offset);
index a49d42d146d7f7c9a157d17544890d50869aa320..c3ec57b91a41cb9b4a3ca2c9f607364fb7751ecc 100644 (file)
@@ -2,6 +2,17 @@
 
         Reviewed by Mark Rowe.
 
+        <rdar://problem/6781295> video.buffered and video.seekable are not
+        the same. video.buffered should return only what is buffered and
+        not what is seekable
+
+        * WebCoreSupport/WebSystemInterface.m:
+        (InitWebCoreSystemInterface): Add wkQTMovieMaxTimeSeekable.
+
+2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
+
+        Reviewed by Adele Peterson.
+
         <rdar://problem/6747241> work around QTKit no longer reaching
         QTMovieLoadStateComplete
 
index d47ff2b202f1c8d27644367b48a15409294767f6..5f98760534bd4c086ba501fc5465207b2eb05661 100644 (file)
@@ -76,6 +76,7 @@ void InitWebCoreSystemInterface(void)
     INIT(QTMovieDataRate);
     INIT(QTMovieMaxTimeLoaded);
     INIT(QTMovieMaxTimeLoadedChangeNotification);
+    INIT(QTMovieMaxTimeSeekable);
     INIT(QTMovieViewSetDrawSynchronously);
 
 #ifndef BUILDING_ON_TIGER
index ca1a92557ce124c31b4cc3d7ec8d9ec409538ae2..b37e5345946dea24161fc93c56758c19bebded88 100644 (file)
@@ -1,6 +1,18 @@
 2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
 
         Reviewed by Mark Rowe.
+
+        <rdar://problem/6781295> video.buffered and video.seekable are not
+        the same. video.buffered should return only what is buffered and
+        not what is seekable
+
+        * WebKitSystemInterface.h:
+        * libWebKitSystemInterfaceLeopard.a:
+        * libWebKitSystemInterfaceTiger.a:
+
+2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
+
+        Reviewed by Adele Peterson.
         
         <rdar://problem/6747241> work around QTKit no longer reaching
         QTMovieLoadStateComplete
index 0415d205c2cf68ad9f0bd4ae3d567f2b4e23dcd7..0596f03d9104f7f88d26ea3e04a073fb4fe2638a 100644 (file)
@@ -182,6 +182,7 @@ BOOL WKAppVersionCheckLessThan(NSString *, int, double);
 unsigned WKQTIncludeOnlyModernMediaFileTypes(void);
 int WKQTMovieDataRate(QTMovie* movie);
 float WKQTMovieMaxTimeLoaded(QTMovie* movie);
+float WKQTMovieMaxTimeSeekable(QTMovie* movie);
 NSString *WKQTMovieMaxTimeLoadedChangeNotification(void);
 void WKQTMovieViewSetDrawSynchronously(QTMovieView* view, BOOL sync);
 
index 4e1bc82a84dc20ccf7eb0835035381b43977f940..71985712456d3fd459f201dff617b985d28dafae 100644 (file)
Binary files a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a differ
index 046c9b280eec4965aff9ac6bd3e5d9ffd6f10209..1d73fad9c99a66495b494d5427e3329d00a4ef44 100644 (file)
Binary files a/WebKitLibraries/libWebKitSystemInterfaceTiger.a and b/WebKitLibraries/libWebKitSystemInterfaceTiger.a differ