Closed
Bug 1194612
Opened 9 years ago
Closed 9 years ago
AVC3 H264 is broken on mac
Categories
(Core :: Audio/Video: Playback, defect)
Tracking
()
RESOLVED
FIXED
mozilla43
Tracking | Status | |
---|---|---|
firefox43 | --- | fixed |
People
(Reporter: jya, Assigned: jya)
References
Details
Attachments
(4 files, 1 obsolete file)
1.21 KB,
patch
|
ayang
:
review+
|
Details | Diff | Splinter Review |
1.22 KB,
patch
|
ayang
:
review+
|
Details | Diff | Splinter Review |
3.31 KB,
patch
|
ayang
:
review+
|
Details | Diff | Splinter Review |
8.62 KB,
patch
|
ayang
:
review+
|
Details | Diff | Splinter Review |
This is a regression due to bug 1146086. When using AVC3, we can't immediately initialize the H264 decoder until a SPS has been seen. However, the H264Wrapper will immediately reject the init promise. This is wrong. The init promise logic is broken...
Assignee | ||
Comment 1•9 years ago
|
||
A decoder isn't created until a SPS and PPS NALs have been detected in the stream. The decoder will be initialised instead lazily later during the input process.
Assignee | ||
Updated•9 years ago
|
Attachment #8647948 -
Flags: review?(ayang)
Assignee | ||
Comment 2•9 years ago
|
||
There is another problem with the H264Converter; the first frame is dropped when the decoder is initialised which causes error when attempting to decode the frame
Assignee: nobody → jyavenard
Assignee | ||
Comment 3•9 years ago
|
||
It would cause the Apple VT decoder to fail decoding the frame, aborting playback
Assignee | ||
Comment 4•9 years ago
|
||
The initialisation promise rather than being launched on the reader's task queue, would be run on a task queue's specific thread We ended up with a race between two threads owned by the same task queue. Fun.
Attachment #8648005 -
Flags: review?(ayang)
Assignee | ||
Comment 5•9 years ago
|
||
Attachment #8648006 -
Flags: review?(ayang)
Assignee | ||
Updated•9 years ago
|
Attachment #8648004 -
Flags: review?(ayang)
Assignee | ||
Comment 6•9 years ago
|
||
The initialisation promise rather than being launched on the reader's task queue, would be run on a task queue's specific thread We ended up with a race between two threads owned by the same task queue. Fun.
Attachment #8648008 -
Flags: review?(ayang)
Assignee | ||
Updated•9 years ago
|
Attachment #8648005 -
Attachment is obsolete: true
Attachment #8648005 -
Flags: review?(ayang)
Comment 7•9 years ago
|
||
Comment on attachment 8647948 [details] [diff] [review] P1. Dont reject init promise when initialising H264Converter. Review of attachment 8647948 [details] [diff] [review]: ----------------------------------------------------------------- I thought I've tried all the cases, obviously not. Sorry for this regression.
Attachment #8647948 -
Flags: review?(ayang) → review+
Updated•9 years ago
|
Attachment #8648004 -
Flags: review?(ayang) → review+
Updated•9 years ago
|
Attachment #8648006 -
Flags: review?(ayang) → review+
Comment 8•9 years ago
|
||
Comment on attachment 8648008 [details] [diff] [review] P3. Make H264Converter thread safe. Review of attachment 8648008 [details] [diff] [review]: ----------------------------------------------------------------- Maybe we don't need to add ReaderTaskQueue() in callback. Task queue can be retrieved from AbstractThread::GetCurrent()->AsTaskQueue(), for example in [1]. [1] https://dxr.mozilla.org/mozilla-central/rev/38c1ea9ccae31700630f1fe0d651e94c0c5b9e1d/dom/media/MediaDecoderStateMachine.cpp#1722
Attachment #8648008 -
Flags: review?(ayang) → review+
Assignee | ||
Comment 9•9 years ago
|
||
Excellent, I had wondered if those existed. Ideally, I would have liked to use a new taskqueue, but was can't create a taskqueue outside the main thread because there's an assert when it's trying to read a preference which is very silly
Comment 10•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/f9a0ce79b27e https://hg.mozilla.org/integration/mozilla-inbound/rev/a2f27d383087 https://hg.mozilla.org/integration/mozilla-inbound/rev/e6d2cb05222a https://hg.mozilla.org/integration/mozilla-inbound/rev/dde632bce46c
Comment 11•9 years ago
|
||
Backed out for test bustage in https://hg.mozilla.org/integration/mozilla-inbound/rev/37dbde3bfc1b , see https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=dde632bce46c
Comment 12•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/cece40578641 https://hg.mozilla.org/integration/mozilla-inbound/rev/1d342107d552 https://hg.mozilla.org/integration/mozilla-inbound/rev/52145910f5b6
Comment 13•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/cece40578641 https://hg.mozilla.org/mozilla-central/rev/1d342107d552 https://hg.mozilla.org/mozilla-central/rev/52145910f5b6
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in
before you can comment on or make changes to this bug.
Description
•