tstifo.c
上传用户:aoeyumen
上传日期:2007-01-06
资源大小:3329k
文件大小:2k
源码类别:

DVD

开发平台:

Unix_Linux

  1. /*
  2.  *
  3.  * Copyright (C) 1998,1999  Thomas Mirlacher
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or
  8.  * (at your option) any later version.
  9.  * 
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  * 
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  * 
  19.  * The author may be reached as dent@cosy.sbg.ac.at, or
  20.  * Thomas Mirlacher, Jakob-Haringerstr. 2, A-5020 Salzburg,
  21.  * Austria
  22.  *
  23.  *------------------------------------------------------------
  24.  *
  25.  */
  26. #include <stdio.h>
  27. #include <sys/types.h>
  28. #include <unistd.h>
  29. #include <fcntl.h>
  30. #include "ifo.h"
  31. #include "misc.h"
  32. char version[] = "V0.1.1";
  33. /**
  34.  *
  35.  */
  36. int main (int argc, char **argv)
  37. {
  38. ifo_t *ifo;
  39. int fd;
  40. printf ("free InFormatiOn project %sn", version);
  41. printf ("--------------------------------n");
  42. printf ("(c) 1999 by Thomas Mirlachernn");
  43. if ((fd = open (argv[1], O_RDONLY)) < 0) {
  44. fprintf (stderr, "error opening file %s.n", argv[1]);
  45. exit (-1);
  46. }
  47. if (!(ifo = ifoOpen (fd, 0))) {
  48. fprintf (stderr, "error initializing ifo.n");
  49. exit (-1);
  50. }
  51. ifoPrintVideo (ifo->data[ID_MAT] + IFO_OFFSET_VIDEO);
  52. if (!ifoIsVTS (ifo)) {
  53. ifoPrintAudio (ifoGetAudio (ifo->data[ID_MAT] + IFO_OFFSET_AUDIO));
  54. ifoPrintSPU (ifoGetSPU (ifo->data[ID_MAT] + IFO_OFFSET_SUBPIC));
  55. ifo_print_tmt (ifo);
  56. ifo_print_ptt (ifo_get_ptt (ifo));
  57. }
  58. if (!ifoIsVMG (ifo)) {
  59. ifo_print_toast (ifo->data[ID_PTT]);
  60. // ifo_print_audiosub (ifo->start_tmt);
  61. // ifo_print_ptt (ifo_get_ptt (ifo));
  62. }
  63. ifo_print_title_pgci (ifo);
  64. ifo_print_menu_pgci (ifo);
  65. ifo_print_vtsm_cell_addr (ifo);
  66. ifo_print_vtsm_vobu_addr_map (ifo);
  67. ifo_print_vts_cell_addr (ifo);
  68. ifo_print_vts_vobu_addr_map (ifo);
  69. ifoClose (ifo);
  70. return 0;
  71. }