- 05 Jun, 2015 6 commits
-
-
-
-
Two tools used to inject TXXX frames terminate the value field with a null byte. Make sure that isn't included in the parsed representation.
David LaPalomento committed -
If the segment parser timestamp offset isn't at the start of the last encountered discontinuity, it was impossible to recover the associated media time. Track the media time alongside the timestamp offset so that when a stream is first loaded and the last discontinuity segment start is unavailable, it's still possible to properly translate timestamps. Also, make sure that cue points ahead of current time are cleaned out of the in-band metadata track on seeking. We previously assumed they were ordered by start time but that doesn't seem to be the case for Chrome on OS X. Use the dev version of video.js because of Google Closure compiler gobbling some part of the requiremed machinery for removing cues.
David LaPalomento committed -
Previously, in-band metadata cues were added whenever they were encountered during the segment parsing process. If you seeked in a stream, this would cause the same cues to be added multiple times when its containing segment was re-buffered. Now, cues that occur after current time are cleared on every seek which allows them to be re-added without duplication after they're re-parsed. Cues before the current time are retained because re-buffering would not cause them to be recreated. Adjust cue point creation to take live stream segment expiration into account.
David LaPalomento committed
-
- 04 Jun, 2015 2 commits
-
-
Keep track of the accurate durations of expired segments in the playlist loader so that it's possible to accurately calculate the start and end points of the seekable ranges relative to media timeline position zero, even if we switch variant streams or seek within a live stream. Track the media timeline position of the last discontinuity to allow for PTS-based variant stream synchronization instead of the incorrect media sequence based method we're currently using. Stop rewriting timestamps in the transmuxed FLV tags for that reason as well. Add m3u8 parser support for EXT-X-DISCONTINUITY-SEQUENCE.
David LaPalomento committed
- 02 Jun, 2015 1 commit
-
-
Override the Flash tech's seekable method to take into account live playlists.
David LaPalomento committed
-
- 01 Jun, 2015 1 commit
-
-
Mock out metadata stream support. Comment javascript simulation parameters. Simulation results currently always buffer the first segment because of the bandwidth scaling factor applied to deal with real-world discrepancies between m3u8 download times and steady-state downloads. Behavior after the first segment still looks good.
David LaPalomento committed
-
- 29 May, 2015 5 commits
-
-
-
-
A metadata tag injected into the generated FLV when a random access indicator was encountered in the adaptation field of a TS packet causes Firefox 38 on OSX to apply frame diffs against the wrong keyframe. This leads to ugly artifacts for a few seconds after seeking. Now metadata tags are only generated at the start of a segment and IDRs. Fixes #289.
David LaPalomento committed
-
- 28 May, 2015 10 commits
-
-
-
If bandwidth drops off precipitously, it's not a good idea to fetch a higher quality segment while waiting for the new media playlist to load. Delay segment loading instead. Less fetching will be done in parallel after this change but: - the player will adjust to dramatic bandwidth drops more quickly - the player will upshift more quickly when bandwidth returns
David LaPalomento committed -
Seeking is clamped to the seekable ranges, which are empty for an empty playlist. Making seeking a harmless no-op to match the spec in this case.
David LaPalomento committed -
We don't need a PCR stream for a program to keep synchronized but it's not a problem if one is included. Parse out the PCR PID when it's specified and make sure the warning message isn't output when they are encountered.
David LaPalomento committed -
When a NIT was present, we would warn about unrecognized PIDs every time it was encountered. Capture the PID value so we can silently ignore it. Add a test case for NIT parsing.
David LaPalomento committed -
-
-
-
-
- 27 May, 2015 7 commits
-
-
-
-
-
-
Update tests to ensure metadata is only added when an SPS has been encountered.
David LaPalomento committed -
-
- 22 May, 2015 6 commits
-
-
Closes #272. Squashed commit of the following: commit de597c3ee10075cece7036aeaacedb74f33d9ef5 Author: David LaPalomento <dlapalomento@gmail.com> Date: Fri May 22 14:02:27 2015 -0400 Remove vim swap file Ignore them in version control in the future. commit fb189ba16330311371bb6b9cf1bb6248005e10b7 Author: Gary Katsevman <git@gkatsev.com> Date: Wed May 20 18:30:07 2015 -0400 Default 'nextFrameKeyFrame' to false. commit 3788ad0607fabb2cde1a1d5eea4163ceafb5fab5 Author: Gary Katsevman <git@gkatsev.com> Date: Wed May 20 18:24:16 2015 -0400 setNextFrameKeyFrame commit 6944234afd99285a448a9cf3adbcaf1eb26cfe33 Author: Gary Katsevman <git@gkatsev.com> Date: Wed May 20 18:06:26 2015 -0400 Another camelcase usage commit da6e32a4d9024d859ca58bc1d4bc3fcbe1de7a33 Author: Gary Katsevman <git@gkatsev.com> Date: Wed May 20 18:05:30 2015 -0400 Dont parse unused fields. Use camel case names commit fb7990b6606501a549d7448de6eec38784695896 Author: Gary Katsevman <git@gkatsev.com> Date: Wed May 20 16:28:28 2015 -0400 ifs should have curly braces commit 92e40c642270e4ce4652a874073a66876312072f Author: Gary Katsevman <git@gkatsev.com> Date: Wed May 20 15:58:18 2015 -0400 Adaptation Field vars. Use Random Access Indicator The Random Access Indicator tells us whether something is a keyframe. Set the stream's frame's keyFrame property to true if the Random Access Indicator is set. commit 047a6d7771cd2d9c324b6da9bd76d4b6aeeadaf0 Author: Gary Katsevman <git@gkatsev.com> Date: Mon May 18 16:56:23 2015 -0400 Set up the test with exact conditions commit e2f8b18656d4cdb830cd23013fe7e5fcfa599ca4 Author: Gary Katsevman <git@gkatsev.com> Date: Mon May 18 16:56:01 2015 -0400 Restore stubbed out methods commit ff5f3b5fdb9dbe5e34447f8a4680c294163e0c46 Author: Gary Katsevman <git@gkatsev.com> Date: Mon May 18 16:50:22 2015 -0400 prototypeify h264-stream commit 7ee359d582550474a33730547742ce3d656dad52 Author: Gary Katsevman <git@gkatsev.com> Date: Mon May 18 16:28:08 2015 -0400 Initial test for metadata commit 0e3a961c7594d67280958cf21330fb347e1dda0a Author: Gary Katsevman <git@gkatsev.com> Date: Mon May 18 16:21:55 2015 -0400 Fix test properly commit 7e0de308227a4373c6abd71769ed474e59c7edeb Author: Gary Katsevman <git@gkatsev.com> Date: Mon May 18 16:14:57 2015 -0400 Move h264-extradata into separate file commit 66a676c234e6e087694611d710cad6414cbc984c Author: Gary Katsevman <git@gkatsev.com> Date: Mon May 18 15:52:08 2015 -0400 prototypeify H264ExtraData
David LaPalomento committed -
If mediaIndex was one position beyond the last segment because the player was waiting for a playlist update, it would be reset back to the "live" point. This test checks that the utility translation function does not change mediaIndex in that case.
David LaPalomento committed -
Make sure mediaupdatetimeout events don't get repeatedly triggered after frequent quality switches.
David LaPalomento committed -
-
-
- 21 May, 2015 2 commits
-
-