Diff
Modified: releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog 2017-10-16 13:05:02 UTC (rev 223397)
@@ -1,3 +1,18 @@
+2017-09-22 Nael Ouedraogo <nael.ouedra...@crf.canon.fr>
+
+ [GTK] HTMLMediaElement resize event not fired when video size changes
+ https://bugs.webkit.org/show_bug.cgi?id=174582
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ Modify AppendPipeline to notify MediaPlayerPrivateGStreamerMSE that a track is detected
+ not only for the initial track detection but also for subsequent in particular when the
+ video size has changed.
+
+ Update test expectation for new passing tests.
+
+ * platform/gtk/TestExpectations:
+
2017-09-21 Zhifei FANG <facetothef...@gmail.com>
In regular block layout, the width of a child's margin box should always be equal to that of its containing block
Modified: releases/WebKitGTK/webkit-2.18/LayoutTests/platform/gtk/TestExpectations (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/LayoutTests/platform/gtk/TestExpectations 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/platform/gtk/TestExpectations 2017-10-16 13:05:02 UTC (rev 223397)
@@ -238,8 +238,6 @@
webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-append-buffer.html [ Failure ]
webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-avtracks.html [ Failure ]
webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-buffered.html [ Failure ]
-webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-av-framesize.html [ Failure ]
-webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize.html [ Failure ]
webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html [ Failure ]
webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-audio-bitrate.html [ Failure ]
webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-framesize.html [ Failure ]
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog 2017-10-16 13:05:02 UTC (rev 223397)
@@ -1,3 +1,27 @@
+2017-09-22 Nael Ouedraogo <nael.ouedra...@crf.canon.fr>
+
+ [GTK] HTMLMediaElement resize event not fired when video size changes
+ https://bugs.webkit.org/show_bug.cgi?id=174582
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ Modify AppendPipeline to notify MediaPlayerPrivateGStreamerMSE that a track is detected
+ not only for the initial track detection but also for subsequent in particular when the
+ video size has changed.
+
+ Update test expectation for new passing tests.
+
+ * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+ (WebCore::AppendPipeline::appsinkCapsChanged):
+ (WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
+ * platform/graphics/gstreamer/mse/AppendPipeline.h:
+ * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+ (WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
+ * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
+ * platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
+ (WebCore::PlaybackPipeline::reattachTrack):
+ * platform/graphics/gstreamer/mse/PlaybackPipeline.h:
+
2017-09-21 Zhifei FANG <facetothef...@gmail.com>
In regular block layout, the width of a child's margin box should always be equal to that of its containing block
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2017-10-16 13:05:02 UTC (rev 223397)
@@ -607,8 +607,8 @@
if (m_appsinkCaps != caps) {
m_appsinkCaps = WTFMove(caps);
- if (m_playerPrivate && previousCapsWereNull)
- m_playerPrivate->trackDetected(this, m_oldTrack, m_track);
+ if (m_playerPrivate)
+ m_playerPrivate->trackDetected(this, m_track, previousCapsWereNull);
didReceiveInitializationSegment();
gst_element_set_state(m_pipeline.get(), GST_STATE_PLAYING);
}
@@ -982,8 +982,6 @@
|| (m_mediaSourceClient->duration().isInvalid() && m_initialDuration > MediaTime::zeroTime()))
m_mediaSourceClient->durationChanged(m_initialDuration);
- m_oldTrack = m_track;
-
parseDemuxerSrcPadCaps(gst_caps_ref(caps.get()));
switch (m_streamType) {
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h 2017-10-16 13:05:02 UTC (rev 223397)
@@ -142,7 +142,6 @@
bool m_abortPending;
WebCore::MediaSourceStreamTypeGStreamer m_streamType;
- RefPtr<WebCore::TrackPrivateBase> m_oldTrack;
RefPtr<WebCore::TrackPrivateBase> m_track;
GRefPtr<GstBuffer> m_pendingBuffer;
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-10-16 13:05:02 UTC (rev 223397)
@@ -723,7 +723,7 @@
types = mimeTypeCache();
}
-void MediaPlayerPrivateGStreamerMSE::trackDetected(RefPtr<AppendPipeline> appendPipeline, RefPtr<WebCore::TrackPrivateBase> oldTrack, RefPtr<WebCore::TrackPrivateBase> newTrack)
+void MediaPlayerPrivateGStreamerMSE::trackDetected(RefPtr<AppendPipeline> appendPipeline, RefPtr<WebCore::TrackPrivateBase> newTrack, bool firstTrackDetected)
{
ASSERT(appendPipeline->track() == newTrack);
@@ -744,10 +744,10 @@
m_videoSize.setHeight(height);
}
- if (!oldTrack)
+ if (firstTrackDetected)
m_playbackPipeline->attachTrack(appendPipeline->sourceBufferPrivate(), newTrack, structure, caps);
else
- m_playbackPipeline->reattachTrack(appendPipeline->sourceBufferPrivate(), newTrack);
+ m_playbackPipeline->reattachTrack(appendPipeline->sourceBufferPrivate(), newTrack, mediaType);
}
const static HashSet<AtomicString>& codecSet()
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h 2017-10-16 13:05:02 UTC (rev 223397)
@@ -80,7 +80,7 @@
void markEndOfStream(MediaSourcePrivate::EndOfStreamStatus);
- void trackDetected(RefPtr<AppendPipeline>, RefPtr<WebCore::TrackPrivateBase> oldTrack, RefPtr<WebCore::TrackPrivateBase> newTrack);
+ void trackDetected(RefPtr<AppendPipeline>, RefPtr<WebCore::TrackPrivateBase>, bool firstTrackDetected);
void notifySeekNeedsDataForTime(const MediaTime&);
static bool supportsCodecs(const String& codecs);
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp 2017-10-16 13:05:02 UTC (rev 223397)
@@ -300,7 +300,7 @@
g_signal_emit(G_OBJECT(stream->parent), webKitMediaSrcSignals[signal], 0, nullptr);
}
-void PlaybackPipeline::reattachTrack(RefPtr<SourceBufferPrivateGStreamer> sourceBufferPrivate, RefPtr<TrackPrivateBase> trackPrivate)
+void PlaybackPipeline::reattachTrack(RefPtr<SourceBufferPrivateGStreamer> sourceBufferPrivate, RefPtr<TrackPrivateBase> trackPrivate, const char* mediaType)
{
GST_DEBUG("Re-attaching track");
@@ -315,10 +315,6 @@
ASSERT(stream && stream->type != Invalid);
- // The caps change is managed by gst_appsrc_push_sample() in enqueueSample() and
- // flushAndEnqueueNonDisplayingSamples(), so the caps aren't set from here.
- GRefPtr<GstCaps> appsrcCaps = adoptGRef(gst_app_src_get_caps(GST_APP_SRC(stream->appsrc)));
- const gchar* mediaType = gst_structure_get_name(gst_caps_get_structure(appsrcCaps.get(), 0));
int signal = -1;
GST_OBJECT_LOCK(webKitMediaSrc);
Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.h (223396 => 223397)
--- releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.h 2017-10-16 12:59:32 UTC (rev 223396)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.h 2017-10-16 13:05:02 UTC (rev 223397)
@@ -58,7 +58,7 @@
MediaSourcePrivate::AddStatus addSourceBuffer(RefPtr<SourceBufferPrivateGStreamer>);
void removeSourceBuffer(RefPtr<SourceBufferPrivateGStreamer>);
void attachTrack(RefPtr<SourceBufferPrivateGStreamer>, RefPtr<TrackPrivateBase>, GstStructure*, GstCaps*);
- void reattachTrack(RefPtr<SourceBufferPrivateGStreamer>, RefPtr<TrackPrivateBase>);
+ void reattachTrack(RefPtr<SourceBufferPrivateGStreamer>, RefPtr<TrackPrivateBase>, const char*);
void notifyDurationChanged();
// From MediaSourceGStreamer.