Commit 89347c3e authored by François Cartegnie's avatar François Cartegnie 🤞

packetizer: hxxx: parse frame_packing

parent e285e13f
......@@ -135,6 +135,25 @@ void HxxxParseSEI(const uint8_t *p_buf, size_t i_buf,
free( p_t35 );
} break;
case HXXX_SEI_FRAME_PACKING_ARRANGEMENT:
{
bs_read_ue( &s );
if ( !bs_read1( &s ) )
{
sei_data.frame_packing.type = bs_read( &s, 7 );
bs_read( &s, 1 );
if( bs_read( &s, 6 ) == 2 ) /*intpr type*/
sei_data.frame_packing.b_left_first = false;
else
sei_data.frame_packing.b_left_first = true;
sei_data.frame_packing.b_flipped = bs_read1( &s );
sei_data.frame_packing.b_fields = bs_read1( &s );
sei_data.frame_packing.b_frame0 = bs_read1( &s );
}
else sei_data.frame_packing.type = FRAME_PACKING_CANCEL;
} break;
/* Look for SEI recovery point */
case HXXX_SEI_RECOVERY_POINT:
{
......
......@@ -26,6 +26,7 @@ enum hxxx_sei_type_e
HXXX_SEI_PIC_TIMING = 1,
HXXX_SEI_USER_DATA_REGISTERED_ITU_T_T35 = 4,
HXXX_SEI_RECOVERY_POINT = 6,
HXXX_SEI_FRAME_PACKING_ARRANGEMENT = 45,
HXXX_SEI_MASTERING_DISPLAY_COLOUR_VOLUME = 137, /* SMPTE ST 2086 */
HXXX_SEI_CONTENT_LIGHT_LEVEL = 144,
};
......@@ -54,6 +55,25 @@ typedef struct
} u;
} itu_t35;
struct
{
enum
{
FRAME_PACKING_CANCEL = -1,
FRAME_PACKING_INTERLEAVED_CHECKERBOARD = 0,
FRAME_PACKING_INTERLEAVED_COLUMN,
FRAME_PACKING_INTERLEAVED_ROW,
FRAME_PACKING_SIDE_BY_SIDE,
FRAME_PACKING_TOP_BOTTOM,
FRAME_PACKING_TEMPORAL,
FRAME_PACKING_NONE_2D,
FRAME_PACKING_TILED,
} type;
bool b_flipped;
bool b_left_first;
bool b_fields;
bool b_frame0;
} frame_packing;
struct
{
int i_frames;
} recovery;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment