Closed
Bug 1325558
Opened 9 years ago
Closed 9 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•9 years ago
|
Attachment #8821463 -
Flags: review?(kikuo)
Comment 2•9 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•9 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•9 years ago
|
||
| bugherder | ||
Status: NEW → RESOLVED
Closed: 9 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
•