| Using tt_srpt->title[].nr_of_ptts from the VMG IFO as a reference to the |
| chapter count is often wrong, and noted as such in the source code. Use |
| the program chain instead. |
| |
| --- lsdvd-0.16/lsdvd.c.orig 2014-08-22 21:47:06.009490680 -0600 |
| +++ lsdvd-0.16/lsdvd.c 2014-08-22 21:47:30.947257942 -0600 |
| @@ -347,6 +347,7 @@ |
| } |
| |
| dvd_info.titles[j].chapter_count_reported = ifo_zero->tt_srpt->title[j].nr_of_ptts; |
| + dvd_info.titles[j].chapter_count = pgc->nr_of_programs; |
| dvd_info.titles[j].cell_count = pgc->nr_of_cells; |
| dvd_info.titles[j].audiostream_count = vtsi_mat->nr_of_vts_audio_streams; |
| dvd_info.titles[j].subtitle_count = vtsi_mat->nr_of_vts_subp_streams; |
| --- lsdvd-0.16/ohuman.c.orig 2014-08-22 21:47:00.993538145 -0600 |
| +++ lsdvd-0.16/ohuman.c 2014-08-22 21:47:45.533121749 -0600 |
| @@ -20,7 +20,7 @@ |
| // (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); |
| - printf("Chapters: %02d, Cells: %02d, ", dvd_info->titles[j].chapter_count_reported, dvd_info->titles[j].cell_count); |
| + 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"); |
| |