+ sout_input_t *p_input = p_mux->pp_inputs[i];
+ ps_stream_t *p_stream = p_input->p_sys;
+
+ i_es_map_size += 4;
+ if( p_stream->lang[0] != 0 ) i_es_map_size += 6;
+ }
+
+ i_psm_size += i_es_map_size;
+
+ p_hdr = block_New( p_mux, i_psm_size );
+ p_hdr->i_dts = p_hdr->i_pts = i_dts;
+
+ memset( p_hdr->p_buffer, 0, p_hdr->i_buffer );
+ bits_initwrite( &bits, i_psm_size, p_hdr->p_buffer );
+ bits_write( &bits, 32, 0x01bc );
+ bits_write( &bits, 16, i_psm_size - 6 );
+ bits_write( &bits, 1, 1 ); /* current_next_indicator */
+ bits_write( &bits, 2, 0xF ); /* reserved */
+ bits_write( &bits, 5, p_sys->i_psm_version );
+ bits_write( &bits, 7, 0xFF ); /* reserved */
+ bits_write( &bits, 1, 1 ); /* marker */
+
+ bits_write( &bits, 16, 0 ); /* program_stream_info_length */
+ /* empty */
+
+ bits_write( &bits, 16, i_es_map_size ); /* elementary_stream_map_length */
+ for( i = 0; i < p_mux->i_nb_inputs; i++ )
+ {
+ sout_input_t *p_input = p_mux->pp_inputs[i];
+ ps_stream_t *p_stream = p_input->p_sys;
+
+ bits_write( &bits, 8, p_stream->i_stream_type ); /* stream_type */
+ bits_write( &bits, 8, p_stream->i_stream_id ); /* elementary_stream_id */