This module contains an element capable of decoding DVB Subtitles streams in accordance to the ETSI EN 300 734 specification. The element presents the decoded images on the video overlay provided by the Hardware Abstraction Layer (HAL) through the Hardware Abstraction Interface (HAI).
Module Name | Streamer DVB Subtitle Elements |
---|---|
File Name | libdvbsubtitleelement.so |
Class Count | 1 |
DVB Subtitle Decoder at end of typical pipeline.
All elements that wish to use HAL decoder resources must coordinate their HAL access. The element in this module participate in such a coordination by obeying to the generic pipeline-wide HAL access negotiation rules described in this section.
The DVB Subtitle Decoder Element capable of decoding DVB Subtitles streams in accordance to the ETSI EN 300 734 specification.
Name | DVB Subtitle Decoder Descriptor |
---|---|
Version | 1 |
Interface Name | IElementDescriptor |
Binding | C++ |
Name | DVB Subtitle Decoder |
---|---|
Type | Sink |
Priority | 500 |
Input Formats | MPEG-2/Transport Stream/DVB Subtitle |
Output Formats | (none) |
Key | Input | Output |
---|---|---|
PES_START | Required | Released |
_ActiveAudioStream | Required | Published |
_PlaybackMode | Required | Published |
On ISink::Activate(), it opens the HAI Overlay resource instance 0 (zero) in exclusive mode. The HAI resource is closed on ISink::Deactivate().
The element decodes all PES packets having the stream_id field set to private_stream_1 (0xbd). When a subtitles bitmap is decoded, it is rendered on the HAL Overlay at the right moment in the video playback. All timing issues are handled by the HAI TimeStamp mechanism.
The element simply ignores all calls to Block() and Unblock() methods in the ISink interface, since the subtitles should just freeze in their current position when the stream is blocked (i.e. paused). When the element receives a call to ISink::Flush() it will release all segments pending on the input pad. No operation is issued on any HAI interface at this stage.