+static int MP4_ReadBox_enda( stream_t *p_stream, MP4_Box_t *p_box )
+{
+ MP4_Box_data_enda_t *p_enda;
+ MP4_READBOX_ENTER( MP4_Box_data_enda_t );
+
+ p_enda = p_box->data.p_enda;
+
+ MP4_GET2BYTES( p_enda->i_little_endian );
+
+#ifdef MP4_VERBOSE
+ msg_Dbg( p_stream,
+ "read box: \"enda\" little_endian=%d", p_enda->i_little_endian );
+#endif
+ MP4_READBOX_EXIT( 1 );
+}
+
+static int MP4_ReadBox_gnre( stream_t *p_stream, MP4_Box_t *p_box )
+{
+ MP4_Box_data_gnre_t *p_gnre;
+ MP4_READBOX_ENTER( MP4_Box_data_gnre_t );
+
+ p_gnre = p_box->data.p_gnre;
+
+ uint32_t i_data_len;
+ uint32_t i_data_tag;
+
+ MP4_GET4BYTES( i_data_len );
+ MP4_GETFOURCC( i_data_tag );
+ if( i_data_len < 10 || i_data_tag != VLC_FOURCC('d', 'a', 't', 'a') )
+ MP4_READBOX_EXIT( 0 );
+
+ uint32_t i_version;
+ uint32_t i_reserved;
+ MP4_GET4BYTES( i_version );
+ MP4_GET4BYTES( i_reserved );
+ MP4_GET2BYTES( p_gnre->i_genre );
+ if( p_gnre->i_genre == 0 )
+ MP4_READBOX_EXIT( 0 );
+#ifdef MP4_VERBOSE
+ msg_Dbg( p_stream, "read box: \"gnre\" genre=%i", p_gnre->i_genre );
+#endif
+
+ MP4_READBOX_EXIT( 1 );
+}
+
+static int MP4_ReadBox_trkn( stream_t *p_stream, MP4_Box_t *p_box )
+{
+ MP4_Box_data_trkn_t *p_trkn;
+ MP4_READBOX_ENTER( MP4_Box_data_trkn_t );
+
+ p_trkn = p_box->data.p_trkn;
+
+ uint32_t i_data_len;
+ uint32_t i_data_tag;
+
+ MP4_GET4BYTES( i_data_len );
+ MP4_GETFOURCC( i_data_tag );
+ if( i_data_len < 12 || i_data_tag != VLC_FOURCC('d', 'a', 't', 'a') )
+ MP4_READBOX_EXIT( 0 );
+
+ uint32_t i_version;
+ uint32_t i_reserved;
+ MP4_GET4BYTES( i_version );
+ MP4_GET4BYTES( i_reserved );
+ MP4_GET4BYTES( p_trkn->i_track_number );
+#ifdef MP4_VERBOSE
+ msg_Dbg( p_stream, "read box: \"trkn\" number=%i", p_trkn->i_track_number );
+#endif
+ if( i_data_len > 15 )
+ {
+ MP4_GET4BYTES( p_trkn->i_track_total );
+#ifdef MP4_VERBOSE
+ msg_Dbg( p_stream, "read box: \"trkn\" total=%i", p_trkn->i_track_total );
+#endif
+ }
+
+ MP4_READBOX_EXIT( 1 );
+}
+
+