Commit Graph

42 Commits

Author SHA1 Message Date
KongQun Yang 6837ac45b7 Implement MpdNotifyMuxerListener
Change-Id: I08742839c2be5e5da104914ec841b8c5dd57f0b7
2014-06-05 18:51:52 +08:00
Rintaro Kuroiwa c73c25c1c0 XML compare function
XML compare function for comparing a subset of MPD or the whole MPD.
The children must appear in the same order but the order of attributes
do not matter.
Change existing tests to use XmlEqual() instead of string comparison.

Change-Id: Ib7f80f52b5bed5b5f7c2517620c8955261a4b6a2
2014-05-27 17:46:39 -07:00
Rintaro Kuroiwa beaea71946 Add tests that check the 'id' attributes.
Change-Id: I487ec7c658fd5a3a8bae03800e23b37cc44066f4
2014-05-22 14:18:27 -07:00
KongQun Yang b0e26ff297 Implement SimpleMpdNotifier
SimpleMpdNotifier listens to muxer events and generates MPD file.

Change-Id: I19304cdb9eba65fd01328aa0fd5e6d280cc5714e
2014-05-22 10:38:41 -07:00
Rintaro Kuroiwa e5aea1b016 Doxygen doc for MPD generation classes.
Change-Id: I8d28d05395732684f8c8fc73a8a40656ffa26a74
2014-04-07 14:48:05 -07:00
Kongqun Yang 25b1038f5d Enable warnings and warnings-as-errors
The warnings and warnings-as-errors are enabled by set chromium_code to
1. Chromium build disables warnings and warnings-as-errors by default
on external contents.

And fix the errors with them enabled. Mostly defined but not used,
sign-unsign comparison, unsigned string formatting, and return value not
used etc.

Change-Id: I305b63924955a84172e98e0ebfe5aba0f11bdb37
2014-03-28 22:24:49 +00:00
Kongqun Yang 56c203c214 Remove TODOs
Some TODOs remain but are replaced with word NOTE instead. Some TODOs
are turned into bugs.

The patch are prepared using script:
find . -regex ".*/\(app\|media\|mpd\)/.*\.\(cc\|h\|gyp\)" \
  -exec sed -i "/TODO/d" {} \;
(remove the line containing TODO) with some post editing.

Change-Id: I6dd3539cce2bbeefee32d6307f78c13aacb94d1b
2014-03-28 14:30:27 -07:00
Kongqun Yang aee2419c16 Remove UINT32_MAX in xml_node.cc
UINT32_MAX is not defined in C++. It was brought in indirectly from
libxml.

http://stackoverflow.com/questions/1471353/whats-the-c-equivalent-of-uint32-max

Change-Id: I1bdb0a3d06a40d439d81f283934c24df271fb740
2014-03-20 23:20:36 +00:00
Kongqun Yang 5f3c0f7181 Remove the name after TODO
The change is made using command:
find . -regex ".*/\(app\|media\|mpd\)/.*\.\(cc\|h\|gyp\)" -exec sed -i
's,TODO(\w\+),TODO,g' {} \;

Then scan through the files and reformat them properly.

Change-Id: I13836cde38b9e30daf1fd8a847e203337f883e1b
2014-03-19 18:07:06 -07:00
Rintaro Kuroiwa 482c60ca1e Put AudioChannelConfig before ContentProtection
AudioChannelConfig should appear before ContentProtection in
Representation.
Enabled tests which covers this case.

Bug: 13227181
Change-Id: I0f4e913304ad982761a9296aa95d30200f6314d2
2014-03-05 00:07:21 -08:00
Kongqun Yang 374324b042 Disable test_isolation_mode, glib, and x11 in GYP_DEFINES
This removes unnecessary library dependencies.

Change-Id: Id451766d1bedd7fbcd9cf9cf882de86ccb662486
2014-03-03 21:28:33 +00:00
Kongqun Yang b9f1996b68 Fix compilation errors after manifest update
Manifest was updated in CL 7debbbe19b158ea7377e229a17ec1d3d9d19d1b8
to point to Chromium LGKR CL 253526.

There are some API refactoring in base, which result in some code
changes in our packager source.

Change-Id: I52bf5a8a4f8fe0ebc566677efcd572332db8f618
2014-03-03 13:26:14 -08:00
Rintaro Kuroiwa 895ff32202 MPD unit test for encrypted audio
Change-Id: Ib36191803ab9614dffe6221297d4e86243e53fe5
2014-02-28 18:46:30 -08:00
Rintaro Kuroiwa a470d52ee6 Share code between MPD and MpdWriter unit tests
The tests are similar because MpdWriter uses MpdBuilder.
Also changing tests and enabling them in mpd_builder_unittest.cc.

Change-Id: I76a8cfca27c390a039de765231c76d083c3ca26b
2014-02-27 17:42:09 -08:00
Kongqun Yang 58c4473d42 Add copyright information.
The information is generated by Edwin's copyright.py script with some
minor manual modifications.

Chromium's original copyright notice is not replaced.

Also add LICENSE file taken from
https://sites.google.com/a/google.com/ospo/releasing#TOC-BSD-License

Change-Id: I231f09af96a0a611b1ca81e95cab82e12d7f529b
2014-02-18 23:46:01 +00:00
Kongqun Yang 66e8f847e6 Clean up gyp.
Split packager.gyp into multiple smaller gyp definitions.

Change-Id: Icb38bd20f6e11ea41a975332c911d6bde7fc827d
2014-02-18 23:44:53 +00:00
Rintaro Kuroiwa 10ec2f0956 MPD generator driver program
Change-Id: I9f34efbb322c3315583ec0bddf7d48e5a4e22f92
2014-02-07 15:04:02 -08:00
Rintaro Kuroiwa f8949ae311 MpdWriter unit tests
Change-Id: I3b2ee0df2782d5521260eb9323ddbe598e803be3
2014-02-07 13:23:54 -08:00
Rintaro Kuroiwa 4fe1594a73 Add util class to read files and generate MPD
Change-Id: I739aaec38c8416083eba261c82b8c3bbab4e670a
2014-02-07 13:12:03 -08:00
Rintaro Kuroiwa e8714a1374 Find Period element under MPD
It assumed that the first element is Period but it could be a BaseURL
which caused a DCHECK crash.

Change-Id: I75bdafdd312bfbcdf81cc76b44f8e2d0f1542976
2014-02-04 16:52:00 -08:00
Rintaro Kuroiwa 0170d0530e Add BaseURL before SegmentBase
The order affects the output. Even though XML does not care about the
order of subelements, it makes more sense for BaseURL element to appear
above SegmentBase.

Change-Id: Idd1e73446be84640828358ef4d7a74688428f6b5
2014-01-28 16:03:19 -08:00
Rintaro Kuroiwa fe2214b9a0 Add unittest file for XmlNode
Small coverage.

Change-Id: I6053d82a0f9b1d391b4720c419ff7b3cbaa67ca8
2014-01-23 08:48:31 -08:00
Rintaro Kuroiwa bd44c7d7b8 MpdBuilder should handle ContentProtectionXml
Added functions to add MediaInfo::ContentProtectionXml to
RepresentationBaseXmlNode. This allows adding ContentProtection elements
using MediaInfo protobuf.

Change-Id: I46aa97ba8cbf1548388ebbb61ac163786dfa0be8
2014-01-23 08:46:53 -08:00
Rintaro Kuroiwa 72deea3493 Fix compilation errors by clang for mpd_builder target
Change-Id: I7c6f09714a4005267469bebf4b9783466883236f
2014-01-21 14:02:19 -08:00
Rintaro Kuroiwa 0154654539 Remove LITE from protobuf for serialization to human readable string
TextFormat class methods that output human readable messsages need
Message instance where LITE uses MessageLite.

Change-Id: I4ff14aa9334acdad608f0b02c81d9cb765e70a60
2014-01-14 16:18:40 -08:00
Rintaro Kuroiwa f4c7807554 Add 'name' field to Element protobuf message
Change-Id: I527433d6cee2c4e0deb2f243f623f40e29ba8c21
2014-01-14 15:18:54 -08:00
Rintaro Kuroiwa a84d6a7d09 Add mimeType to Representation and use float for duration
Work on some TODOs.
Mandatory mimeType field was missing from Representation.
All duration in the MPD is now float.

Change-Id: I85b8511bc1c43759d80f831bee371c398895cf39
2014-01-14 13:58:01 -08:00
Rintaro Kuroiwa 4723ef777d Add container type to MediaInfo proto
Change-Id: Ife22c7d8641af3847be3da9bf6e96146d72749f0
2014-01-14 21:10:28 +00:00
Rintaro Kuroiwa db5b2a4740 Unit test for MPD builder
Initial checkin, very small coverage.

Change-Id: I60f3fd768d5b8dca7a84f051e57f59a654272e53
2014-01-10 17:40:26 -08:00
Rintaro Kuroiwa 0ccae0d0c9 Add namespace info to MPD
Change-Id: Ie12ebb1fef24d60ff7b8644406931a2677d7033e
2014-01-11 00:03:41 +00:00
Rintaro Kuroiwa d34a331ef5 Add fields in ContentProtection to match MPD spec
Because we need to have all meta info in the MediaInfo protobuf, we need
full 'ContentProtection' element.

Change-Id: I714ff5b8d7baa2ae0d169a59005210a63da315b5
2014-01-10 14:53:06 -08:00
Rintaro Kuroiwa d36091cf65 MpdNotifier and simple MpdNotifier implementation for VOD
This is the MPD side of the bridge between MpdBuilder
and Muxer.

Change-Id: I4ca7436914e008b3c65399cced1f689abd82d085
2014-01-10 11:35:38 -08:00
Rintaro Kuroiwa 65a3a69646 mpd_builder build target fix
This can compile the static library.

Change-Id: Iec108b9b94dbfd5f1de09434403763d59b89b535
2013-12-26 16:03:13 -08:00
Rintaro Kuroiwa 069a4923d5 Merge "Add reference time scale to the protobuf" 2013-12-20 01:44:16 +00:00
Rintaro Kuroiwa 4ee3bb7e61 Add 'T' for presentation time
Presentation time format is PT<number>S.
All seconds to XML duration uses SecondToXmlDuration now.

Change-Id: I3afcda9820fc968b35cfb929e0c7de4e2d91f9a2
2013-12-18 17:37:46 -08:00
Rintaro Kuroiwa dcc99d511f Add reference time scale to the protobuf
Change-Id: I085c8203194262c80ed38f4fca9a26e9417bb977
2013-12-17 17:18:43 -08:00
Rintaro Kuroiwa 05a32f42f7 MPD generation classes
- MpdBuilder, AdapatationSet, and Representation class.

Change-Id: I0dbaa5e17b7d44fec6d47f1643f15083a2c96757
2013-12-17 14:47:56 -08:00
Rintaro Kuroiwa 855ab753c0 MediaInfo needs timescale for each video and audio, and floating point for media duration.
Change-Id: I906308894da64fa266188f51d7c307e6fb42db97
2013-12-10 18:33:45 -08:00
Rintaro Kuroiwa b78f1fa51d Helper functions for MPD builder class
Change-Id: Ice97c734903c35b1356a445daa953dd2162d30b2
2013-12-05 08:17:19 +00:00
Rintaro Kuroiwa 7f393bc44f XML wrapper classes for MPD
Change-Id: Ia43b38a2a20a9df9cf6f2cc3da4ca389a81d89cf
2013-12-04 07:47:20 +00:00
Rintaro Kuroiwa 21aad421ce scoped_ptr definitions for libxml2 objects
Change-Id: Iafbfce42d5cb91b0a5ddbf3149d434e10a4cb8d6
2013-11-18 18:29:39 -08:00
Rintaro Kuroiwa b5cce096e0 media_info.proto protobuf for MpdBuilder
TEST=compiles

Change-Id: I4a67013f7770f8ce41426be527919cd969894d50
2013-11-13 20:55:20 +00:00