Closed
Bug 1325558
Opened 7 years ago
Closed 7 years ago
[EME][Fennec] Handle "Sample wait for key" for OOP decoding case.
Categories
(Core :: Audio/Video: Playback, defect)
Core
Audio/Video: Playback
Tracking
()
RESOLVED
FIXED
mozilla53
Tracking | Status | |
---|---|---|
firefox53 | --- | fixed |
People
(Reporter: JamesCheng, Assigned: JamesCheng)
References
Details
Attachments
(1 file)
We did input sample to decoder when key is usable by [1] for in process decoding. We should do the same thing on OOP scenario. [1] http://searchfox.org/mozilla-central/rev/ac40ca3ec39efe85bfb111274c10ee4ceea5bb7a/dom/media/platforms/android/MediaCodecDataDecoder.cpp#162
Comment hidden (mozreview-request) |
Assignee | ||
Updated•7 years ago
|
Attachment #8821463 -
Flags: review?(kikuo)
Comment 2•7 years ago
|
||
mozreview-review |
Comment on attachment 8821463 [details] Bug 1325558 - [EME][Fennec] Handle Sample wait for key for OOP decoding case. https://reviewboard.mozilla.org/r/100766/#review101242 Thanks. ::: dom/media/platforms/android/MediaCodecDataDecoder.cpp:147 (Diff revision 1) > - , mSamplesWaitingForKey(new SamplesWaitingForKey(this, aCallback, > + , mSamplesWaitingForKey(new SamplesWaitingForKey(this, aCallback, > aTaskQueue, aProxy)) Not aligned intent. ::: dom/media/platforms/android/MediaCodecDataDecoder.cpp:265 (Diff revision 1) > - , mSamplesWaitingForKey(new SamplesWaitingForKey(this, aCallback, > + , mSamplesWaitingForKey(new SamplesWaitingForKey(this, aCallback, > aTaskQueue, aProxy)) ditto ::: dom/media/platforms/android/RemoteDataDecoder.cpp:102 (Diff revision 1) > > protected: > MediaDataDecoderCallback* mDecoderCallback; > }; > > -class RemoteVideoDecoder final : public RemoteDataDecoder > +class RemoteVideoDecoder : public RemoteDataDecoder I think it's possible to put the SamplesWaitForKey object into base class, i.e. MediaCodecDataDecoder, RemoteDataDecoder. So, SamplesWaitForKey can be initialized according to the input arguments. By that, we're able to call |mSamplesWaitingForKey->WaitIfKeyNotUsable(aSample)| inside the MediaCodecDataDecoder::Input or RemoteDataDecoder::Input. Same in |Shutdown| as well. We could reduce these codes for derived classes. Maybe in a follow-up bug. ::: dom/media/platforms/android/RemoteDataDecoder.cpp:328 (Diff revision 1) > + , mSamplesWaitingForKey(new SamplesWaitingForKey(this, aCallback, > + aTaskQueue, aProxy)) ditto ::: dom/media/platforms/android/RemoteDataDecoder.cpp:495 (Diff revision 1) > + , mSamplesWaitingForKey(new SamplesWaitingForKey(this, aCallback, > + aTaskQueue, aProxy)) ditto ::: dom/media/platforms/android/RemoteDataDecoder.cpp:546 (Diff revision 1) > RemoteDataDecoder::CreateVideoDecoder(const VideoInfo& aConfig, > MediaFormat::Param aFormat, > MediaDataDecoderCallback* aCallback, > layers::ImageContainer* aImageContainer, > - const nsString& aDrmStubId) > + const nsString& aDrmStubId, > + CDMProxy* aProxy, > + TaskQueue* aTaskQueue) ditto. ::: dom/media/platforms/android/RemoteDataDecoder.cpp:558 (Diff revision 1) > + aFormat, > + aCallback, > + aImageContainer, > + aDrmStubId, > + aProxy, > + aTaskQueue); ditto.
Attachment #8821463 -
Flags: review?(kikuo) → review+
Comment hidden (mozreview-request) |
Assignee | ||
Comment 4•7 years ago
|
||
Thank you, mSamplesWaitingForKey is not suitable to put it into base class, so I keep it in derived class. It could be refined into a better style, may refine it in the future.
Pushed by jacheng@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/84c93e608797 [EME][Fennec] Handle Sample wait for key for OOP decoding case. r=kikuo
Comment 6•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/84c93e608797
Status: NEW → RESOLVED
Closed: 7 years ago
status-firefox53:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
You need to log in
before you can comment on or make changes to this bug.
Description
•