webm/webmdshow.git
2 months agowebmmfsource: Allow any matroska doc type greater than 0. 20/70220/2 master
Tom Finegan [Tue, 20 May 2014 18:02:31 +0000 (11:02 -0700)]
webmmfsource: Allow any matroska doc type greater than 0.

And bump version numbers.

Change-Id: Ibab8fb89248e5fa5fc2438d8804bde1fa52e3b94

5 months agoVP8Encoder: added VP9 support 44/68944/2
Matthew Heaney [Tue, 25 Feb 2014 00:26:57 +0000 (16:26 -0800)]
VP8Encoder: added VP9 support

Added new interface to VP8 encoder (IVPXEncoder), that allows client
to specify whether this encode is VP8 (the default) or VP9.

The webm muxer filter was also modified to accept VP9 as the media
subtype.

A new command-line switch ("-encoder") was added to specify "vp8" or
"vp9" as the type for the encode.

Change-Id: I96f04fd2aa0622ca94e478e6648cfe7d44a7f9dc

6 months agowebmdshow: added support for FORMAT_VideoInfo2 to decoders 05/68505/2
Matthew Heaney [Thu, 23 Jan 2014 18:45:58 +0000 (10:45 -0800)]
webmdshow: added support for FORMAT_VideoInfo2 to decoders

Added support for FORMAT_VideoInfo2 to the output media types of the
VP8 and VP8 decoder filters.  This allows these decoder filters to be
used with modern video renderers, without requiring an intermediate
conversion filter.

https://code.google.com/p/webm/issues/detail?id=650

Change-Id: Iaf4007c84a799926924fdf98bb58d3b1ae8f0ca6

6 months agowebmdshow: added missing module defn files 25/68425/1
Matthew Heaney [Thu, 16 Jan 2014 00:31:31 +0000 (16:31 -0800)]
webmdshow: added missing module defn files

Change-Id: Ic4fd431945a88f3cf22136f1dfebcba5171f8f1a

9 months agovp8decoder: now supports NV12 output 96/67696/2
Matthew Heaney [Tue, 29 Oct 2013 21:56:42 +0000 (14:56 -0700)]
vp8decoder: now supports NV12 output

Change-Id: Ic843e9eb84ff3fa801ab3d8d2f0b53e210b30c61

9 months agovp8decoder: tolerate vp8 decode errors 60/67660/1
Matthew Heaney [Wed, 5 Jun 2013 20:47:05 +0000 (13:47 -0700)]
vp8decoder: tolerate vp8 decode errors

Previously, when the vp8 library call to decode the frame failed, the
filter would return S_FALSE and essentially stop the video stream.

In order to be more robust in the presence of errors in the stream,
the filter now transitions to an intermediate state when a decode
failure has occured.  It waits until a keyframe has been successfully
decoded, and then transitions back to its normal state.

Change-Id: I8db0149f132c80812849466bca96432844b989f8

9 months agowebmdshow: revision 1.0.2.0 46/67646/1 webmdshow-1.0.2.0
Matthew Heaney [Sat, 26 Oct 2013 00:00:17 +0000 (17:00 -0700)]
webmdshow: revision 1.0.2.0

Added VP9 decoder filter.

libwebm info:
commit fd0a65af989cc294b65de6fd70bea2176d6b7680
mkvparser version is 1.0.0.27

Change-Id: I2cf67f07cfcfb93fd2bf550f8226395ae3718bc1

9 months agovp9decoder: initial revision 90/67590/1
Matthew Heaney [Tue, 8 Oct 2013 01:14:00 +0000 (18:14 -0700)]
vp9decoder: initial revision

Change-Id: Ic1bd8936b9c1447f647a8c404ef407afa43d2347

9 months agowebmdshow: use single target directory for DLL and EXE projects 32/67432/1
Matthew Heaney [Mon, 7 Oct 2013 19:56:35 +0000 (12:56 -0700)]
webmdshow: use single target directory for DLL and EXE projects

Change-Id: I330df6324d1414f671e8796242bb86bccd836b23

9 months agomkvparserstream: relax constraint on base time 14/67414/1
Matthew Heaney [Sat, 5 Oct 2013 22:54:57 +0000 (15:54 -0700)]
mkvparserstream: relax constraint on base time

We use a "base" time for seeking.  When we initialize, the
base time is set to the time of the first block in the
cluster.

There existed some checks to assert that the base time was
non-negative.  However, this caused problems when the very
first frame of the file had a negative timestamp.  (This is
not a legal Matroska file, but we have to at least handle
this case by doing someting sensible.)

We do two things to handle the issue of negative timestamps.
First we throw away any frames with a negative timestamp,
continuing the parse until we find a non-negative frame.
Secondly, we relax the constraint that the base time must be
non-negative.

Change-Id: I5c9dfc8be6e0ad5215c42ce595279749a3d86149

9 months agowebmmf: version 1.0.1.0 74/67374/1 webmmf-1.0.1.0-20131004
Matthew Heaney [Thu, 3 Oct 2013 22:14:00 +0000 (15:14 -0700)]
webmmf: version 1.0.1.0

Change-Id: Id2178bb31edbc2261523d9ccd777537fd6bfed6b

9 months agowebmdshow: updated README.TXT for 1.0.1.0 release 62/67362/1
Matthew Heaney [Thu, 3 Oct 2013 18:19:50 +0000 (11:19 -0700)]
webmdshow: updated README.TXT for 1.0.1.0 release

Change-Id: I50f5c045a686b63fccd18fe91a2a24a50072b398

9 months agowebmdshow: set version to 1.0.1.0 54/67354/1 webmdshow-1.0.1.0
Matthew Heaney [Wed, 2 Oct 2013 20:11:50 +0000 (13:11 -0700)]
webmdshow: set version to 1.0.1.0

Change-Id: I6dd053758757e3f63f481cf53beb27791daaf898

10 months agowebmdshow: update vorbis libraries 56/67256/1
Matthew Heaney [Wed, 25 Sep 2013 23:46:02 +0000 (16:46 -0700)]
webmdshow: update vorbis libraries

libogg-1.3.1
libvorbis-1.3.3

Built using VS 2010.

Change-Id: I365edfa2b01b8e61a14de706f77aec256398addb

10 months agowebmdshow: added VS 2010 solution and projects 52/67252/1
Matthew Heaney [Wed, 25 Sep 2013 01:49:06 +0000 (18:49 -0700)]
webmdshow: added VS 2010 solution and projects

Change-Id: I6873f29b63c050e5090865d81aa8618d0182012d

10 months agoUpdated libvpx 51/67251/1
Matthew Heaney [Tue, 24 Sep 2013 18:12:54 +0000 (11:12 -0700)]
Updated libvpx

The libvpx commit hash is:

a7b7f94ae8c4208d447413f466f5ff8b177695bf

Corresponds to one of the Chrome rolls.

Change-Id: I3e98b00891e647d6dbca14f63410b6cc4dfe1410

10 months agoWebmMfVorbisDecoder: fix audio dropout at end-of-stream 51/67151/2
Matthew Heaney [Wed, 11 Sep 2013 20:10:39 +0000 (13:10 -0700)]
WebmMfVorbisDecoder: fix audio dropout at end-of-stream

The last few seconds of the Bing Crosby clip were not being
pushed downstream.  This fix addresses the issue #541
described here:

https://code.google.com/p/webm/issues/detail?id=541

There were two problems.

The first was that the output buffer size was smaller when
the encoded input sample, so the decoder was falling behind.

The second problem is that the decoder filter was not
consuming all of the samples held by the decoder library, so
the last few samples (following EOS) were left behind.

Change-Id: I3f96c7fdfe003d66d2ca20ae66f1eab5bafa2ba6

10 months agoWebmMfVorbisDec: incorrect assertion 35/67135/1
Matthew Heaney [Fri, 6 Sep 2013 22:09:46 +0000 (15:09 -0700)]
WebmMfVorbisDec: incorrect assertion

The pipeline can ask the filter about a change in output format.  The
filter returns an answer about whether the format change would be
acceptable.

If the request is "invalid" this not really an error.  The pipeline is
just asking about a potential output format, and so the filter answers
no.  The presence of the assert is incorrect, since if there's a
difference in sampling rates (the case here), then the filter merely
returns an answer that such a change would not be allowed.

Change-Id: I868f738d332cbf3e9486035e9675ef9b6918a3e3

20 months agowebmvorbisencoder: updated project settings for release build 45/38745/2
matthewjheaney [Tue, 27 Nov 2012 18:48:56 +0000 (13:48 -0500)]
webmvorbisencoder: updated project settings for release build

Change-Id: If0d4c58f57bfc8b5897c2a3c72ef77a679957308

2 years agowebmmf 1.0.0.0 69/24069/1 webmmf-1.0.0.0-20120530
matthewjheaney [Wed, 30 May 2012 21:32:54 +0000 (17:32 -0400)]
webmmf 1.0.0.0

Change-Id: Ia1872db58f2e4000358f57fbebcb0221a89c231e

2 years agoUpdate libogg to 1.3.0 and libvorbis to 1.3.3. 50/23050/1
Tom Finegan [Fri, 18 May 2012 18:43:21 +0000 (14:43 -0400)]
Update libogg to 1.3.0 and libvorbis to 1.3.3.

Change-Id: Ie7a49fc1b8b2ffa353583a2697afde84c7c80783

2 years agomedia foundation: fix some build warnings 83/22883/3
Tom Finegan [Thu, 17 May 2012 01:15:02 +0000 (21:15 -0400)]
media foundation: fix some build warnings

- Fix code generation in vs2010 vp8dec project (x64 release)
- Fix code generation in vs2010 vorbisdec project (x64 release)
- Enable link time code generation for the vorbis dec (x64 release)

Change-Id: I7f5f315b7cfe5c2b5af768cceed0d5d9cbec4f04

2 years agoUpdate libvpx to v1.1.0 (eider). 82/22882/3
Tom Finegan [Thu, 17 May 2012 00:12:25 +0000 (20:12 -0400)]
Update libvpx to v1.1.0 (eider).

Change-Id: I68e2dcfa7f951c0e6881bd528b67c63d46de927a
hash: 297dc90255cf9511bea26c1056aa5e118dae9028

2 years agoupdate_libs: update for latest libvpx/libogg/libvorbis 80/22880/3
Tom Finegan [Wed, 16 May 2012 22:43:53 +0000 (18:43 -0400)]
update_libs: update for latest libvpx/libogg/libvorbis

- Support use of wget or curl.
- Remove hard coded ogg version from fix_xiph_project.
- Remove braindead IFS abuse and use basename to extract lib dir
  from archive file name.
- Copy release mode PDB files with libs.

Change-Id: Ie9b9924a93b12e499dd30b9a7d0fecc3eeb04164

2 years agoFix vs2008 release mode build errors. 79/22879/1
Tom Finegan [Thu, 17 May 2012 00:33:35 +0000 (20:33 -0400)]
Fix vs2008 release mode build errors.

The libcc_2008, webmcc_2008, webmoggsource_2008, and
webmvorbisencoder_2008 projects failed to build in release mode.
Add missing dependency paths, include paths, dependent libs where
appropriate. Fix code generation in the vorbis encoder project.

Change-Id: I74f8d3b4f953597a9a801b9b8614af3d443323cd

2 years agowebmmf: adjusted settings for release builds 53/20353/1 webmmf-0.25.2.0-20120416
matthewjheaney [Tue, 17 Apr 2012 00:53:19 +0000 (20:53 -0400)]
webmmf: adjusted settings for release builds

Change-Id: If048a467bdd8cc77f4ccc2eea4fd50a7c2d9076d

2 years agowebmmf: fixed EOS bug in Win8 / IE10 46/20346/1 webmmf-0.25.1.0-20120416
matthewjheaney [Mon, 16 Apr 2012 23:22:18 +0000 (19:22 -0400)]
webmmf: fixed EOS bug in Win8 / IE10

Change-Id: I3ef78d3ec6b11980da3e86a97e41bd50ab7d8eb6

2 years agowebmmf: added 2010 projects and solution 45/20345/1
matthewjheaney [Mon, 16 Apr 2012 23:04:52 +0000 (19:04 -0400)]
webmmf: added 2010 projects and solution

Change-Id: I84d81feb19e1d1b68484f19dc660b3e45fe9faf2

2 years agolibmkvparser: vet track header before creating audio pin 13/15113/2
matthewjheaney [Tue, 31 Jan 2012 21:38:14 +0000 (16:38 -0500)]
libmkvparser: vet track header before creating audio pin

Change-Id: I401bf5be316bfca138ade2f2c255f87ff46abf4d

2 years agovp8decoder: added support for packed YUV formats 77/12077/2
matthewjheaney [Wed, 23 Nov 2011 16:56:12 +0000 (11:56 -0500)]
vp8decoder: added support for packed YUV formats

Change-Id: Ieb055d3852930ab1637a5ce5917c4d4ad2e580cb

2 years agolibmkvparser: don't use framerate to estimate stop time 19/11719/1
matthewjheaney [Tue, 15 Nov 2011 20:26:49 +0000 (15:26 -0500)]
libmkvparser: don't use framerate to estimate stop time

Change-Id: Ifbce6d78daf9566e879917cac452dea02b0573df

2 years agowebmmux: add extra space in seekhead element 71/10871/1
matthewjheaney [Fri, 28 Oct 2011 20:30:18 +0000 (16:30 -0400)]
webmmux: add extra space in seekhead element

Change-Id: I632ae3ff9e114fbb6e66dd1bb0ca85bdc77ae3c3

2 years agomakewebm: Add CPU Used 68/10868/1
Tom Finegan [Fri, 28 Oct 2011 21:18:12 +0000 (17:18 -0400)]
makewebm: Add CPU Used

Add cpu-used argument to command line, and pass it to the
encoder when set by the user. Also add missing note about
live mode to the usage text.

Change-Id: I4676639b829355ba309f792000c2f6e5ec47ebde

2 years agovp8encoder: add decimation 87/8787/11
Tom Finegan [Tue, 11 Oct 2011 16:46:12 +0000 (09:46 -0700)]
vp8encoder: add decimation

Add Get/SetDecimate to the IVP8Encoder interface and
implement decimation of input video in the encoder
filter.

Change-Id: I91288906eaf0dd02f63b582dfb870e8ceeb1fb19

2 years agowebmmfvorbisdec: fix include paths 53/7753/1
Tom Finegan [Thu, 15 Sep 2011 00:52:24 +0000 (20:52 -0400)]
webmmfvorbisdec: fix include paths

- The Release|Win32/x64 and Debug|Win32 targets were
  missing the include path required to access basictypes.h.

Change-Id: Ifa216b4268b57ee6d69636b81f6a09f675b52c38

2 years agovp8encoder: add CPU used and static threshold to interface
Tom Finegan [Wed, 31 Aug 2011 01:23:00 +0000 (21:23 -0400)]
vp8encoder: add CPU used and static threshold to interface

- add G/SetCPUUsed to interface, and implement support in
  vp8 encoder filter and input pin.  Same for G/SetStaticThreshold.
- claim a new GUID it from guids.txt, and change the vp8 encoder
  interface guid.

Change-Id: Ic59ad7affae7ed6869fc96f2e4b7785dad7c50b6

2 years agothird_party: update to the cayuga release of libvpx (v0.9.7-p1).
Tom Finegan [Tue, 23 Aug 2011 22:08:37 +0000 (18:08 -0400)]
third_party: update to the cayuga release of libvpx (v0.9.7-p1).

Change-Id: I5ae7255afcaeeb1d6b5ab4b526e8cf9b42c2751a

2 years agowebmmf: removed dependency in omahautil
matthewjheaney [Tue, 9 Aug 2011 20:07:46 +0000 (16:07 -0400)]
webmmf: removed dependency in omahautil

The implementation file for omahautil had an obsolete dependency
on memutil; that has been removed.

The header file included comdef.h but that's not really the
file you want (it contains the support for COM exceptions and smart
pointers).  The objbase.h file was included instead (it contains
the declarations for HRESULT and GUID, etc).

Change-Id: I8d7216575b2fd4ff668a2731e09a7434e4e12575

2 years agowebmmfvorbisdec: include third_party folder
matthewjheaney [Tue, 9 Aug 2011 20:14:46 +0000 (16:14 -0400)]
webmmfvorbisdec: include third_party folder

Change-Id: I45cd27815a441c2fce24bf9f28cfc19393c66980

2 years agowebmsource: allow 0 as block duration
matthewjheaney [Tue, 9 Aug 2011 20:13:37 +0000 (16:13 -0400)]
webmsource: allow 0 as block duration

Change-Id: If2fe739a6c94b6f0fd55b692ebe1ea06a8f61730

2 years agovp8encoder: add time based keyframe interval
Tom Finegan [Thu, 4 Aug 2011 19:22:38 +0000 (15:22 -0400)]
vp8encoder: add time based keyframe interval

Note: this changes the IVP8Encoder GUID.

Change-Id: I1da05bf4a2bf2d8123221efdd8b5ce5dab631603

2 years agowebmvorbisencoder: initial release
matthewjheaney [Fri, 20 May 2011 21:17:17 +0000 (17:17 -0400)]
webmvorbisencoder: initial release

Change-Id: I6139b3467a03268fa36b80c41bbc06f2a37d1050

2 years agoMerge "webmmux: write one keyframe per cluster in live mode"
Tom Finegan [Wed, 3 Aug 2011 22:31:10 +0000 (15:31 -0700)]
Merge "webmmux: write one keyframe per cluster in live mode"

2 years agowebmmux: write one keyframe per cluster in live mode
Tom Finegan [Wed, 3 Aug 2011 22:24:10 +0000 (18:24 -0400)]
webmmux: write one keyframe per cluster in live mode

At least make best efforts to do so.
- Modify allocator to create storage for up to 900 frames in live mode.  This allows
  for a very large keyframe interval, and in turn keeps the graph from deadlocking
  due to running out of video frame buffers while waiting for the next keyframe.

Change-Id: I1ec41e018c4f3306019ee68aa01355aa6fbd0df5

3 years agowebmmuxcontext: Write 8 byte timecodes in live mode.
Tom Finegan [Mon, 1 Aug 2011 21:18:10 +0000 (17:18 -0400)]
webmmuxcontext: Write 8 byte timecodes in live mode.

Facilitates easy timecode rewriting during a live streaming
presentation. Timecode rewriting would be necessary when, for
example, server software had to drop an entire cluster due to
latency or transmission problems.

Change-Id: I3c921a5ebc6eb10002dea63de77b034d1fc01fb1

3 years agothird_party: add vorbisenc.h to libvorbis files.
Tom Finegan [Thu, 14 Jul 2011 17:23:33 +0000 (13:23 -0400)]
third_party: add vorbisenc.h to libvorbis files.

From vorbisenc.h:
Libvorbisenc is a convenient API for setting up an encoding
environment using libvorbis. Libvorbisenc encapsulates the
actions needed to set up the encoder properly.

Change-Id: Idff1559c4a942ded79478eb30f9237d4fa6c43d1

3 years agomakewebm: add rudimentary live support
Tom Finegan [Wed, 22 Jun 2011 03:07:55 +0000 (23:07 -0400)]
makewebm: add rudimentary live support

- add --live flag for testing live mux mode.

Change-Id: Ic2355f4b95b56875c9010b2a8b706671970cfd21

3 years agostreamaudiovorbisogg: live mode fixes
Tom Finegan [Wed, 22 Jun 2011 03:06:43 +0000 (23:06 -0400)]
streamaudiovorbisogg: live mode fixes

- Use ScratchBuf::Rewrite instead of EbmlScratchBuf::RewriteUint for codec
  private values.  The codec private values are not supposed to be EBML
  encoded.
- Correct conditional used to detect necessity of filling unused reserved codec
  private space, and simplify the fill code a bit.

Change-Id: I95fba5ec40211b38c1285b93e62afd420aa9f20f

3 years agowebmmuxcontext: use 1 byte for cluster size storage in live mode
Tom Finegan [Wed, 22 Jun 2011 02:59:10 +0000 (22:59 -0400)]
webmmuxcontext: use 1 byte for cluster size storage in live mode

Change-Id: I49d5770b54b3db9a4a84c188e43cd37eac7cd067

3 years agowebmmuxcontext: correct segment size value in live mode
Tom Finegan [Tue, 21 Jun 2011 01:59:14 +0000 (21:59 -0400)]
webmmuxcontext: correct segment size value in live mode

- all 8 bits of the size byte must be set

Change-Id: Icbd6cd396057e08851e012653a4eda9e4db5fc72

3 years agoscratchbuf: cast return value in Erase method
Tom Finegan [Thu, 26 May 2011 17:00:05 +0000 (13:00 -0400)]
scratchbuf: cast return value in Erase method

- Fixes error when using warning level 4 w/warnings as errors enabled.

Change-Id: I10bc34cadefa48151c801919d6ede09a88e3e710

3 years agowebmtestshell: fix settings warnings
Tom Finegan [Thu, 26 May 2011 16:59:08 +0000 (12:59 -0400)]
webmtestshell: fix settings warnings

- disable minimal rebuild and incremental linking
- change debug information format to C7 (/Z7) in debug configurations.
  Release builds remain set to Program Database (/Zi)

Change-Id: I35ceade8cfb9ce0c497f4f4d2de2082f3b3d8ac0

3 years agothird_party: update gtest to v1.6.0
Tom Finegan [Thu, 26 May 2011 16:57:04 +0000 (12:57 -0400)]
third_party: update gtest to v1.6.0

- move to C7 format debug information (fix warnings in test apps)
- remove unused items (old pdb files and executables)

Change-Id: Id4eca1766a137efa2c99de252da141500575e1de

3 years agovp8decoder: accept stride changes in QueryAccept
matthewjheaney [Thu, 19 May 2011 15:46:20 +0000 (11:46 -0400)]
vp8decoder: accept stride changes in QueryAccept

Change-Id: Ied4bcf351c83485c446bcde81a2767932d699c6f

3 years agowebmmux: live muxing changes
Tom Finegan [Thu, 12 May 2011 00:57:33 +0000 (20:57 -0400)]
webmmux: live muxing changes

Change EBML header writing and audio/video track writing to use EbmlScratchBuf
to avoid the need to seek within the output file.

webmmuxstream*:
- add buffered track writing
- use WebmUtil::EbmlID enum vals instead of magic numbers

webmmuxcontext:
- support buffered track writing
- add assertions that buffering is not enabled when creating clusters.
- use constants for time code and cluster ID in cluster writing code.
- add EbmlScratchBuf member to WebmMuxLib::Context to allow access to
  the buffer by the stream classes, and tracking of its size to allow for
  proper element size calculations.
- write temp size of -1 instead of skipping 3 bytes in
  CreateNewClusterAudioOnly.
- rename m_first_seekhead_pos to m_seekhead_pos

misc:
- add G/SetMuxMode to IWebmMux.  Controlled via enum WebmMuxMode.  Current
  values are kWebmMuxModeDefault and kWebmMuxModeLive.
- claim new GUID in guids.txt for IWebmMux; mark previous as deprecated.
- change IWebmMux GUID to newly claimed GUID.
- use a bool to control live mux within WebmMuxLib::Context.
- use constants instead of magic numbers for EBML IDs in mux sources (not
  exhaustive, changed only what was necessary for this patchset)

Change-Id: I6d39ac4059320d08602c62f8f6155301fa3dc2ac

3 years agoscratchbuf: additional buffered EBML writing changes
Tom Finegan [Fri, 13 May 2011 01:12:27 +0000 (21:12 -0400)]
scratchbuf: additional buffered EBML writing changes

scratchbuf:
- add Fill and Erase methods to ScratchBuf
- add RewriteID to EbmlScratchBuf
- make EbmlScratchBuf dtor virtual
- move template functions into WebmUtil namespace
- specify width of all argument and return types for ScratchBuf and
  EbmlScratchBuf methods.

scratchbuf_tests:
- add basic Erase test (which happens to use Fill)
- add tests for supported ID sizes (8-32 bits)

- webmconstants: add max ID values

Change-Id: I0334ed2781657469924cb52589b618142ecde832

3 years agowebmconstants: add kEbmlClusterID
Tom Finegan [Tue, 17 May 2011 00:30:04 +0000 (20:30 -0400)]
webmconstants: add kEbmlClusterID

Change-Id: I2c0e7cf10d4922a3e03d4b3096d61bacb7ac8aec

3 years agowebmmuxebmlio: fix SetPosition declaration
Tom Finegan [Thu, 12 May 2011 00:57:20 +0000 (20:57 -0400)]
webmmuxebmlio: fix SetPosition declaration

- default argument was missing name

Change-Id: I1e49ff20c00751a5a529012d4ca55f7825ee8261

3 years agocommon: add scratchbuf and tests/scratchbuf_tests
Tom Finegan [Thu, 12 May 2011 01:43:11 +0000 (21:43 -0400)]
common: add scratchbuf and tests/scratchbuf_tests

- add webmtestshell project to host scratchbuf_tests.

scratchbuf:
- adds classes ScratchBuf and EbmlScratchBuf classes to the WebmUtil namespace
- ScratchBuf is a buffer class that uses a vector<uint8> to store user data
- EbmlScratchBuf is a specialized ScratchBuf that mimics behavior of EbmlIO
  write/serialize methods, and is intended to allow webm muxing code to
  1. Avoid seeking within the output file.
  2. Avoid writing -1 as an EBML element size value whenever possible.

scratchbuf_tests:
- add byteswap utils and basic tests for the utils
- add tests for EbmlScratchBuf

Change-Id: Ib7ddc300e38b7fedec7bce31d47662f9c2ed7df4

3 years agocommon: add webmconstants.hpp
Tom Finegan [Thu, 12 May 2011 01:23:18 +0000 (21:23 -0400)]
common: add webmconstants.hpp

- define EbmlTrackType; includes only Audio and Video track types
- define EbmlID enumeration; includes many EBML element IDs that we
  currently express as magic numbers throughout the muxing code.

Change-Id: Iec2e10dcb7b5807d61a13148bd92fe3ee5c91502

3 years agomemutil: include basictypes instead of debugutil
Tom Finegan [Thu, 5 May 2011 18:57:05 +0000 (14:57 -0400)]
memutil: include basictypes instead of debugutil

Change-Id: Ib571e2dfd4363ce4e85b587ea23789a430bf921b

3 years agothird_party: add chromium base/basictypes.h
tomfinegan [Wed, 27 Apr 2011 19:25:50 +0000 (15:25 -0400)]
third_party: add chromium base/basictypes.h

- BSD-style LICENSE file included
- minor modifications to basictypes.h (because we're windows only)

Change-Id: I7b9b204e93d0338b4e758b46451271782414b782

3 years agowebmcc: fixed strides and offsets
matthewjheaney [Wed, 30 Mar 2011 00:32:35 +0000 (20:32 -0400)]
webmcc: fixed strides and offsets

Change-Id: I009bbd836524969af85eec2eb9020bccb11c1896

3 years agoRevert "webmvorbisdecoder: removed obsolete operation"
matthewjheaney [Tue, 29 Mar 2011 23:30:27 +0000 (19:30 -0400)]
Revert "webmvorbisdecoder: removed obsolete operation"

This reverts commit 3bfab661bb3169eaaf9612f76f8ad74d72f3eea7.

Change-Id: I52ca38067bd9a774cca807742444e9a14bf40994

3 years agowebmcc: working, but planes are messed up
matthewjheaney [Tue, 29 Mar 2011 23:25:44 +0000 (19:25 -0400)]
webmcc: working, but planes are messed up

Change-Id: I1ee8a94e8cdc71c8e027362206d21a0b861c5ecb

3 years agolibcc: re-implemented simd_caps
matthewjheaney [Tue, 29 Mar 2011 20:18:59 +0000 (16:18 -0400)]
libcc: re-implemented simd_caps

Change-Id: I764a36f9ddb0c53f017ab2053f6908424d379130

3 years agowebmcc: select libcc color conv op
matthewjheaney [Sun, 27 Mar 2011 23:25:58 +0000 (19:25 -0400)]
webmcc: select libcc color conv op

Change-Id: I4b00ba161a8ced4815408b5c9b72daeab44f5eb2

3 years agowebmdshow: added libcc project
matthewjheaney [Tue, 29 Mar 2011 00:50:24 +0000 (20:50 -0400)]
webmdshow: added libcc project

Change-Id: Ie12f7b5c3111f5c117d7c9fabfbd3c83b4ab7e02

3 years agowebmmf: v0.25 webmmf-0.25.0.0-20110328
matthewjheaney [Mon, 28 Mar 2011 17:19:24 +0000 (13:19 -0400)]
webmmf: v0.25

Change-Id: Idd0c792574098c651f226a4d7ff570eeec990250

3 years agowebmvorbisdecoder: removed obsolete operation
matthewjheaney [Mon, 28 Mar 2011 03:30:25 +0000 (23:30 -0400)]
webmvorbisdecoder: removed obsolete operation

Change-Id: Iaed67d5c265c3748c45ec67bf0a2e4af992368f3

3 years agowebmcc: initial checkin
matthewjheaney [Sun, 27 Mar 2011 21:53:03 +0000 (17:53 -0400)]
webmcc: initial checkin

Change-Id: I7813c9709236963bea44d6c2a3cca3c966acbde7

3 years agowebmoggsource: ignore non-vorbis streams
matthewjheaney [Sun, 27 Mar 2011 02:12:22 +0000 (22:12 -0400)]
webmoggsource: ignore non-vorbis streams

Change-Id: I96227672d162e2b4551f3314a7dd9e91631899e4

3 years agowebmmux: write seekhead and cues only when have video
matthewjheaney [Sat, 26 Mar 2011 17:48:52 +0000 (13:48 -0400)]
webmmux: write seekhead and cues only when have video

Change-Id: Ifa4b832f8d4a3836e05c71e2fa6101aba4968206

3 years agowebmmux: use 5000ms as audio-only cluster size
matthewjheaney [Sat, 26 Mar 2011 17:47:55 +0000 (13:47 -0400)]
webmmux: use 5000ms as audio-only cluster size

Change-Id: Ifabcd2e28c30ed61876f4ff3bbeacfd4855ccd72

3 years agowebmmux: don't hard-code uint val sizes
matthewjheaney [Sat, 26 Mar 2011 17:46:57 +0000 (13:46 -0400)]
webmmux: don't hard-code uint val sizes

Change-Id: I7721431151f8939c6fafc1ba930229c1fce5288d

3 years agomkvparser: must allocate 256 buffers for audio
matthewjheaney [Sat, 26 Mar 2011 01:49:02 +0000 (21:49 -0400)]
mkvparser: must allocate 256 buffers for audio

Change-Id: Ib39f2fc3dc75e05aa6f93234e9e731768cf09220

3 years agomkvparser: accept comment hdr len > 255
matthewjheaney [Sat, 26 Mar 2011 01:48:33 +0000 (21:48 -0400)]
mkvparser: accept comment hdr len > 255

Change-Id: Icd047c06a908491714096bc46457a15cb8ae5473

3 years agowebmmux: accept comment hdr len > 255
matthewjheaney [Sat, 26 Mar 2011 01:46:17 +0000 (21:46 -0400)]
webmmux: accept comment hdr len > 255

Change-Id: I53c92ea857b0f3bc12d649a19cfc37e191ac3bb4

3 years agomakewebm: added ogg-to-webm switch
matthewjheaney [Sat, 26 Mar 2011 00:08:31 +0000 (20:08 -0400)]
makewebm: added ogg-to-webm switch

Change-Id: Iff5acf37a1fa52419f243396ba9c7cb99bfef652

3 years agowebmmux: support xiph laced audio frames
matthewjheaney [Sat, 26 Mar 2011 00:07:11 +0000 (20:07 -0400)]
webmmux: support xiph laced audio frames

Change-Id: I0c5de227d6f5b026739df5c375136d4d32bc4623

3 years agowebmoggsource: support Xiph lacing as output media type
matthewjheaney [Fri, 25 Mar 2011 13:57:57 +0000 (09:57 -0400)]
webmoggsource: support Xiph lacing as output media type

Change-Id: Id5e5b409039aad744582108ef21a38a3e2edfd0b

3 years agowebmmfsource: handle large vorbis comment hdr
matthewjheaney [Sat, 26 Mar 2011 02:09:03 +0000 (22:09 -0400)]
webmmfsource: handle large vorbis comment hdr

Change-Id: I2f8103c0ed2d55a6531603daed9e52c843afb3df

3 years agovp8decoder: added some debug output
matthewjheaney [Thu, 24 Mar 2011 01:13:01 +0000 (21:13 -0400)]
vp8decoder: added some debug output

Change-Id: Iec1557c207a06116010b19f0bb140e7750f8c9ae

3 years agowebmvorbisdecoder: buffer 1/8th sec of audio
matthewjheaney [Thu, 24 Mar 2011 01:11:32 +0000 (21:11 -0400)]
webmvorbisdecoder: buffer 1/8th sec of audio

Change-Id: Ida0dbb563fd7ab5b28e4facfe87287c57e7d09ca

3 years agowebmvorbisdecoder: terminate thread during flush
matthewjheaney [Thu, 24 Mar 2011 00:28:02 +0000 (20:28 -0400)]
webmvorbisdecoder: terminate thread during flush

Change-Id: If120f4ad13f8fc24170168ab12244aeea6733556

3 years agowebmsplit: load cue points during seek
matthewjheaney [Wed, 23 Mar 2011 18:54:54 +0000 (14:54 -0400)]
webmsplit: load cue points during seek

Change-Id: I5c8aa3e3e46197e5c4f5fc99073979831cfc44d2

3 years agowebmsplit: clean build with latest libwebm
matthewjheaney [Wed, 23 Mar 2011 18:03:02 +0000 (14:03 -0400)]
webmsplit: clean build with latest libwebm

Change-Id: I457e6c76c0d988e566fed6490b84c0f6e6bf2121

3 years agowebmvorbisdecoder: changed progid
matthewjheaney [Wed, 23 Mar 2011 15:24:31 +0000 (11:24 -0400)]
webmvorbisdecoder: changed progid

Change-Id: I66d1fce1e5c2e1225c7103e4978123b35727a7af

3 years agowebmvorbisdecoder: added thread to output pin
matthewjheaney [Sun, 20 Mar 2011 12:42:20 +0000 (08:42 -0400)]
webmvorbisdecoder: added thread to output pin

Change-Id: I5d191af4f7a499999c046e5345a0352ccf463869

3 years agowebmvorbisdec: removed obsolete decl
matthewjheaney [Sun, 20 Mar 2011 12:59:46 +0000 (08:59 -0400)]
webmvorbisdec: removed obsolete decl

Change-Id: Iec7205fed5f265650c3548abe58e2e9660801311

3 years agowebmsource: load cue points during seek
matthewjheaney [Sat, 19 Mar 2011 20:31:55 +0000 (16:31 -0400)]
webmsource: load cue points during seek

Change-Id: I456f85723f26669444d3bb25a5922f8e474247fc

3 years agowebmvorbisdec: call vorbis_restart when seek
matthewjheaney [Sat, 19 Mar 2011 18:56:11 +0000 (14:56 -0400)]
webmvorbisdec: call vorbis_restart when seek

Change-Id: Ie3019806ec5909c716fa973548e9fff4134a5e35

3 years agowebmvorbisdec: reset first_reftime when flush
matthewjheaney [Sat, 19 Mar 2011 17:52:18 +0000 (13:52 -0400)]
webmvorbisdec: reset first_reftime when flush

Change-Id: I5e17833fb6575f724ba21c994252522d9c64c570

3 years agowebmmfsource: use Cues::DoneParsing
matthewjheaney [Sat, 19 Mar 2011 14:46:57 +0000 (10:46 -0400)]
webmmfsource: use Cues::DoneParsing

Change-Id: I6d370a05acca663357b4ab7d4f86fb770f2f32fd

3 years agowebmsource: simplified Stream::UpdateAllocProps
matthewjheaney [Sat, 19 Mar 2011 14:40:01 +0000 (10:40 -0400)]
webmsource: simplified Stream::UpdateAllocProps

Change-Id: I28dc5b0afab1ae6ce6b95614dc1d5f6f05b4efc0

3 years agowebmsource: load all cue points when estimating duration
matthewjheaney [Sat, 19 Mar 2011 14:37:27 +0000 (10:37 -0400)]
webmsource: load all cue points when estimating duration

Change-Id: I04e49686b801cc9cf12ab170d24d90875cfa1f47

3 years agowebmsource: handle EOF when loading clusters
matthewjheaney [Fri, 18 Mar 2011 02:29:39 +0000 (22:29 -0400)]
webmsource: handle EOF when loading clusters

Change-Id: I9dd60f97f87361ec5252aaf3fd6725b9f4715995

3 years agowebmoggsource: more accurate sample time
matthewjheaney [Fri, 18 Mar 2011 00:07:12 +0000 (20:07 -0400)]
webmoggsource: more accurate sample time

Change-Id: Iad3b95215a2455dd8763c207fb43869355110159

3 years agowebmoggsource: timestamp each output sample
matthewjheaney [Thu, 17 Mar 2011 22:13:46 +0000 (18:13 -0400)]
webmoggsource: timestamp each output sample

Change-Id: Iad73af8f9a29c7047b691472e2e496e60912b7d3

3 years agowebmoggsource: increase buffer count
matthewjheaney [Thu, 17 Mar 2011 17:15:17 +0000 (13:15 -0400)]
webmoggsource: increase buffer count

Change-Id: I842e9db01620d4d540208a385197ee9ad58bcfe7