Commit Graph

54 Commits

Author SHA1 Message Date
Chris Pearce
92ac291127 Bug 979104 - MediaDecoderReader/StateMachine asynchronous decoding. r=kinetik 2014-06-18 17:07:02 +12:00
Ehsan Akhgari
b64a25fc13 Backed out changeset 0cdef46c65c1 (bug 979104) for causing bug 1024324 2014-06-13 16:20:37 -04:00
Chris Pearce
b6045ec58d Bug 1022467 - Proxy destruction of WMFVideoOutputSource's DXVA2Manager to main thread. r=padenot 2014-06-11 10:53:21 +12:00
Chris Pearce
6efa8303c7 Bug 979104 - MediaDecoderReader/StateMachine asynchronous decoding. r=kinetik 2014-06-10 19:31:09 +12:00
Chris Pearce
21a6f64f50 Bug 1004373 - Prevent multiple ReadMetadata tasks to be dispatched to the decode task queue at once. r=kinetik 2014-05-06 12:12:05 +12:00
Chris Pearce
223e397746 Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
* * *
Bug 778077 - Fix up MediaOMXReader fastseek to ensure audio stream stays in sync with video stream. r=cajbir
2014-04-01 16:39:04 +13:00
Ed Morley
05dcbf9506 Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
dac6ce38ba Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 22:36:10 +13:00
Phil Ringnalda
e21145ad4a Backed out 2 changesets (bug 778077, bug 631058)
CLOSED TREE

Backed out changeset dda301682977 (bug 631058)
Backed out changeset 25b633e7dcd5 (bug 778077)
2014-03-27 21:50:02 -07:00
Chris Pearce
fc3fc91d79 Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 15:50:28 +13:00
Ben Kelly
1b1cb3004d Bug 960873: Part 1: Refactor MediaDecoderReader.h into separate headers. r=cpearce 2014-02-03 20:49:21 -05:00
Alexandros Chronopoulos
d471b465db Bug 911482 - Perform audio downmix inside AudioStream class. r=rillian 2013-09-26 22:06:59 +03:00
Chris Pearce
e8d0d063b3 Bug 933579 - Export IsVideoContentType() to VideoUtils, so that it can be used elsewhere, and move all of VideoUtils into namespace mozilla. r=kinetik 2013-11-04 11:45:19 +13:00
Karl Tomlinson
2364c5394f b=928222 move ReentrantMonitorAutoExit from VideoUtils.h to ReentrantMonitor.h r=bsmedberg
--HG--
extra : transplant_source : %13O%CF%90x%02%B8%B6%A3%EA%AD%03%99%9A7%1B%A0%21%C4%A3
2013-10-24 07:22:53 +13:00
Ehsan Akhgari
143454cc1a Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-05 16:25:17 -04:00
Ehsan Akhgari
92ad73ef93 Backed out changeset 2f15518f566e (bug 912702) because of B2G JB Emulator build bustage
--HG--
extra : rebase_source : 6c01ad3bc2f91b0e7e3edab84aedbfe064310a8b
2013-09-05 13:29:38 -04:00
Ehsan Akhgari
be1e68caf3 Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-04 17:58:14 -04:00
Rick Eyre
18cb5504a8 Bug 885879 - Make sure cue times are not rounded r=rillian
Tests for this will be landing in bug 833386 Part 2.
2013-06-19 14:35:04 -04:00
Rick Eyre
25236f410f Bug 884507 - Change SECOND_TO_MS macro to be named MS_TO_SECONDS r=rillian 2013-06-18 12:53:00 -07:00
Rick Eyre
73e8300de5 Bug 833382 - Implement WebVTTLoadListener r=cpearce,bz
- Implemented WebVTTLoadListener to manage the webvtt parser.
- TextTrackCue now handles the conversion of webvtt nodes to
  anonymous content which will be displayed on the video div
  overlay.
- HTMLTrackElement manages the lifetime of the WebVTTLoadListener.
2013-06-10 08:30:00 -07:00
Arnaud Sourioux
ac2132dad0 Bug 856822: Annotate ~1700 methods with MOZ_OVERRIDE in /content r=smaug 2013-05-29 13:43:41 -07:00
Ryan VanderMeulen
468b93224a Backed out changeset a966aadd9ae3 (bug 856822) for Windows bustage on a CLOSED TREE. 2013-05-29 17:56:10 -04:00
Arnaud Sourioux
ff4b91709f Bug 856822: Annotate ~1700 methods with MOZ_OVERRIDE in /content r=smaug 2013-05-29 13:43:41 -07:00
Joshua Cranmer
66e39d8aff Bug 856108 - Port static analyses to clang, part 2a: use MOZ_STACK_CLASS in content. r=bz 2013-04-11 22:20:09 -05:00
Andrea Marchesini
b57856b7a9 Bug 841014 - Rename nsTimeRanges.h to TimeRanges.h. r=Ms2ger
--HG--
rename : content/html/content/src/nsTimeRanges.cpp => content/html/content/src/TimeRanges.cpp
rename : content/html/content/src/nsTimeRanges.h => content/html/content/src/TimeRanges.h
2013-03-02 14:14:44 -05:00
Steve Workman
9374cf3e90 Bug 792404 - Add code to enable adaptive decoder and reader switching for DASH-WebM r=cpearce 2012-12-06 15:27:08 -08:00
Paul Adenot
c1c81fcc33 Bug 815194 - Remove more ns prefixes on content/media classes + whitespace fixes. r=cpearce 2012-11-28 20:40:07 +01:00
Chris Pearce
3a0e137bc4 Bug 786924 - Estimate Ogg buffered ranges on B2G to avoid main thread I/O. r=kinetik 2012-09-03 10:56:29 +12:00
Ehsan Akhgari
0fd9123eac Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Aryeh Gregor
e806eeab4f Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Timothy B. Terriberry
5abf033f0a Bug 750231 - Use larger stacks on the media decoder threads with ASAN, r=kinetik 2012-06-03 12:43:09 -07:00
Gervase Markham
ca171eec44 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Benoit Jacob
17b0e7f92d Bug 732875 - 8/8 - move CheckedInt to MFBT, enable unit tests in mfbt/tests - r=jwalden
--HG--
rename : xpcom/ds/CheckedInt.h => mfbt/CheckedInt.h
2012-05-14 15:50:20 -04:00
Ed Morley
8b2dbc3dca Backout 345ae68f15f4, b3b40121ac8d, 0d18b7a246d7, 9dbb6064ab58, dee9d7fa8eb6, 63eec6bfa948, 323c6be7cfe8 & f4aac7523a48 (bug 732875) for compilation failures 2012-05-14 21:05:24 +01:00
Benoit Jacob
8fbc0a34da Bug 732875 - 8/8 - move CheckedInt to MFBT, enable unit tests in mfbt/tests - r=jwalden
--HG--
rename : xpcom/ds/CheckedInt.h => mfbt/CheckedInt.h
2012-05-14 15:50:20 -04:00
Chris Pearce
a976665feb Bug 736342 - Add AsyncBlockWriter, which defers file writes to another thread. r=roc 2012-03-28 13:04:20 +13:00
Ching Wei Tseng
d2d97ed00b Bug 601535 - content/media should use CheckedInt.h. r=doublec 2012-02-22 13:28:06 +01:00
Ms2ger
236b6c12a8 Bug 699731 - Remove PR_INT64_MAX / PR_UINT64_MAX from non-nsprpub source; r=ted 2012-01-11 09:23:07 +01:00
Matthew Gregan
a4cbf2b7f4 Bug 695986 - Fix bug 669556 on Android. r=cpearce 2011-11-22 13:17:38 +13:00
Matthew Gregan
e31e3f275e Bug 693095 - Fix audio stream position estimation for remoted streams. Also resurrect audio thread wait removed in bug 669556 when using remoted audio streams. r=cpearce 2011-10-19 18:29:08 +13:00
Matthew Gregan
b91f76289a Bug 690603 - Remove PR_TRUE/PR_FALSE from media code. r=doublec 2011-09-30 12:34:37 +13:00
Michael Wu
d8e503c38b Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Matthew Gregan
bd4295528f Bug 689432 - Disambiguate use of "samples" by introducing "frames" in a number of places. r=doublec 2011-09-27 16:31:18 +13:00
Martin Richard
398b044837 Bug 646333 - Make video constants consistently const T. r=cpearce 2011-09-15 07:39:50 +12:00
Chris Pearce
7ee610a982 Bug 664341 - Specify media decoder's thread stack size. r=kinetik 2011-07-27 15:28:03 +12:00
Chris Pearce
b364e365c4 Bug 661456 - Scale WebM video frames to display size. r=kinetik 2011-06-24 10:08:54 +12:00
Chris Jones
ed22df8f64 Bug 556214, parts 1 and 1.1: Rename Monitor to ReentrantMonitor and fix existing Monitor users. r=roc
--HG--
rename : xpcom/glue/Monitor.h => xpcom/glue/ReentrantMonitor.h
2011-04-29 14:21:57 -05:00
Chris Pearce
a259c20cba Bug 641718 - Convert to using microseconds for internal video timestamps. r=kinetik 2011-04-14 10:12:23 +12:00
Chris Pearce
114d346757 Bug 576539 - Inject silence when decoder encounters missing audio in WebM and Ogg media. r=kinetik a=blocking2.0 2010-08-13 14:28:15 +12:00
Chris Pearce
0166bdadc4 Bug 576539 - Move integer overflow code in video decoders into VideoUtils.cpp/h. r=kinetik a=blocking2.0 2010-08-13 14:28:15 +12:00