/[tivodecode]/mplayer_demuxer/trunk/demux_tivo.c
ViewVC logotype

Diff of /mplayer_demuxer/trunk/demux_tivo.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 71 by jeremyd2019, Fri Dec 15 23:04:55 2006 UTC revision 72 by jeremyd2019, Sun Dec 17 02:05:07 2006 UTC
# Line 52  int tivo_check_file(demuxer_t* demuxer) Line 52  int tivo_check_file(demuxer_t* demuxer)
52  demuxer_t* demux_tivo_open(demuxer_t* demuxer)  demuxer_t* demux_tivo_open(demuxer_t* demuxer)
53  {  {
54          turing_state *turing;          turing_state *turing;
55          size_t begin_at;          off_t begin_at, end_at;
56          turing = malloc(sizeof(turing_state));          turing = malloc(sizeof(turing_state));
57          memset(turing, 0, sizeof(turing_state));          memset(turing, 0, sizeof(turing_state));
58          demuxer->priv = (void *)turing;          demuxer->priv = (void *)turing;
59          begin_at = setup_turing_key (turing, demuxer->stream, &mp_stream_read_wrapper, o_mak);          begin_at = setup_turing_key (turing, demuxer->stream, &mp_stream_read_wrapper, o_mak);
60          fprintf(stderr, "begin_at = %lx\n", begin_at);          fprintf(stderr, "begin_at = %lx\n", begin_at);
61          stream_seek (demuxer->stream, begin_at);          stream_seek (demuxer->stream, begin_at);
62            end_at = demuxer->movi_end;
63          if (1)          if (1)
64          {          {
65                  extern int audio_id, video_id, dvdsub_id;                  extern int audio_id, video_id, dvdsub_id;
# Line 66  demuxer_t* demux_tivo_open(demuxer_t* demuxer) Line 67  demuxer_t* demux_tivo_open(demuxer_t* demuxer)
67                  demuxer_t* od = demux_open(s, DEMUXER_TYPE_MPEG_PS,                  demuxer_t* od = demux_open(s, DEMUXER_TYPE_MPEG_PS,
68                                  audio_id, video_id, dvdsub_id, NULL);                                  audio_id, video_id, dvdsub_id, NULL);
69                  demuxer = new_demuxers_demuxer(od, od, od);                  demuxer = new_demuxers_demuxer(od, od, od);
70                    demuxer->movi_start = begin_at;
71                    demuxer->movi_end = end_at;
72          }          }
73          return demuxer;          return demuxer;
74  }  }
# Line 99  int demux_tivo_fill_buffer(demuxer_t* demuxer, demux_s Line 102  int demux_tivo_fill_buffer(demuxer_t* demuxer, demux_s
102                          if (ret == 1)                          if (ret == 1)
103                          {                          {
104                                  marker = 0xFFFFFFFF;                                  marker = 0xFFFFFFFF;
105                                    demuxer->filepos = stream_tell(demuxer->stream);
106                                  ds_add_packet(ds, dp);                                  ds_add_packet(ds, dp);
107                                  return 1;                                  return 1;
108                          }                          }
# Line 108  int demux_tivo_fill_buffer(demuxer_t* demuxer, demux_s Line 112  int demux_tivo_fill_buffer(demuxer_t* demuxer, demux_s
112                                  if (unlikely(dp->pos >= dp->len))                                  if (unlikely(dp->pos >= dp->len))
113                                  {                                  {
114                                          resize_demux_packet(dp, dp->pos);                                          resize_demux_packet(dp, dp->pos);
115                                            demuxer->filepos = stream_tell(demuxer->stream);
116                                          ds_add_packet(ds, dp);                                          ds_add_packet(ds, dp);
117                                          dp = new_demux_packet (STREAM_BUFFER_SIZE);                                          dp = new_demux_packet (STREAM_BUFFER_SIZE);
118                                  }                                  }
# Line 124  int demux_tivo_fill_buffer(demuxer_t* demuxer, demux_s Line 129  int demux_tivo_fill_buffer(demuxer_t* demuxer, demux_s
129                          if (unlikely(dp->pos >= dp->len))                          if (unlikely(dp->pos >= dp->len))
130                          {                          {
131                                  resize_demux_packet(dp, dp->pos);                                  resize_demux_packet(dp, dp->pos);
132                                    demuxer->filepos = stream_tell(demuxer->stream);
133                                  ds_add_packet(ds, dp);                                  ds_add_packet(ds, dp);
134                                  dp = new_demux_packet (STREAM_BUFFER_SIZE);                                  dp = new_demux_packet (STREAM_BUFFER_SIZE);
135                          }                          }

Legend:
Removed from v.71  
changed lines
  Added in v.72

cvs@jdrake.com
ViewVC Help
Powered by ViewVC 1.1.13