Originally committed as revision 25833 to svn://svn.ffmpeg.org/ffmpeg/trunk
| ... | ... |
@@ -370,7 +370,7 @@ static int64_t dv_frame_offset(AVFormatContext *s, DVDemuxContext *c, |
| 370 | 370 |
// FIXME: sys may be wrong if last dv_read_packet() failed (buffer is junk) |
| 371 | 371 |
const DVprofile* sys = ff_dv_codec_profile(c->vst->codec); |
| 372 | 372 |
int64_t offset; |
| 373 |
- int64_t size = url_fsize(s->pb); |
|
| 373 |
+ int64_t size = url_fsize(s->pb) - s->data_offset; |
|
| 374 | 374 |
int64_t max_offset = ((size-1) / sys->frame_size) * sys->frame_size; |
| 375 | 375 |
|
| 376 | 376 |
offset = sys->frame_size * timestamp; |
| ... | ... |
@@ -378,7 +378,7 @@ static int64_t dv_frame_offset(AVFormatContext *s, DVDemuxContext *c, |
| 378 | 378 |
if (size >= 0 && offset > max_offset) offset = max_offset; |
| 379 | 379 |
else if (offset < 0) offset = 0; |
| 380 | 380 |
|
| 381 |
- return offset; |
|
| 381 |
+ return offset + s->data_offset; |
|
| 382 | 382 |
} |
| 383 | 383 |
|
| 384 | 384 |
void dv_offset_reset(DVDemuxContext *c, int64_t frame_offset) |