- 31 Jul, 2015 21 commits
-
-
-
-
-
-
-
-
-
moof boxes are one of the primary components of segmented mp4 files. Expose a function to create a very simple one and add a test for it.
David LaPalomento committed -
Make the debug video and media source available in a larger scope. Every time a new segment is selected, forward they bytes into the active source buffer.
David LaPalomento committed -
Create test cases for a moof box and sample mfhd, traf, and tfhd sub-boxes. Fix the source buffer codec so that the debug code on the mp4 muxer page works. The issue was that specifying an audio codec but then failing to include an audio track in the init segment generated a media decode error.
David LaPalomento committed -
Add support for a number of new boxes in the generator and inspector. Bring some existing generated boxes more closely into line with a working init segment.
David LaPalomento committed -
Build helper classes to construct boxes for mp4s. Use the mp4 inspector to validate the generated boxes are sensical. Remove the stubbed Transmuxer because it's not implemented yet and it may not make sense once things come together a bit more. Left some MediaSource test code in mp4.html for debugging purposes. The tests all pass but we're still not quite generating a valid init segment.
David LaPalomento committed -
Transfer the logic to parse elementary stream packets from segment-parser into the MP2T parse stream.
David LaPalomento committed -
Move the code that parses PMTs and PATs from segment parser into the re-organized transmuxing module. Add tests.
David LaPalomento committed -
It would probably be helpful to have some graphical quick references for anyone looking to hack on the transmuxing code. Start off with a logical picture of mp2t segments and h264 "packets".
David LaPalomento committed -
Add stubs for the transmuxer and a new set of qunit tests. Update the muxer mp4 test page to invoke the stubbed object.
David LaPalomento committed -
Modify the mp4 inspector to use the right field widths when parsing version 0 mp4s. Add a test page to inspect mp4s from the file system. Don't reference the data bytes of an mdat box so that the resulting data structure isn't too big to be reasonably output.
David LaPalomento committed -
As preparation for building a tool to transform mp2t files into mp4s, create a javascript tool that parses an mp4 file. Remove the local qunit so that karma and direct qunit testing happens with the same version of the library. Force the tech to run during tests so that Safari doesn't use native HLS.
David LaPalomento committed -
Grabbed the first couple of bipbop segments and transmuxed them with ffmpeg. Required adtstoasc but otherwise standard.
David LaPalomento committed -
Bump up to a vjs 5 release candidate. Make the necessary changes to work with the updated APIs. Convert the project from a subclass of the Flash tech to a source handler.
David LaPalomento committed
-
- 29 Jul, 2015 4 commits
-
-
-
-
Adjust the media timeline position a ID3-based cue is inserted at based on the amount of content that has slid off of a live playlist.
David LaPalomento committed -
Keep the example page simple. Add a live graph of cue point PTS position versus media timeline position. Update the display so it works with live content.
David LaPalomento committed
-
- 23 Jul, 2015 2 commits
-
-
Depending on the order the media source opened, the media playlist was recieved, and play was invoked, live streams may or may not have been seeked. Consolidate the logic that checks for this condition to ensure we always seek to the live point. Add a check so that if someone seeks before the media source opens, the player does not throw an exception. For #351.
David LaPalomento committed
- 14 Jul, 2015 2 commits
-
-
- 13 Jul, 2015 5 commits
-
-
If audio or video data is missing for an HLS stream, duration calculations should just use the info that is available. Fixes #341.
David LaPalomento committed -
-
Zero is the default when unspecified but it's legal to have a one-indexed VOD media playlist. When the media sequence is non-zero, assume that should be the basis for all sequence calculations unless a different basis was explicitly specified. Fix Playlist.seekable so that it doesn't attempt to estimate the duration of expired segments.
David LaPalomento committed
-
- 12 Jul, 2015 1 commit
-
-
- 10 Jul, 2015 5 commits
-
-
-
Playlist.duration() does a more comprehensive job of managing calculations with PTS values and discontinuities so remove reference on segmentParser.
David LaPalomento committed -
Instead of calculating the duration by accumulating spans with and without PTS info from left to right, find the largest continuous span that has PTS information and then add up EXT-INF based durations before and after those spans. To make this proces simpler, split the interval we are calculating into segment sequences with continuous timestamps. Add segment indices for discontinuities to the m3u8 parser to support splitting intervals.
David LaPalomento committed
-