Changeset 122187 in webkit


Ignore:
Timestamp:
Jul 9, 2012 7:38:21 PM (12 years ago)
Author:
Philippe Normand
Message:

[GStreamer] cache video dimensions
https://bugs.webkit.org/show_bug.cgi?id=90733

Reviewed by Martin Robinson.

Invalidate the cached video dimensions whenever the video-sink sink pad caps
change and let ::naturalSize() lazily recalculate them.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::naturalSize):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(MediaPlayerPrivateGStreamer):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r122185 r122187  
     12012-07-07  Philippe Normand  <pnormand@igalia.com>
     2
     3        [GStreamer] cache video dimensions
     4        https://bugs.webkit.org/show_bug.cgi?id=90733
     5
     6        Reviewed by Martin Robinson.
     7
     8        Invalidate the cached video dimensions whenever the video-sink sink pad caps
     9        change and let ::naturalSize() lazily recalculate them.
     10
     11        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
     12        (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
     13        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
     14        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
     15        (MediaPlayerPrivateGStreamer):
     16
    1172012-07-09  Eric Penner  <epenner@google.com>
    218
  • trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp

    r121707 r122187  
    496496        return IntSize();
    497497
     498    if (!m_videoSize.isEmpty())
     499        return m_videoSize;
     500
    498501    GstCaps* caps = webkitGstGetPadCaps(m_videoSinkPad.get());
    499502    if (!caps)
     
    543546
    544547    LOG_VERBOSE(Media, "Natural size: %" G_GUINT64_FORMAT "x%" G_GUINT64_FORMAT, width, height);
    545     return IntSize(static_cast<int>(width), static_cast<int>(height));
     548    m_videoSize = IntSize(static_cast<int>(width), static_cast<int>(height));
     549    return m_videoSize;
    546550}
    547551
     
    562566
    563567    m_hasVideo = videoTracks > 0;
     568
     569    m_videoSize = IntSize();
     570
    564571    m_player->mediaPlayerClient()->mediaPlayerEngineUpdated(m_player);
    565572}
  • trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h

    r121053 r122187  
    195195            GRefPtr<GstElement> m_webkitAudioSink;
    196196            GRefPtr<GstPad> m_videoSinkPad;
     197            mutable IntSize m_videoSize;
    197198    };
    198199}
Note: See TracChangeset for help on using the changeset viewer.