Closed
Bug 1336358
Opened 8 years ago
Closed 8 years ago
Re-enable RemoteDataDecoder
Categories
(Core :: Audio/Video: Playback, defect)
Tracking
()
RESOLVED
FIXED
mozilla54
Tracking | Status | |
---|---|---|
firefox54 | --- | fixed |
People
(Reporter: jya, Assigned: jya)
References
Details
Attachments
(5 files, 3 obsolete files)
In bug 1319987, we disabled the RemoteDataDecoder for intermittent failure.
There appears to be data races occurring causing either the DrainComplete or InputExhausted callbacks to never be called.
This bug aim to track what's going on and re-enable it
Assignee | ||
Comment 1•8 years ago
|
||
The attached patch print some logs on the adb log thingy.
here is the output for the dom/media/mediasource/test/test_EndedEvent.html
02-05 22:08:47.592 12527 13056 I MFRDataDecoder: HandledDemuxedSample: supportRecycling=0 NeedDraining
02-05 22:08:47.592 12527 13056 I MFRDataDecoder: MFR::DrainDecoder
02-05 22:08:47.592 12527 13056 I MFRDataDecoder: MFR::DrainDecoder nothing to drain
02-05 22:08:47.592 12527 13056 I RemoteDataDecoder: Shutdown started
02-05 22:08:47.724 12527 13057 I MFRDataDecoder: Start Decode Video dts:3600000 pts:3600000
02-05 22:08:47.724 12527 13057 I RemoteDataDecoder: Decode started: dts:3600000 pts:3600000
02-05 22:08:47.740 12527 13091 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.741 12527 13058 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.747 12527 13057 I MFRDataDecoder: Start Decode Video dts:3633000 pts:3633000
02-05 22:08:47.747 12527 13057 I RemoteDataDecoder: Decode started: dts:3633000 pts:3633000
02-05 22:08:47.757 12527 12540 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.757 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.757 12527 13057 I MFRDataDecoder: Start Decode Video dts:3667000 pts:3667000
02-05 22:08:47.757 12527 13057 I RemoteDataDecoder: Decode started: dts:3667000 pts:3667000
02-05 22:08:47.759 12527 12541 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.760 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.760 12527 13057 I MFRDataDecoder: Start Decode Video dts:3700000 pts:3700000
02-05 22:08:47.760 12527 13057 I RemoteDataDecoder: Decode started: dts:3700000 pts:3700000
02-05 22:08:47.763 12527 13091 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.763 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.763 12527 13057 I MFRDataDecoder: Start Decode Video dts:3733000 pts:3733000
02-05 22:08:47.763 12527 13057 I RemoteDataDecoder: Decode started: dts:3733000 pts:3733000
02-05 22:08:47.829 12527 12540 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.829 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.830 12527 13057 I MFRDataDecoder: Start Decode Video dts:3767000 pts:3767000
02-05 22:08:47.830 12527 13057 I RemoteDataDecoder: Decode started: dts:3767000 pts:3767000
02-05 22:08:47.838 12527 12540 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.839 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.839 12527 13055 I MFRDataDecoder: Start Decode Video dts:3800000 pts:3800000
02-05 22:08:47.839 12527 13055 I RemoteDataDecoder: Decode started: dts:3800000 pts:3800000
02-05 22:08:47.841 12527 13091 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.842 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.842 12527 13056 I MFRDataDecoder: Start Decode Video dts:3833000 pts:3833000
02-05 22:08:47.842 12527 13056 I RemoteDataDecoder: Decode started: dts:3833000 pts:3833000
02-05 22:08:47.848 12527 12541 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.848 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.848 12527 13054 I MFRDataDecoder: Start Decode Video dts:3867000 pts:3867000
02-05 22:08:47.848 12527 13054 I RemoteDataDecoder: Decode started: dts:3867000 pts:3867000
02-05 22:08:47.853 12527 13091 I RemoteDataDecoder: HandleOutputFormatChanged
02-05 22:08:47.854 12527 12540 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.854 12527 13108 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.855 12527 13057 I MFRDataDecoder: Start Decode Video dts:3900000 pts:3900000
02-05 22:08:47.855 12527 13057 I RemoteDataDecoder: Decode started: dts:3900000 pts:3900000
02-05 22:08:47.858 12527 12541 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@df6fceb, info={ offset=0, size=8, pts=3600000, flags=1 } }
02-05 22:08:47.858 12527 12541 I RemoteDataDecoder: HandleOutput: pts:3600000 flags:1 size:8
02-05 22:08:47.858 12527 13108 I RemoteDataDecoder: Output
02-05 22:08:47.859 12527 12541 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-05 22:08:47.860 12527 13058 I RemoteDataDecoder: InputExhausted
02-05 22:08:47.860 12527 13057 I MFRDataDecoder: Start Decode Video dts:3933000 pts:3933000
02-05 22:08:47.860 12527 13057 I RemoteDataDecoder: Decode started: dts:3933000 pts:3933000
02-05 22:08:47.861 12527 12540 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@bfb7a48, info={ offset=0, size=8, pts=3633000, flags=0 } }
02-05 22:08:47.861 12527 12540 I RemoteDataDecoder: HandleOutput: pts:3633000 flags:0 size:8
02-05 22:08:47.863 12527 13108 I RemoteDataDecoder: Output
02-05 22:08:47.872 12527 13091 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@50530e1, info={ offset=0, size=8, pts=3667000, flags=0 } }
02-05 22:08:47.872 12527 13091 I RemoteDataDecoder: HandleOutput: pts:3667000 flags:0 size:8
02-05 22:08:47.872 12527 13108 I RemoteDataDecoder: Output
02-05 22:08:47.884 12527 12541 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@7208e06, info={ offset=0, size=8, pts=3700000, flags=0 } }
02-05 22:08:47.884 12527 12541 I RemoteDataDecoder: HandleOutput: pts:3700000 flags:0 size:8
02-05 22:08:47.885 12527 13058 I RemoteDataDecoder: Output
02-05 22:08:47.885 12527 12541 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@2c67cc7, info={ offset=0, size=8, pts=3733000, flags=0 } }
02-05 22:08:47.885 12527 12541 I RemoteDataDecoder: HandleOutput: pts:3733000 flags:0 size:8
02-05 22:08:47.886 12527 13108 I RemoteDataDecoder: Output
02-05 22:08:47.897 12527 12540 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@171f2f4, info={ offset=0, size=8, pts=3767000, flags=0 } }
02-05 22:08:47.897 12527 12540 I RemoteDataDecoder: HandleOutput: pts:3767000 flags:0 size:8
02-05 22:08:47.897 12527 13058 I RemoteDataDecoder: Output
02-05 22:13:46.394 12527 13646 I RemoteDataDecoder: Flush started
02-05 22:13:46.421 12527 13647 I RemoteDataDecoder: Shutdown started
02-05 22:13:46.422 12527 13649 W GeckoRemoteCodecProxy: release codec when 5 output buffers unhandled
In this log we can see that even afted a call to CodecProxy::RemoteDataDecoder::Input was called, no onInputExhausted came, even though onOutput was called.
So here the test timedout because the MFR won't use the MediaDataDecoder until the decode promise got resolved.
Here is the log where, all onnputExhausted were called, but after draining no sample with BUFFER_FLAG_END_OF_STREAM flag set was ever returned.
jyavenard@jyaaeroubuntu:~/Work/android-studio$ adb logcat -v threadtime | grep '\(DataDecoder\|GeckoRemoteCodecProxy\)'
02-06 09:05:33.570 4503 4774 I MFRDataDecoder: HandledDemuxedSample: supportRecycling=0 NeedDraining
02-06 09:05:33.570 4503 4774 I MFRDataDecoder: MFR::DrainDecoder
02-06 09:05:33.570 4503 4774 I MFRDataDecoder: MFR::DrainDecoder nothing to drain
02-06 09:05:33.570 4503 4774 I MediaCodecDataDecoder: Shutdown Started
02-06 09:05:33.598 4503 4774 I MediaCodecDataDecoder: Shutdown Started
02-06 09:05:33.641 4503 4774 I MFRDataDecoder: Start Decode Video dts:3600000 pts:3600000
02-06 09:05:33.641 4503 4774 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.653 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.653 4503 4774 I MFRDataDecoder: Start Decode Video dts:3633000 pts:3633000
02-06 09:05:33.653 4503 4774 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.665 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.665 4503 4770 I MFRDataDecoder: Start Decode Video dts:3667000 pts:3667000
02-06 09:05:33.665 4503 4770 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.674 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.674 4503 4776 I MFRDataDecoder: Start Decode Video dts:3700000 pts:3700000
02-06 09:05:33.674 4503 4776 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.677 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.678 4503 4774 I MFRDataDecoder: Start Decode Video dts:3733000 pts:3733000
02-06 09:05:33.678 4503 4774 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.685 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.686 4503 4774 I MFRDataDecoder: Start Decode Video dts:3767000 pts:3767000
02-06 09:05:33.686 4503 4774 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.688 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.689 4503 4776 I MFRDataDecoder: Start Decode Video dts:3800000 pts:3800000
02-06 09:05:33.689 4503 4776 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.695 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.696 4503 4771 I MFRDataDecoder: Start Decode Video dts:3833000 pts:3833000
02-06 09:05:33.696 4503 4771 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.701 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.701 4503 4774 I MFRDataDecoder: Start Decode Video dts:3867000 pts:3867000
02-06 09:05:33.701 4503 4774 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.706 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.707 4503 4776 I MFRDataDecoder: Start Decode Video dts:3900000 pts:3900000
02-06 09:05:33.707 4503 4776 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.713 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.714 4503 4776 I MFRDataDecoder: Start Decode Video dts:3933000 pts:3933000
02-06 09:05:33.714 4503 4776 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.722 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.723 4503 4771 I MFRDataDecoder: Start Decode Video dts:3967000 pts:3967000
02-06 09:05:33.723 4503 4771 I MediaCodecDataDecoder: Decode Started
02-06 09:05:33.727 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.728 4503 4774 I MFRDataDecoder: OnDemuxFailed EOS need draining
02-06 09:05:33.728 4503 4774 I MFRDataDecoder: MFR::DrainDecoder
02-06 09:05:33.728 4503 4774 I MFRDataDecoder: MFR::DrainDecoder start
02-06 09:05:33.728 4503 4774 I MediaCodecDataDecoder: Drain Started
02-06 09:05:33.748 4503 4796 I MediaCodecDataDecoder: HandleEOS: DrainComplete
02-06 09:05:33.748 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.751 4503 4776 I MediaCodecDataDecoder: Flush Started
02-06 09:05:33.757 4503 4796 I MediaCodecDataDecoder: WaitForInput: InputExhausted
02-06 09:05:33.758 4503 4776 I MediaCodecDataDecoder: Shutdown Started
02-06 09:05:33.794 4503 4776 I MediaCodecDataDecoder: Shutdown Started
02-06 09:19:24.950 5852 6646 I MFRDataDecoder: HandledDemuxedSample: supportRecycling=0 NeedDraining
02-06 09:19:24.950 5852 6646 I MFRDataDecoder: MFR::DrainDecoder
02-06 09:19:24.950 5852 6646 I MFRDataDecoder: MFR::DrainDecoder nothing to drain
02-06 09:19:24.950 5852 6646 I RemoteDataDecoder: Shutdown started
02-06 09:19:25.054 5852 6646 I MFRDataDecoder: Start Decode Video dts:3600000 pts:3600000
02-06 09:19:25.054 5852 6646 I RemoteDataDecoder: Decode started: dts:3600000 pts:3600000
02-06 09:19:25.058 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.060 5852 6650 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.061 5852 6648 I MFRDataDecoder: Start Decode Video dts:3633000 pts:3633000
02-06 09:19:25.061 5852 6648 I RemoteDataDecoder: Decode started: dts:3633000 pts:3633000
02-06 09:19:25.112 5852 5866 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.114 5852 6650 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.115 5852 6649 I MFRDataDecoder: Start Decode Video dts:3667000 pts:3667000
02-06 09:19:25.115 5852 6649 I RemoteDataDecoder: Decode started: dts:3667000 pts:3667000
02-06 09:19:25.119 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.120 5852 6650 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.124 5852 6646 I MFRDataDecoder: Start Decode Video dts:3700000 pts:3700000
02-06 09:19:25.124 5852 6646 I RemoteDataDecoder: Decode started: dts:3700000 pts:3700000
02-06 09:19:25.131 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.131 5852 6711 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.132 5852 6648 I MFRDataDecoder: Start Decode Video dts:3733000 pts:3733000
02-06 09:19:25.132 5852 6648 I RemoteDataDecoder: Decode started: dts:3733000 pts:3733000
02-06 09:19:25.152 5852 5866 I RemoteDataDecoder: HandleOutputFormatChanged
02-06 09:19:25.152 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.152 5852 6711 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.153 5852 6647 I MFRDataDecoder: Start Decode Video dts:3767000 pts:3767000
02-06 09:19:25.153 5852 6647 I RemoteDataDecoder: Decode started: dts:3767000 pts:3767000
02-06 09:19:25.160 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.160 5852 6711 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.161 5852 6649 I MFRDataDecoder: Start Decode Video dts:3800000 pts:3800000
02-06 09:19:25.161 5852 6649 I RemoteDataDecoder: Decode started: dts:3800000 pts:3800000
02-06 09:19:25.163 5852 5865 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@6e9b273, info={ offset=0, size=8, pts=3600000, flags=1 } }
02-06 09:19:25.163 5852 5865 I RemoteDataDecoder: HandleOutput: pts:3600000 flags:1 size:8
02-06 09:19:25.163 5852 6711 I RemoteDataDecoder: Output
02-06 09:19:25.163 5852 6713 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.164 5852 6650 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.164 5852 6646 I MFRDataDecoder: Start Decode Video dts:3833000 pts:3833000
02-06 09:19:25.164 5852 6646 I RemoteDataDecoder: Decode started: dts:3833000 pts:3833000
02-06 09:19:25.167 5852 5866 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.167 5852 6650 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.168 5852 6647 I MFRDataDecoder: Start Decode Video dts:3867000 pts:3867000
02-06 09:19:25.168 5852 6647 I RemoteDataDecoder: Decode started: dts:3867000 pts:3867000
02-06 09:19:25.168 5852 5865 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@dd23530, info={ offset=0, size=8, pts=3633000, flags=0 } }
02-06 09:19:25.168 5852 5865 I RemoteDataDecoder: HandleOutput: pts:3633000 flags:0 size:8
02-06 09:19:25.169 5852 6711 I RemoteDataDecoder: Output
02-06 09:19:25.169 5852 5866 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@1d575a9, info={ offset=0, size=8, pts=3667000, flags=0 } }
02-06 09:19:25.169 5852 5866 I RemoteDataDecoder: HandleOutput: pts:3667000 flags:0 size:8
02-06 09:19:25.169 5852 6711 I RemoteDataDecoder: Output
02-06 09:19:25.174 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.174 5852 6650 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.175 5852 6646 I MFRDataDecoder: Start Decode Video dts:3900000 pts:3900000
02-06 09:19:25.175 5852 6646 I RemoteDataDecoder: Decode started: dts:3900000 pts:3900000
02-06 09:19:25.176 5852 6713 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@b72c72e, info={ offset=0, size=8, pts=3700000, flags=0 } }
02-06 09:19:25.176 5852 6713 I RemoteDataDecoder: HandleOutput: pts:3700000 flags:0 size:8
02-06 09:19:25.176 5852 6711 I RemoteDataDecoder: Output
02-06 09:19:25.180 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.180 5852 6711 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.181 5852 6713 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@42302cf, info={ offset=0, size=8, pts=3733000, flags=0 } }
02-06 09:19:25.181 5852 6713 I RemoteDataDecoder: HandleOutput: pts:3733000 flags:0 size:8
02-06 09:19:25.181 5852 6650 I RemoteDataDecoder: Output
02-06 09:19:25.181 5852 6647 I MFRDataDecoder: Start Decode Video dts:3933000 pts:3933000
02-06 09:19:25.181 5852 6647 I RemoteDataDecoder: Decode started: dts:3933000 pts:3933000
02-06 09:19:25.182 5852 5866 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@8dd745c, info={ offset=0, size=8, pts=3767000, flags=0 } }
02-06 09:19:25.182 5852 5866 I RemoteDataDecoder: HandleOutput: pts:3767000 flags:0 size:8
02-06 09:19:25.182 5852 6650 I RemoteDataDecoder: Output
02-06 09:19:25.187 5852 6713 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.187 5852 6711 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.188 5852 6647 I MFRDataDecoder: Start Decode Video dts:3967000 pts:3967000
02-06 09:19:25.188 5852 6647 I RemoteDataDecoder: Decode started: dts:3967000 pts:3967000
02-06 09:19:25.189 5852 5866 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@ae6c365, info={ offset=0, size=8, pts=3800000, flags=0 } }
02-06 09:19:25.189 5852 5866 I RemoteDataDecoder: HandleOutput: pts:3800000 flags:0 size:8
02-06 09:19:25.190 5852 6650 I RemoteDataDecoder: Output
02-06 09:19:25.194 5852 5865 E GeckoRemoteCodecProxy: onInputExhausted mEndOfInput=false
02-06 09:19:25.194 5852 6650 I RemoteDataDecoder: InputExhausted
02-06 09:19:25.195 5852 6649 I MFRDataDecoder: OnDemuxFailed EOS need draining
02-06 09:19:25.195 5852 6649 I MFRDataDecoder: MFR::DrainDecoder
02-06 09:19:25.195 5852 6649 I MFRDataDecoder: MFR::DrainDecoder start
02-06 09:19:25.195 5852 6649 I RemoteDataDecoder: Drain started
02-06 09:19:25.196 5852 6713 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@8e8283a, info={ offset=0, size=8, pts=3833000, flags=0 } }
02-06 09:19:25.196 5852 6713 I RemoteDataDecoder: HandleOutput: pts:3833000 flags:0 size:8
02-06 09:19:25.196 5852 6650 I RemoteDataDecoder: Output
02-06 09:19:25.202 5852 5865 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@df6fceb, info={ offset=0, size=8, pts=3867000, flags=0 } }
02-06 09:19:25.202 5852 5865 I RemoteDataDecoder: HandleOutput: pts:3867000 flags:0 size:8
02-06 09:19:25.202 5852 6711 I RemoteDataDecoder: Output
02-06 09:19:25.207 5852 6713 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@bfb7a48, info={ offset=0, size=8, pts=3900000, flags=0 } }
02-06 09:19:25.207 5852 6713 I RemoteDataDecoder: HandleOutput: pts:3900000 flags:0 size:8
02-06 09:19:25.207 5852 6650 I RemoteDataDecoder: Output
02-06 09:19:25.213 5852 5866 E GeckoRemoteCodecProxy: onOutput sample={ buffer=org.mozilla.gecko.media.Sample$ArrayBuffer@50530e1, info={ offset=0, size=8, pts=3933000, flags=0 } }
02-06 09:19:25.213 5852 5866 I RemoteDataDecoder: HandleOutput: pts:3933000 flags:0 size:8
02-06 09:19:25.213 5852 6711 I RemoteDataDecoder: Output
Assignee | ||
Comment 2•8 years ago
|
||
Assignee | ||
Comment 3•8 years ago
|
||
Assignee | ||
Updated•8 years ago
|
Attachment #8833888 -
Attachment is obsolete: true
Comment 4•8 years ago
|
||
The "no EOS sample after draining" issue happened because all output buffers were hold in mDecodedData and there was none left for MediaCodec to use. I made a patch based on your suggestion in bug 1319987 comment 113 (use duration queue size to resolve drain promise) and run test_EndedEvent.html 1000 times without failure. Will upload it for review later.
So far haven't met the other issue with the patch applied. Will keep monitoring.
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 7•8 years ago
|
||
I'll take the solution proposed in bug 1336947 instead, which will call Drain multiple times instead.
While it may work for now in this particular case, there's no guarantee that all drained frames can be returned due to the lack of free buffer.
That would depend on the phone I guess.
Comment 8•8 years ago
|
||
Cool. I'll cancel the review then. :)
Updated•8 years ago
|
Attachment #8834335 -
Attachment is obsolete: true
Attachment #8834335 -
Flags: review?(jyavenard)
Updated•8 years ago
|
Attachment #8834336 -
Attachment is obsolete: true
Attachment #8834336 -
Flags: review?(jyavenard)
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Updated•8 years ago
|
Attachment #8834632 -
Flags: review?(jolin)
Attachment #8834633 -
Flags: review?(jolin)
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 17•8 years ago
|
||
mozreview-review |
Comment on attachment 8834633 [details]
Bug 1336358: P2. Drain Android's RemoteDataDecoder one frame at a time.
https://reviewboard.mozilla.org/r/110496/#review111852
::: dom/media/platforms/android/RemoteDataDecoder.cpp:533
(Diff revision 4)
> return InvokeAsync(mTaskQueue, __func__, [self, this]() {
> + RefPtr<DecodePromise> p = mDrainPromise.Ensure(__func__);
> + if (mDrained) {
> + // There's no operation to perform other than returning any already
> + // decoded data.
> + InputExhausted();
Now that `InputExhausted` doesn't request input at all, perhaps rename it to `ReturnDecodedData`?
Attachment #8834633 -
Flags: review?(jolin) → review+
Comment 18•8 years ago
|
||
mozreview-review |
Comment on attachment 8834632 [details]
Bug 1336358: P1. Revert "Bug 1319987: P12. Disable RemoteDataDecoder.".
https://reviewboard.mozilla.org/r/110494/#review111854
Attachment #8834632 -
Flags: review?(jolin) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 22•8 years ago
|
||
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1ffc124c5fc1
P1. Revert "Bug 1319987: P12. Disable RemoteDataDecoder.". r=jolin
https://hg.mozilla.org/integration/autoland/rev/c474e07f9ad8
P2. Drain Android's RemoteDataDecoder one frame at a time. r=jolin
I had to back these out for android failures like https://treeherder.mozilla.org/logviewer.html#?job_id=75627282&repo=autoland
https://hg.mozilla.org/integration/autoland/rev/1bbeb6d96dac
Flags: needinfo?(jyavenard)
Comment 24•8 years ago
|
||
This also fails the Android 4.3 debug mda dom/media/webaudio/test/test_mediaElementAudioSourceNodeVideo.html with: Test timed out.
https://treeherder.mozilla.org/logviewer.html#?job_id=75627866&repo=autoland
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 30•8 years ago
|
||
mozreview-review |
Comment on attachment 8836914 [details]
Bug 1336358: P3. Fix incorrect arguments in DurationMap.
https://reviewboard.mozilla.org/r/112230/#review113568
Cannot believe that it was not caught in my local tests! :$
Thanks a lot for saving my ***!
Attachment #8836914 -
Flags: review?(jolin) → review+
Assignee | ||
Comment 31•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8836914 [details]
Bug 1336358: P3. Fix incorrect arguments in DurationMap.
https://reviewboard.mozilla.org/r/112230/#review113568
The RemoteDataDecoder is disabled in central. Easy to miss, and I didnt see in the firet review either
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 36•8 years ago
|
||
mozreview-review |
Comment on attachment 8837163 [details]
Bug 1336358: P4. Disable some noisy tests on Android.
https://reviewboard.mozilla.org/r/112386/#review113758
Attachment #8837163 -
Flags: review?(padenot) → review+
Comment 37•8 years ago
|
||
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e1505ae7e25f
P1. Revert "Bug 1319987: P12. Disable RemoteDataDecoder.". r=jolin
https://hg.mozilla.org/integration/autoland/rev/fb0a390994d7
P2. Drain Android's RemoteDataDecoder one frame at a time. r=jolin
https://hg.mozilla.org/integration/autoland/rev/5dcc211ab7fe
P3. Fix incorrect arguments in DurationMap. r=jolin
https://hg.mozilla.org/integration/autoland/rev/d59dd0dca619
P4. Disable some noisy tests on Android. r=padenot
Comment 38•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fb0a390994d7
https://hg.mozilla.org/mozilla-central/rev/5dcc211ab7fe
https://hg.mozilla.org/mozilla-central/rev/d59dd0dca619
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox54:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
The other commit in the push also made it to m-c, the bug marking tool got thrown off by the word "revert" so skipped over it.
https://hg.mozilla.org/mozilla-central/rev/e1505ae7e25f
Assignee | ||
Updated•8 years ago
|
Flags: needinfo?(jyavenard)
Updated•8 years ago
|
Assignee: nobody → jyavenard
You need to log in
before you can comment on or make changes to this bug.
Description
•