Closed Bug 1271517 Opened 8 years ago Closed 8 years ago

Remove use of FlushableTaskQueue::Flush() from FFmpegDataDecoder::Flush()

Categories

(Core :: Audio/Video: Playback, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla49
Tracking Status
firefox49 --- fixed

People

(Reporter: jwwang, Assigned: jwwang)

References

Details

Attachments

(2 files)

As step forward to get rid of FlushableTaskQueue. We will borrow the code pattern from WMFMediaDataDecoder::mIsFlushing so FFmpegDataDecoder::Decode can bail out early when seeing mIsFlushing is true. Then we won't need FlushableTaskQueue::Flush() to clean decoding jobs.
Assignee: nobody → jwwang
Blocks: 1270039
Depends on: 1271508
(In reply to JW Wang [:jwwang] from comment #0) > As step forward to get rid of FlushableTaskQueue. > > We will borrow the code pattern from WMFMediaDataDecoder::mIsFlushing so > FFmpegDataDecoder::Decode can bail out early when seeing mIsFlushing is > true. Then we won't need FlushableTaskQueue::Flush() to clean decoding jobs. I don't think this will be sufficient. After a Flush() we don't expect any callback at all from the MediaDataDecoder, that includes calls to InputExhausted or DrainComplete().. The MediaFormatReader will have to be adjusted accordingly.
(In reply to Jean-Yves Avenard [:jya] from comment #2) > After a Flush() we don't expect any callback at all from the > MediaDataDecoder, that includes calls to InputExhausted or DrainComplete().. This behavior is preserved without this bug. And early bail out from FFmpegDataDecoder::Decode() will not change this behavior. So this bug will not break the behavior, right?
(In reply to JW Wang [:jwwang] from comment #3) > (In reply to Jean-Yves Avenard [:jya] from comment #2) > > After a Flush() we don't expect any callback at all from the > > MediaDataDecoder, that includes calls to InputExhausted or DrainComplete().. > > This behavior is preserved without this bug. And early bail out from > FFmpegDataDecoder::Decode() will not change this behavior. So this bug will > not break the behavior, right? What about: mDecoder->Drain(); immediately followed by mDecoder->Flush();
Actually never mind, the MFR already checks that flush() wasn't called and ignore any following calls to DrainComplete().
Comment on attachment 8751057 [details] MozReview Request: Bug 1271517. Part 1 - remove use of FlushableTaskQueue::Flush() from FFmpegDataDecoder::Flush(). r=jya. https://reviewboard.mozilla.org/r/51787/#review48697
Attachment #8751057 - Flags: review?(jyavenard) → review+
Comment on attachment 8751058 [details] MozReview Request: Bug 1271517. Part 2 - remove use of FlushableTaskQueue. r=jya. https://reviewboard.mozilla.org/r/51789/#review48699
Attachment #8751058 - Flags: review?(jyavenard) → review+
Thanks!
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: