design: live-source: missed markup and flow improvements

This commit is contained in:
Reynaldo H. Verdejo Pinochet 2017-04-28 16:19:12 -07:00
parent b3b91c3598
commit c81154bf79

View file

@ -15,21 +15,21 @@ state since such a buffer might never arrive.
Live sources return `NO_PREROLL` when going to the `PAUSED` state to inform Live sources return `NO_PREROLL` when going to the `PAUSED` state to inform
the bin/pipeline that this element will not be able to produce data in the bin/pipeline that this element will not be able to produce data in
the `PAUSED` state. `NO_PREROLL` should be returned for both READY→PAUSED the `PAUSED` state. `NO_PREROLL` should be returned for both `READY→PAUSED`
and PLAYING→PAUSED. and `PLAYING→PAUSED`.
When performing a `get_state()` on a bin with a non-zero timeout value, When performing a `get_state()` on a bin with a non-zero timeout value,
the bin must be sure that there are no live sources in the pipeline the bin must be sure that there are no live sources in the pipeline
because otherwise, the `get_state()` function would block on the sinks. because otherwise, `get_state()` would block on the sinks.
A gstbin therefore always performs a zero timeout `get_state()` on its A `GstBin` therefore always performs a zero-timeout `get_state()` on its
elements to discover the `NO_PREROLL` (and ERROR) elements before elements to discover the `NO_PREROLL` (and `ERROR`) elements before
performing a blocking wait. performing a blocking wait.
## Scheduling ## Scheduling
Live sources will not produce data in the `PAUSED` state. They block in Live sources will not produce data in the `PAUSED` state. They block in
the `get_range()` function or in the loop function until they go to PLAYING. `get_range()` or in the loop function until they go to `PLAYING`.
## Latency ## Latency