Closed
Bug 1128420
Opened 10 years ago
Closed 10 years ago
Properly handle finished output streams in MediaDecoder
Categories
(Core :: Audio/Video, defect)
Core
Audio/Video
Tracking
()
RESOLVED
FIXED
mozilla38
Tracking | Status | |
---|---|---|
firefox38 | --- | fixed |
People
(Reporter: jwwang, Assigned: jwwang)
References
Details
Attachments
(1 file)
(deleted),
patch
|
roc
:
review+
|
Details | Diff | Splinter Review |
When we seek at a position near the end to a previous position, chances are the output stream is finished without MediaDecoder::PlaybackEnded being called. The finished stream is then re-connected to the decoded stream in MediaDecoder::RecreateDecodedStream() and block the decoded stream. Therefore, the captured media element wouldn't be able to play after seeking.
We need to ensure finished streams are removed from the output streams of MediaDecoder to avoid this problem.
Assignee | ||
Comment 1•10 years ago
|
||
Remove finished streams in a reliable way. See comment 0 for the detail.
Try: https://tbpl.mozilla.org/?tree=Try&rev=4d9432fb964e
Most green in 30 runs on most platforms.
Assignee | ||
Comment 2•10 years ago
|
||
Comment on attachment 8561185 [details] [diff] [review]
1128420_remove_finished_output_streams-v1.patch
Review of attachment 8561185 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/media/MediaDecoder.cpp
@@ -944,5 @@
> mPlayState == PLAY_STATE_LOADING) {
> return;
> }
>
> - {
OutputStreamListener is responsible for removing finished streams. We don't need this block in PlaybackEnded() anymore.
::: dom/media/MediaDecoder.h
@@ -496,4 @@
> nsRefPtr<ProcessedMediaStream> mStream;
> // mPort connects mDecodedStream->mStream to our mStream.
> nsRefPtr<MediaInputPort> mPort;
> - bool mFinishWhenEnded;
We don't need mFinishWhenEnded for OutputStreamListener will be responsible for removing finished streams.
Attachment #8561185 -
Flags: review?(roc) → review+
Assignee | ||
Comment 3•10 years ago
|
||
Try: https://tbpl.mozilla.org/?tree=Try&rev=4d9432fb964e
Most green in 30 runs on most platforms.
inbound: https://hg.mozilla.org/integration/mozilla-inbound/rev/0f4fc6a418ed
Comment 4•10 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
status-firefox38:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
Updated•10 years ago
|
Blocks: eme-platform-uplift
Updated•10 years ago
|
No longer blocks: eme-platform-uplift
You need to log in
before you can comment on or make changes to this bug.
Description
•