Commits on Source (18)
-
Introduce the plugin boilerplate and some basic options to make the future commits lighter and ease the review process.
b39a5e05 -
Create the structures and basis for HLS playlist/track management. This architecture will allow the user to chose which ESes will be muxed together. An array describing the playlist layout is stored in the HLS context allowing every ESes to be dispatched to the right playlist in the `pf_add` callback. Every ES that does not match the predetermined layout will be assigned to a new `EXT-X-MEDIA` playlist.
c6f5ebbc -
Handy simple storage abstraction to allow support of in-memory or filesystem HLS segment/manifest storage. This will be used to store both segments and playlist manifests.
86e6eb66 -
b4caa235
-
This queue handles the HLS segments lifetime, if the queue is at max capacity, the first inserted segment will also be popped and destroyed automatically.
fe4f2872 -
To create the HLS segment we refer to the PCR value as a stream time reference, this allow to expose all the segments at the same time and handle non-continuous data streams (such as subtitles). Hence, the muxed output from all tracks is bufferized and split according to the ideal segment length when a PCR value reaches the correct timestamp. For now, for the sake of simplicity and the fact that the main use case of HLS (chromecast renderer) doesn't require it, we don't ensure video segments starts with an I-Frame. This will definitely be implemented in a future version as there is already the mechanism ready for that in the TS muxer.
e9fcca62 -
09704e4b
-
This is needed to generate a descriptive codec identifier in the HLS stream output.
9bc26e18 -
HLS require to expose a very descriptive mime type for every codec exposed. This will likely grow as we support more codecs so it belong in its own file.
644a991f -
c12d4e87
-
cbaced19
-
1841a559
-
This is needed for HTTP sharing segments and manifest correctly.
c4ea8af5 -
2ae99f64
-
eaedac2d
-
2ed79a2f
-
c9bd2581
-
c67dec41
Showing
- modules/codec/hxxx_helper.c 13 additions, 0 deletionsmodules/codec/hxxx_helper.c
- modules/codec/hxxx_helper.h 2 additions, 0 deletionsmodules/codec/hxxx_helper.h
- modules/stream_out/Makefile.am 9 additions, 0 deletionsmodules/stream_out/Makefile.am
- modules/stream_out/hls/codecs.c 74 additions, 0 deletionsmodules/stream_out/hls/codecs.c
- modules/stream_out/hls/codecs.h 27 additions, 0 deletionsmodules/stream_out/hls/codecs.h
- modules/stream_out/hls/hls.c 1051 additions, 0 deletionsmodules/stream_out/hls/hls.c
- modules/stream_out/hls/hls.h 48 additions, 0 deletionsmodules/stream_out/hls/hls.h
- modules/stream_out/hls/segments.c 124 additions, 0 deletionsmodules/stream_out/hls/segments.c
- modules/stream_out/hls/segments.h 90 additions, 0 deletionsmodules/stream_out/hls/segments.h
- modules/stream_out/hls/storage.c 320 additions, 0 deletionsmodules/stream_out/hls/storage.c
- modules/stream_out/hls/storage.h 85 additions, 0 deletionsmodules/stream_out/hls/storage.h
- modules/stream_out/hls/variant_maps.c 197 additions, 0 deletionsmodules/stream_out/hls/variant_maps.c
- modules/stream_out/hls/variant_maps.h 51 additions, 0 deletionsmodules/stream_out/hls/variant_maps.h
modules/stream_out/hls/codecs.c
0 → 100644
modules/stream_out/hls/codecs.h
0 → 100644
modules/stream_out/hls/hls.c
0 → 100644
modules/stream_out/hls/hls.h
0 → 100644
modules/stream_out/hls/segments.c
0 → 100644
modules/stream_out/hls/segments.h
0 → 100644
modules/stream_out/hls/storage.c
0 → 100644
modules/stream_out/hls/storage.h
0 → 100644
modules/stream_out/hls/variant_maps.c
0 → 100644
modules/stream_out/hls/variant_maps.h
0 → 100644