Commit Graph

25 Commits

Author SHA1 Message Date
Timothy B. Terriberry
be06d81459 Bug 751219 - Support header gain in Opus files, r=kinetik 2012-05-31 11:13:17 -07:00
Timothy B. Terriberry
87b5e2c9ef Bug 759612 - Update granule position accounting for Opus, r=kinetik 2012-05-31 11:13:17 -07:00
Timothy B. Terriberry
61396f0581 Bug 759490 - Use Opus streams when seeking in Ogg, if present, r=doublec 2012-05-31 11:13:11 -07:00
Ralph Giles
ab5cec5feb Bug 758833 - Track and trim opus preskip samples - r=doublec
We trim the initial few samples out of the opus decoder,
to give the output time to converge, and to correct for
the encoding delay. Encoders store the delay in the preskip
field of the Ogg encapsulation header.

The previous code to do this was a hack based on the granulepos
values and could fail on some inputs. Instead, keep a count
of how many samples we want to trip, and remove packet data
until that value matches the preskip value from the header.

The value is set to the preskip value from the header when
the decoder is initialized. We also need to do this after
seek. To do this we add a specialized nsOggReader::ResetDecode
method which takes a boolean argument, set to true when
we are seeking to the start of the stream. In that case,
the method resets the skip count.

There is still an issue after general seeks. The spec recommends
trimming a full 80 ms (3840 frames) to allow the decoder to fully
settle from the previous state. It's tricky to do this inside
nsOpusState because it doesn't know where it is in the stream.

Also add some debug output to track the decode behaviour.
2012-05-31 16:03:14 +12:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Ralph Giles
64ef2c566d Bug 674225 - Add Opus support to nsOggReader. r=cpearce
Parse and decode Opus streams embedded in the Ogg
container. Based on the draft specification from
https://wiki.xiph.org/OggOpus
Support is conditional on the runtime preference
setting media.opus.enabled, which is false by
default until we're confident the spec is stable
and useful.

This patch doesn't support the gain header or
multichannel files.

The LEUint*() functions from the skeleton parser
are used to read the multi-byte header fields.
This requires moving them to earlier in the file.

Mappings for the .opus filename extension are also
added to facilitate testing with local files.
2012-05-01 17:29:34 -07:00
Justin Lebar
69fb6f1047 Bug 731789 - Rename mfbt/StdInt.h to mfbt/StandardInteger.h, so stdint types work from cpp files inside mfbt. r=waldo 2012-02-29 22:56:43 -05:00
Ms2ger
1a688061bd 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
8f6aeecfc2 Bug 690603 - Remove PR_TRUE/PR_FALSE from media code. r=doublec 2011-09-30 12:34:37 +13:00
Michael Wu
d2b70213ac 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
Felix Fung
4ad6cea4ad Bug 577266 - Correct misspellings in source code: 'verion' -> 'version' 2011-09-06 22:50:26 -07:00
Chris Pearce
3608846861 Bug 671438 - Make nsOggCodecState::PacketOutUntilGranulepos() return an error on failure. r=doublec 2011-07-19 09:36:30 +12:00
Chris Pearce
0c662cc62d Bug 650994 - Decode ogg packets lazily, timestamp them at demux time. r=doublec 2011-05-08 18:24:09 +12:00
Chris Pearce
73310e4cd6 Bug 641718 - Convert to using microseconds for internal video timestamps. r=kinetik 2011-04-14 10:12:23 +12:00
Chris Double
d89a94c4c6 Bug 614445 - delete used to free memory allocated by operator new[] in Ogg backend - r=cpearce
--HG--
extra : rebase_source : 6cbd41821bbe489ab2fa443c57b710aa1527d1e2
2011-02-24 16:53:35 +13:00
Chris Double
7ee1f56a07 Bug 556821 - Use Ogg Skeleton presentation time for start of videos - r=cpearce
--HG--
extra : rebase_source : 83020ac5028e9f94cabe6a3c959cf84eeb25449f
2011-03-24 14:16:30 +13:00
Matthew Gregan
c28587e2c5 Bug 627139 - Report seek target as current time immediately after seeking. r=roc a=roc 2011-02-01 15:57:13 +13:00
Matthew Gregan
537af77ca8 Bug 605457 - Remove concurrent use of Ogg stream hash table. r=cpearce a=roc 2010-12-17 14:39:01 +13:00
Chris Pearce
a7ffa56226 Bug 589039 - Don't use uninited hashtable in Ogg index decoder. r=doublec a=bsmedberg 2010-11-08 19:43:24 +13:00
Timothy B. Terriberry
038de97c0d Bug 511348 - Integrate Tremor for Vorbis decoding for non/slow-FPU platforms. r=chris.double a=blocking-fennec
--HG--
extra : rebase_source : 807703f9008d0e6c3829370a8a84e0914e2ccb29
2010-10-18 19:55:45 -07:00
Chris Pearce
c83f221aa0 Bug 519897 - Supported indexed Ogg files. r=doublec 2010-08-20 10:50:37 +12:00
Chris Pearce
0fff0679e0 Backed out changeset 7eee00899270 2010-08-18 13:48:34 +12:00
Chris Pearce
0a36c74221 Bug 519897 - Supported indexed Ogg files. r=doublec a=roc 2010-08-18 10:49:14 +12:00
Chris Double
110891cd57 Bug 567056. Rename mAspectRatio to mPixelAspectRatio. r=kinetik 2010-05-24 09:36:10 +12:00
Chris Pearce
afd172b807 Bug 531340 - New Ogg video decoder. r=doublec sr=roc 2010-04-01 20:03:07 -07:00