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

196 Коммитов

Автор SHA1 Сообщение Дата
Jean-Yves Avenard 778f74db59 Bug 1262727: [webm] Ensure first frame returned after seek is a keyframe. r=kinetik
Same after a reset or the first frame ever returned by the demuxer.

MozReview-Commit-ID: 6b7XlIk5GE4

--HG--
extra : rebase_source : 7e7b92c2ed7ea6973ad3869477b3110925a64525
2016-04-07 17:40:16 +10:00
bechen fd7bde80bb Bug 1215115 - part2: Mux opus into webm, remove bitdepth. r=rillian
MozReview-Commit-ID: 7D74vONbkFP

--HG--
extra : transplant_source : 2%AA%C8%F34%1E%CF%3C%9B%88%AC%AD%9F-%DC%7C%FE%B1m%5D
2016-04-01 11:04:00 +08:00
Bryce Van Dyk a0436efae3 Bug 1232045 - WebMDemuxer handles resolution changes. r=jya
Update the WebMDemuxer to detect changes in resolution. When it does so it
changes the streamID so that we get a new decoder created to handle the
resolution change. The demuxer will also update media info in these cases, so
the new decoder has the correct information. The demuxer will only handle
resolution changes on key frames, files that attempt changes other times are not
considered valid at this stage. If a resolution change cannot be performed
because nest_egg cannot read track info, or because the new resolution is
invalid, a change will not take place.

MozReview-Commit-ID: 1JKz3mGbEvi

--HG--
extra : rebase_source : aebd609651dfbd48d2f6ea3e33986a7e12b1495e
2016-03-15 00:28:47 +13:00
Jean-Yves Avenard cbdcb3df1f Bug 1246536: [webm] Only use discard padding information on last packet. r=kinetik
MozReview-Commit-ID: 3MYm25HfX0N

--HG--
extra : rebase_source : c4d657d232d852e341114d4f966362005c9c4087
2016-03-15 18:03:30 +11:00
Bryce Van Dyk 939ab2b661 Bug 657791 - Update seekable range handling for cueless WebMs. r=kinetik
MediaDecoder previously had 3 states within GetSeekable(), media is either
seekable, seekable but not supported by transport, or not seekable. Due to
changes to make cueless webms playable, a 4th option is needed: a file that is
not fully seekable, but may support seeking from the transport, such as these
webms, should only be seekable in the buffered range.

MozReview-Commit-ID: ISeFkngtrGU
2016-02-04 17:31:21 +13:00
Bryce Van Dyk 25356d3a7c Bug 657791 - Update WebM demuxer to clamp cueless seeks instead of failing. r=kinetik
Previously if a seek time is specified outside of the buffered range for
certain WebMs (particularly those without cues) the WebMDemuxer would fail out
of SeekInternal() with an error code. However, this would lead to issues due to
inconsistent state (recovery was not made from a failed seek). This change
attemps to address this by instead seeking to the final available cluster.

MozReview-Commit-ID: GZLPZDWLcT1
2016-02-01 13:46:02 +13:00
Bryce Van Dyk 2fbed74f6a Bug 657791 - Update WebM demuxer to consider cue-less WebMs seekable. r=jya
It appears that the work to seek in WebMs that do not have cues has already been
done, however this functionality was gated by the IsSeekable() function still
returning that such WebMs were not seekable. This updates that function so that
WebMs without cues are now considered seekable. Tests are also updated to
reflect this.
2016-01-19 11:43:49 +13:00
sakshi 1af0b67296 Bug 1197311 - Remove PR_snprintf calls in dom/ r=froydnj 2016-02-17 14:23:39 -05:00
Gerald Squelart af8cc983cf Bug 1143096 - Init all WebMBufferedParser members - r=kinetik
Initialize all WebMBufferedParser members, mainly to remove compiler warnings.
'mClusterTimecode' and 'mClusterOffset' are probably genuine potential issues,
see bug 1143096 comment 2 for details.
2016-02-03 14:25:47 +11:00
Birunthan Mohanathas d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda d381b4bca6 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas 373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Jean-Yves Avenard b8299c5f79 Revert "Bug 1240201: [vorbis] P1. Properly determine sample duration and time in webm demuxer. r=kinetik"
This reverts commit c0a4a296
2016-01-23 12:42:02 +11:00
Jean-Yves Avenard 30a05ebd7f Revert "Bug 1240201: [opus] P2. Properly determine sample duration and time in webm demuxer. r=kinetik"
This reverts commit d8eb98e2
2016-01-23 12:42:02 +11:00
Jean-Yves Avenard 6369bae28e Bug 1240201: [opus] P2. Properly determine sample duration and time in webm demuxer. r=kinetik 2016-01-23 02:50:06 +11:00
Jean-Yves Avenard 9b20eae811 Bug 1240201: [vorbis] P1. Properly determine sample duration and time in webm demuxer. r=kinetik 2016-01-23 02:50:06 +11:00
Wes Kocher 56d625df80 Backed out 2 changesets (bug 1240201) for Windows wpt bustage
Backed out changeset b06a049cafb7 (bug 1240201)
Backed out changeset 69b695ad6d43 (bug 1240201)

--HG--
extra : commitid : KSF0gTfQB2
2016-01-21 12:28:24 -08:00
Jean-Yves Avenard b7eecc5ada Bug 1240201: [opus] P2. Properly determine sample duration and time in webm demuxer. r=kinetik 2016-01-22 00:40:56 +11:00
Jean-Yves Avenard b20992e3b8 Bug 1240201: [vorbis] P1. Properly determine sample duration and time in webm demuxer. r=kinetik 2016-01-22 00:40:56 +11:00
Jean-Yves Avenard c27ab6683c Bug 1237629: [webm] Parse into BlockGroup element. r=kinetik 2016-01-20 09:50:27 +11:00
Jean-Yves Avenard 58d924fab9 Bug 1236703: P2. Add methods to retrieve debugging data on plain readers. r=jwwang 2016-01-20 09:50:26 +11:00
Jean-Yves Avenard fcaa513106 Bug 1240411: P4. Clean up readers headers. r=cpearce
Remove redundant virtual keyword and add missing override if any.
2016-01-19 19:47:31 +11:00
Chris Peterson 74f570e360 Bug 1240264 - Annotate intentional switch fallthroughs in dom/media/. r=cpearce
dom/media/MediaManager.cpp:1905:7 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
dom/media/webm/WebMBufferedParser.cpp:133:7 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
2016-01-14 01:42:18 -08:00
Matthew Gregan 693045c49f Bug 1231855 - Avoid inserting out of (timecode) order entries in WebMBufferedParser. r=jya 2016-01-05 14:50:50 +13:00
Jean-Yves Avenard de7c0385a1 Bug 1230054: Remove unused WebMReader. r=kinetik 2015-12-23 01:15:46 +11:00
Phil Ringnalda a54f2a1eda Back out ce4623289f7f (bug 1230054) for crashtest bustage in 789075-1.html/795892-1.html, Android mochitest-chrome bustage in test_texttrack_chrome.html, and probably Gij video_list_test.js
CLOSED TREE
2015-12-03 22:12:01 -08:00
Jean-Yves Avenard 7b1c9931c6 Bug 1230054: Add missing headers ON A CLOSED TREE. r=me 2015-12-04 15:56:46 +11:00
Jean-Yves Avenard b2545f9af0 Bug 1230054: Remove unused WebMReader. r=kinetik 2015-12-04 15:23:43 +11:00
Jean-Yves Avenard 72d555ab40 Bug 1191833: P1. Properly check webm mimetype against codec type. r=cpearce
Also move the logic inside WebMDecoder, this continue on with the logic used by MP4Decoder
2015-12-04 14:43:46 +11:00
Nathan Froyd ffeb7c7fe3 Bug 1229963 - use UniquePtr<T[]> instead of nsAutoArrayPtr<T> in dom/media/; r=cpearce 2015-12-02 18:07:59 -05:00
Nathan Froyd c381a6b86c Bug 1218454 - part 2 - don't #include nsContentUtils.h from CallbackObject.h; r=bz
We used to need nsContentUtils.h here for nsCxPusher, but since that got
moved to ScriptSettings.h, we no longer need nsContentUtils.h for
anything.
2015-10-26 12:14:47 -04:00
JW Wang e4cbe0c128 Bug 1228939 - 1. add mSeekable to MediaInfo. 2. use MediaEventSource to notify the decoder when the media is not seekable. 3. remove unused code. r=jya. 2015-12-02 15:42:32 +08:00
Jean-Yves Avenard c8c275cee2 Bug 1227396: P7. Replace nsTArray<MediaByteRange> with dedicated MediaByteRangeSet object. r=cpearce 2015-11-30 11:29:34 +11:00
Chris Pearce cea22429d5 Bug 1226450 - Report audio/video codecs used in HTMLMediaElement and WebAudio via telemetry. r=jya 2015-11-25 12:52:48 +13:00
Guang-De Lin 42c53cfea9 Bug 1154213 - Handle timestamps of video/webm vorbis track encoding. r=mreavy, r=rjesup 2015-11-18 10:51:07 +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
JW Wang 2c0bf35e10 Bug 1220551. Part 2 - remove arguments from NotifyDataArrivedInternal(). r=jya. 2015-11-02 21:28:57 +08:00
JW Wang 71274437c8 Bug 1220551. Part 1 - fix the parameters passed to mBufferedState->NotifyDataArrived(). r=jya. 2015-11-02 21:28:53 +08: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
Jean-Yves Avenard fd8146966c Bug 1218157: Only ever read from cached data in NotifyDataArrived. r=cpearce
The logic of queuing NotifyDataArrived and read data there was fundamentally flawed as we would continually perform reads from the same MediaResource at two different ends.
This would cause repetitive seeks and data being removed from the media cache. Worse, a read in NotifyDataArrived would cause another NotifyDataArrived to be scheduled.

As range-request are extremely slow, it would result in stutters and constant interruptions.
2015-10-29 10:18:58 +11:00
JW Wang 924432c2ee Bug 1217714 - Remove some unused functions from MediaDecoderReader. r=jya. 2015-10-26 14:10:29 +08:00
JW Wang 8cbe3a5118 Bug 1216850. Part 1 - backout bug 1215003. r=me. 2015-10-21 10:59:56 +08:00
Nathan Froyd e1dc7934e4 Bug 1190472 - part 3 - optimize pushing an entire queue onto MediaRawDataQueue; r=kinetik
In the one place we push a MediaRawDataQueue onto a MediaRawDataQueue,
we don't use the pushee aftewards.  It's more efficient to indicate that
by using Move(), and we can then save on reference-counting things
needlessly.
2015-10-01 19:06:50 -04:00
Nathan Froyd 0bc5c6fc4d Bug 1190472 - part 2 - delete unused MediaRawDataQueue::Push method; r=kinetik
We don't call it, and it's not particularly efficient anyway.
2015-10-01 19:04:02 -04:00
Nathan Froyd eafdc95974 Bug 1190472 - part 1 - improve MediaRawDataQueue's reference-counting behavior; r=kinetik
Sometimes when we push onto the queue, we don't need to hold a reference
afterwards.  In that case, we can pass the reference in and avoid
unnecessary reference counting.
2015-10-01 19:02:18 -04:00
JW Wang 9e488683b4 Bug 1215003. Part 2 - rename AsyncReadMetadata and move it to the private section. r=gerald. 2015-10-19 10:52:15 +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
Jean-Yves Avenard 6db8b43cba Bug 1213176: P1. Remove most MediaFormatReader dependencies on its MediaDecoder parent. r=jwwang
The LayersBackend can be defined at construction time, however if a parent MediaDecoder exists, the value will be overwritten by the MediaDecoderOwner value.

--HG--
extra : rebase_source : fefad83560d5bfa2aee9f665fe138397eb390019
2015-10-15 02:04:00 +02:00