1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
#include <stdio.h>
#include "lsdvd.h"
void ohuman_print(struct dvd_info *dvd_info) {
printf("Disc Title: %s\n", dvd_info->discinfo.disc_title);
int i, j;
for (j=0; j < dvd_info->title_count; j++)
{
if ( opt_t == j+1 || opt_t == 0 ) {
/* GENERAL */
printf("Title: %02d, Length: %02d:%02d:%02d.%03d ", j+1,
dvd_info->titles[j].general.playback_time.hour,
dvd_info->titles[j].general.playback_time.minute,
dvd_info->titles[j].general.playback_time.second,
dvd_info->titles[j].general.playback_time.usec);
#if 0
(int)dvd_info->titles[j].general.length / 3600,
(int)(dvd_info->titles[j].general.length / 60) % 60,
(float)((int)(dvd_info->titles[j].general.length * 1000) % 6000) / 1000); //,
dvd_info->titles[j].general.length);
#endif
printf("Chapters: %02d, Cells: %02d, ", dvd_info->titles[j].chapter_count, dvd_info->titles[j].cell_count);
printf("Audio streams: %02d, Subpictures: %02d", dvd_info->titles[j].audiostream_count, dvd_info->titles[j].subtitle_count);
printf("\n");
if (dvd_info->titles[j].parameter.format != NULL ) {
printf("\tVTS: %02d, TTN: %02d, ", dvd_info->titles[j].parameter.vts, dvd_info->titles[j].parameter.ttn);
printf("FPS: %.2f, ", dvd_info->titles[j].parameter.fps);
printf("Format: %s, Aspect ratio: %s, ", dvd_info->titles[j].parameter.format, dvd_info->titles[j].parameter.aspect);
printf("Width: %s, Height: %s, ", dvd_info->titles[j].parameter.width, dvd_info->titles[j].parameter.height);
printf("DF: %s\n", dvd_info->titles[j].parameter.df);
}
/* PALETTE */
if (dvd_info->titles[j].palette != NULL ) {
printf("\tPalette: ");
for (i=0; i < 16; i++) {
printf("%06x ", dvd_info->titles[j].palette[i]);
}
printf("\n");
}
/* ANGLES */
if (dvd_info->titles[j].angle_count) {
printf("\tNumber of Angles: %d\n", dvd_info->titles[j].angle_count);
}
/* AUDIO */
if (dvd_info->titles[j].audiostreams != NULL) {
for (i=0; i<dvd_info->titles[j].audiostream_count; i++)
{
printf("\tAudio: %d, Language: %s - %s, ", i +1 ,
dvd_info->titles[j].audiostreams[i].langcode, dvd_info->titles[j].audiostreams[i].language);
printf("Format: %s, ", dvd_info->titles[j].audiostreams[i].format);
printf("Frequency: %s, ", dvd_info->titles[j].audiostreams[i].frequency);
printf("Quantization: %s, ", dvd_info->titles[j].audiostreams[i].quantization);
printf("Channels: %d, AP: %d, ", dvd_info->titles[j].audiostreams[i].channels, dvd_info->titles[j].audiostreams[i].ap_mode);
printf("Content: %s, ", dvd_info->titles[j].audiostreams[i].content);
printf("Stream id: 0x%x", dvd_info->titles[j].audiostreams[i].streamid);
printf("\n");
}
}
/* CHAPTERS */
if (dvd_info->titles[j].chapters != NULL) {
for (i=0; i<dvd_info->titles[j].chapter_count; i++)
{
#if 0
printf("\tChapter: %02d, Length: %02d:%02d:%02d.%03d, Start Cell: %02d\n", i+1,
(int)dvd_info->titles[j].chapters[i].length / 3600,
(int)(dvd_info->titles[j].chapters[i].length / 60 ) % 60,
(int)(dvd_info->titles[j].chapters[i].length) % 60,
(int)(dvd_info->titles[j].chapters[i].length*1000) % 1000,
dvd_info->titles[j].chapters[i].startcell);
#endif
printf("\tChapter: %02d, Length: %02d:%02d:%02d.%03d, Start Cell: %02d\n", i+1,
dvd_info->titles[j].chapters[i].playback_time.hour,
dvd_info->titles[j].chapters[i].playback_time.minute,
dvd_info->titles[j].chapters[i].playback_time.second,
dvd_info->titles[j].chapters[i].playback_time.usec,
dvd_info->titles[j].chapters[i].startcell);
}
}
/* CELLS */
if (dvd_info->titles[j].cells != NULL) {
for (i=0; i<dvd_info->titles[j].cell_count; i++)
{
#if 0
printf("\tCell: %02d, Length: %02d:%02d:%02d.%03d\n", i+1,
(int)dvd_info->titles[j].cells[i].length / 3600,
(int)(dvd_info->titles[j].cells[i].length / 60 ) % 60,
/ (int)(dvd_info->titles[j].cells[i].length) % 60,
(int)(dvd_info->titles[j].cells[i].length*1000) % 1000);
#endif
printf("\tCell: %02d, Length: %02d:%02d:%02d.%03d\n", i+1,
dvd_info->titles[j].cells[i].playback_time.hour,
dvd_info->titles[j].cells[i].playback_time.minute,
dvd_info->titles[j].cells[i].playback_time.second,
dvd_info->titles[j].cells[i].playback_time.usec);
}
}
/* SUBTITLES */
if (dvd_info->titles[j].subtitles != NULL) {
for (i=0; i<dvd_info->titles[j].subtitle_count; i++)
{
printf("\tSubtitle: %02d, Language: %s - %s, ", i+1,
dvd_info->titles[j].subtitles[i].langcode,
dvd_info->titles[j].subtitles[i].language);
printf("Content: %s, ", dvd_info->titles[j].subtitles[i].content);
printf("Stream id: 0x%x, ", dvd_info->titles[j].subtitles[i].streamid);
printf("\n");
}
}
}
}
printf("DVDDiscID: %s\n", dvd_info->dvddiscid);
if (! opt_t) {
printf("Longest track: %02d\n", dvd_info->longest_track);
}
}
|