Mercurial > mplayer.hg
comparison stream/stream_dvdnav.c @ 19895:1beb8cfbc948
permit seeking to 0: there's no reason to prevent it
author | nicodvb |
---|---|
date | Mon, 18 Sep 2006 22:02:43 +0000 |
parents | bec5c0d5fb17 |
children | b6aa47caeb72 |
comparison
equal
deleted
inserted
replaced
19894:bec5c0d5fb17 | 19895:1beb8cfbc948 |
---|---|
262 | 262 |
263 static int seek(stream_t *s, off_t newpos) { | 263 static int seek(stream_t *s, off_t newpos) { |
264 uint32_t pos = 0, len = 0, sector = 0; | 264 uint32_t pos = 0, len = 0, sector = 0; |
265 dvdnav_priv_t *priv = s->priv; | 265 dvdnav_priv_t *priv = s->priv; |
266 | 266 |
267 if(newpos==0) { | 267 if(newpos==0) |
268 if(dvdnav_stream_reset(priv->dvdnav)) | 268 dvdnav_stream_reset(priv->dvdnav); |
269 s->pos=0; | 269 |
270 } | |
271 else { | |
272 if(s->end_pos && newpos > s->end_pos) | 270 if(s->end_pos && newpos > s->end_pos) |
273 newpos = s->end_pos; | 271 newpos = s->end_pos; |
274 sector = newpos / 2048ULL; | 272 sector = newpos / 2048ULL; |
275 if(dvdnav_sector_search(priv->dvdnav, (uint64_t) sector, SEEK_SET) != DVDNAV_STATUS_OK) | 273 if(dvdnav_sector_search(priv->dvdnav, (uint64_t) sector, SEEK_SET) != DVDNAV_STATUS_OK) |
276 goto fail; | 274 goto fail; |
277 | 275 |
278 s->pos = newpos; | 276 s->pos = newpos; |
279 } | |
280 | 277 |
281 return 1; | 278 return 1; |
282 | 279 |
283 fail: | 280 fail: |
284 mp_msg(MSGT_STREAM,MSGL_INFO,"dvdnav_stream, seeking to %"PRIu64" failed: %s\n", newpos, dvdnav_err_to_string(priv->dvdnav)); | 281 mp_msg(MSGT_STREAM,MSGL_INFO,"dvdnav_stream, seeking to %"PRIu64" failed: %s\n", newpos, dvdnav_err_to_string(priv->dvdnav)); |