Tom Finegan
24be76dcb2
webm2pes: Replace VpxFrame with VideoFrame.
...
VideoFrame was created in order to get rid of the two
slightly different VpxFrame implementations. This patch
gets rid of Webm2Pes's version.
Change-Id: I5af29d5ca717121ee7ab30f28e42d2a43ea5abb0
2016-07-22 15:07:42 -07:00
Tom Finegan
b451c3ba96
Add a basic video frame storage class.
...
Includes simple tests.
Change-Id: I52276686d6c2bc7b62d260af37affe78aa4dcf50
2016-07-22 15:07:33 -07:00
Tom Finegan
05c90ebccc
libwebm_util: Clarify error text in superframe parser.
...
Change-Id: Icb478d58306bc5e501df9585ece35c9747dd640d
2016-07-22 11:34:18 -07:00
Tom Finegan
e6415af941
webm2pes: Make WritePesPacket() a public method.
...
WritePesPacket() now takes a VpxFrame as input and a
PacketDataBuffer* as an output parameter, and avoids
using members entirely. This facilitates deeper testing
of Webm2Pes without requiring friendship with test
classes and methods.
Change-Id: I076db8900cc1a5c864b54f5fe3403fb05b4bd835
2016-07-20 17:36:46 -07:00
Tom Finegan
8f840ddaa3
webm2pes: Move frame read out of PES packet write method.
...
Makes writing tests easier by allowing caller to pass data
for packetizing directly into the method.
Change-Id: I553fa8c1636041c4a5ff043862918a5cdc9163ba
2016-07-20 14:00:36 -07:00
Tom Finegan
448af971d2
webm2pes: Restore frame fragmentation support.
...
Cap packet payload at 32 kB. Update test to expect non-zero
packet length.
Change-Id: Ibb68a4ef8d32c049c492ae546c631ef6376e3ffd
2016-07-18 14:32:02 -07:00
Tom Finegan
f8bb7149f5
cmake: Integrate new parsing API and tests.
...
Change-Id: I11e32bfffda12fa910c06bf7b8e3a0efbccf6054
2016-07-14 11:11:59 -07:00
Michael Bradshaw
cb8ce0b4b5
Add a new incremental parsing API
...
Change-Id: I6b921766836d58df0281fb23b2add3f62a478e14
2016-06-15 12:39:58 -07:00
Tom Finegan
900d322cc8
vpxpes_parser/webm2pes: BCMV and PTS fixes.
...
- Write BCMV length value big endian and include BCMV header
size.
- Write PTS bits big endian.
Change-Id: I8cd72c233c21f5909438f5a3bb817e9477bdfcfb
2016-06-02 17:05:09 -07:00
Tom Finegan
4b735452bb
webm2pes: Add start code emulation prevention.
...
- Make start codes reliable for VPx in PES.
- Stop setting the PES size field and stop splitting packets when
larger than UINT16_MAX (always set 0; rely on start codes to find
packet boundaries).
Change-Id: I402e91c26562e930f61543ca59223b83cc92be29
2016-06-02 17:05:07 -07:00
Frank Galligan
82903f36fa
Add column tiles and frame parallel to webm_info
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1227
Change-Id: I23b1611a91074bfa0cff3b788baeff71bc68d034
2016-05-17 09:00:41 -07:00
Vignesh Venkatasubramanian
5d91edf9f1
style_clean_up: Remove unnecessary parentheses
...
Change-Id: Ie3645319fa4d5a1fd254b4511a60ef6f6036afe5
2016-05-13 10:41:16 -07:00
hui su
a95aa4b294
vp9_level_stats: correct total_uncompressed_bits_ calculation
...
Only consider display frames.
Change-Id: I9061ad90775f0467a661b0ac5d11dc22e477a7c3
2016-05-06 15:37:09 -07:00
Tom Finegan
f46566f19a
mkvreader: Fix shorten-64-to-32 warning in 32 bit builds.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1207
Change-Id: Ie1c97a314fefdf14dce455da16f5a29218ba4cf8
2016-05-06 11:40:48 -07:00
Tom Finegan
76630ca4a3
mkvwriter: Fix shorten-64-to-32 warning in 32 bit builds.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1207
Change-Id: I2dc1ce59ebf8051c9661b919813d5ab7cb115da0
2016-05-06 11:40:44 -07:00
Tom Finegan
a8ffbd4ed2
webm2pes: Fix format specifier warnings.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1207
Change-Id: If60866f8e60969bc6cbaef8eee72a805270bf65d
2016-05-06 11:40:38 -07:00
Frank Galligan
21015480f6
Merge "Add MaxLumaSampleRate grace percent to stats."
2016-05-02 22:00:22 +00:00
Frank Galligan
faf89d4ed1
Add MaxLumaSampleRate grace percent to stats.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1206
Change-Id: I29a956871bd5aa0c7b493601ed23b44a08414d32
2016-04-30 16:59:42 -07:00
Frank Galligan
d31e6c970d
Fix profile 2 in vp9_header_parser.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1208
Change-Id: Ie31adef15eac965e3fb587825f63ff320c1d59fe
2016-04-29 17:11:29 -07:00
Frank Galligan
4fc66dab83
Merge "Add flag to estimate last frame's duration to stats."
2016-04-29 22:30:12 +00:00
Frank Galligan
bd3ab3abe6
Add flag to estimate last frame's duration to stats.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1204
Change-Id: Ie73e2981951f9eb6140bdfb0a6839320e009b7fe
2016-04-29 14:19:58 -07:00
Vignesh Venkatasubramanian
c89b968ce5
Merge "Fix lint issue in hdr_util.h"
2016-04-29 19:31:52 +00:00
Vignesh Venkatasubramanian
db5693d96b
Merge "Add test for Cluster memory leak"
2016-04-29 19:31:40 +00:00
Vignesh Venkatasubramanian
c182ed97d1
Fix lint issue in hdr_util.h
...
Change-Id: Iba19ad153f9187c3942d406e41da04703f7dd5c7
2016-04-29 11:47:04 -07:00
Vignesh Venkatasubramanian
cc62ecd23f
Add test for Cluster memory leak
...
Tests the scenario described in this CL:
https://chromium-review.googlesource.com/#/c/341251/
Change-Id: I4d732eebc11140691ed516321cf490905991720b
2016-04-29 11:42:36 -07:00
Frank Galligan
196708a95f
Change MaxLumaSampleRate to be based on frame resolution.
...
MaxLumaSampleRate generation code now takes into account the frame
resolution of every frame.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1203
Change-Id: I666fa2f21971ff4fb80219ef29dee3254cbb370c
2016-04-29 08:15:37 -07:00
Vignesh Venkatasubramanian
26d673e737
Merge "mkvmuxer: Fix leak when a Cluster isn't finalized"
2016-04-29 02:17:33 +00:00
Frank Galligan
eacb314525
Merge "Add parsing support for new features in CodecPrivate."
2016-04-29 00:17:28 +00:00
Vignesh Venkatasubramanian
cbd676bb66
mkvmuxer: Fix leak when a Cluster isn't finalized
...
There's a leak in the following scenario:
* AccurateClusterDuration is set to true.
* Add a few frames.
* An error is encountered while adding a frame and the
application bails without calling Cluster::Finalize
* All the frames we queues in QueueOrWriteFrames now leak.
This patch fixes this scenario by delete'ing any left over frames
in the Cluster's destructor.
Change-Id: I104f6814db18a86fae9877decfe6cc75b8937fcb
2016-04-28 12:30:29 -07:00
Tom Finegan
9a235e0bc9
mkvmuxer: Set doctype to matroska when muxing non-WebM codecs.
...
Also, add some constants for WebVTT codec ID strings so they
won't cause doctype to incorrectly change to matroska.
Change-Id: I4740a3e45b28a22e462601b9ce051aa01817dace
2016-04-28 08:44:14 -07:00
Frank Galligan
47f2843e79
Add parsing support for new features in CodecPrivate.
...
Adds support for parsing bit depth and chroma subsampling features.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1198
Change-Id: I8d11829f5d43a518cbe0e5c0bdd4fd37db7b6266
2016-04-27 09:27:24 -07:00
Frank Galligan
e3c9576716
Add VP9 level output to webm_info.
...
Removed building webm_info from Makefile.unix as it now requires c++11.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1188
Change-Id: Ia142f0c3cd580f397449d2ffa8788f78fb7faff0
2016-04-26 22:16:31 -07:00
Frank Galligan
de3234a87f
Merge "Add class to gather VP9 level stats."
2016-04-26 15:29:49 +00:00
Tom Finegan
5cf549f582
cmake: Log compiler flag at check time.
...
Output the flag being checked before checking the flag to make it easier
to determine exactly which check failed.
Change-Id: I692f5287f985acb4a3061dd54f7c5a8729def83b
2016-04-21 16:56:12 -07:00
Frank Galligan
bbaaf2da8d
Add class to gather VP9 level stats.
...
See http://www.webmproject.org/vp9/profiles/ for more information
on VP9 levels.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1188
Change-Id: I91448069bbd4740106a159014db6935365af75ca
2016-04-21 13:02:25 -07:00
Frank Galligan
8bb68c2b3e
Add file to parse data from VP9 frames.
...
This class will parse and collect some data from VP9 frame
headers.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1188
Change-Id: Ie19e0f4a2f7e89d0378a66ce2e8e939250ddc383
2016-04-18 12:21:58 -07:00
Frank Galligan
a004fefc56
Merge "Add support for setting VP9 profile and level to sample_muxer."
2016-04-18 19:20:17 +00:00
Frank Galligan
58e33b3329
Merge "Add support to parse VP9 profile."
2016-04-18 19:20:04 +00:00
Frank Galligan
296429a7dc
Add support to parse VP9 profile.
...
This is the VP9 profile contained in the CodecPrivate data.
Change-Id: If5fd5667bfc86ff596354457539da363367128db
2016-04-18 12:15:59 -07:00
Frank Galligan
df3412f68d
Add support for setting VP9 profile and level to sample_muxer.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1179
Change-Id: I20ffc213764c3c1c35563178b6e8e1e0031760b6
2016-04-18 12:13:45 -07:00
Vignesh Venkatasubramanian
87832d487a
mkvmuxer: Fix Segment::Finalize in kLive mode
...
Do not call Cluster::Finalize in kLive mode unless
accurate_cluster_duration_ is set.
Change-Id: Id2627b5df9eaee065e12d08b494ee02ae0a33564
2016-04-15 20:32:19 -07:00
Tom Finegan
6df3e5630e
mkvmuxerutil.hpp: Add using directives for overloaded size utils.
...
Some downstream code using the EBML element size requires that
EbmlElementSize and EbmlMasterElementSize are accessible in the global
namespace.
Change-Id: I9d110b683e434c90f96ae7b35b35e79eb6a2335f
2016-04-14 17:16:31 -07:00
Tom Finegan
ec479287ff
mkvmuxerutil: Revert to using mkvmuxertypes.
...
- The direct change to stdint.h types causes too much downstream
churn. Need an intermediate step or a wrapper because quite a
bit of user code explicitly casts args passed to mkvmuxerutil
functions to types defined in mkvmuxertypes.
- Update call sites in mkvmuxer to avoid ambiguity errors.
Change-Id: I018445b3d8ab1da776ecdb19a290ac00af63c2cf
2016-04-14 12:58:38 -07:00
Frank Galligan
7d674468bd
Merge "Add support to output Colour elements to webm_info."
2016-04-13 16:15:30 +00:00
Frank Galligan
a1dc4f2f22
Fix parsing of VP9 level.
...
The VP9 level is contained in the CodecPrivate data.
Change-Id: I65475363ee230b422a8cdce8172f6262cb3329e7
2016-04-12 23:00:03 -07:00
Frank Galligan
4e3d037374
Add support to output Colour elements to webm_info.
...
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1178
Change-Id: I50825e320a0c93dd565bf89c9478feb434277ddb
2016-04-12 21:46:00 -07:00
Tom Finegan
836591f4f5
Merge "Add TEST_TMPDIR environment variable"
2016-04-13 00:26:58 +00:00
Tom Finegan
d3656fdb8b
muxer_tests: ignore iwyu re gtest-message.h
...
Just pull it in via gtest.h.
Change-Id: If04d569a74da925f8544858861057af497f3f2bf
2016-04-12 14:49:21 -07:00
Tom Finegan
e76dd5e3e2
Fix file name in mkvmuxertypes shim.
...
Change-Id: I78d3784139727b65a47aaf1eb987d8b9ab14de37
2016-04-12 13:27:57 -07:00
Tom Finegan
1be5889a6d
Add temporary include shims at old file locations.
...
Helps ease the downstream transition to the new libwebm layout.
BUG=28069412
Change-Id: I0d4182e22a10fecdd5982b8aceba687dea9529d8
2016-04-11 23:25:20 +00:00