[vlc-commits] packetizer: hxxx: parse frame_packing
Francois Cartegnie
git at videolan.org
Thu Jul 27 00:03:23 CEST 2017
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Jul 26 21:41:51 2017 +0200| [89347c3e2d67bc0b42e24fa6fd51d2a870f41f33] | committer: Francois Cartegnie
packetizer: hxxx: parse frame_packing
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=89347c3e2d67bc0b42e24fa6fd51d2a870f41f33
---
modules/packetizer/hxxx_sei.c | 19 +++++++++++++++++++
modules/packetizer/hxxx_sei.h | 20 ++++++++++++++++++++
2 files changed, 39 insertions(+)
diff --git a/modules/packetizer/hxxx_sei.c b/modules/packetizer/hxxx_sei.c
index e1529bf654..393d07f3a7 100644
--- a/modules/packetizer/hxxx_sei.c
+++ b/modules/packetizer/hxxx_sei.c
@@ -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:
{
diff --git a/modules/packetizer/hxxx_sei.h b/modules/packetizer/hxxx_sei.h
index e2f1603361..6691fb8b67 100644
--- a/modules/packetizer/hxxx_sei.h
+++ b/modules/packetizer/hxxx_sei.h
@@ -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,
};
@@ -55,6 +56,25 @@ typedef struct
} 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;
struct
More information about the vlc-commits
mailing list