History

avcodec/cbs_sei_syntax_template: add sei message frame_field_information

Wu Jianhua committed 1 year ago

Commit 33d511b1 parent 97137e33 files · +44 −0Browse files

Showing the changes to libavcodec (3 of 3 files). Show all

Unified · Split

3 files
  1. libavcodec/cbs_h2645.c +6 −0
  2. libavcodec/cbs_sei.h +12 −0
  3. libavcodec/cbs_sei_syntax_template.c +26 −0
libavcodec/cbs_h2645.c+6−0
@@ -2323,6 +2323,12 @@ static const SEIMessageTypeDescriptor cbs_sei_h274_types[] = { · 2322 unmodified lines
23232323 sizeof(SEIRawDisplayOrientation),
23242324 SEI_MESSAGE_RW(sei, display_orientation)
23252325 },
2326+ {
2327+ SEI_TYPE_FRAME_FIELD_INFO,
2328+ 1, 0,
2329+ sizeof(SEIRawFrameFieldInformation),
2330+ SEI_MESSAGE_RW(sei, frame_field_information)
2331+ },
23262332 SEI_MESSAGE_TYPE_END,
23272333 };
23282334
libavcodec/cbs_sei.h+12−0
@@ -125,6 +125,18 @@ typedef struct SEIRawDisplayOrientation { · 124 unmodified lines
125125 uint8_t display_orientation_reserved_zero_3bits;
126126 } SEIRawDisplayOrientation;
127127
128+typedef struct SEIRawFrameFieldInformation {
129+ uint8_t ffi_field_pic_flag;
130+ uint8_t ffi_bottom_field_flag;
131+ uint8_t ffi_pairing_indicated_flag;
132+ uint8_t ffi_paired_with_next_field_flag;
133+ uint8_t ffi_display_fields_from_frame_flag;
134+ uint8_t ffi_top_field_first_flag;
135+ uint8_t ffi_display_elemental_periods_minus1;
136+ uint8_t ffi_source_scan_type;
137+ uint8_t ffi_duplicate_flag;
138+} SEIRawFrameFieldInformation;
139+
128140 typedef struct SEIRawMessage {
129141 uint32_t payload_type;
130142 uint32_t payload_size;
libavcodec/cbs_sei_syntax_template.c+26−0
@@ -295,6 +295,32 @@ SEI_FUNC(display_orientation, (CodedBitstreamContext *ctx, RWContext *rw, · 294 unmodified lines
295295 return 0;
296296 }
297297
298+SEI_FUNC(frame_field_information, (CodedBitstreamContext *ctx, RWContext *rw,
299+ SEIRawFrameFieldInformation *current,
300+ SEIMessageState *state))
301+{
302+ int err;
303+
304+ HEADER("Frame-field information");
305+
306+ flag(ffi_field_pic_flag);
307+ if (current->ffi_field_pic_flag) {
308+ flag(ffi_bottom_field_flag);
309+ flag(ffi_pairing_indicated_flag);
310+ if (current->ffi_pairing_indicated_flag)
311+ flag(ffi_paired_with_next_field_flag);
312+ } else {
313+ flag(ffi_display_fields_from_frame_flag);
314+ if (current->ffi_display_fields_from_frame_flag)
315+ flag(ffi_top_field_first_flag);
316+ u(8, ffi_display_elemental_periods_minus1, 0, 0xff);
317+ }
318+ u(2, ffi_source_scan_type, 0, 3);
319+ flag(ffi_duplicate_flag);
320+
321+ return 0;
322+}
323+
298324 static int FUNC(message)(CodedBitstreamContext *ctx, RWContext *rw,
299325 SEIRawMessage *current)
300326 {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t