RESOLVED FIXED 133452
[MSE][Mac] Media does not generate 'ended' event when playing to duration.
https://bugs.webkit.org/show_bug.cgi?id=133452
Summary [MSE][Mac] Media does not generate 'ended' event when playing to duration.
Jer Noble
Reported 2014-06-02 09:47:05 PDT
[MSE][Mac] Media does not generate 'ended' event when playing to duration.
Attachments
Patch (17.81 KB, patch)
2014-06-02 10:08 PDT, Jer Noble
eric.carlson: review+
Patch for landing (19.90 KB, patch)
2014-06-02 12:11 PDT, Jer Noble
no flags
Jer Noble
Comment 1 2014-06-02 10:08:55 PDT
Eric Carlson
Comment 2 2014-06-02 10:47:09 PDT
Comment on attachment 232387 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=232387&action=review > Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:325 > + if (currentMediaTime() >= m_mediaSourcePrivate->duration()) { > + effectiveRateChanged(); > + return; > + } Do you want to post a rate changed notification if this is called when the rate is non-zero? > Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:606 > + if (!m_mediaSourcePrivate) > + return; > + > + if (m_durationObserver) > + [m_synchronizer removeTimeObserver:m_durationObserver.get()]; Is there any reason to keep the observer for the (potentially invalid) duration if m_mediaSourcePrivate is NULL?
Jer Noble
Comment 3 2014-06-02 11:32:13 PDT
(In reply to comment #2) > (From update of attachment 232387 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=232387&action=review > > > Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:325 > > + if (currentMediaTime() >= m_mediaSourcePrivate->duration()) { > > + effectiveRateChanged(); > > + return; > > + } > > Do you want to post a rate changed notification if this is called when the rate is non-zero? Well, it doesn't hurt anything, but I guess the explicit notification isn't necessary. > > Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:606 > > + if (!m_mediaSourcePrivate) > > + return; > > + > > + if (m_durationObserver) > > + [m_synchronizer removeTimeObserver:m_durationObserver.get()]; > > Is there any reason to keep the observer for the (potentially invalid) duration if m_mediaSourcePrivate is NULL? Nope, I'll switch the order of these stanzas.
Jer Noble
Comment 4 2014-06-02 12:11:17 PDT
Created attachment 232391 [details] Patch for landing
Jer Noble
Comment 5 2014-06-02 12:43:41 PDT
Jer Noble
Comment 6 2014-06-02 12:44:04 PDT
GTK Build fix landed in r169537.
Note You need to log in before you can comment on or make changes to this bug.