Граф коммитов

1369 Коммитов

Автор SHA1 Сообщение Дата
Andrew McCreight 0f605627fd Bug 1523013 - Clear SamplesWaitingForKey::mProxy in Shutdown(). r=cpearce
There's a strong cycle of references between SamplesWaitingForKey and
CDMProxy that does not get cleared unless keys actually come in. This
causes a leak. One way to avoid that leak is to clear the proxy
reference when the things holding the SamplesWaitingForKey is shut
down.

Differential Revision: https://phabricator.services.mozilla.com/D17960

--HG--
extra : moz-landing-system : lando
2019-01-30 22:56:21 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
John Lin 7821b39a44 Bug 1482452 - p2: validate object before sending to Java runtime. r=snorp
Depends on D16707

Differential Revision: https://phabricator.services.mozilla.com/D16708

--HG--
extra : moz-landing-system : lando
2019-01-16 16:31:19 +00:00
John Lin 72322eaae4 Bug 1508434 - p4: release audio output buffers after processing on task queue. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D15985

--HG--
extra : moz-landing-system : lando
2019-01-11 17:08:11 +00:00
John Lin 31377925fe Bug 1508434 - p3: assert members are only accessed on task queue. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D15740

--HG--
extra : moz-landing-system : lando
2019-01-11 17:08:03 +00:00
John Lin d6ebba5265 Bug 1508434 - p2: move codec output processing to task queue. r=jya
Processing MediaCodec output in Android binder threads while flushing
in task queue could cause race condition and leftover frames. Dispatch
the processing to task queue ensures all frames prior to flushing will
be cleared (by mDecodedData.Clear()) or ignored (by mInputInfos.Clear()).

Also consolidate all flushing operations in one task to avoid frame
insertion between emptying mDecodedData and mInputInfos.

Differential Revision: https://phabricator.services.mozilla.com/D15228

--HG--
extra : moz-landing-system : lando
2019-01-11 17:08:00 +00:00
John Lin 2a6faa6bf8 Bug 1508434 - p1: Support explicitly resetting seek threshold. r=jya
Usually the threshold is reset internally in MediaDataDecoder subclasses
that support the hint in their Flush() implementations so the value
will start fresh after seeking completed. But sometimes when there are
consecutive seek requests, MediaFormatReader::DecoderData::Flush() could
return early because DecoderData::mFlushed stays true when there is no
sample demuxed yet, and the threshold will not be cleared. Also, in
MediaFormatReader::SetVideoDecodeThreshold() we decide not to set the
hint when the seek target is close to EOS by checking the existence of
the next keyframe, and that could fail when there are gaps between MSE
buffered ranges. To make sure the hint is never out of date, we should
clear it rather than leaving it untouched.

Differential Revision: https://phabricator.services.mozilla.com/D15227

--HG--
extra : moz-landing-system : lando
2019-01-11 17:07:49 +00:00
Bryce Van Dyk fa9d86fda5 Bug 1487416 - Replace mValid and mMode with mCryptoScheme for track and sample crypto structs. r=jya
Explicitly store the crypto scheme being used on our crypto structs to let us
differentiate between cenc and cbcs data. In doing so remove mMode and replace
mValid with IsEncrypted() for the following reasons:
- Different modes within the existing schemes are not currently utilized by the
  spec: the scheme implies mode. Having a mode and a scheme could lead to confusion
  between the two. We can return mMode if ever needed by the spec --
  possibly if the isProtected flag which we were tracking with mMode, is
  ever changed to be more than a bool in the spec.
- mValid was typically used to check if these structs contained valid crypto
  data or not. With only one scheme this was often shorthand for 'IsEncrypted',
  but with multiple schemes what is considered valid data for one may not be for
  another. Do away with this and just explicitly have an 'IsEncrypted'.

Differential Revision: https://phabricator.services.mozilla.com/D15874

--HG--
extra : moz-landing-system : lando
2019-01-11 15:29:45 +00:00
Cosmin Sabou 15939f75f2 Backed out 6 changesets (bug 1487416) for causing Android build bustages on RemoteDataDecoder.cpp. CLOSED TREE
Backed out changeset 05bcc598e9fb (bug 1487416)
Backed out changeset b99936efbbc9 (bug 1487416)
Backed out changeset ee55b284223e (bug 1487416)
Backed out changeset d25449127f8f (bug 1487416)
Backed out changeset f7c201b7f9bc (bug 1487416)
Backed out changeset 233aedc8b42e (bug 1487416)
2019-01-10 23:37:20 +02:00
Bryce Van Dyk 1a3a965df3 Bug 1487416 - Replace mValid and mMode with mCryptoScheme for track and sample crypto structs. r=jya
Explicitly store the crypto scheme being used on our crypto structs to let us
differentiate between cenc and cbcs data. In doing so remove mMode and replace
mValid with IsEncrypted() for the following reasons:
- Different modes within the existing schemes are not currently utilized by the
  spec of implementation. Having a mode and a scheme could lead to confusion
  between the two. We can return mMode if ever needed by the spec.
- mValid was typically used to check if these structs contained valid crypto
  data or not. With only one scheme this was often shorthand for 'IsEncrypted',
  but with multiple schemes what is considered valid data for one may not be for
  another. Do away with this and just explicitly have an 'IsEncrypted'.

Differential Revision: https://phabricator.services.mozilla.com/D15874

--HG--
extra : moz-landing-system : lando
2019-01-10 18:37:48 +00:00
Brindusan Cristian e4a445730d Backed out 4 changesets (bug 1508434) for mda failures on test_waveShaperPassThrough.html. CLOSED TREE
Backed out changeset 1851290ec29b (bug 1508434)
Backed out changeset 12424313d637 (bug 1508434)
Backed out changeset 8fbed3243217 (bug 1508434)
Backed out changeset 25b67aa0ef55 (bug 1508434)
2019-01-09 21:00:35 +02:00
John Lin 9101933771 Bug 1508434 - p4: release audio output buffers after processing on task queue. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D15985

--HG--
extra : moz-landing-system : lando
2019-01-09 17:40:45 +00:00
John Lin b61754a7c8 Bug 1508434 - p3: assert members are only accessed on task queue. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D15740

--HG--
extra : moz-landing-system : lando
2019-01-09 17:40:53 +00:00
John Lin 4003a972dc Bug 1508434 - p2: move codec output processing to task queue. r=jya
Processing MediaCodec output in Android binder threads while flushing
in task queue could cause race condition and leftover frames. Dispatch
the processing to task queue ensures all frames prior to flushing will
be cleared (by mDecodedData.Clear()) or ignored (by mInputInfos.Clear()).

Also consolidate all flushing operations in one task to avoid frame
insertion between emptying mDecodedData and mInputInfos.

Differential Revision: https://phabricator.services.mozilla.com/D15228

--HG--
extra : moz-landing-system : lando
2019-01-08 20:57:47 +00:00
John Lin 3ef17ab0cb Bug 1508434 - p1: Support explicitly resetting seek threshold. r=jya
Usually the threshold is reset internally in MediaDataDecoder subclasses
that support the hint in their Flush() implementations so the value
will start fresh after seeking completed. But sometimes when there are
consecutive seek requests, MediaFormatReader::DecoderData::Flush() could
return early because DecoderData::mFlushed stays true when there is no
sample demuxed yet, and the threshold will not be cleared. Also, in
MediaFormatReader::SetVideoDecodeThreshold() we decide not to set the
hint when the seek target is close to EOS by checking the existence of
the next keyframe, and that could fail when there are gaps between MSE
buffered ranges. To make sure the hint is never out of date, we should
clear it rather than leaving it untouched.

Differential Revision: https://phabricator.services.mozilla.com/D15227

--HG--
extra : moz-landing-system : lando
2019-01-08 20:57:34 +00:00
Jean-Yves Avenard 0855e7a7da Bug 1513511 - P1. Use new FFmpeg decode API with recent FFmpeg version. r=bryce
In libavcodec 58 and later, the old avcodec_decode_video2 is broken and only return the first visible frame found after a VP9 super-frame.

This resulted in some YouTube videos for about 10% of the frames to never be returned.

Only the new API properly behaves so we upgrade our code to use it.

Differential Revision: https://phabricator.services.mozilla.com/D14682

--HG--
extra : moz-landing-system : lando
2018-12-17 17:29:13 +00:00
Jean-Yves Avenard ed5b2cd92a Bug 1513227 - P2. Remove unused files. r=jolin
Depends on D14158

Differential Revision: https://phabricator.services.mozilla.com/D14159

--HG--
extra : moz-landing-system : lando
2018-12-11 17:38:53 +00:00
Jean-Yves Avenard 7f7e06e3f1 Bug 1513227 - P1. Use correct constant to determine if HW decoding is enabled. r=jolin
Differential Revision: https://phabricator.services.mozilla.com/D14158

--HG--
extra : moz-landing-system : lando
2018-12-11 17:37:47 +00:00
John Lin eb4a57903b Bug 1510424 - fix AAC and FLAC EME support configuration. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D13135

--HG--
extra : moz-landing-system : lando
2018-12-07 14:40:50 +00:00
Jean-Yves Avenard 44594dd77a Bug 1510265 - P1. Enforce template-parameter classes restrictions in MozPromise. r=gerald
And some required fixes to make things compile.

Differential Revision: https://phabricator.services.mozilla.com/D13868

--HG--
extra : moz-landing-system : lando
2018-12-06 16:26:01 +00:00
Alex Chronopoulos e1c6dec154 Bug 1509327 - Use timing and color information from decoded picture in dav1d wrapper. r=jya
Latest dav1d version supports to store the timing information in undecoded frame and restore it later from decoded picture. This can provide more accurate timing especially during drain. In additionto that, colorspace information is set according to the size of the image. Finally this patch addresses some style comments.

Differential Revision: https://phabricator.services.mozilla.com/D13428

--HG--
extra : moz-landing-system : lando
2018-12-01 22:03:29 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Andreea Pavel 8e973f56b2 Backed out 3 changesets (bug 1509327) for build bustages on a CLOSED TREE
Backed out changeset aeb00b8974a4 (bug 1509327)
Backed out changeset ea27440a2126 (bug 1509327)
Backed out changeset 9881fd46fde2 (bug 1509327)
2018-11-30 05:16:08 +02:00
Alex Chronopoulos 74a439c923 Bug 1509327 - Use timing and color information from decoded picture in dav1d wrapper. r=jya
Latest dav1d version supports to store the timing information in undecoded frame and restore it later from decoded picture. This can provide more accurate timing especially during drain. In additionto that, colorspace information is set according to the size of the image. Finally this patch addresses some style comments.

Differential Revision: https://phabricator.services.mozilla.com/D13428

--HG--
extra : moz-landing-system : lando
2018-11-29 19:08:03 +00:00
Gabriele Svelto 19e52bebd4 Bug 1510582 - Remove useless inclusions of Services.h r=erahm
Differential Revision: https://phabricator.services.mozilla.com/D13240

--HG--
extra : moz-landing-system : lando
2018-11-28 17:25:23 +00:00
Coroiu Cristina 47323ec73b Merge mozilla-central to autoland a=merge on a CLOSED TREE 2018-11-28 23:56:03 +02:00
Brindusan Cristian eb07b312bf Backed out 3 changesets (bug 1486659) as requested by jhlin on irc for breaking video playback on Android and causing regression Bug 1510464. a=backout
Backed out changeset 9c2834ca8823 (bug 1486659)
Backed out changeset 5d897c0c7a25 (bug 1486659)
Backed out changeset b0fdcebfd20d (bug 1486659)
2018-11-28 19:09:13 +02:00
John Lin 739da292b4 Bug 1510363 - backout accidentally checked in file. r=jya
And add patterns to .gitignore to prevent future occurence.

Differential Revision: https://phabricator.services.mozilla.com/D13108

--HG--
extra : moz-landing-system : lando
2018-11-28 17:50:32 +00:00
Alex Chronopoulos 5dab77d453 Bug 1493400 - Implement platform decoder for dav1d. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D12164

--HG--
extra : moz-landing-system : lando
2018-11-27 14:18:58 +00:00
John Lin e43dca7804 Bug 1486659 - p3: copy texture contents for remote allocated Surface. r=snorp
Child processes cannot access textures allocated in the parent process,
which is needed by the compositor to render video elements efficiently.
Unfortunately, Android doesn't expose Sufrace buffers (sharable across
processes) in the SDK/NDK as other platforms, so we need to generate
extra texture/surface in the child process and update texture images
through the surface, which is passed to the parent process for the remote
texture to copy its contents into.

Differential Revision: https://phabricator.services.mozilla.com/D11939

--HG--
rename : mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/gfx/ISurfaceAllocator.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/gfx/SyncConfig.aidl
extra : moz-landing-system : lando
2018-11-26 19:41:31 +00:00
John Lin bfb5ef4f39 Bug 1425277 - p7: add apple encoder module and factory. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D7563

--HG--
extra : moz-landing-system : lando
2018-11-26 18:29:08 +00:00
John Lin c81fdae426 Bug 1425277 - p6: implement media encoder using Apple VideoToolbox API. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D7562

--HG--
extra : moz-landing-system : lando
2018-11-26 18:30:08 +00:00
John Lin b7271f6956 Bug 1425277 - p4: RAII for CVBuffer. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D7560

--HG--
extra : moz-landing-system : lando
2018-11-26 18:28:13 +00:00
John Lin b3b4fa64cc Bug 1425277 - p3: fix misplaced dependent header. r=jya To address compile error when AppleVTDeocder.cpp is moved to another unified source file or in non-unified builds.
Differential Revision: https://phabricator.services.mozilla.com/D7559

--HG--
extra : moz-landing-system : lando
2018-11-26 18:27:49 +00:00
John Lin 0ea8bb4a7a Bug 1425277 - p2: remove dynamic apple framework linkers. r=jya No need for own linkers anymore for CoreMedia and VideoToolbox are both available on our minimal supported version (10.9).
Differential Revision: https://phabricator.services.mozilla.com/D7558

--HG--
extra : moz-landing-system : lando
2018-11-26 18:27:32 +00:00
John Lin 25c2e37423 Bug 1425277 - p1: introduce media encoder interfaces. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D7557

--HG--
extra : moz-landing-system : lando
2018-11-26 18:27:14 +00:00
Jean-Yves Avenard b07c3f66ba Bug 1505284 - P3. Ensure gfxVars and gfxPrefs are always initialized when using PDMFactory. r=gerald
While typically those will always be, when using through gtest it won't.

Differential Revision: https://phabricator.services.mozilla.com/D12519

--HG--
extra : moz-landing-system : lando
2018-11-22 16:31:03 +00:00
Jean-Yves Avenard deafacba67 Bug 1505284 - P1. Use ffmpeg decoder for h264 in low latency mode. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D12431

--HG--
extra : moz-landing-system : lando
2018-11-22 16:30:06 +00:00
Karl Tomlinson cbf2ec1e66 Bug 1508909 revert reformat of third-party ffmpeg headers r=jya
Changes to these files from 0ceae9db9ec0 are reverted.

# skip-blame

Differential Revision: https://phabricator.services.mozilla.com/D12510

--HG--
extra : moz-landing-system : lando
2018-11-21 08:25:05 +00:00
Narcis Beleuzu 8b9e60f605 Backed out 2 changesets (bug 1505284) for GTest crashes on [@ mozilla::AppleDecoderModule::Init()] . CLOSED TREE
Backed out changeset 1d3eb26cfeac (bug 1505284)
Backed out changeset 05fd55926206 (bug 1505284)
2018-11-20 21:13:48 +02:00
Jean-Yves Avenard 4577072e13 Bug 1505284 - P1. Use ffmpeg decoder for h264 in low latency mode. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D12431

--HG--
extra : moz-landing-system : lando
2018-11-20 17:44:03 +00:00
Sylvestre Ledru 804b8b8883 Bug 1204606 - Reformat of dom/media r=jya
# skip-blame

Differential Revision: https://phabricator.services.mozilla.com/D12251

--HG--
extra : moz-landing-system : lando
2018-11-19 13:25:37 +00:00
Michael Froman 2e78f7f1a1 Bug 1471535 - pt12 - Hook up RDD process and Remote decoding. r=jya,spohl
Depends on D8493

Differential Revision: https://phabricator.services.mozilla.com/D8494

--HG--
extra : moz-landing-system : lando
2018-11-14 18:07:28 +00:00
Michael Froman 4e520483b8 Bug 1471535 - pt7 - Add remote decoding in dom/media/ipc alongside gpu decoding. r=jya,mattwoodrow,jld
Depends on D8488

Differential Revision: https://phabricator.services.mozilla.com/D8489

--HG--
extra : moz-landing-system : lando
2018-11-14 18:06:11 +00:00
Michael Froman 3e6ce9501a Bug 1471535 - pt2 - Fix lurking OSX and Win build issues prepping for RDD work. r=jya
Due to changes in where things end up in the unified builds.

Depends on D8482

Differential Revision: https://phabricator.services.mozilla.com/D8483

--HG--
extra : moz-landing-system : lando
2018-11-14 18:05:00 +00:00
Jean-Yves Avenard 75d4655f72 Bug 1482059 - P2. Use new VPx frame parser to detect content change. r=padenot
We also set the TrackInfoSharedPtr to each decoded sample so that on decoder that can be recycled (android) the frames are displayed with the right size.

Depends on D11588

Differential Revision: https://phabricator.services.mozilla.com/D11589

--HG--
extra : moz-landing-system : lando
2018-11-14 14:40:26 +00:00
Jean-Yves Avenard 06a5c6246d Bug 1482059 - P1. Implement VP8/VP9 frame header parser. r=TD-Linux
And use it to determine if a frame is a keyframe, its size and display size.

Differential Revision: https://phabricator.services.mozilla.com/D11588

--HG--
extra : moz-landing-system : lando
2018-11-14 09:33:10 +00:00
Michael Froman a2091796e4 Bug 1471535 - pt1 - Split RemoteVideoDecoder into GpuDecoderModule and RemoteMediaDataDecoder preparing for new RDD decoder work. r=jya
- also makes RemoteMediaDecoder generic so it can work with the remote decoders on the RDD process
- changes VideoDecoderChild to subclass IRemoteDecoderChild

Differential Revision: https://phabricator.services.mozilla.com/D8482

--HG--
rename : dom/media/ipc/RemoteVideoDecoder.cpp => dom/media/ipc/GpuDecoderModule.cpp
rename : dom/media/ipc/RemoteVideoDecoder.h => dom/media/ipc/GpuDecoderModule.h
extra : moz-landing-system : lando
2018-11-14 02:45:39 +00:00
Bogdan Tara fc8134a16a Backed out 12 changesets (bug 1471535) for VideoDecoderChild failures CLOSED TREE
Backed out changeset 3d8a11458d79 (bug 1471535)
Backed out changeset 2176010bc1fe (bug 1471535)
Backed out changeset dfb4d3462b22 (bug 1471535)
Backed out changeset ea6b73ded74d (bug 1471535)
Backed out changeset 404d760a9e82 (bug 1471535)
Backed out changeset 28ae4b6fab68 (bug 1471535)
Backed out changeset af91e1f04c2d (bug 1471535)
Backed out changeset d39fef4334b3 (bug 1471535)
Backed out changeset a038821cd8ae (bug 1471535)
Backed out changeset 5dcc74a938c6 (bug 1471535)
Backed out changeset 53aff7e699b4 (bug 1471535)
Backed out changeset f3f6abc052f0 (bug 1471535)

--HG--
rename : dom/media/ipc/GpuDecoderModule.cpp => dom/media/ipc/RemoteVideoDecoder.cpp
rename : dom/media/ipc/GpuDecoderModule.h => dom/media/ipc/RemoteVideoDecoder.h
2018-11-13 23:31:56 +02:00
Michael Froman 563ff5b11d Bug 1471535 - pt12 - Hook up RDD process and Remote decoding. r=jya,spohl
Depends on D8493

Differential Revision: https://phabricator.services.mozilla.com/D8494

--HG--
extra : moz-landing-system : lando
2018-11-13 17:36:47 +00:00