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

52 Коммитов

Автор SHA1 Сообщение Дата
Jean-Yves Avenard 33f592b6a5 Bug 1264199: P5. Perform all downmixing operations in DecodedAudioDataSink. r=kinetik
Performing all audio processing operations in the same place, allows to simplify the code.

Additionally, if accessibility.monoaudio.enable is not set, we always upmix mono to stereo so that if the first audio stream seen was mono, we aren't stuck playing all future streams in mono.

MozReview-Commit-ID: 5yANN6PLFhX

--HG--
extra : rebase_source : 8b2138368d97f4ec2857c021ed9605c633282ed2
2016-04-13 20:25:50 +10:00
Jean-Yves Avenard ec0a733d51 Bug 1264199: P3. Attempt to minimize audio quality loss and unnecessary processing. r=kinetik
We attempt to avoid unnecessary resampling of 44.1kHz and 48kHz content, for all others we use cubeb's preferred sampling rate as final sampling rate.

MozReview-Commit-ID: 413qnsDFHzY

--HG--
extra : rebase_source : ca3508aefb29e2e64e84774bddb9fe77654c8945
2016-04-13 17:55:48 +10:00
Jean-Yves Avenard 68dc5cfd31 Bug 1264199: P2. Ensure the AudioStream only ever receive the same content format. r=kinetik
The audio is automatically converted to always match the format of the first processed sample.
This is a temporary approach, as it would be preferred to use a final sampling rate not causing too much quality loss.

MozReview-Commit-ID: Lo3827aon43

--HG--
extra : rebase_source : 946eabde451a33018722cb6f1c0ca7b8c1d87009
2016-04-13 17:30:23 +10:00
Jean-Yves Avenard fa7bd08dd2 Bug 1264199: P1. Perform audio conversion in the MSDM taskqueue and ahead of use. r=kinetik
This will allow to easily detect audio configuration change prior immediate playback.

MozReview-Commit-ID: IwDUGOd17ND

--HG--
extra : rebase_source : ef2b492cfeed5eca8fdfcb5442dedc2b65fc1d8f
2016-04-13 17:17:54 +10:00
JW Wang 0c694cb31b Bug 1246051 - have MediaQueue<T>::Peek/PeekFront return a RefPtr<> to avoid dangling pointers per comment 0. r=gerald.
MozReview-Commit-ID: JhPVlqMWsTu
2016-04-25 14:36:07 +08:00
Carsten "Tomcat" Book a5380ba1b7 Backed out changeset 198add1ad218 (bug 1264199) for test failures in test_WaitingOnMissingData_mp4.html
--HG--
extra : rebase_source : 33dedc36a21a7d025aaba9c5e3febb841aafd626
2016-04-21 16:32:21 +02:00
Carsten "Tomcat" Book d86730e999 Backed out changeset d01ac4659cb4 (bug 1264199)
--HG--
extra : rebase_source : b25c66791db9aaaeb897da1f864d4fecb677e090
2016-04-21 16:32:00 +02:00
Carsten "Tomcat" Book c728b16f87 Backed out changeset 697006992f04 (bug 1264199)
--HG--
extra : rebase_source : 54261374ba3d452f9eb38a521d1a95f9b9bcc18e
2016-04-21 16:31:58 +02:00
Carsten "Tomcat" Book ba17b2d751 Backed out changeset 93ab5d1b04b0 (bug 1264199)
--HG--
extra : rebase_source : 0c5ec4b3526d6cfcc86d40221f298790f262227d
2016-04-21 16:31:55 +02:00
Carsten "Tomcat" Book baaa1f0ede Backed out changeset b83be2d0614b (bug 1264199)
--HG--
extra : rebase_source : f8962f950f2fa089ca7eb297aca3b8711c5586c5
2016-04-21 16:31:54 +02:00
Jean-Yves Avenard b6a41a813c Bug 1264199: P6. Drain resampler when changing format or reaching the end. r=kinetik
MozReview-Commit-ID: KqcB0FYxNtC

--HG--
extra : rebase_source : 6004cd28d70f5ac44644aa00f852d0afd95017a9
2016-04-14 15:44:02 +10:00
Jean-Yves Avenard 427e2852c6 Bug 1264199: P5. Perform all downmixing operations in DecodedAudioDataSink. r=kinetik
Performing all audio processing operations in the same place, allows to simplify the code.

Additionally, if accessibility.monoaudio.enable is not set, we always upmix mono to stereo so that if the first audio stream seen was mono, we aren't stuck playing all future streams in mono.

MozReview-Commit-ID: 5yANN6PLFhX

--HG--
extra : rebase_source : f40dfacc9fc323794325de0431c4958854012180
2016-04-13 20:25:50 +10:00
Jean-Yves Avenard f3ef547925 Bug 1264199: P3. Attempt to minimize audio quality loss and unnecessary processing. r=kinetik
We attempt to avoid unnecessary resampling of 44.1kHz and 48kHz content, for all others we use cubeb's preferred sampling rate as final sampling rate.

MozReview-Commit-ID: 413qnsDFHzY

--HG--
extra : rebase_source : a469cb7269be48bfbca82fbbd90c3e2caf21b9a7
2016-04-13 17:55:48 +10:00
Jean-Yves Avenard ad7e31a76a Bug 1264199: P2. Ensure the AudioStream only ever receive the same content format. r=kinetik
The audio is automatically converted to always match the format of the first processed sample.
This is a temporary approach, as it would be preferred to use a final sampling rate not causing too much quality loss.

MozReview-Commit-ID: Lo3827aon43

--HG--
extra : rebase_source : 51322d12415995bd5ba7d8a25500860f333c9c3e
2016-04-13 17:30:23 +10:00
Jean-Yves Avenard d8c778f022 Bug 1264199: P1. Perform audio conversion in the reader's taskqueue and ahead of use. r=kinetik
This will allow to easily detect audio configuration change prior immediate playback.

MozReview-Commit-ID: IwDUGOd17ND

--HG--
extra : rebase_source : 3af32634eb431661436bf1d3aaeb80124b229716
2016-04-13 17:17:54 +10:00
Wes Kocher b8f98ffe9f Backed out 8 changesets (bug 1264199) for permafailing media mochitests on OSX 10.6 a=backout
Backed out changeset 0f20f2080824 (bug 1264199)
Backed out changeset 90351d2719be (bug 1264199)
Backed out changeset f484b42cbdda (bug 1264199)
Backed out changeset b79b62146120 (bug 1264199)
Backed out changeset f587df589b69 (bug 1264199)
Backed out changeset 02f781a573b4 (bug 1264199)
Backed out changeset d3677ae4c8ec (bug 1264199)
Backed out changeset d08288654ec9 (bug 1264199)

MozReview-Commit-ID: HVtiBSOxf7t
2016-04-20 11:01:36 -07:00
Jean-Yves Avenard ab5924e4e6 Bug 1264199: P6. Drain resampler when changing format or reaching the end. r=kinetik
MozReview-Commit-ID: KqcB0FYxNtC
2016-04-20 15:03:40 +10:00
Jean-Yves Avenard 29ce436a1b Bug 1264199: P5. Perform all downmixing operations in DecodedAudioDataSink. r=kinetik
Performing all audio processing operations in the same place, allows to simplify the code.

Additionally, if accessibility.monoaudio.enable is not set, we always upmix mono to stereo so that if the first audio stream seen was mono, we aren't stuck playing all future streams in mono.

MozReview-Commit-ID: 5yANN6PLFhX
2016-04-20 15:03:34 +10:00
Jean-Yves Avenard a0ed015dba Bug 1264199: P3. Attempt to minimize audio quality loss and unnecessary processing. r=kinetik
We attempt to avoid unnecessary resampling of 44.1kHz and 48kHz content, for all others we use cubeb's preferred sampling rate as final sampling rate.

MozReview-Commit-ID: 413qnsDFHzY
2016-04-20 15:03:20 +10:00
Jean-Yves Avenard 024b052f14 Bug 1264199: P2. Ensure the AudioStream only ever receive the same content format. r=kinetik
The audio is automatically converted to always match the format of the first processed sample.
This is a temporary approach, as it would be preferred to use a final sampling rate not causing too much quality loss.

MozReview-Commit-ID: Lo3827aon43
2016-04-20 15:03:14 +10:00
Jean-Yves Avenard b130178b94 Bug 1264199: P1. Perform audio conversion in the reader's taskqueue and ahead of use. r=kinetik
This will allow to easily detect audio configuration change prior immediate playback.

MozReview-Commit-ID: IwDUGOd17ND
2016-04-20 15:02:55 +10:00
Carsten "Tomcat" Book 0a327c9b21 Backed out changeset b15c10c42148 (bug 1264199) for android crashes 2016-04-18 14:22:19 +02:00
Carsten "Tomcat" Book 564bf14aa1 Backed out changeset 6b82e89a490e (bug 1264199) 2016-04-18 14:22:06 +02:00
Carsten "Tomcat" Book e53741644d Backed out changeset 04751f3545ad (bug 1264199) 2016-04-18 14:22:05 +02:00
Carsten "Tomcat" Book fbf1d00b15 Backed out changeset f323c504b5a5 (bug 1264199) 2016-04-18 14:22:02 +02:00
Carsten "Tomcat" Book 5cd62eeaee Backed out changeset 4e02fc1cbd35 (bug 1264199) 2016-04-18 14:22:00 +02:00
Carsten "Tomcat" Book 23aeca76f6 Backed out changeset 1d139b7422c8 (bug 1264199) 2016-04-18 14:21:59 +02:00
Jean-Yves Avenard a2cc8a6739 Bug 1264199: P7. Stop early if audio queue got flushed. r=me
MozReview-Commit-ID: EMj2LMgRIzU
2016-04-18 20:24:19 +10:00
Jean-Yves Avenard 730f304d31 Bug 1264199: P6. Drain resampler when changing format or reaching the end. r=kinetik
MozReview-Commit-ID: KqcB0FYxNtC

--HG--
extra : rebase_source : 777c5b85e8999a54a8b0b5c9da999d41e746daa2
2016-04-14 15:44:02 +10:00
Jean-Yves Avenard 7e4703cb30 Bug 1264199: P5. Perform all downmixing operations in DecodedAudioDataSink. r=kinetik
Performing all audio processing operations in the same place, allows to simplify the code.

Additionally, if accessibility.monoaudio.enable is not set, we always upmix mono to stereo so that if the first audio stream seen was mono, we aren't stuck playing all future streams in mono.

MozReview-Commit-ID: 5yANN6PLFhX

--HG--
extra : rebase_source : c789ba66fa168bc11064b2a329311d90b046c7fc
2016-04-13 20:25:50 +10:00
Jean-Yves Avenard 16c0bd7cd9 Bug 1264199: P3. Attempt to minimize audio quality loss and unnecessary processing. r=kinetik
We attempt to avoid unnecessary resampling of 44.1kHz and 48kHz content, for all others we use cubeb's preferred sampling rate as final sampling rate.

MozReview-Commit-ID: 413qnsDFHzY

--HG--
extra : rebase_source : 2c783be7f6d2ccaab88cee70372905ea92b690f4
2016-04-13 17:55:48 +10:00
Jean-Yves Avenard d679b38075 Bug 1264199: P2. Ensure the AudioStream only ever receive the same content format. r=kinetik
The audio is automatically converted to always match the format of the first processed sample.
This is a temporary approach, as it would be preferred to use a final sampling rate not causing too much quality loss.

MozReview-Commit-ID: Lo3827aon43

--HG--
extra : rebase_source : d8de2c85de5a78c2d1a17201a9d0c418ce3312e4
2016-04-13 17:30:23 +10:00
Jean-Yves Avenard 6517105f96 Bug 1264199: P1. Perform audio conversion in the reader's taskqueue and ahead of use. r=kinetik
This will allow to easily detect audio configuration change prior immediate playback.

MozReview-Commit-ID: IwDUGOd17ND

--HG--
extra : rebase_source : 37e9e19a58d2e90b107eaf63a2ac19233c521033
2016-04-13 17:17:54 +10:00
Jean-Yves Avenard 9d61bb0d32 Bug 1262753: P7. Add debugging pref to enable/disable downmixer and resample. r=kinetik
Using the gfxprefs for the time being, in order to access the preferences outside of the main thread.

It will allow to easily test future cubeb changes to support change of sampling rate / multichannels.

MozReview-Commit-ID: 2Qvq4zAtzCL

--HG--
extra : rebase_source : 46e272ca46ceb35b8e97b62cd1d2be949ba054f2
2016-04-12 19:24:09 +10:00
Jean-Yves Avenard 4132e3555b Bug 1262753: P6. Perform downmixing in DecodeAudioDataSink. r=kinetik
Rather than performing the audio processing a few frames at a time, we perform the operation when popping the audio data block.
The only downmixing task left to AudioStream is to handle the force mono preference.

Resampling is currently disabled.

MozReview-Commit-ID: GNQA1h0xcp7

--HG--
extra : rebase_source : c58aa4514a0dc4de06be6dc1da6a598742caa262
2016-04-11 21:16:17 +10:00
Matthew Gregan d2da3ad7e8 Bug 1246108 - Don't restart completed audio streams. r=jwwang 2016-03-22 20:55:51 +13:00
Alastor Wu 28154f1f42 Bug 1242774 - only resolve promise when exist. r=jwwang. 2016-02-05 01:39:00 +01:00
JW Wang 4a525dc7dd Bug 1245542 - I suspect AudioData::mAudioData/mFrames are poisoned when sample format doesn't match the metadata. Let's ignore these samples to see if crash volume can be reduced. r=kinetik. 2016-02-05 10:19:12 +08:00
JW Wang b9727f12f3 Bug 1241003 - ignore AudioData with 0 frames to avoid silence. r=kinetik. 2016-01-21 21:14:42 +08:00
JW Wang 541dacf22b Bug 1240420. Part 1 - move checks of mismatched sample rate or channel numbers to AudioStream. r=kinetik. 2016-01-21 21:11:14 +08:00
JW Wang 31e6c6ee58 Bug 1240417. Part 1 - add a writer class to encapsulate pointer arithmetic. r=kinetik. 2016-01-18 11:24:06 +08:00
JW Wang ae5faca646 Bug 948267. Part 2 - implement AudioStream::DataSource for DecodedAudioDataSink and remove its audio thread. r=kinetik. 2016-01-12 21:48:25 +08:00
sajitk 582e1a55fa Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian 2015-11-15 14:49:01 +01:00
Wes Kocher f3a9eb2a26 Backed out changeset 1e5f3d1151d6 (bug 1219480) for cpp unittest bustage CLOSED TREE
--HG--
extra : commitid : BMVKq6cPeho
2015-11-11 09:36:56 -08:00
sajitk 3cbe348cdd Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian
--HG--
extra : rebase_source : c73098485fa005d914304fb6e7f8eba3c15e66dc
2015-11-11 06:52:00 +01:00
Nathan Froyd 1f0804852a Bug 1220491 - clarify ownership relationships for creators of AudioData; r=gerald
The way we pass in AudioDataValue arrays into AudioData is non-uniform:
sometimes we have nsAutoArrayPtrs, sometimes we don't, and it's not
immediately obvious from the function signature of the constructor that
we're actually taking ownership of this array.  Let's fix that by using
UniquePtr<AudioDataValue[]> smart pointers to hold the data prior to
creating AudioData values, and for passing in to AudioData's
constructor.  Using standard-er C++ things instead of our homegrown ones
is a good thing.
2015-11-01 17:34:26 -05:00
JW Wang 32d2d557d7 Bug 1139256 - remove the assertion in AudioStream::GetPositionInFramesUnlocked(). See bug 1139256 comment 4 for the detail. r=kinetik. 2015-11-02 21:26:12 +08:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Matthew Gregan dbad1f30f8 Bug 1198588 - Remove unused MSG-specific code from AudioStream. r=padenot 2015-08-27 14:49:17 +12:00