mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
video-anc: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
CEA608_IN_CEA708_RAW is the same format as CEA708_RAW. It's only difference is that it must contain only CEA608 and a format like this does not exist in practice. In practice every element that handles raw cc_data triplets must check each triplet for their actual content and handle them accordingly. For CC-only streams a parser could signal the existence of CEA608 and/or CEA708 inside the caps but for metas this can only potentially be signalled via the ALLOCATION query for negotiation purposes. A separate format for this is not very useful and instead it should be a format qualifier. CEA608_S334_1A is the format defined by SMPTE S334-1 Annex A and which is used for transferring CEA608 over SDI instead of CEA708 CDP packets.
This commit is contained in:
parent
3ce6bf65c7
commit
1eb3a20617
2 changed files with 15 additions and 11 deletions
|
@ -946,7 +946,7 @@ gst_buffer_add_video_caption_meta (GstBuffer * buffer,
|
|||
|
||||
switch (caption_type) {
|
||||
case GST_VIDEO_CAPTION_TYPE_CEA608_RAW:
|
||||
case GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW:
|
||||
case GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A:
|
||||
case GST_VIDEO_CAPTION_TYPE_CEA708_RAW:
|
||||
case GST_VIDEO_CAPTION_TYPE_CEA708_CDP:
|
||||
break;
|
||||
|
|
|
@ -104,16 +104,20 @@ typedef enum {
|
|||
* this format is not recommended since is does not specify to
|
||||
* which field the caption comes from and therefore assumes
|
||||
* it comes from the first field (and that there is no information
|
||||
* on the second field). Use @@GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW
|
||||
* if you wish to store CEA-608 from two fields.
|
||||
* @GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW: CEA-608 as cc_data byte triplets.
|
||||
* The first byte of each triplet shall specify the field as in CEA-708
|
||||
* (i.e: 0xFC for the first field or 0xFD for the second field.). The 2nd
|
||||
* and 3rd byte of each triplet are the cc1 and cc2 bytes. Use this if
|
||||
* there is *only* CEA-608 caption. If there is also CEA-708 caption,
|
||||
* use @GST_VIDEO_CAPTION_TYPE_CEA708_RAW.
|
||||
* on the second field). Use @GST_VIDEO_CAPTION_TYPE_CEA708_RAW
|
||||
* if you wish to store CEA-608 from two fields and prefix each byte pair
|
||||
* with 0xFC for the first field and 0xFD for the second field.
|
||||
* @GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A: CEA-608 as byte triplets as defined
|
||||
* in SMPTE S334-1 Annex A. The second and third byte of the byte triplet
|
||||
* is the raw CEA608 data, the first byte is a bitfield: The top/7th bit is
|
||||
* 0 for the second field, 1 for the first field, bit 6 and 5 are 0 and
|
||||
* bits 4 to 0 are a 5 bit unsigned integer that represents the line
|
||||
* offset relative to the base-line of the original image format (line 9
|
||||
* for 525-line field 1, line 272 for 525-line field 2, line 5 for
|
||||
* 625-line field 1 and line 318 for 625-line field 2).
|
||||
* @GST_VIDEO_CAPTION_TYPE_CEA708_RAW: CEA-708 as cc_data byte triplets. They
|
||||
* can also contain 608-in-708.
|
||||
* can also contain 608-in-708 and the first byte of each triplet has to
|
||||
* be inspected for detecting the type.
|
||||
* @GST_VIDEO_CAPTION_TYPE_CEA708_CDP: CEA-708 (and optionally CEA-608) in
|
||||
* a CDP (Caption Distribution Packet) defined by SMPTE S-334-2.
|
||||
* Contains the whole CDP (starting with 0x9669).
|
||||
|
@ -125,7 +129,7 @@ typedef enum {
|
|||
typedef enum {
|
||||
GST_VIDEO_CAPTION_TYPE_UNKNOWN = 0,
|
||||
GST_VIDEO_CAPTION_TYPE_CEA608_RAW = 1,
|
||||
GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW = 2,
|
||||
GST_VIDEO_CAPTION_TYPE_CEA608_S334_1A = 2,
|
||||
GST_VIDEO_CAPTION_TYPE_CEA708_RAW = 3,
|
||||
GST_VIDEO_CAPTION_TYPE_CEA708_CDP = 4
|
||||
} GstVideoCaptionType;
|
||||
|
|
Loading…
Reference in a new issue