design: stream-status: section breakdown, markup and readability fixes
This commit is contained in:
parent
54a1f8e328
commit
8cc223c9bc
@ -3,16 +3,18 @@
|
|||||||
This document describes the design and use cases for the stream status
|
This document describes the design and use cases for the stream status
|
||||||
messages.
|
messages.
|
||||||
|
|
||||||
STREAM_STATUS messages are posted on the bus when the state of a
|
`STREAM_STATUS` messages are posted on the bus when the state of a
|
||||||
streaming thread changes. The purpose of this message is to allow the
|
streaming thread changes. The purpose of this messages is to allow the
|
||||||
application to interact with the streaming thread properties, such as
|
application to interact with the streaming thread properties, such as
|
||||||
the thread priority or the threadpool to use.
|
the thread priority or the threadpool to use.
|
||||||
|
|
||||||
|
## Requirements and scenarios
|
||||||
|
|
||||||
We accommodate for the following requirements:
|
We accommodate for the following requirements:
|
||||||
|
|
||||||
- Application is informed when a streaming thread is about to be
|
- Application is informed when a streaming thread is about to be
|
||||||
created. It should be possible for the application to suggest a
|
created. It should be possible for the application to suggest a
|
||||||
custom GstTaskPool.
|
custom `GstTaskPool`.
|
||||||
|
|
||||||
- Application is informed when the status of a streaming thread is
|
- Application is informed when the status of a streaming thread is
|
||||||
changed. This can be interesting for GUI application that want to
|
changed. This can be interesting for GUI application that want to
|
||||||
@ -34,55 +36,55 @@ We allow for the following scenarios:
|
|||||||
- boost the priority of the udp receiver streaming thread
|
- boost the priority of the udp receiver streaming thread
|
||||||
|
|
||||||
```
|
```
|
||||||
.--------. .-------. .------. .-------.
|
.--------. .-------. .------. .-------.
|
||||||
| udpsrc | | depay | | adec | | asink |
|
| udpsrc | | depay | | adec | | asink |
|
||||||
| src->sink src->sink src->sink |
|
| src->sink src->sink src->sink |
|
||||||
'--------' '-------' '------' '-------'
|
'--------' '-------' '------' '-------'
|
||||||
```
|
```
|
||||||
|
|
||||||
- when going from READY to PAUSED state, udpsrc will require a
|
- when going from `READY` to `PAUSED` state, udpsrc will require a
|
||||||
streaming thread for pushing data into the depayloader. It will
|
streaming thread for pushing data into the depayloader. It will
|
||||||
post a STREAM_STATUS message indicating its requirement for a
|
post a `STREAM_STATUS` message indicating its requirement for a
|
||||||
streaming thread.
|
streaming thread.
|
||||||
|
|
||||||
- The application will usually react to the STREAM_STATUS
|
- The application will usually react to the `STREAM_STATUS`
|
||||||
messages with a sync bus handler.
|
messages with a sync bus handler.
|
||||||
|
|
||||||
- The application can configure the GstTask with a custom
|
- The application can configure the `GstTask` with a custom
|
||||||
GstTaskPool to manage the streaming thread or it can ignore the
|
`GstTaskPool` to manage the streaming thread or it can ignore the
|
||||||
message which will make the element use its default GstTaskPool.
|
message which will make the element use its default `GstTaskPool`.
|
||||||
|
|
||||||
- The application can react to the ENTER/LEAVE stream status
|
- The application can react to the `ENTER/LEAVE` stream status
|
||||||
message to configure the thread right before it is
|
message to configure the thread right before it is
|
||||||
started/stopped. This can be used to configure the thread
|
started/stopped. This can be used to configure the thread
|
||||||
priority.
|
priority.
|
||||||
|
|
||||||
- Before the GstTask is changed state (start/pause/stop) a
|
- Before the `GstTask` is changed state (start/pause/stop) a
|
||||||
STREAM_STATUS message is posted that can be used by the
|
`STREAM_STATUS` message is posted that can be used by the
|
||||||
application to keep track of the running streaming threads.
|
application to keep track of the running streaming threads.
|
||||||
|
|
||||||
## Messages
|
## Messages
|
||||||
|
|
||||||
The existing STREAM_STATUS message will be further defined and implemented in
|
The existing `STREAM_STATUS` message will be further defined and implemented in
|
||||||
(selected) elements. The following fields will be contained in the message:
|
(selected) elements. The following fields will be contained in the message:
|
||||||
|
|
||||||
- **`type`**, GST_TYPE_STREAM_STATUS_TYPE:
|
- **`type`**, `GST_TYPE_STREAM_STATUS_TYPE`:
|
||||||
|
|
||||||
- a set of types to control the lifecycle of the thread:
|
- a set of types to control the lifecycle of the thread:
|
||||||
GST_STREAM_STATUS_TYPE_CREATE: a new streaming thread is going
|
`GST_STREAM_STATUS_TYPE_CREATE`: a new streaming thread is going
|
||||||
to be created. The application has the chance to configure a custom
|
to be created. The application has the chance to configure a custom
|
||||||
thread. GST_STREAM_STATUS_TYPE_ENTER: the streaming thread is
|
thread. `GST_STREAM_STATUS_TYPE_ENTER`: the streaming thread is
|
||||||
about to enter its loop function for the first time.
|
about to enter its loop function for the first time.
|
||||||
GST_STREAM_STATUS_TYPE_LEAVE: the streaming thread is about to
|
`GST_STREAM_STATUS_TYPE_LEAVE`: the streaming thread is about to
|
||||||
leave its loop. GST_STREAM_STATUS_TYPE_DESTROY: a streaming
|
leave its loop. `GST_STREAM_STATUS_TYPE_DESTROY`: a streaming
|
||||||
thread is destroyed
|
thread is destroyed
|
||||||
|
|
||||||
- A set of types to control the state of the threads:
|
- A set of types to control the state of the threads:
|
||||||
GST_STREAM_STATUS_TYPE_START: a streaming thread is started
|
`GST_STREAM_STATUS_TYPE_START`: a streaming thread is started
|
||||||
GST_STREAM_STATUS_TYPE_PAUSE: a streaming thread is paused
|
`GST_STREAM_STATUS_TYPE_PAUSE`: a streaming thread is paused
|
||||||
GST_STREAM_STATUS_TYPE_STOP: a streaming thread is stopped
|
`GST_STREAM_STATUS_TYPE_STOP`: a streaming thread is stopped
|
||||||
|
|
||||||
- **`owner`**: GST_TYPE_ELEMENT: The owner element of the thread. The
|
- **`owner`**: `GST_TYPE_ELEMENT`: The owner element of the thread. The
|
||||||
message source will contain the pad (or one of the pads) that will
|
message source will contain the pad (or one of the pads) that will
|
||||||
produce data by this thread. If this thread does not produce data on
|
produce data by this thread. If this thread does not produce data on
|
||||||
a pad, the message source will contain the owner as well. The idea
|
a pad, the message source will contain the owner as well. The idea
|
||||||
@ -90,15 +92,15 @@ The existing STREAM_STATUS message will be further defined and implemented in
|
|||||||
what function this thread has in the context of the application and
|
what function this thread has in the context of the application and
|
||||||
configure the thread appropriatly.
|
configure the thread appropriatly.
|
||||||
|
|
||||||
- **`object`**: G_TYPE, GstTask/GThread: A GstTask/GThread controlling
|
- **`object`**: `G_TYPE`, `GstTask/GThread`: A `GstTask/GThread` controlling
|
||||||
this streaming thread.
|
this streaming thread.
|
||||||
|
|
||||||
- **`flow-return`**: GstFlowReturn: A status code for why the thread state
|
- **`flow-return`**: `GstFlowReturn`: A status code for why the thread state
|
||||||
changed. when threads are created and started, this is usually
|
changed. when threads are created and started, this is usually
|
||||||
GST_FLOW_OK but when they are stopping it contains the reason code
|
`GST_FLOW_OK` but when they are stopping it contains the reason code
|
||||||
why it stopped.
|
why it stopped.
|
||||||
|
|
||||||
- **`reason`**: G_TYPE_STRING: A string describing the reason why the
|
- **`reason`**: `G_TYPE_STRING`: A string describing the reason why the
|
||||||
thread started/stopped/paused. Can be NULL if no reason is given.
|
thread started/stopped/paused. Can be NULL if no reason is given.
|
||||||
|
|
||||||
## Events
|
## Events
|
||||||
|
Loading…
x
Reference in New Issue
Block a user