mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 14:26:43 +00:00
codectimestamper: Update document
Add more description about those elements Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3021>
This commit is contained in:
parent
7a5846d69d
commit
a45273aaeb
2 changed files with 48 additions and 2 deletions
|
@ -20,8 +20,31 @@
|
||||||
/**
|
/**
|
||||||
* SECTION:element-h264timestamper
|
* SECTION:element-h264timestamper
|
||||||
* @title: h264timestamper
|
* @title: h264timestamper
|
||||||
|
* @short_description: A timestamp correction element for H.264 streams
|
||||||
*
|
*
|
||||||
* A timestamp correction element for H.264 stream.
|
* `h264timestamper` updates the DTS (Decoding Time Stamp) of each frame
|
||||||
|
* based on H.264 SPS codec setup data, specifically the frame reordering
|
||||||
|
* information written in the SPS indicating the maximum number of B-frames
|
||||||
|
* allowed.
|
||||||
|
*
|
||||||
|
* In order to determine the DTS of each frame, this element may need to hold
|
||||||
|
* back a few frames in case the codec data indicates that frame reordering is
|
||||||
|
* allowed for the given stream. That means this element may introduce additional
|
||||||
|
* latency for the DTS decision.
|
||||||
|
*
|
||||||
|
* This element can be useful if downstream elements require correct DTS
|
||||||
|
* information but upstream elements either do not provide it at all or the
|
||||||
|
* upstream DTS information is unreliable.
|
||||||
|
*
|
||||||
|
* For example, mp4 muxers typically require both DTS and PTS on the input
|
||||||
|
* buffers, but in case where the input H.264 data comes from Matroska files or
|
||||||
|
* RTP/RTSP streams DTS timestamps may be absent and this element may need to
|
||||||
|
* be used to clean up the DTS timestamps before handing it to the mp4 muxer.
|
||||||
|
*
|
||||||
|
* This is particularly the case where the H.264 stream contains B-frames
|
||||||
|
* (i.e. frame reordering is required), as streams without correct DTS information
|
||||||
|
* will confuse the muxer element and will result in unexpected (or bogus)
|
||||||
|
* duration/framerate/timestamp values in the muxed container stream.
|
||||||
*
|
*
|
||||||
* ## Example launch line
|
* ## Example launch line
|
||||||
* ```
|
* ```
|
||||||
|
|
|
@ -20,8 +20,31 @@
|
||||||
/**
|
/**
|
||||||
* SECTION:element-h265timestamper
|
* SECTION:element-h265timestamper
|
||||||
* @title: h265timestamper
|
* @title: h265timestamper
|
||||||
|
* @short_description: A timestamp correction element for H.265 streams
|
||||||
*
|
*
|
||||||
* A timestamp correction element for H.265 stream.
|
* `h265timestamper` updates the DTS (Decoding Time Stamp) of each frame
|
||||||
|
* based on H.265 SPS codec setup data, specifically the frame reordering
|
||||||
|
* information written in the SPS indicating the maximum number of B-frames
|
||||||
|
* allowed.
|
||||||
|
*
|
||||||
|
* In order to determine the DTS of each frame, this element may need to hold
|
||||||
|
* back a few frames in case the codec data indicates that frame reordering is
|
||||||
|
* allowed for the given stream. That means this element may introduce additional
|
||||||
|
* latency for the DTS decision.
|
||||||
|
*
|
||||||
|
* This element can be useful if downstream elements require correct DTS
|
||||||
|
* information but upstream elements either do not provide it at all or the
|
||||||
|
* upstream DTS information is unreliable.
|
||||||
|
*
|
||||||
|
* For example, mp4 muxers typically require both DTS and PTS on the input
|
||||||
|
* buffers, but in case where the input H.265 data comes from Matroska files or
|
||||||
|
* RTP/RTSP streams DTS timestamps may be absent and this element may need to
|
||||||
|
* be used to clean up the DTS timestamps before handing it to the mp4 muxer.
|
||||||
|
*
|
||||||
|
* This is particularly the case where the H.265 stream contains B-frames
|
||||||
|
* (i.e. frame reordering is required), as streams without correct DTS information
|
||||||
|
* will confuse the muxer element and will result in unexpected (or bogus)
|
||||||
|
* duration/framerate/timestamp values in the muxed container stream.
|
||||||
*
|
*
|
||||||
* ## Example launch line
|
* ## Example launch line
|
||||||
* ```
|
* ```
|
||||||
|
|
Loading…
Reference in a new issue