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

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
2323 sizeof(SEIRawDisplayOrientation),2323 sizeof(SEIRawDisplayOrientation),
2324 SEI_MESSAGE_RW(sei, display_orientation)2324 SEI_MESSAGE_RW(sei, display_orientation)
2325 },2325 },
2326 {
2327 SEI_TYPE_FRAME_FIELD_INFO,
2328 1, 0,
2329 sizeof(SEIRawFrameFieldInformation),
2330 SEI_MESSAGE_RW(sei, frame_field_information)
2331 },
2326 SEI_MESSAGE_TYPE_END,2332 SEI_MESSAGE_TYPE_END,
2327};2333};
2328 2334
libavcodec/cbs_sei.h+12−0
@@ -125,6 +125,18 @@ typedef struct SEIRawDisplayOrientation { · 124 unmodified lines
125 uint8_t display_orientation_reserved_zero_3bits;125 uint8_t display_orientation_reserved_zero_3bits;
126} SEIRawDisplayOrientation;126} SEIRawDisplayOrientation;
127 127
128typedef 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
128typedef struct SEIRawMessage {140typedef struct SEIRawMessage {
129 uint32_t payload_type;141 uint32_t payload_type;
130 uint32_t payload_size;142 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
295 return 0;295 return 0;
296}296}
297 297
298SEI_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
298static int FUNC(message)(CodedBitstreamContext *ctx, RWContext *rw,324static int FUNC(message)(CodedBitstreamContext *ctx, RWContext *rw,
299 SEIRawMessage *current)325 SEIRawMessage *current)
300{326{

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