Tom Finegan
be35869ce3
libwebm_utils: Add FileDeleter.
...
Put the FILE clean up functor in a common place to avoid duplication.
Change-Id: I7bcb5b3e4df7aa37bb90920ecb8acccf94eeaa57
2015-12-17 08:50:23 -08:00
Tom Finegan
d6db1e1960
webm2pes: Add a WebM parser init method.
...
Pre-refactor a little to avoid some code duplication.
Change-Id: I8ce733be0c9e07544fc25bd9890d68fb14a7e84d
2015-12-17 08:50:23 -08:00
Tom Finegan
aa3593ec36
webm2pes: Rename Convert to ConvertToFile().
...
Change-Id: I98a928ff5b00e8961183136316be3615fd7462fe
2015-12-17 08:50:23 -08:00
Tom Finegan
e8fca12fb6
webm2pes: Fix super frame splitting.
...
Super frame index is at the end of the frame; not the beginning. Adjust
length to process instead of offsetting the start point for breaking up
the super frame.
Change-Id: I71910f24cc060934bb974548a29617b985985ed9
2015-12-17 08:50:17 -08:00
Tom Finegan
3cb96b6e33
webm2pes: Move main() and helper functions into their own files.
...
- main() and Usage() to webm2pes_main.cc
- Other helpers to common/libwebm_utils.{cc,h}
Change-Id: I59e45f0e63449066b493c4e536e0be001372504c
2015-12-17 08:38:13 -08:00
Tom Finegan
021432be9d
webm2pes: Fix the linux build.
...
- Fix narrowing warnings in BCMVHeader::Write
- Add missing include for std::memcpy (cstring).
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1113
Change-Id: I5e89a5d4f30c9925fc6110502dc927172c709c03
2015-12-11 11:23:53 -08:00
Tom Finegan
82ac5fcdc8
Remove RELEASE.TXT.
...
It's stale and redundant.
Change-Id: I91c3a1e0f0c717c8f1b3ae30d648127cb2f3590c
2015-12-09 08:12:34 -08:00
Tom Finegan
852e1733a8
webm2pes: Split super frames and packetize large frames.
...
- PES depacketizers don't want anything but simple encoded frames.
- Large in this case means frame size + size of PES header
is > UINT16_MAX.
Change-Id: Ifb76caaa97a0dcf3600228a0cbc4d4f2533027a7
2015-12-07 20:14:53 -08:00
Tom Finegan
faf85c227d
webm2pes: Refactor header/optional header writing.
...
- Move class declarations to webm2pes.h.
- Add some visual demarcation between the method definitions for each
class in webm2pes.cc.
- Reorganize the output code to make further development simpler.
- Also, clang format noise.
Change-Id: Id6d156e1f255cefe30a62784a3eadde6b93ae614
2015-12-03 14:42:37 -08:00
Tom Finegan
7c19266548
Add Webm2Pes.
...
Add tool for converting WebM VPx streams to Packetized Elementary
Streams.
Change-Id: I599de053df5423a803a3ea450876c52c3e400034
2015-12-02 11:42:24 -08:00
Tom Finegan
01fdee435c
mkvmuxer: Disallow AddTrack() after Tracks element is output.
...
BUG=https://code.google.com/p/webm/issues/detail?id=1083
Change-Id: I6a603337ba5fea1333f3f1c2595f9b87b148c427
2015-10-21 09:07:00 -07:00
James Zern
1ad314e297
mkvparser: EBMLHeader::Parse: remove dead init
...
Change-Id: Ie06b44c3b7fd948d11aa86ae521a196ea668312b
2015-10-13 16:10:55 -07:00
James Zern
476366249e
mkvparser: fix type warnings
...
Change-Id: Ia77a9a4e694986ece4c2e0f86f2857f320432f48
2015-09-11 18:56:09 -07:00
James Zern
267f71c76e
mkvparser: SafeArrayAlloc fix type warning
...
num_bytes has been validated so it's safe to cast to size_t for use with
new
Change-Id: If1a6c5521dd6fbcb7e30f434b81daa3b26bd0386
2015-09-11 18:56:09 -07:00
James Zern
f1a99d5f25
mkvparser: s/LONG_LONG_MAX/LLONG_MAX/ for compatibility
...
Change-Id: If3b80bfd08f02ec9cba0be223ff95991564f6fd7
2015-09-11 18:56:09 -07:00
James Zern
bff1aa512d
mkvparser: add msvc compatibility for isnan/isinf
...
fixes build errors related to these functions on visual studio prior to
2013
Change-Id: I8272f9065195e5447055aad7d0f899afa0294ea9
2015-09-11 18:55:03 -07:00
Vignesh Venkatasubramanian
a58c32339e
mkvmuxer: Add codec id constant for VP10.
...
This was added in the libvpx's snapshot here:
https://chromium-review.googlesource.com/#/c/293861
Change-Id: I58b9635c62535ecdb0dff14dc294466262590861
2015-09-10 12:10:01 -07:00
Tom Finegan
714f3c4e4f
mkvparser: validate results in EBMLHeader::Parse.
...
Return an error when DocType, DocTypeReadVersion, DocTypeVersion
EBMLMaxIDLength or EBMLMaxSizeLength are invalid or cannot be
handled by mkvparser.
Update samples to respect the return value from EBMLHeader::Parse.
BUG=https://code.google.com/p/webm/issues/detail?id=1057
Change-Id: I9337f13c1d5fa366b1101e48fe6bc46eb5b2ee97
2015-09-05 08:06:45 -07:00
Tom Finegan
cec98d4110
mkvparser: Correct the ReadID implementation.
...
Return real, known MKV IDs when reading them. Previously
IDs were treated as EBML integer values. This was both
wrong and confusing. Wrong because this results in values
that are not part of the Matroska spec, and confusing
because the code was littered with magic numbers
representing the invented IDs.
Currently uses mkvmuxer::MkvId; A TODO in the code addresses this.
Additional IDs have been added that were not previously in the enum:
mkvparser parses many elements that we do not write in the muxer.
Change-Id: I5db2b4d70d786d5239d2e2a0cbff4e7f8d844aa6
2015-09-04 09:55:59 -07:00
Tom Finegan
eb36ae4840
Merge changes I029a268e,Ia272b150,I5c4d1bbc,Ia47a2478,I3a2e2226
...
* changes:
mkvparser: Cluster::Parse clean up.
mkvparser: Disallow EBML IDs equal to 0.
mkvparser: Cluster::Load clean up.
mkvparser: Segment::Load asserts to error checks.
mkvparser: Segment::PreloadCluster asserts to error checks.
2015-08-31 22:48:36 +00:00
Tom Finegan
229f49347d
Merge "mkvparser: Segment::AppendCluster asserts to error checks."
2015-08-31 22:10:13 +00:00
Tom Finegan
287faf95f6
Merge "mkvparser: Segment::DoLoadClusterUnknownSize asserts to error checks."
2015-08-31 22:09:51 +00:00
Tom Finegan
1a87b59032
Merge "mkvparser: Segment assert clean up."
2015-08-31 22:09:37 +00:00
Tom Finegan
d26ec6909d
mkvparser: Cluster::Parse clean up.
...
- Remove "// weird"'s.
- Remove commented out asserts.
- Asserts to error checks.
- Use ReadID to read IDs.
Change-Id: I029a268e4fa45931e3c6a72e41448f0b8fb2d0c3
2015-08-31 14:32:53 -07:00
Tom Finegan
f2029be5f4
mkvparser: Disallow EBML IDs equal to 0.
...
Change-Id: Ia272b1505dc62fdadf06348365a6aef058b081d8
2015-08-31 14:23:38 -07:00
Tom Finegan
19f5694277
mkvparser: Cluster::Load clean up.
...
- Remove "// weird"'s.
- Remove needless extra scoping.
- Asserts to error checks.
Change-Id: I5c4d1bbc59d9debe95e1e35e63ff0679335048ff
2015-08-31 13:59:35 -07:00
Tom Finegan
27a07c1fd1
mkvparser: Segment::Load asserts to error checks.
...
Change-Id: Ia47a24786789d6f94a786f76e313318e013f4f40
2015-08-31 13:38:35 -07:00
Tom Finegan
d0313dd7ce
mkvparser: Segment::PreloadCluster asserts to error checks.
...
Change-Id: I3a2e2226f30ee047f96f5136c52e4cb9081d42c8
2015-08-31 13:36:15 -07:00
Tom Finegan
b108695b9b
mkvparser: Segment::AppendCluster asserts to error checks.
...
Change-Id: Id6bb378b22a7c6397e3d950c2fdd84396279e881
2015-08-31 12:40:24 -07:00
Tom Finegan
4630f80f79
mkvparser: Segment::DoLoadClusterUnknownSize asserts to error checks.
...
Change-Id: I4597416261efb9202d2307e1ac4abfeb38e7c515
2015-08-31 12:38:20 -07:00
Tom Finegan
841a9b5fd9
mkvparser: Segment assert clean up.
...
- Remove asserts from ~Segment, CreateInstance, and DoLoadCluster.
- Adds new return constant (E_PARSE_FAILED == -1); most places in
mkvparser that return -1 are the result of an internal inconsistency
and/or misusing the API. In those cases E_FILE_FORMAT_INVALID is not
appropriate as a return value because it's misleading to libwebm users.
Change-Id: I0d46e831b3475d69432b8745066de3329419fa11
2015-08-31 12:38:09 -07:00
Tom Finegan
8c4ca2ea04
Merge "mkvparser: Make mkvparser namespace usage uniform."
2015-08-28 21:55:13 +00:00
Tom Finegan
49ae6f0dd9
Merge "mkvparser: Fix include order."
2015-08-28 21:54:04 +00:00
Tom Finegan
0735bb5bdc
mkvparser: Make mkvparser namespace usage uniform.
...
Instead of being weird and defining the first few functions
in mkvparser by explicitly prepending the namespace, open the
namespace immediately and define all functions within it.
Change-Id: I9a44a0fda8b04f89c8f874a2a6edc78f1b8e5bcc
2015-08-28 14:26:46 -07:00
Tom Finegan
93b24c4195
mkvparser: Fix include order.
...
Change-Id: Ia03ce824c78c19f5ab62c736069ea0972b8c93ea
2015-08-28 11:06:03 -07:00
James Zern
a57d6602b4
sample_muxer: fix Segment memory leak on error
...
use an auto_ptr<mkvparser::Segment> for compatibility which should be
harmless as there is no attempt to transfer ownership; sample.cpp
operates similarly.
Change-Id: I2cb6982aa64c62ff2ec7cbbd646770cb4e782509
2015-08-27 21:09:16 -07:00
Tom Finegan
1c5bd949d0
mkvparser: Cues, change asserts to error checks.
...
Change-Id: I116845b792aa5bb9a35341097cbd393300539f79
2015-08-26 12:51:05 -07:00
Tom Finegan
7f77201dca
Merge "mkvparser: Add ReadID."
2015-08-26 19:49:11 +00:00
James Zern
795fd568b6
mkvparser: set kMaxAllocSize explicitly
...
removes the need for the unrelated INT32_MAX and fixes the build
(stdint.h was missing)
Change-Id: Idf3315097982aec6fb28030bd2327ba6cff14668
2015-08-25 20:29:50 -07:00
Tom Finegan
23bb18b76d
mkvparser: Add ReadID.
...
Enforce ID rules in one place instead of every time
an ID is read.
Change-Id: I6e39a2e2dbafa2d5926dea790dd563cc3a48f67e
2015-08-25 13:37:35 -07:00
Tom Finegan
7b57e37fde
mkvparser: add SafeArrayAlloc.
...
A new wrapper that makes array allocations safer by
limiting allocated size.
BUG=23430787
Change-Id: I901ee61dc2b601e8c0b5bf13f7499b5d2479ba7a
2015-08-25 13:06:27 -07:00
Tom Finegan
83a1f68944
mkvparser: Remove buf_t typedef.
...
- It is useless.
- It masks errors; buf_t was unsigned char*, but const buf_t was
not seen by the compiler as const unsigned char*, which allowed
passing a const pointer as a mutable argument to
IMkvReader::Read at every site where buf_t was in use.
Change-Id: I293015e11c69d992e76c88ac02052a5a9a2b2c9c
2015-08-25 10:47:17 -07:00
James Zern
507471457e
Merge changes Ia1265a63,I799d54df,Icfc582e4,I3425f608
...
* changes:
Block::Parse: replace pos asserts w/checks
Cluster::ParseBlockGroup: replace pos asserts w/checks
Tags::*::Parse: replace pos asserts w/checks
Chapters::*::Parse: replace pos asserts w/checks
2015-08-25 06:28:43 +00:00
James Zern
b18110541a
Merge changes Ie4318152,I1e65f30f
...
* changes:
Block::Parse: use int64 to aggregate laced frame sizes
UnserializeFloat: check result for Inf/NaN
2015-08-25 06:25:04 +00:00
James Zern
06b4337ed8
Block::Parse: replace pos asserts w/checks
...
replace the common patterns assert(pos <= stop) / assert(pos == stop)
with error checks
BUG=23431751
Change-Id: Ia1265a639086c790a2ed542f34c2f438c153b036
2015-08-24 19:59:08 -07:00
James Zern
b366a98053
Cluster::ParseBlockGroup: replace pos asserts w/checks
...
replace the common patterns assert(pos <= stop) / assert(pos == stop)
with error checks
+ harmonize error return -1 -> E_FILE_FORMAT_INVALID
BUG=23431751
Change-Id: I799d54df62d93388b52ac325b836ab28e0860992
2015-08-24 19:59:04 -07:00
James Zern
2857b2350c
Tags::*::Parse: replace pos asserts w/checks
...
replace the common patterns assert(pos <= stop) / assert(pos == stop)
with error checks
+ harmonize error return -1 -> E_FILE_FORMAT_INVALID
BUG=23431751
Change-Id: Icfc582e414a7d02ae0675ef14c047922c4a12036
2015-08-24 19:59:00 -07:00
James Zern
f1b2cfa03e
Chapters::*::Parse: replace pos asserts w/checks
...
replace the common patterns assert(pos <= stop) / assert(pos == stop)
with error checks
BUG=23431751
Change-Id: I3425f6083456b5ab4f40497e3a192569b494dfa9
2015-08-24 19:56:07 -07:00
Tom Finegan
ca8062959a
Merge "mkvparser: Cues::PreloadCuePoint now returns bool."
2015-08-25 02:22:05 +00:00
James Zern
6b4b297220
Block::Parse: use int64 to aggregate laced frame sizes
...
this is compared against a final total which is also int64
BUG=23488728
Change-Id: Ie4318152f9f9ae049a35d0b2724ccad129316981
2015-08-24 17:00:34 -07:00