static void _show_details(MPLS_PL *pl, int level) { int ii, jj; for (ii = 0; ii < pl->list_count; ii++) { MPLS_PI *pi; str_t *clip_id; pi = &pl->play_item[ii]; clip_id = str_substr(pi->clip_id, 0, 5); indent_printf(level, "Clip Id %s", clip_id->buf); str_free(clip_id); free(clip_id); indent_printf(level+1, "Connection Condition: %02x", pi->connection_condition); indent_printf(level+1, "Stc Id: %02x", pi->stc_id); indent_printf(level+1, "In-Time: %d", pi->in_time); indent_printf(level+1, "Out-Time: %d", pi->out_time); for (jj = 0; jj < pi->stn.num_video; jj++) { indent_printf(level+1, "Video Stream %d:", jj); _show_stream(&pi->stn.video[jj], level + 2); } for (jj = 0; jj < pi->stn.num_audio; jj++) { indent_printf(level+1, "Audio Stream %d:", jj); _show_stream(&pi->stn.audio[jj], level + 2); } for (jj = 0; jj < pi->stn.num_pg; jj++) { indent_printf(level+1, "Presentation Graphics Stream %d:", jj); _show_stream(&pi->stn.pg[jj], level + 2); } printf("\n"); } }
static void _show_prog_info(CLPI_PROG_INFO *pi, int level) { CLPI_PROG *prog; int ii, jj; indent_printf(level, "Program Info"); indent_printf(level+1, "Number Programs: %d", pi->num_prog); for (ii = 0; ii < pi->num_prog; ii++) { prog = &pi->progs[ii]; indent_printf(level+1, "Program %d", ii); indent_printf(level+2, "SPN Program Sequence Start: %d", prog->spn_program_sequence_start); indent_printf(level+2, "Program Map PID: %d", prog->program_map_pid); indent_printf(level+2, "Number Streams: %d", prog->num_streams); indent_printf(level+2, "Number Groups: %d", prog->num_groups); for (jj = 0; jj < prog->num_streams; jj++) { indent_printf(level+2, "Stream %d", jj); _show_stream(&prog->streams[jj], level+3); } } }
static void _show_details(MPLS_PL *pl, int level) { int ii, jj, kk; for (ii = 0; ii < pl->list_count; ii++) { MPLS_PI *pi; pi = &pl->play_item[ii]; indent_printf(level, "Clip Id %s", pi->clip[0].clip_id); indent_printf(level+1, "Stc Id: %02x", pi->clip[0].stc_id); indent_printf(level+1, "Connection Condition: %s (%02x)", _lookup_str(connection_type_map, pi->connection_condition), pi->connection_condition); indent_printf(level+1, "In-Time: %d", pi->in_time); indent_printf(level+1, "Out-Time: %d", pi->out_time); if (pi->still_mode == 1) { indent_printf(level+1, "Still time: %ds\n", pi->still_time); } if (pi->still_mode == 2) { indent_printf(level+1, "Still time: infinite\n"); } if (pi->angle_count > 1) { for (jj = 1; jj < pi->angle_count; jj++) { indent_printf(level+1, "Angle %d:", jj); indent_printf(level+2, "Clip Id %s", pi->clip[jj].clip_id); indent_printf(level+2, "Stc Id: %02x", pi->clip[jj].stc_id); } } for (jj = 0; jj < pi->stn.num_video; jj++) { indent_printf(level+1, "Video Stream %d:", jj); _show_stream(&pi->stn.video[jj], level + 2); } for (jj = 0; jj < pi->stn.num_audio; jj++) { indent_printf(level+1, "Audio Stream %d:", jj); _show_stream(&pi->stn.audio[jj], level + 2); } for (jj = 0; jj < pi->stn.num_ig; jj++) { indent_printf(level+1, "Interactive Graphics Stream %d:", jj); _show_stream(&pi->stn.ig[jj], level + 2); } for (jj = 0; jj < (pi->stn.num_pg + pi->stn.num_pip_pg); jj++) { if (jj < pi->stn.num_pg) { indent_printf(level+1, "Presentation Graphics Stream %d:", jj); } else { indent_printf(level+1, "PIP Presentation Graphics Stream %d:", jj); } _show_stream(&pi->stn.pg[jj], level + 2); } for (jj = 0; jj < pi->stn.num_secondary_video; jj++) { indent_printf(level+1, "Secondary Video Stream %d:", jj); _show_stream(&pi->stn.secondary_video[jj], level + 2); for (kk = 0; kk < pi->stn.secondary_video[jj].sv_num_secondary_audio_ref; kk++) { indent_printf(level+2, "Secondary Audio Ref %d: %d", kk,pi->stn.secondary_video[jj].sv_secondary_audio_ref[kk]); } for (kk = 0; kk < pi->stn.secondary_video[jj].sv_num_pip_pg_ref; kk++) { indent_printf(level+2, "PIP Presentation Graphic Ref %d: %d", kk,pi->stn.secondary_video[jj].sv_pip_pg_ref[kk]); } } for (jj = 0; jj < pi->stn.num_secondary_audio; jj++) { indent_printf(level+1, "Secondary Audio Stream %d:", jj); _show_stream(&pi->stn.secondary_audio[jj], level + 2); for (kk = 0; kk < pi->stn.secondary_audio[jj].sa_num_primary_audio_ref; kk++) { indent_printf(level+2, "Primary Audio Ref %d: %d", kk,pi->stn.secondary_audio[jj].sa_primary_audio_ref[kk]); } } printf("\n"); } }