avio: add avio_tell macro as a replacement for url_ftell

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
(cherry picked from commit a2704c9712)
oldabi
Anton Khirnov 14 years ago committed by Michael Niedermayer
parent 773947ba76
commit 384c9c2fa7
  1. 4
      ffmpeg.c
  2. 2
      ffplay.c
  3. 2
      libavformat/4xm.c
  4. 6
      libavformat/aiffdec.c
  5. 8
      libavformat/aiffenc.c
  6. 2
      libavformat/amr.c
  7. 2
      libavformat/anm.c
  8. 36
      libavformat/asfdec.c
  9. 20
      libavformat/asfenc.c
  10. 2
      libavformat/au.c
  11. 32
      libavformat/avidec.c
  12. 16
      libavformat/avienc.c
  13. 3
      libavformat/avio.h
  14. 2
      libavformat/aviobuf.c
  15. 4
      libavformat/avs.c
  16. 2
      libavformat/bethsoftvid.c
  17. 12
      libavformat/cafdec.c
  18. 4
      libavformat/dv.c
  19. 14
      libavformat/dxa.c
  20. 2
      libavformat/electronicarts.c
  21. 14
      libavformat/ffmdec.c
  22. 4
      libavformat/ffmenc.c
  23. 2
      libavformat/filmstripdec.c
  24. 2
      libavformat/flacenc.c
  25. 4
      libavformat/flic.c
  26. 12
      libavformat/flvdec.c
  27. 14
      libavformat/flvenc.c
  28. 6
      libavformat/gxf.c
  29. 44
      libavformat/gxfenc.c
  30. 4
      libavformat/id3v2.c
  31. 4
      libavformat/idroqdec.c
  32. 6
      libavformat/iff.c
  33. 2
      libavformat/ingenientdec.c
  34. 10
      libavformat/ipmovie.c
  35. 4
      libavformat/iss.c
  36. 2
      libavformat/libnut.c
  37. 16
      libavformat/matroskadec.c
  38. 40
      libavformat/matroskaenc.c
  39. 8
      libavformat/mmf.c
  40. 26
      libavformat/mov.c
  41. 74
      libavformat/movenc.c
  42. 8
      libavformat/movenchint.c
  43. 2
      libavformat/mp3dec.c
  44. 4
      libavformat/mp3enc.c
  45. 4
      libavformat/mpc.c
  46. 16
      libavformat/mpc8.c
  47. 10
      libavformat/mpeg.c
  48. 14
      libavformat/mpegts.c
  49. 2
      libavformat/mpegtsenc.c
  50. 2
      libavformat/mtv.c
  51. 12
      libavformat/mxfdec.c
  52. 20
      libavformat/mxfenc.c
  53. 8
      libavformat/nsvdec.c
  54. 32
      libavformat/nutdec.c
  55. 6
      libavformat/nutenc.c
  56. 2
      libavformat/nuv.c
  57. 6
      libavformat/oggdec.c
  58. 4
      libavformat/oggenc.c
  59. 2
      libavformat/psxstr.c
  60. 4
      libavformat/pva.c
  61. 2
      libavformat/qcp.c
  62. 12
      libavformat/r3d.c
  63. 2
      libavformat/rawdec.c
  64. 2
      libavformat/rdt.c
  65. 4
      libavformat/riff.c
  66. 24
      libavformat/rmdec.c
  67. 2
      libavformat/rsoenc.c
  68. 12
      libavformat/rtpdec_asf.c
  69. 14
      libavformat/rtpdec_qt.c
  70. 2
      libavformat/seek.c
  71. 4
      libavformat/segafilm.c
  72. 2
      libavformat/sierravmd.c
  73. 8
      libavformat/smacker.c
  74. 2
      libavformat/soxenc.c
  75. 2
      libavformat/spdifdec.c
  76. 2
      libavformat/srtdec.c
  77. 2
      libavformat/swfdec.c
  78. 10
      libavformat/swfenc.c
  79. 6
      libavformat/tta.c
  80. 2
      libavformat/tty.c
  81. 6
      libavformat/utils.c
  82. 2
      libavformat/vocdec.c
  83. 2
      libavformat/vqf.c
  84. 10
      libavformat/wav.c
  85. 4
      libavformat/wtv.c
  86. 10
      libavformat/wv.c
  87. 2
      libavformat/yop.c

@ -1365,7 +1365,7 @@ static void print_report(AVFormatContext **output_files,
total_size = url_fsize(oc->pb); total_size = url_fsize(oc->pb);
if(total_size<0) // FIXME improve url_fsize() so it works with non seekable output too if(total_size<0) // FIXME improve url_fsize() so it works with non seekable output too
total_size= url_ftell(oc->pb); total_size= avio_tell(oc->pb);
buf[0] = '\0'; buf[0] = '\0';
ti1 = 1e10; ti1 = 1e10;
@ -2571,7 +2571,7 @@ static int transcode(AVFormatContext **output_files,
} }
/* finish if limit size exhausted */ /* finish if limit size exhausted */
if (limit_filesize != 0 && limit_filesize <= url_ftell(output_files[0]->pb)) if (limit_filesize != 0 && limit_filesize <= avio_tell(output_files[0]->pb))
break; break;
/* read a frame from it and output it in the fifo */ /* read a frame from it and output it in the fifo */

@ -2809,7 +2809,7 @@ static void event_loop(void)
}else if(cur_stream->audio_stream >= 0 && cur_stream->audio_pkt.pos>=0){ }else if(cur_stream->audio_stream >= 0 && cur_stream->audio_pkt.pos>=0){
pos= cur_stream->audio_pkt.pos; pos= cur_stream->audio_pkt.pos;
}else }else
pos = url_ftell(cur_stream->ic->pb); pos = avio_tell(cur_stream->ic->pb);
if (cur_stream->ic->bit_rate) if (cur_stream->ic->bit_rate)
incr *= cur_stream->ic->bit_rate / 8.0; incr *= cur_stream->ic->bit_rate / 8.0;
else else

@ -283,7 +283,7 @@ static int fourxm_read_packet(AVFormatContext *s,
return AVERROR(EIO); return AVERROR(EIO);
pkt->stream_index = fourxm->video_stream_index; pkt->stream_index = fourxm->video_stream_index;
pkt->pts = fourxm->video_pts; pkt->pts = fourxm->video_pts;
pkt->pos = url_ftell(s->pb); pkt->pos = avio_tell(s->pb);
memcpy(pkt->data, header, 8); memcpy(pkt->data, header, 8);
ret = avio_read(s->pb, &pkt->data[8], size); ret = avio_read(s->pb, &pkt->data[8], size);

@ -232,10 +232,10 @@ static int aiff_read_header(AVFormatContext *s,
get_meta(s, "comment" , size); get_meta(s, "comment" , size);
break; break;
case MKTAG('S', 'S', 'N', 'D'): /* Sampled sound chunk */ case MKTAG('S', 'S', 'N', 'D'): /* Sampled sound chunk */
aiff->data_end = url_ftell(pb) + size; aiff->data_end = avio_tell(pb) + size;
offset = avio_rb32(pb); /* Offset of sound data */ offset = avio_rb32(pb); /* Offset of sound data */
avio_rb32(pb); /* BlockSize... don't care */ avio_rb32(pb); /* BlockSize... don't care */
offset += url_ftell(pb); /* Compute absolute data offset */ offset += avio_tell(pb); /* Compute absolute data offset */
if (st->codec->block_align) /* Assume COMM already parsed */ if (st->codec->block_align) /* Assume COMM already parsed */
goto got_sound; goto got_sound;
if (url_is_streamed(pb)) { if (url_is_streamed(pb)) {
@ -292,7 +292,7 @@ static int aiff_read_packet(AVFormatContext *s,
int res, size; int res, size;
/* calculate size of remaining data */ /* calculate size of remaining data */
max_size = aiff->data_end - url_ftell(s->pb); max_size = aiff->data_end - avio_tell(s->pb);
if (max_size <= 0) if (max_size <= 0)
return AVERROR_EOF; return AVERROR_EOF;

@ -45,7 +45,7 @@ static int aiff_write_header(AVFormatContext *s)
/* FORM AIFF header */ /* FORM AIFF header */
ffio_wfourcc(pb, "FORM"); ffio_wfourcc(pb, "FORM");
aiff->form = url_ftell(pb); aiff->form = avio_tell(pb);
avio_wb32(pb, 0); /* file length */ avio_wb32(pb, 0); /* file length */
ffio_wfourcc(pb, aifc ? "AIFC" : "AIFF"); ffio_wfourcc(pb, aifc ? "AIFC" : "AIFF");
@ -66,7 +66,7 @@ static int aiff_write_header(AVFormatContext *s)
avio_wb32(pb, aifc ? 24 : 18); /* size */ avio_wb32(pb, aifc ? 24 : 18); /* size */
avio_wb16(pb, enc->channels); /* Number of channels */ avio_wb16(pb, enc->channels); /* Number of channels */
aiff->frames = url_ftell(pb); aiff->frames = avio_tell(pb);
avio_wb32(pb, 0); /* Number of frames */ avio_wb32(pb, 0); /* Number of frames */
if (!enc->bits_per_coded_sample) if (!enc->bits_per_coded_sample)
@ -90,7 +90,7 @@ static int aiff_write_header(AVFormatContext *s)
/* Sound data chunk */ /* Sound data chunk */
ffio_wfourcc(pb, "SSND"); ffio_wfourcc(pb, "SSND");
aiff->ssnd = url_ftell(pb); /* Sound chunk size */ aiff->ssnd = avio_tell(pb); /* Sound chunk size */
avio_wb32(pb, 0); /* Sound samples data size */ avio_wb32(pb, 0); /* Sound samples data size */
avio_wb32(pb, 0); /* Data offset */ avio_wb32(pb, 0); /* Data offset */
avio_wb32(pb, 0); /* Block-size (block align) */ avio_wb32(pb, 0); /* Block-size (block align) */
@ -118,7 +118,7 @@ static int aiff_write_trailer(AVFormatContext *s)
/* Chunks sizes must be even */ /* Chunks sizes must be even */
int64_t file_size, end_size; int64_t file_size, end_size;
end_size = file_size = url_ftell(pb); end_size = file_size = avio_tell(pb);
if (file_size & 1) { if (file_size & 1) {
avio_w8(pb, 0); avio_w8(pb, 0);
end_size++; end_size++;

@ -154,7 +154,7 @@ static int amr_read_packet(AVFormatContext *s,
} }
pkt->stream_index = 0; pkt->stream_index = 0;
pkt->pos= url_ftell(s->pb); pkt->pos= avio_tell(s->pb);
pkt->data[0]=toc; pkt->data[0]=toc;
pkt->duration= enc->codec_id == CODEC_ID_AMR_NB ? 160 : 320; pkt->duration= enc->codec_id == CODEC_ID_AMR_NB ? 160 : 320;
read = avio_read(s->pb, pkt->data+1, size-1); read = avio_read(s->pb, pkt->data+1, size-1);

@ -208,7 +208,7 @@ repeat:
} }
/* fetch record size */ /* fetch record size */
tmp = url_ftell(pb); tmp = avio_tell(pb);
avio_seek(pb, anm->page_table_offset + MAX_PAGES*6 + (anm->page<<16) + avio_seek(pb, anm->page_table_offset + MAX_PAGES*6 + (anm->page<<16) +
8 + anm->record * 2, SEEK_SET); 8 + anm->record * 2, SEEK_SET);
record_size = avio_rl16(pb); record_size = avio_rl16(pb);

@ -160,7 +160,7 @@ static int get_value(AVIOContext *pb, int type){
static void get_tag(AVFormatContext *s, const char *key, int type, int len) static void get_tag(AVFormatContext *s, const char *key, int type, int len)
{ {
char *value; char *value;
int64_t off = url_ftell(s->pb); int64_t off = avio_tell(s->pb);
if ((unsigned)len >= (UINT_MAX - 1)/2) if ((unsigned)len >= (UINT_MAX - 1)/2)
return; return;
@ -225,7 +225,7 @@ static int asf_read_stream_properties(AVFormatContext *s, int64_t size)
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
pos1 = url_ftell(pb); pos1 = avio_tell(pb);
st = av_new_stream(s, 0); st = av_new_stream(s, 0);
if (!st) if (!st)
@ -300,7 +300,7 @@ static int asf_read_stream_properties(AVFormatContext *s, int64_t size)
st->need_parsing = AVSTREAM_PARSE_FULL; st->need_parsing = AVSTREAM_PARSE_FULL;
} }
/* We have to init the frame size at some point .... */ /* We have to init the frame size at some point .... */
pos2 = url_ftell(pb); pos2 = avio_tell(pb);
if (size >= (pos2 + 8 - pos1 + 24)) { if (size >= (pos2 + 8 - pos1 + 24)) {
asf_st->ds_span = avio_r8(pb); asf_st->ds_span = avio_r8(pb);
asf_st->ds_packet_size = avio_rl16(pb); asf_st->ds_packet_size = avio_rl16(pb);
@ -337,7 +337,7 @@ static int asf_read_stream_properties(AVFormatContext *s, int64_t size)
break; break;
} }
} else if (type == AVMEDIA_TYPE_VIDEO && } else if (type == AVMEDIA_TYPE_VIDEO &&
size - (url_ftell(pb) - pos1 + 24) >= 51) { size - (avio_tell(pb) - pos1 + 24) >= 51) {
avio_rl32(pb); avio_rl32(pb);
avio_rl32(pb); avio_rl32(pb);
avio_r8(pb); avio_r8(pb);
@ -386,7 +386,7 @@ static int asf_read_stream_properties(AVFormatContext *s, int64_t size)
if(st->codec->codec_id == CODEC_ID_H264) if(st->codec->codec_id == CODEC_ID_H264)
st->need_parsing = AVSTREAM_PARSE_FULL_ONCE; st->need_parsing = AVSTREAM_PARSE_FULL_ONCE;
} }
pos2 = url_ftell(pb); pos2 = avio_tell(pb);
avio_seek(pb, size - (pos2 - pos1 + 24), SEEK_CUR); avio_seek(pb, size - (pos2 - pos1 + 24), SEEK_CUR);
return 0; return 0;
@ -594,14 +594,14 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
avio_r8(pb); avio_r8(pb);
memset(&asf->asfid2avid, -1, sizeof(asf->asfid2avid)); memset(&asf->asfid2avid, -1, sizeof(asf->asfid2avid));
for(;;) { for(;;) {
uint64_t gpos= url_ftell(pb); uint64_t gpos= avio_tell(pb);
ff_get_guid(pb, &g); ff_get_guid(pb, &g);
gsize = avio_rl64(pb); gsize = avio_rl64(pb);
av_dlog(s, "%08"PRIx64": ", gpos); av_dlog(s, "%08"PRIx64": ", gpos);
print_guid(&g); print_guid(&g);
av_dlog(s, " size=0x%"PRIx64"\n", gsize); av_dlog(s, " size=0x%"PRIx64"\n", gsize);
if (!ff_guidcmp(&g, &ff_asf_data_header)) { if (!ff_guidcmp(&g, &ff_asf_data_header)) {
asf->data_object_offset = url_ftell(pb); asf->data_object_offset = avio_tell(pb);
// if not streaming, gsize is not unlimited (how?), and there is enough space in the file.. // if not streaming, gsize is not unlimited (how?), and there is enough space in the file..
if (!(asf->hdr.flags & 0x01) && gsize >= 100) { if (!(asf->hdr.flags & 0x01) && gsize >= 100) {
asf->data_object_size = gsize - 24; asf->data_object_size = gsize - 24;
@ -651,8 +651,8 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
} }
} }
} }
if(url_ftell(pb) != gpos + gsize) if(avio_tell(pb) != gpos + gsize)
av_log(s, AV_LOG_DEBUG, "gpos mismatch our pos=%"PRIu64", end=%"PRIu64"\n", url_ftell(pb)-gpos, gsize); av_log(s, AV_LOG_DEBUG, "gpos mismatch our pos=%"PRIu64", end=%"PRIu64"\n", avio_tell(pb)-gpos, gsize);
avio_seek(pb, gpos + gsize, SEEK_SET); avio_seek(pb, gpos + gsize, SEEK_SET);
} }
ff_get_guid(pb, &g); ff_get_guid(pb, &g);
@ -661,7 +661,7 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
avio_r8(pb); avio_r8(pb);
if (url_feof(pb)) if (url_feof(pb))
return -1; return -1;
asf->data_offset = url_ftell(pb); asf->data_offset = avio_tell(pb);
asf->packet_size_left = 0; asf->packet_size_left = 0;
@ -725,7 +725,7 @@ static int ff_asf_get_packet(AVFormatContext *s, AVIOContext *pb)
// if we do not know packet size, allow skipping up to 32 kB // if we do not know packet size, allow skipping up to 32 kB
off= 32768; off= 32768;
if (s->packet_size > 0) if (s->packet_size > 0)
off= (url_ftell(pb) - s->data_offset) % s->packet_size + 3; off= (avio_tell(pb) - s->data_offset) % s->packet_size + 3;
c=d=e=-1; c=d=e=-1;
while(off-- > 0){ while(off-- > 0){
@ -745,7 +745,7 @@ static int ff_asf_get_packet(AVFormatContext *s, AVIOContext *pb)
if (url_ferror(pb) == AVERROR(EAGAIN)) if (url_ferror(pb) == AVERROR(EAGAIN))
return AVERROR(EAGAIN); return AVERROR(EAGAIN);
if (!url_feof(pb)) if (!url_feof(pb))
av_log(s, AV_LOG_ERROR, "ff asf bad header %x at:%"PRId64"\n", c, url_ftell(pb)); av_log(s, AV_LOG_ERROR, "ff asf bad header %x at:%"PRId64"\n", c, avio_tell(pb));
} }
if ((c & 0x8f) == 0x82) { if ((c & 0x8f) == 0x82) {
if (d || e) { if (d || e) {
@ -769,11 +769,11 @@ static int ff_asf_get_packet(AVFormatContext *s, AVIOContext *pb)
//the following checks prevent overflows and infinite loops //the following checks prevent overflows and infinite loops
if(!packet_length || packet_length >= (1U<<29)){ if(!packet_length || packet_length >= (1U<<29)){
av_log(s, AV_LOG_ERROR, "invalid packet_length %d at:%"PRId64"\n", packet_length, url_ftell(pb)); av_log(s, AV_LOG_ERROR, "invalid packet_length %d at:%"PRId64"\n", packet_length, avio_tell(pb));
return -1; return -1;
} }
if(padsize >= packet_length){ if(padsize >= packet_length){
av_log(s, AV_LOG_ERROR, "invalid padsize %d at:%"PRId64"\n", padsize, url_ftell(pb)); av_log(s, AV_LOG_ERROR, "invalid padsize %d at:%"PRId64"\n", padsize, avio_tell(pb));
return -1; return -1;
} }
@ -891,12 +891,12 @@ static int ff_asf_parse_packet(AVFormatContext *s, AVIOContext *pb, AVPacket *pk
|| asf->packet_segments < 1) { || asf->packet_segments < 1) {
//asf->packet_size_left <= asf->packet_padsize) { //asf->packet_size_left <= asf->packet_padsize) {
int ret = asf->packet_size_left + asf->packet_padsize; int ret = asf->packet_size_left + asf->packet_padsize;
//printf("PacketLeftSize:%d Pad:%d Pos:%"PRId64"\n", asf->packet_size_left, asf->packet_padsize, url_ftell(pb)); //printf("PacketLeftSize:%d Pad:%d Pos:%"PRId64"\n", asf->packet_size_left, asf->packet_padsize, avio_tell(pb));
assert(ret>=0); assert(ret>=0);
/* fail safe */ /* fail safe */
avio_seek(pb, ret, SEEK_CUR); avio_seek(pb, ret, SEEK_CUR);
asf->packet_pos= url_ftell(pb); asf->packet_pos= avio_tell(pb);
if (asf->data_object_size != (uint64_t)-1 && if (asf->data_object_size != (uint64_t)-1 &&
(asf->packet_pos - asf->data_object_offset >= asf->data_object_size)) (asf->packet_pos - asf->data_object_offset >= asf->data_object_size))
return AVERROR_EOF; /* Do not exceed the size of the data object */ return AVERROR_EOF; /* Do not exceed the size of the data object */
@ -1184,7 +1184,7 @@ static void asf_build_simple_index(AVFormatContext *s, int stream_index)
{ {
ff_asf_guid g; ff_asf_guid g;
ASFContext *asf = s->priv_data; ASFContext *asf = s->priv_data;
int64_t current_pos= url_ftell(s->pb); int64_t current_pos= avio_tell(s->pb);
int i; int i;
avio_seek(s->pb, asf->data_object_offset + asf->data_object_size, SEEK_SET); avio_seek(s->pb, asf->data_object_offset + asf->data_object_size, SEEK_SET);
@ -1267,7 +1267,7 @@ static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int
// avio_seek(s->pb, pos, SEEK_SET); // avio_seek(s->pb, pos, SEEK_SET);
// key_pos = pos; // key_pos = pos;
// for(i=0;i<16;i++){ // for(i=0;i<16;i++){
// pos = url_ftell(s->pb); // pos = avio_tell(s->pb);
// if (av_read_frame(s, &pkt) < 0){ // if (av_read_frame(s, &pkt) < 0){
// av_log(s, AV_LOG_INFO, "seek failed\n"); // av_log(s, AV_LOG_INFO, "seek failed\n");
// return -1; // return -1;

@ -248,7 +248,7 @@ static int64_t put_header(AVIOContext *pb, const ff_asf_guid *g)
{ {
int64_t pos; int64_t pos;
pos = url_ftell(pb); pos = avio_tell(pb);
put_guid(pb, g); put_guid(pb, g);
avio_wl64(pb, 24); avio_wl64(pb, 24);
return pos; return pos;
@ -259,7 +259,7 @@ static void end_header(AVIOContext *pb, int64_t pos)
{ {
int64_t pos1; int64_t pos1;
pos1 = url_ftell(pb); pos1 = avio_tell(pb);
avio_seek(pb, pos + 16, SEEK_SET); avio_seek(pb, pos + 16, SEEK_SET);
avio_wl64(pb, pos1 - pos); avio_wl64(pb, pos1 - pos);
avio_seek(pb, pos1, SEEK_SET); avio_seek(pb, pos1, SEEK_SET);
@ -337,7 +337,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data
avio_w8(pb, 2); /* ??? */ avio_w8(pb, 2); /* ??? */
/* file header */ /* file header */
header_offset = url_ftell(pb); header_offset = avio_tell(pb);
hpos = put_header(pb, &ff_asf_file_header); hpos = put_header(pb, &ff_asf_file_header);
put_guid(pb, &ff_asf_my_guid); put_guid(pb, &ff_asf_my_guid);
avio_wl64(pb, file_size); avio_wl64(pb, file_size);
@ -425,7 +425,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data
put_guid(pb, &ff_asf_video_conceal_none); put_guid(pb, &ff_asf_video_conceal_none);
} }
avio_wl64(pb, 0); /* ??? */ avio_wl64(pb, 0); /* ??? */
es_pos = url_ftell(pb); es_pos = avio_tell(pb);
avio_wl32(pb, extra_size); /* wav header len */ avio_wl32(pb, extra_size); /* wav header len */
avio_wl32(pb, extra_size2); /* additional data len */ avio_wl32(pb, extra_size2); /* additional data len */
avio_wl16(pb, n + 1); /* stream number */ avio_wl16(pb, n + 1); /* stream number */
@ -442,7 +442,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data
if (wavsize < 0) if (wavsize < 0)
return -1; return -1;
if (wavsize != extra_size) { if (wavsize != extra_size) {
cur_pos = url_ftell(pb); cur_pos = avio_tell(pb);
avio_seek(pb, es_pos, SEEK_SET); avio_seek(pb, es_pos, SEEK_SET);
avio_wl32(pb, wavsize); /* wav header len */ avio_wl32(pb, wavsize); /* wav header len */
avio_seek(pb, cur_pos, SEEK_SET); avio_seek(pb, cur_pos, SEEK_SET);
@ -525,7 +525,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data
/* patch the header size fields */ /* patch the header size fields */
cur_pos = url_ftell(pb); cur_pos = avio_tell(pb);
header_size = cur_pos - header_offset; header_size = cur_pos - header_offset;
if (asf->is_streamed) { if (asf->is_streamed) {
header_size += 8 + 30 + 50; header_size += 8 + 30 + 50;
@ -605,7 +605,7 @@ static int put_payload_parsing_info(
ASFContext *asf = s->priv_data; ASFContext *asf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
int ppi_size, i; int ppi_size, i;
int64_t start= url_ftell(pb); int64_t start= avio_tell(pb);
int iLengthTypeFlags = ASF_PPI_LENGTH_TYPE_FLAGS; int iLengthTypeFlags = ASF_PPI_LENGTH_TYPE_FLAGS;
@ -642,7 +642,7 @@ static int put_payload_parsing_info(
if (asf->multi_payloads_present) if (asf->multi_payloads_present)
avio_w8(pb, nb_payloads | ASF_PAYLOAD_FLAGS); avio_w8(pb, nb_payloads | ASF_PAYLOAD_FLAGS);
ppi_size = url_ftell(pb) - start; ppi_size = avio_tell(pb) - start;
return ppi_size; return ppi_size;
} }
@ -860,7 +860,7 @@ static int asf_write_trailer(AVFormatContext *s)
flush_packet(s); flush_packet(s);
/* write index */ /* write index */
data_size = url_ftell(s->pb); data_size = avio_tell(s->pb);
if ((!asf->is_streamed) && (asf->nb_index_count != 0)) { if ((!asf->is_streamed) && (asf->nb_index_count != 0)) {
asf_write_index(s, asf->index_ptr, asf->maximum_packet, asf->nb_index_count); asf_write_index(s, asf->index_ptr, asf->maximum_packet, asf->nb_index_count);
} }
@ -870,7 +870,7 @@ static int asf_write_trailer(AVFormatContext *s)
put_chunk(s, 0x4524, 0, 0); /* end of stream */ put_chunk(s, 0x4524, 0, 0); /* end of stream */
} else { } else {
/* rewrite an updated header */ /* rewrite an updated header */
file_size = url_ftell(s->pb); file_size = avio_tell(s->pb);
avio_seek(s->pb, 0, SEEK_SET); avio_seek(s->pb, 0, SEEK_SET);
asf_write_header1(s, file_size, data_size - asf->data_offset); asf_write_header1(s, file_size, data_size - asf->data_offset);
} }

@ -94,7 +94,7 @@ static int au_write_trailer(AVFormatContext *s)
if (!url_is_streamed(s->pb)) { if (!url_is_streamed(s->pb)) {
/* update file size */ /* update file size */
file_size = url_ftell(pb); file_size = avio_tell(pb);
avio_seek(pb, 8, SEEK_SET); avio_seek(pb, 8, SEEK_SET);
avio_wb32(pb, (uint32_t)(file_size - 24)); avio_wb32(pb, (uint32_t)(file_size - 24));
avio_seek(pb, file_size, SEEK_SET); avio_seek(pb, file_size, SEEK_SET);

@ -109,7 +109,7 @@ static int get_riff(AVFormatContext *s, AVIOContext *pb)
/* check RIFF header */ /* check RIFF header */
avio_read(pb, header, 4); avio_read(pb, header, 4);
avi->riff_end = avio_rl32(pb); /* RIFF chunk size */ avi->riff_end = avio_rl32(pb); /* RIFF chunk size */
avi->riff_end += url_ftell(pb); /* RIFF chunk end */ avi->riff_end += avio_tell(pb); /* RIFF chunk end */
avio_read(pb, header+4, 4); avio_read(pb, header+4, 4);
for(i=0; avi_headers[i][0]; i++) for(i=0; avi_headers[i][0]; i++)
@ -198,7 +198,7 @@ static int read_braindead_odml_indx(AVFormatContext *s, int frame_num){
if(url_feof(pb)) if(url_feof(pb))
return -1; return -1;
pos = url_ftell(pb); pos = avio_tell(pb);
if(avi->odml_depth > MAX_ODML_DEPTH){ if(avi->odml_depth > MAX_ODML_DEPTH){
av_log(s, AV_LOG_ERROR, "Too deeply nested ODML indexes\n"); av_log(s, AV_LOG_ERROR, "Too deeply nested ODML indexes\n");
@ -267,7 +267,7 @@ static int avi_read_tag(AVFormatContext *s, AVStream *st, uint32_t tag, uint32_t
static void avi_read_info(AVFormatContext *s, uint64_t end) static void avi_read_info(AVFormatContext *s, uint64_t end)
{ {
while (url_ftell(s->pb) < end) { while (avio_tell(s->pb) < end) {
uint32_t tag = avio_rl32(s->pb); uint32_t tag = avio_rl32(s->pb);
uint32_t size = avio_rl32(s->pb); uint32_t size = avio_rl32(s->pb);
avi_read_tag(s, NULL, tag, size); avi_read_tag(s, NULL, tag, size);
@ -298,13 +298,13 @@ static void avi_metadata_creation_time(AVMetadata **metadata, char *date)
static void avi_read_nikon(AVFormatContext *s, uint64_t end) static void avi_read_nikon(AVFormatContext *s, uint64_t end)
{ {
while (url_ftell(s->pb) < end) { while (avio_tell(s->pb) < end) {
uint32_t tag = avio_rl32(s->pb); uint32_t tag = avio_rl32(s->pb);
uint32_t size = avio_rl32(s->pb); uint32_t size = avio_rl32(s->pb);
switch (tag) { switch (tag) {
case MKTAG('n', 'c', 't', 'g'): { /* Nikon Tags */ case MKTAG('n', 'c', 't', 'g'): { /* Nikon Tags */
uint64_t tag_end = url_ftell(s->pb) + size; uint64_t tag_end = avio_tell(s->pb) + size;
while (url_ftell(s->pb) < tag_end) { while (avio_tell(s->pb) < tag_end) {
uint16_t tag = avio_rl16(s->pb); uint16_t tag = avio_rl16(s->pb);
uint16_t size = avio_rl16(s->pb); uint16_t size = avio_rl16(s->pb);
const char *name = NULL; const char *name = NULL;
@ -369,14 +369,14 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
switch(tag) { switch(tag) {
case MKTAG('L', 'I', 'S', 'T'): case MKTAG('L', 'I', 'S', 'T'):
list_end = url_ftell(pb) + size; list_end = avio_tell(pb) + size;
/* Ignored, except at start of video packets. */ /* Ignored, except at start of video packets. */
tag1 = avio_rl32(pb); tag1 = avio_rl32(pb);
print_tag("list", tag1, 0); print_tag("list", tag1, 0);
if (tag1 == MKTAG('m', 'o', 'v', 'i')) { if (tag1 == MKTAG('m', 'o', 'v', 'i')) {
avi->movi_list = url_ftell(pb) - 4; avi->movi_list = avio_tell(pb) - 4;
if(size) avi->movi_end = avi->movi_list + size + (size & 1); if(size) avi->movi_end = avi->movi_list + size + (size & 1);
else avi->movi_end = url_fsize(pb); else avi->movi_end = url_fsize(pb);
av_dlog(NULL, "movi end=%"PRIx64"\n", avi->movi_end); av_dlog(NULL, "movi end=%"PRIx64"\n", avi->movi_end);
@ -549,7 +549,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
if (stream_index >= (unsigned)s->nb_streams || avi->dv_demux) { if (stream_index >= (unsigned)s->nb_streams || avi->dv_demux) {
avio_seek(pb, size, SEEK_CUR); avio_seek(pb, size, SEEK_CUR);
} else { } else {
uint64_t cur_pos = url_ftell(pb); uint64_t cur_pos = avio_tell(pb);
if (cur_pos < list_end) if (cur_pos < list_end)
size = FFMIN(size, list_end - cur_pos); size = FFMIN(size, list_end - cur_pos);
st = s->streams[stream_index]; st = s->streams[stream_index];
@ -664,7 +664,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
} }
break; break;
case MKTAG('i', 'n', 'd', 'x'): case MKTAG('i', 'n', 'd', 'x'):
i= url_ftell(pb); i= avio_tell(pb);
if(!url_is_streamed(pb) && !(s->flags & AVFMT_FLAG_IGNIDX)){ if(!url_is_streamed(pb) && !(s->flags & AVFMT_FLAG_IGNIDX)){
read_braindead_odml_indx(s, 0); read_braindead_odml_indx(s, 0);
} }
@ -704,7 +704,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
if(size > 1000000){ if(size > 1000000){
av_log(s, AV_LOG_ERROR, "Something went wrong during header parsing, " av_log(s, AV_LOG_ERROR, "Something went wrong during header parsing, "
"I will ignore it and try to continue anyway.\n"); "I will ignore it and try to continue anyway.\n");
avi->movi_list = url_ftell(pb) - 4; avi->movi_list = avio_tell(pb) - 4;
avi->movi_end = url_fsize(pb); avi->movi_end = url_fsize(pb);
goto end_of_header; goto end_of_header;
} }
@ -923,7 +923,7 @@ resync:
if(size > ast->remaining) if(size > ast->remaining)
size= ast->remaining; size= ast->remaining;
avi->last_pkt_pos= url_ftell(pb); avi->last_pkt_pos= avio_tell(pb);
err= av_get_packet(pb, pkt, size); err= av_get_packet(pb, pkt, size);
if(err<0) if(err<0)
return err; return err;
@ -989,7 +989,7 @@ resync:
} }
memset(d, -1, sizeof(int)*8); memset(d, -1, sizeof(int)*8);
for(i=sync=url_ftell(pb); !url_feof(pb); i++) { for(i=sync=avio_tell(pb); !url_feof(pb); i++) {
int j; int j;
for(j=0; j<7; j++) for(j=0; j<7; j++)
@ -1092,7 +1092,7 @@ resync:
ast->remaining= size; ast->remaining= size;
if(size || !ast->sample_size){ if(size || !ast->sample_size){
uint64_t pos= url_ftell(pb) - 8; uint64_t pos= avio_tell(pb) - 8;
if(!st->index_entries || !st->nb_index_entries || st->index_entries[st->nb_index_entries - 1].pos < pos){ if(!st->index_entries || !st->nb_index_entries || st->index_entries[st->nb_index_entries - 1].pos < pos){
av_add_index_entry(st, pos, ast->frame_offset, size, 0, AVINDEX_KEYFRAME); av_add_index_entry(st, pos, ast->frame_offset, size, 0, AVINDEX_KEYFRAME);
} }
@ -1162,7 +1162,7 @@ static int guess_ni_flag(AVFormatContext *s){
int i; int i;
int64_t last_start=0; int64_t last_start=0;
int64_t first_end= INT64_MAX; int64_t first_end= INT64_MAX;
int64_t oldpos= url_ftell(s->pb); int64_t oldpos= avio_tell(s->pb);
for(i=0; i<s->nb_streams; i++){ for(i=0; i<s->nb_streams; i++){
AVStream *st = s->streams[i]; AVStream *st = s->streams[i];
@ -1194,7 +1194,7 @@ static int avi_load_index(AVFormatContext *s)
AVIContext *avi = s->priv_data; AVIContext *avi = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
uint32_t tag, size; uint32_t tag, size;
int64_t pos= url_ftell(pb); int64_t pos= avio_tell(pb);
int ret = -1; int ret = -1;
if (avio_seek(pb, avi->movi_end, SEEK_SET) < 0) if (avio_seek(pb, avi->movi_end, SEEK_SET) < 0)

@ -124,7 +124,7 @@ static int avi_write_counters(AVFormatContext* s, int riff_id)
int64_t file_size; int64_t file_size;
AVCodecContext* stream; AVCodecContext* stream;
file_size = url_ftell(pb); file_size = avio_tell(pb);
for(n = 0; n < s->nb_streams; n++) { for(n = 0; n < s->nb_streams; n++) {
AVIStream *avist= s->streams[n]->priv_data; AVIStream *avist= s->streams[n]->priv_data;
@ -201,7 +201,7 @@ static int avi_write_header(AVFormatContext *s)
avio_wl32(pb, AVIF_TRUSTCKTYPE | AVIF_ISINTERLEAVED); /* flags */ avio_wl32(pb, AVIF_TRUSTCKTYPE | AVIF_ISINTERLEAVED); /* flags */
else else
avio_wl32(pb, AVIF_TRUSTCKTYPE | AVIF_HASINDEX | AVIF_ISINTERLEAVED); /* flags */ avio_wl32(pb, AVIF_TRUSTCKTYPE | AVIF_HASINDEX | AVIF_ISINTERLEAVED); /* flags */
avi->frames_hdr_all = url_ftell(pb); /* remember this offset to fill later */ avi->frames_hdr_all = avio_tell(pb); /* remember this offset to fill later */
avio_wl32(pb, nb_frames); /* nb frames, filled later */ avio_wl32(pb, nb_frames); /* nb frames, filled later */
avio_wl32(pb, 0); /* initial frame */ avio_wl32(pb, 0); /* initial frame */
avio_wl32(pb, s->nb_streams); /* nb streams */ avio_wl32(pb, s->nb_streams); /* nb streams */
@ -258,7 +258,7 @@ static int avi_write_header(AVFormatContext *s)
av_set_pts_info(s->streams[i], 64, au_scale, au_byterate); av_set_pts_info(s->streams[i], 64, au_scale, au_byterate);
avio_wl32(pb, 0); /* start */ avio_wl32(pb, 0); /* start */
avist->frames_hdr_strm = url_ftell(pb); /* remember this offset to fill later */ avist->frames_hdr_strm = avio_tell(pb); /* remember this offset to fill later */
if (url_is_streamed(pb)) if (url_is_streamed(pb))
avio_wl32(pb, AVI_MAX_RIFF_SIZE); /* FIXME: this may be broken, but who cares */ avio_wl32(pb, AVI_MAX_RIFF_SIZE); /* FIXME: this may be broken, but who cares */
else else
@ -419,7 +419,7 @@ static int avi_write_ix(AVFormatContext *s)
ix_tag[3] = '0' + i; ix_tag[3] = '0' + i;
/* Writing AVI OpenDML leaf index chunk */ /* Writing AVI OpenDML leaf index chunk */
ix = url_ftell(pb); ix = avio_tell(pb);
ffio_wfourcc(pb, ix_tag); /* ix?? */ ffio_wfourcc(pb, ix_tag); /* ix?? */
avio_wl32(pb, avist->indexes.entry * 8 + 24); avio_wl32(pb, avist->indexes.entry * 8 + 24);
/* chunk size */ /* chunk size */
@ -439,7 +439,7 @@ static int avi_write_ix(AVFormatContext *s)
(ie->flags & 0x10 ? 0 : 0x80000000)); (ie->flags & 0x10 ? 0 : 0x80000000));
} }
put_flush_packet(pb); put_flush_packet(pb);
pos = url_ftell(pb); pos = avio_tell(pb);
/* Updating one entry in the AVI OpenDML master index */ /* Updating one entry in the AVI OpenDML master index */
avio_seek(pb, avist->indexes.indx_start - 8, SEEK_SET); avio_seek(pb, avist->indexes.indx_start - 8, SEEK_SET);
@ -533,7 +533,7 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt)
// Make sure to put an OpenDML chunk when the file size exceeds the limits // Make sure to put an OpenDML chunk when the file size exceeds the limits
if (!url_is_streamed(pb) && if (!url_is_streamed(pb) &&
(url_ftell(pb) - avi->riff_start > AVI_MAX_RIFF_SIZE)) { (avio_tell(pb) - avi->riff_start > AVI_MAX_RIFF_SIZE)) {
avi_write_ix(s); avi_write_ix(s);
ff_end_tag(pb, avi->movi_list); ff_end_tag(pb, avi->movi_list);
@ -567,7 +567,7 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt)
} }
idx->cluster[cl][id].flags = flags; idx->cluster[cl][id].flags = flags;
idx->cluster[cl][id].pos = url_ftell(pb) - avi->movi_list; idx->cluster[cl][id].pos = avio_tell(pb) - avi->movi_list;
idx->cluster[cl][id].len = size; idx->cluster[cl][id].len = size;
idx->entry++; idx->entry++;
} }
@ -600,7 +600,7 @@ static int avi_write_trailer(AVFormatContext *s)
ff_end_tag(pb, avi->movi_list); ff_end_tag(pb, avi->movi_list);
ff_end_tag(pb, avi->riff_start); ff_end_tag(pb, avi->riff_start);
file_size = url_ftell(pb); file_size = avio_tell(pb);
avio_seek(pb, avi->odml_list - 8, SEEK_SET); avio_seek(pb, avi->odml_list - 8, SEEK_SET);
ffio_wfourcc(pb, "LIST"); /* Making this AVI OpenDML one */ ffio_wfourcc(pb, "LIST"); /* Making this AVI OpenDML one */
avio_seek(pb, 16, SEEK_CUR); avio_seek(pb, 16, SEEK_CUR);

@ -422,6 +422,7 @@ attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags)
attribute_deprecated int url_fclose(AVIOContext *s); attribute_deprecated int url_fclose(AVIOContext *s);
attribute_deprecated int64_t url_fseek(AVIOContext *s, int64_t offset, int whence); attribute_deprecated int64_t url_fseek(AVIOContext *s, int64_t offset, int whence);
attribute_deprecated int url_fskip(AVIOContext *s, int64_t offset); attribute_deprecated int url_fskip(AVIOContext *s, int64_t offset);
attribute_deprecated int64_t url_ftell(AVIOContext *s);
/** /**
* @} * @}
*/ */
@ -473,7 +474,7 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence);
* ftell() equivalent for AVIOContext. * ftell() equivalent for AVIOContext.
* @return position or AVERROR. * @return position or AVERROR.
*/ */
int64_t url_ftell(AVIOContext *s); #define avio_tell(s) avio_seek((s), 0, SEEK_CUR)
/** /**
* Get the filesize. * Get the filesize.

@ -239,12 +239,12 @@ int url_fskip(AVIOContext *s, int64_t offset)
int64_t ret = avio_seek(s, offset, SEEK_CUR); int64_t ret = avio_seek(s, offset, SEEK_CUR);
return ret < 0 ? ret : 0; return ret < 0 ? ret : 0;
} }
#endif
int64_t url_ftell(AVIOContext *s) int64_t url_ftell(AVIOContext *s)
{ {
return avio_seek(s, 0, SEEK_CUR); return avio_seek(s, 0, SEEK_CUR);
} }
#endif
int64_t url_fsize(AVIOContext *s) int64_t url_fsize(AVIOContext *s)
{ {

@ -123,9 +123,9 @@ static int avs_read_audio_packet(AVFormatContext * s, AVPacket * pkt)
AvsFormat *avs = s->priv_data; AvsFormat *avs = s->priv_data;
int ret, size; int ret, size;
size = url_ftell(s->pb); size = avio_tell(s->pb);
ret = voc_get_packet(s, pkt, avs->st_audio, avs->remaining_audio_size); ret = voc_get_packet(s, pkt, avs->st_audio, avs->remaining_audio_size);
size = url_ftell(s->pb) - size; size = avio_tell(s->pb) - size;
avs->remaining_audio_size -= size; avs->remaining_audio_size -= size;
if (ret == AVERROR(EIO)) if (ret == AVERROR(EIO))

@ -112,7 +112,7 @@ static int read_frame(BVID_DemuxContext *vid, AVIOContext *pb, AVPacket *pkt,
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
// save the file position for the packet, include block type // save the file position for the packet, include block type
position = url_ftell(pb) - 1; position = avio_tell(pb) - 1;
vidbuf_start[vidbuf_nbytes++] = block_type; vidbuf_start[vidbuf_nbytes++] = block_type;

@ -106,9 +106,9 @@ static int read_kuki_chunk(AVFormatContext *s, int64_t size)
int strt, skip; int strt, skip;
MOVAtom atom; MOVAtom atom;
strt = url_ftell(pb); strt = avio_tell(pb);
ff_mov_read_esds(s, pb, atom); ff_mov_read_esds(s, pb, atom);
skip = size - (url_ftell(pb) - strt); skip = size - (avio_tell(pb) - strt);
if (skip < 0 || !st->codec->extradata || if (skip < 0 || !st->codec->extradata ||
st->codec->codec_id != CODEC_ID_AAC) { st->codec->codec_id != CODEC_ID_AAC) {
av_log(s, AV_LOG_ERROR, "invalid AAC magic cookie\n"); av_log(s, AV_LOG_ERROR, "invalid AAC magic cookie\n");
@ -150,7 +150,7 @@ static int read_pakt_chunk(AVFormatContext *s, int64_t size)
int64_t pos = 0, ccount; int64_t pos = 0, ccount;
int num_packets, i; int num_packets, i;
ccount = url_ftell(pb); ccount = avio_tell(pb);
num_packets = avio_rb64(pb); num_packets = avio_rb64(pb);
if (num_packets < 0 || INT32_MAX / sizeof(AVIndexEntry) < num_packets) if (num_packets < 0 || INT32_MAX / sizeof(AVIndexEntry) < num_packets)
@ -167,7 +167,7 @@ static int read_pakt_chunk(AVFormatContext *s, int64_t size)
st->duration += caf->frames_per_packet ? caf->frames_per_packet : ff_mp4_read_descr_len(pb); st->duration += caf->frames_per_packet ? caf->frames_per_packet : ff_mp4_read_descr_len(pb);
} }
if (url_ftell(pb) - ccount != size) { if (avio_tell(pb) - ccount != size) {
av_log(s, AV_LOG_ERROR, "error reading packet table\n"); av_log(s, AV_LOG_ERROR, "error reading packet table\n");
return -1; return -1;
} }
@ -234,7 +234,7 @@ static int read_header(AVFormatContext *s,
switch (tag) { switch (tag) {
case MKBETAG('d','a','t','a'): case MKBETAG('d','a','t','a'):
avio_seek(pb, 4, SEEK_CUR); /* edit count */ avio_seek(pb, 4, SEEK_CUR); /* edit count */
caf->data_start = url_ftell(pb); caf->data_start = avio_tell(pb);
caf->data_size = size < 0 ? -1 : size - 4; caf->data_size = size < 0 ? -1 : size - 4;
if (caf->data_size > 0 && !url_is_streamed(pb)) if (caf->data_size > 0 && !url_is_streamed(pb))
avio_seek(pb, caf->data_size, SEEK_CUR); avio_seek(pb, caf->data_size, SEEK_CUR);
@ -312,7 +312,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
/* don't read past end of data chunk */ /* don't read past end of data chunk */
if (caf->data_size > 0) { if (caf->data_size > 0) {
left = (caf->data_start + caf->data_size) - url_ftell(pb); left = (caf->data_start + caf->data_size) - avio_tell(pb);
if (left <= 0) if (left <= 0)
return AVERROR(EIO); return AVERROR(EIO);
} }

@ -417,8 +417,8 @@ static int dv_read_header(AVFormatContext *s,
return -1; return -1;
} }
if (state == 0x003f0700 || state == 0xff3f0700) if (state == 0x003f0700 || state == 0xff3f0700)
marker_pos = url_ftell(s->pb); marker_pos = avio_tell(s->pb);
if (state == 0xff3f0701 && url_ftell(s->pb) - marker_pos == 80) { if (state == 0xff3f0701 && avio_tell(s->pb) - marker_pos == 80) {
avio_seek(s->pb, -163, SEEK_CUR); avio_seek(s->pb, -163, SEEK_CUR);
state = avio_rb32(s->pb); state = avio_rb32(s->pb);
break; break;

@ -95,7 +95,7 @@ static int dxa_read_header(AVFormatContext *s, AVFormatParameters *ap)
uint32_t size, fsize; uint32_t size, fsize;
c->has_sound = 1; c->has_sound = 1;
size = avio_rb32(pb); size = avio_rb32(pb);
c->vidpos = url_ftell(pb) + size; c->vidpos = avio_tell(pb) + size;
avio_seek(pb, 16, SEEK_CUR); avio_seek(pb, 16, SEEK_CUR);
fsize = avio_rl32(pb); fsize = avio_rl32(pb);
@ -104,7 +104,7 @@ static int dxa_read_header(AVFormatContext *s, AVFormatParameters *ap)
return -1; return -1;
ff_get_wav_header(pb, ast->codec, fsize); ff_get_wav_header(pb, ast->codec, fsize);
// find 'data' chunk // find 'data' chunk
while(url_ftell(pb) < c->vidpos && !url_feof(pb)){ while(avio_tell(pb) < c->vidpos && !url_feof(pb)){
tag = avio_rl32(pb); tag = avio_rl32(pb);
fsize = avio_rl32(pb); fsize = avio_rl32(pb);
if(tag == MKTAG('d', 'a', 't', 'a')) break; if(tag == MKTAG('d', 'a', 't', 'a')) break;
@ -114,7 +114,7 @@ static int dxa_read_header(AVFormatContext *s, AVFormatParameters *ap)
if(ast->codec->block_align) if(ast->codec->block_align)
c->bpc = ((c->bpc + ast->codec->block_align - 1) / ast->codec->block_align) * ast->codec->block_align; c->bpc = ((c->bpc + ast->codec->block_align - 1) / ast->codec->block_align) * ast->codec->block_align;
c->bytes_left = fsize; c->bytes_left = fsize;
c->wavpos = url_ftell(pb); c->wavpos = avio_tell(pb);
avio_seek(pb, c->vidpos, SEEK_SET); avio_seek(pb, c->vidpos, SEEK_SET);
} }
@ -133,7 +133,7 @@ static int dxa_read_header(AVFormatContext *s, AVFormatParameters *ap)
st->codec->height >>= 1; st->codec->height >>= 1;
} }
c->readvid = !c->has_sound; c->readvid = !c->has_sound;
c->vidpos = url_ftell(pb); c->vidpos = avio_tell(pb);
s->start_time = 0; s->start_time = 0;
s->duration = (int64_t)c->frames * AV_TIME_BASE * num / den; s->duration = (int64_t)c->frames * AV_TIME_BASE * num / den;
av_log(s, AV_LOG_DEBUG, "%d frame(s)\n",c->frames); av_log(s, AV_LOG_DEBUG, "%d frame(s)\n",c->frames);
@ -158,7 +158,7 @@ static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt)
if(ret != size) if(ret != size)
return AVERROR(EIO); return AVERROR(EIO);
c->bytes_left -= size; c->bytes_left -= size;
c->wavpos = url_ftell(s->pb); c->wavpos = avio_tell(s->pb);
return 0; return 0;
} }
avio_seek(s->pb, c->vidpos, SEEK_SET); avio_seek(s->pb, c->vidpos, SEEK_SET);
@ -172,7 +172,7 @@ static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt)
if(pal_size) memcpy(pkt->data, pal, pal_size); if(pal_size) memcpy(pkt->data, pal, pal_size);
memcpy(pkt->data + pal_size, buf, 4); memcpy(pkt->data + pal_size, buf, 4);
c->frames--; c->frames--;
c->vidpos = url_ftell(s->pb); c->vidpos = avio_tell(s->pb);
c->readvid = 0; c->readvid = 0;
return 0; return 0;
case MKTAG('C', 'M', 'A', 'P'): case MKTAG('C', 'M', 'A', 'P'):
@ -198,7 +198,7 @@ static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt)
if(pal_size) memcpy(pkt->data, pal, pal_size); if(pal_size) memcpy(pkt->data, pal, pal_size);
pkt->stream_index = 0; pkt->stream_index = 0;
c->frames--; c->frames--;
c->vidpos = url_ftell(s->pb); c->vidpos = avio_tell(s->pb);
c->readvid = 0; c->readvid = 0;
return 0; return 0;
default: default:

@ -293,7 +293,7 @@ static int process_ea_header(AVFormatContext *s) {
int i; int i;
for (i=0; i<5 && (!ea->audio_codec || !ea->video_codec); i++) { for (i=0; i<5 && (!ea->audio_codec || !ea->video_codec); i++) {
unsigned int startpos = url_ftell(pb); unsigned int startpos = avio_tell(pb);
int err = 0; int err = 0;
blockid = avio_rl32(pb); blockid = avio_rl32(pb);

@ -65,7 +65,7 @@ static int ffm_is_avail_data(AVFormatContext *s, int size)
len = ffm->packet_end - ffm->packet_ptr; len = ffm->packet_end - ffm->packet_ptr;
if (size <= len) if (size <= len)
return 1; return 1;
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
if (!ffm->write_index) { if (!ffm->write_index) {
if (pos == ffm->file_size) if (pos == ffm->file_size)
return AVERROR_EOF; return AVERROR_EOF;
@ -117,7 +117,7 @@ static int ffm_read_data(AVFormatContext *s,
if (len > size) if (len > size)
len = size; len = size;
if (len == 0) { if (len == 0) {
if (url_ftell(pb) == ffm->file_size) if (avio_tell(pb) == ffm->file_size)
avio_seek(pb, ffm->packet_size, SEEK_SET); avio_seek(pb, ffm->packet_size, SEEK_SET);
retry_read: retry_read:
id = avio_rb16(pb); /* PACKET_ID */ id = avio_rb16(pb); /* PACKET_ID */
@ -136,7 +136,7 @@ static int ffm_read_data(AVFormatContext *s,
if (ffm->first_packet || (frame_offset & 0x8000)) { if (ffm->first_packet || (frame_offset & 0x8000)) {
if (!frame_offset) { if (!frame_offset) {
/* This packet has no frame headers in it */ /* This packet has no frame headers in it */
if (url_ftell(pb) >= ffm->packet_size * 3) { if (avio_tell(pb) >= ffm->packet_size * 3) {
avio_seek(pb, -ffm->packet_size * 2, SEEK_CUR); avio_seek(pb, -ffm->packet_size * 2, SEEK_CUR);
goto retry_read; goto retry_read;
} }
@ -203,7 +203,7 @@ static void adjust_write_index(AVFormatContext *s)
//int64_t orig_write_index = ffm->write_index; //int64_t orig_write_index = ffm->write_index;
int64_t pos_min, pos_max; int64_t pos_min, pos_max;
int64_t pts_start; int64_t pts_start;
int64_t ptr = url_ftell(pb); int64_t ptr = avio_tell(pb);
pos_min = 0; pos_min = 0;
@ -381,7 +381,7 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap)
} }
/* get until end of block reached */ /* get until end of block reached */
while ((url_ftell(pb) % ffm->packet_size) != 0) while ((avio_tell(pb) % ffm->packet_size) != 0)
avio_r8(pb); avio_r8(pb);
/* init packet demux */ /* init packet demux */
@ -410,7 +410,7 @@ static int ffm_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret; return ret;
av_dlog(s, "pos=%08"PRIx64" spos=%"PRIx64", write_index=%"PRIx64" size=%"PRIx64"\n", av_dlog(s, "pos=%08"PRIx64" spos=%"PRIx64", write_index=%"PRIx64" size=%"PRIx64"\n",
url_ftell(s->pb), s->pb->pos, ffm->write_index, ffm->file_size); avio_tell(s->pb), s->pb->pos, ffm->write_index, ffm->file_size);
if (ffm_read_data(s, ffm->header, FRAME_HEADER_SIZE, 1) != if (ffm_read_data(s, ffm->header, FRAME_HEADER_SIZE, 1) !=
FRAME_HEADER_SIZE) FRAME_HEADER_SIZE)
return -1; return -1;
@ -437,7 +437,7 @@ static int ffm_read_packet(AVFormatContext *s, AVPacket *pkt)
ffm->read_state = READ_HEADER; ffm->read_state = READ_HEADER;
return -1; return -1;
} }
pkt->pos = url_ftell(s->pb); pkt->pos = avio_tell(s->pb);
if (ffm->header[1] & FLAG_KEY_FRAME) if (ffm->header[1] & FLAG_KEY_FRAME)
pkt->flags |= AV_PKT_FLAG_KEY; pkt->flags |= AV_PKT_FLAG_KEY;

@ -32,7 +32,7 @@ static void flush_packet(AVFormatContext *s)
fill_size = ffm->packet_end - ffm->packet_ptr; fill_size = ffm->packet_end - ffm->packet_ptr;
memset(ffm->packet_ptr, 0, fill_size); memset(ffm->packet_ptr, 0, fill_size);
if (url_ftell(pb) % ffm->packet_size) if (avio_tell(pb) % ffm->packet_size)
av_abort(); av_abort();
/* put header */ /* put header */
@ -184,7 +184,7 @@ static int ffm_write_header(AVFormatContext *s)
} }
/* flush until end of block reached */ /* flush until end of block reached */
while ((url_ftell(pb) % ffm->packet_size) != 0) while ((avio_tell(pb) % ffm->packet_size) != 0)
avio_w8(pb, 0); avio_w8(pb, 0);
put_flush_packet(pb); put_flush_packet(pb);

@ -82,7 +82,7 @@ static int read_packet(AVFormatContext *s,
if (url_feof(s->pb)) if (url_feof(s->pb))
return AVERROR(EIO); return AVERROR(EIO);
pkt->dts = url_ftell(s->pb) / (st->codec->width * (st->codec->height + film->leading) * 4); pkt->dts = avio_tell(s->pb) / (st->codec->width * (st->codec->height + film->leading) * 4);
pkt->size = av_get_packet(s->pb, pkt, st->codec->width * st->codec->height * 4); pkt->size = av_get_packet(s->pb, pkt, st->codec->width * st->codec->height * 4);
avio_seek(s->pb, st->codec->width * film->leading * 4, SEEK_CUR); avio_seek(s->pb, st->codec->width * film->leading * 4, SEEK_CUR);
if (pkt->size < 0) if (pkt->size < 0)

@ -100,7 +100,7 @@ static int flac_write_trailer(struct AVFormatContext *s)
if (!url_is_streamed(pb)) { if (!url_is_streamed(pb)) {
/* rewrite the STREAMINFO header block data */ /* rewrite the STREAMINFO header block data */
file_size = url_ftell(pb); file_size = avio_tell(pb);
avio_seek(pb, 8, SEEK_SET); avio_seek(pb, 8, SEEK_SET);
avio_write(pb, streaminfo, FLAC_STREAMINFO_SIZE); avio_write(pb, streaminfo, FLAC_STREAMINFO_SIZE);
avio_seek(pb, file_size, SEEK_SET); avio_seek(pb, file_size, SEEK_SET);

@ -223,7 +223,7 @@ static int flic_read_packet(AVFormatContext *s,
} }
pkt->stream_index = flic->video_stream_index; pkt->stream_index = flic->video_stream_index;
pkt->pts = flic->frame_number++; pkt->pts = flic->frame_number++;
pkt->pos = url_ftell(pb); pkt->pos = avio_tell(pb);
memcpy(pkt->data, preamble, FLIC_PREAMBLE_SIZE); memcpy(pkt->data, preamble, FLIC_PREAMBLE_SIZE);
ret = avio_read(pb, pkt->data + FLIC_PREAMBLE_SIZE, ret = avio_read(pb, pkt->data + FLIC_PREAMBLE_SIZE,
size - FLIC_PREAMBLE_SIZE); size - FLIC_PREAMBLE_SIZE);
@ -242,7 +242,7 @@ static int flic_read_packet(AVFormatContext *s,
avio_seek(pb, 10, SEEK_CUR); avio_seek(pb, 10, SEEK_CUR);
pkt->stream_index = flic->audio_stream_index; pkt->stream_index = flic->audio_stream_index;
pkt->pos = url_ftell(pb); pkt->pos = avio_tell(pb);
ret = avio_read(pb, pkt->data, size); ret = avio_read(pb, pkt->data, size);
if (ret != size) { if (ret != size) {

@ -148,7 +148,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, AVStream *vst
case AMF_DATA_TYPE_OBJECT: { case AMF_DATA_TYPE_OBJECT: {
unsigned int keylen; unsigned int keylen;
while(url_ftell(ioc) < max_pos - 2 && (keylen = avio_rb16(ioc))) { while(avio_tell(ioc) < max_pos - 2 && (keylen = avio_rb16(ioc))) {
avio_seek(ioc, keylen, SEEK_CUR); //skip key string avio_seek(ioc, keylen, SEEK_CUR); //skip key string
if(amf_parse_object(s, NULL, NULL, NULL, max_pos, depth + 1) < 0) if(amf_parse_object(s, NULL, NULL, NULL, max_pos, depth + 1) < 0)
return -1; //if we couldn't skip, bomb out. return -1; //if we couldn't skip, bomb out.
@ -163,7 +163,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, AVStream *vst
break; //these take up no additional space break; //these take up no additional space
case AMF_DATA_TYPE_MIXEDARRAY: case AMF_DATA_TYPE_MIXEDARRAY:
avio_seek(ioc, 4, SEEK_CUR); //skip 32-bit max array index avio_seek(ioc, 4, SEEK_CUR); //skip 32-bit max array index
while(url_ftell(ioc) < max_pos - 2 && amf_get_string(ioc, str_val, sizeof(str_val)) > 0) { while(avio_tell(ioc) < max_pos - 2 && amf_get_string(ioc, str_val, sizeof(str_val)) > 0) {
//this is the only case in which we would want a nested parse to not skip over the object //this is the only case in which we would want a nested parse to not skip over the object
if(amf_parse_object(s, astream, vstream, str_val, max_pos, depth + 1) < 0) if(amf_parse_object(s, astream, vstream, str_val, max_pos, depth + 1) < 0)
return -1; return -1;
@ -175,7 +175,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, AVStream *vst
unsigned int arraylen, i; unsigned int arraylen, i;
arraylen = avio_rb32(ioc); arraylen = avio_rb32(ioc);
for(i = 0; i < arraylen && url_ftell(ioc) < max_pos - 1; i++) { for(i = 0; i < arraylen && avio_tell(ioc) < max_pos - 1; i++) {
if(amf_parse_object(s, NULL, NULL, NULL, max_pos, depth + 1) < 0) if(amf_parse_object(s, NULL, NULL, NULL, max_pos, depth + 1) < 0)
return -1; //if we couldn't skip, bomb out. return -1; //if we couldn't skip, bomb out.
} }
@ -305,7 +305,7 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
AVStream *st = NULL; AVStream *st = NULL;
for(;;avio_seek(s->pb, 4, SEEK_CUR)){ /* pkt size is repeated at end. skip it */ for(;;avio_seek(s->pb, 4, SEEK_CUR)){ /* pkt size is repeated at end. skip it */
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
type = avio_r8(s->pb); type = avio_r8(s->pb);
size = avio_rb24(s->pb); size = avio_rb24(s->pb);
dts = avio_rb24(s->pb); dts = avio_rb24(s->pb);
@ -319,7 +319,7 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
if(size == 0) if(size == 0)
continue; continue;
next= size + url_ftell(s->pb); next= size + avio_tell(s->pb);
if (type == FLV_TAG_TYPE_AUDIO) { if (type == FLV_TAG_TYPE_AUDIO) {
is_audio=1; is_audio=1;
@ -372,7 +372,7 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
// if not streamed and no duration from metadata then seek to end to find the duration from the timestamps // if not streamed and no duration from metadata then seek to end to find the duration from the timestamps
if(!url_is_streamed(s->pb) && (!s->duration || s->duration==AV_NOPTS_VALUE)){ if(!url_is_streamed(s->pb) && (!s->duration || s->duration==AV_NOPTS_VALUE)){
int size; int size;
const int64_t pos= url_ftell(s->pb); const int64_t pos= avio_tell(s->pb);
const int64_t fsize= url_fsize(s->pb); const int64_t fsize= url_fsize(s->pb);
avio_seek(s->pb, fsize-4, SEEK_SET); avio_seek(s->pb, fsize-4, SEEK_SET);
size= avio_rb32(s->pb); size= avio_rb32(s->pb);

@ -221,7 +221,7 @@ static int flv_write_header(AVFormatContext *s)
/* write meta_tag */ /* write meta_tag */
avio_w8(pb, 18); // tag type META avio_w8(pb, 18); // tag type META
metadata_size_pos= url_ftell(pb); metadata_size_pos= avio_tell(pb);
avio_wb24(pb, 0); // size of data part (sum of all parts below) avio_wb24(pb, 0); // size of data part (sum of all parts below)
avio_wb24(pb, 0); // time stamp avio_wb24(pb, 0); // time stamp
avio_wb32(pb, 0); // reserved avio_wb32(pb, 0); // reserved
@ -237,7 +237,7 @@ static int flv_write_header(AVFormatContext *s)
avio_wb32(pb, 5*!!video_enc + 5*!!audio_enc + 2); // +2 for duration and file size avio_wb32(pb, 5*!!video_enc + 5*!!audio_enc + 2); // +2 for duration and file size
put_amf_string(pb, "duration"); put_amf_string(pb, "duration");
flv->duration_offset= url_ftell(pb); flv->duration_offset= avio_tell(pb);
put_amf_double(pb, s->duration / AV_TIME_BASE); // fill in the guessed duration, it'll be corrected later if incorrect put_amf_double(pb, s->duration / AV_TIME_BASE); // fill in the guessed duration, it'll be corrected later if incorrect
if(video_enc){ if(video_enc){
@ -281,14 +281,14 @@ static int flv_write_header(AVFormatContext *s)
} }
put_amf_string(pb, "filesize"); put_amf_string(pb, "filesize");
flv->filesize_offset= url_ftell(pb); flv->filesize_offset= avio_tell(pb);
put_amf_double(pb, 0); // delayed write put_amf_double(pb, 0); // delayed write
put_amf_string(pb, ""); put_amf_string(pb, "");
avio_w8(pb, AMF_END_OF_OBJECT); avio_w8(pb, AMF_END_OF_OBJECT);
/* write total size of tag */ /* write total size of tag */
data_size= url_ftell(pb) - metadata_size_pos - 10; data_size= avio_tell(pb) - metadata_size_pos - 10;
avio_seek(pb, metadata_size_pos, SEEK_SET); avio_seek(pb, metadata_size_pos, SEEK_SET);
avio_wb24(pb, data_size); avio_wb24(pb, data_size);
avio_seek(pb, data_size + 10 - 3, SEEK_CUR); avio_seek(pb, data_size + 10 - 3, SEEK_CUR);
@ -304,7 +304,7 @@ static int flv_write_header(AVFormatContext *s)
avio_wb24(pb, 0); // ts avio_wb24(pb, 0); // ts
avio_w8(pb, 0); // ts ext avio_w8(pb, 0); // ts ext
avio_wb24(pb, 0); // streamid avio_wb24(pb, 0); // streamid
pos = url_ftell(pb); pos = avio_tell(pb);
if (enc->codec_id == CODEC_ID_AAC) { if (enc->codec_id == CODEC_ID_AAC) {
avio_w8(pb, get_audio_flags(enc)); avio_w8(pb, get_audio_flags(enc));
avio_w8(pb, 0); // AAC sequence header avio_w8(pb, 0); // AAC sequence header
@ -315,7 +315,7 @@ static int flv_write_header(AVFormatContext *s)
avio_wb24(pb, 0); // composition time avio_wb24(pb, 0); // composition time
ff_isom_write_avcc(pb, enc->extradata, enc->extradata_size); ff_isom_write_avcc(pb, enc->extradata, enc->extradata_size);
} }
data_size = url_ftell(pb) - pos; data_size = avio_tell(pb) - pos;
avio_seek(pb, -data_size - 10, SEEK_CUR); avio_seek(pb, -data_size - 10, SEEK_CUR);
avio_wb24(pb, data_size); avio_wb24(pb, data_size);
avio_seek(pb, data_size + 10 - 3, SEEK_CUR); avio_seek(pb, data_size + 10 - 3, SEEK_CUR);
@ -343,7 +343,7 @@ static int flv_write_trailer(AVFormatContext *s)
} }
} }
file_size = url_ftell(pb); file_size = avio_tell(pb);
/* update informations */ /* update informations */
avio_seek(pb, flv->duration_offset, SEEK_SET); avio_seek(pb, flv->duration_offset, SEEK_SET);

@ -396,7 +396,7 @@ start:
READ_ONE(); READ_ONE();
if (tmp != 1) if (tmp != 1)
goto start; goto start;
last_pos = url_ftell(pb); last_pos = avio_tell(pb);
if (avio_seek(pb, -5, SEEK_CUR) < 0) if (avio_seek(pb, -5, SEEK_CUR) < 0)
goto out; goto out;
if (!parse_packet_header(pb, &type, &len) || type != PKT_MEDIA) { if (!parse_packet_header(pb, &type, &len) || type != PKT_MEDIA) {
@ -407,7 +407,7 @@ start:
avio_r8(pb); avio_r8(pb);
cur_track = avio_r8(pb); cur_track = avio_r8(pb);
cur_timestamp = avio_rb32(pb); cur_timestamp = avio_rb32(pb);
last_found_pos = url_ftell(pb) - 16 - 6; last_found_pos = avio_tell(pb) - 16 - 6;
if ((track >= 0 && track != cur_track) || (timestamp >= 0 && timestamp > cur_timestamp)) { if ((track >= 0 && track != cur_track) || (timestamp >= 0 && timestamp > cur_timestamp)) {
if (avio_seek(pb, last_pos, SEEK_SET) >= 0) if (avio_seek(pb, last_pos, SEEK_SET) >= 0)
goto start; goto start;
@ -511,7 +511,7 @@ static int64_t gxf_read_timestamp(AVFormatContext *s, int stream_index,
if (avio_seek(pb, *pos, SEEK_SET) < 0) if (avio_seek(pb, *pos, SEEK_SET) < 0)
return AV_NOPTS_VALUE; return AV_NOPTS_VALUE;
res = gxf_resync_media(s, pos_limit - *pos, -1, -1); res = gxf_resync_media(s, pos_limit - *pos, -1, -1);
*pos = url_ftell(pb); *pos = avio_tell(pb);
return res; return res;
} }

@ -125,12 +125,12 @@ static int64_t updatePacketSize(AVIOContext *pb, int64_t pos)
int64_t curpos; int64_t curpos;
int size; int size;
size = url_ftell(pb) - pos; size = avio_tell(pb) - pos;
if (size % 4) { if (size % 4) {
gxf_write_padding(pb, 4 - size % 4); gxf_write_padding(pb, 4 - size % 4);
size = url_ftell(pb) - pos; size = avio_tell(pb) - pos;
} }
curpos = url_ftell(pb); curpos = avio_tell(pb);
avio_seek(pb, pos + 6, SEEK_SET); avio_seek(pb, pos + 6, SEEK_SET);
avio_wb32(pb, size); avio_wb32(pb, size);
avio_seek(pb, curpos, SEEK_SET); avio_seek(pb, curpos, SEEK_SET);
@ -141,7 +141,7 @@ static int64_t updateSize(AVIOContext *pb, int64_t pos)
{ {
int64_t curpos; int64_t curpos;
curpos = url_ftell(pb); curpos = avio_tell(pb);
avio_seek(pb, pos, SEEK_SET); avio_seek(pb, pos, SEEK_SET);
avio_wb16(pb, curpos - pos - 2); avio_wb16(pb, curpos - pos - 2);
avio_seek(pb, curpos, SEEK_SET); avio_seek(pb, curpos, SEEK_SET);
@ -218,7 +218,7 @@ static int gxf_write_track_description(AVFormatContext *s, GXFStreamContext *sc,
avio_w8(pb, sc->media_type + 0x80); avio_w8(pb, sc->media_type + 0x80);
avio_w8(pb, index + 0xC0); avio_w8(pb, index + 0xC0);
pos = url_ftell(pb); pos = avio_tell(pb);
avio_wb16(pb, 0); /* size */ avio_wb16(pb, 0); /* size */
/* media file name */ /* media file name */
@ -272,7 +272,7 @@ static int gxf_write_material_data_section(AVFormatContext *s)
int len; int len;
const char *filename = strrchr(s->filename, '/'); const char *filename = strrchr(s->filename, '/');
pos = url_ftell(pb); pos = avio_tell(pb);
avio_wb16(pb, 0); /* size */ avio_wb16(pb, 0); /* size */
/* name */ /* name */
@ -322,7 +322,7 @@ static int gxf_write_track_description_section(AVFormatContext *s)
int64_t pos; int64_t pos;
int i; int i;
pos = url_ftell(pb); pos = avio_tell(pb);
avio_wb16(pb, 0); /* size */ avio_wb16(pb, 0); /* size */
for (i = 0; i < s->nb_streams; ++i) for (i = 0; i < s->nb_streams; ++i)
gxf_write_track_description(s, s->streams[i]->priv_data, i); gxf_write_track_description(s, s->streams[i]->priv_data, i);
@ -336,7 +336,7 @@ static int gxf_write_map_packet(AVFormatContext *s, int rewrite)
{ {
GXFContext *gxf = s->priv_data; GXFContext *gxf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
if (!rewrite) { if (!rewrite) {
if (!(gxf->map_offsets_nb % 30)) { if (!(gxf->map_offsets_nb % 30)) {
@ -366,7 +366,7 @@ static int gxf_write_flt_packet(AVFormatContext *s)
{ {
GXFContext *gxf = s->priv_data; GXFContext *gxf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
int fields_per_flt = (gxf->nb_fields+1) / 1000 + 1; int fields_per_flt = (gxf->nb_fields+1) / 1000 + 1;
int flt_entries = gxf->nb_fields / fields_per_flt; int flt_entries = gxf->nb_fields / fields_per_flt;
int i = 0; int i = 0;
@ -442,7 +442,7 @@ static int gxf_write_umf_track_description(AVFormatContext *s)
{ {
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
GXFContext *gxf = s->priv_data; GXFContext *gxf = s->priv_data;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
int i; int i;
gxf->umf_track_offset = pos - gxf->umf_start_offset; gxf->umf_track_offset = pos - gxf->umf_start_offset;
@ -455,7 +455,7 @@ static int gxf_write_umf_track_description(AVFormatContext *s)
avio_wl16(pb, gxf->timecode_track.media_info); avio_wl16(pb, gxf->timecode_track.media_info);
avio_wl16(pb, 1); avio_wl16(pb, 1);
return url_ftell(pb) - pos; return avio_tell(pb) - pos;
} }
static int gxf_write_umf_media_mpeg(AVIOContext *pb, AVStream *st) static int gxf_write_umf_media_mpeg(AVIOContext *pb, AVStream *st)
@ -533,7 +533,7 @@ static int gxf_write_umf_media_description(AVFormatContext *s)
int64_t pos; int64_t pos;
int i, j; int i, j;
pos = url_ftell(pb); pos = avio_tell(pb);
gxf->umf_media_offset = pos - gxf->umf_start_offset; gxf->umf_media_offset = pos - gxf->umf_start_offset;
for (i = 0; i <= s->nb_streams; ++i) { for (i = 0; i <= s->nb_streams; ++i) {
GXFStreamContext *sc; GXFStreamContext *sc;
@ -544,7 +544,7 @@ static int gxf_write_umf_media_description(AVFormatContext *s)
else else
sc = s->streams[i]->priv_data; sc = s->streams[i]->priv_data;
startpos = url_ftell(pb); startpos = avio_tell(pb);
avio_wl16(pb, 0); /* length */ avio_wl16(pb, 0); /* length */
avio_wl16(pb, sc->media_info); avio_wl16(pb, sc->media_info);
avio_wl16(pb, 0); /* reserved */ avio_wl16(pb, 0); /* reserved */
@ -580,19 +580,19 @@ static int gxf_write_umf_media_description(AVFormatContext *s)
} }
} }
curpos = url_ftell(pb); curpos = avio_tell(pb);
avio_seek(pb, startpos, SEEK_SET); avio_seek(pb, startpos, SEEK_SET);
avio_wl16(pb, curpos - startpos); avio_wl16(pb, curpos - startpos);
avio_seek(pb, curpos, SEEK_SET); avio_seek(pb, curpos, SEEK_SET);
} }
return url_ftell(pb) - pos; return avio_tell(pb) - pos;
} }
static int gxf_write_umf_packet(AVFormatContext *s) static int gxf_write_umf_packet(AVFormatContext *s)
{ {
GXFContext *gxf = s->priv_data; GXFContext *gxf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
gxf_write_packet_header(pb, PKT_UMF); gxf_write_packet_header(pb, PKT_UMF);
@ -600,12 +600,12 @@ static int gxf_write_umf_packet(AVFormatContext *s)
avio_w8(pb, 3); /* first and last (only) packet */ avio_w8(pb, 3); /* first and last (only) packet */
avio_wb32(pb, gxf->umf_length); /* data length */ avio_wb32(pb, gxf->umf_length); /* data length */
gxf->umf_start_offset = url_ftell(pb); gxf->umf_start_offset = avio_tell(pb);
gxf_write_umf_payload(s); gxf_write_umf_payload(s);
gxf_write_umf_material_description(s); gxf_write_umf_material_description(s);
gxf->umf_track_size = gxf_write_umf_track_description(s); gxf->umf_track_size = gxf_write_umf_track_description(s);
gxf->umf_media_size = gxf_write_umf_media_description(s); gxf->umf_media_size = gxf_write_umf_media_description(s);
gxf->umf_length = url_ftell(pb) - gxf->umf_start_offset; gxf->umf_length = avio_tell(pb) - gxf->umf_start_offset;
return updatePacketSize(pb, pos); return updatePacketSize(pb, pos);
} }
@ -759,7 +759,7 @@ static int gxf_write_header(AVFormatContext *s)
static int gxf_write_eos_packet(AVIOContext *pb) static int gxf_write_eos_packet(AVIOContext *pb)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
gxf_write_packet_header(pb, PKT_EOS); gxf_write_packet_header(pb, PKT_EOS);
return updatePacketSize(pb, pos); return updatePacketSize(pb, pos);
@ -775,7 +775,7 @@ static int gxf_write_trailer(AVFormatContext *s)
ff_audio_interleave_close(s); ff_audio_interleave_close(s);
gxf_write_eos_packet(pb); gxf_write_eos_packet(pb);
end = url_ftell(pb); end = avio_tell(pb);
avio_seek(pb, 0, SEEK_SET); avio_seek(pb, 0, SEEK_SET);
/* overwrite map, flt and umf packets with new values */ /* overwrite map, flt and umf packets with new values */
gxf_write_map_packet(s, 1); gxf_write_map_packet(s, 1);
@ -861,9 +861,9 @@ static int gxf_write_packet(AVFormatContext *s, AVPacket *pkt)
GXFContext *gxf = s->priv_data; GXFContext *gxf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
AVStream *st = s->streams[pkt->stream_index]; AVStream *st = s->streams[pkt->stream_index];
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
int padding = 0; int padding = 0;
int packet_start_offset = url_ftell(pb) / 1024; int packet_start_offset = avio_tell(pb) / 1024;
gxf_write_packet_header(pb, PKT_MEDIA); gxf_write_packet_header(pb, PKT_MEDIA);
if (st->codec->codec_id == CODEC_ID_MPEG2VIDEO && pkt->size % 4) /* MPEG-2 frames must be padded */ if (st->codec->codec_id == CODEC_ID_MPEG2VIDEO && pkt->size % 4) /* MPEG-2 frames must be padded */

@ -196,7 +196,7 @@ static void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t
if (len < 0) if (len < 0)
break; break;
next = url_ftell(s->pb) + tlen; next = avio_tell(s->pb) + tlen;
if (tflags & ID3v2_FLAG_DATALEN) { if (tflags & ID3v2_FLAG_DATALEN) {
avio_rb32(s->pb); avio_rb32(s->pb);
@ -258,7 +258,7 @@ void ff_id3v2_read(AVFormatContext *s, const char *magic)
do { do {
/* save the current offset in case there's nothing to read/skip */ /* save the current offset in case there's nothing to read/skip */
off = url_ftell(s->pb); off = avio_tell(s->pb);
ret = avio_read(s->pb, buf, ID3v2_HEADER_SIZE); ret = avio_read(s->pb, buf, ID3v2_HEADER_SIZE);
if (ret != ID3v2_HEADER_SIZE) if (ret != ID3v2_HEADER_SIZE)
break; break;

@ -141,7 +141,7 @@ static int roq_read_packet(AVFormatContext *s,
case RoQ_QUAD_CODEBOOK: case RoQ_QUAD_CODEBOOK:
/* packet needs to contain both this codebook and next VQ chunk */ /* packet needs to contain both this codebook and next VQ chunk */
codebook_offset = url_ftell(pb) - RoQ_CHUNK_PREAMBLE_SIZE; codebook_offset = avio_tell(pb) - RoQ_CHUNK_PREAMBLE_SIZE;
codebook_size = chunk_size; codebook_size = chunk_size;
avio_seek(pb, codebook_size, SEEK_CUR); avio_seek(pb, codebook_size, SEEK_CUR);
if (avio_read(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) != if (avio_read(pb, preamble, RoQ_CHUNK_PREAMBLE_SIZE) !=
@ -197,7 +197,7 @@ static int roq_read_packet(AVFormatContext *s,
roq->audio_frame_count += (chunk_size / roq->audio_channels); roq->audio_frame_count += (chunk_size / roq->audio_channels);
} }
pkt->pos= url_ftell(pb); pkt->pos= avio_tell(pb);
ret = avio_read(pb, pkt->data + RoQ_CHUNK_PREAMBLE_SIZE, ret = avio_read(pb, pkt->data + RoQ_CHUNK_PREAMBLE_SIZE,
chunk_size); chunk_size);
if (ret != chunk_size) if (ret != chunk_size)

@ -144,7 +144,7 @@ static int iff_read_header(AVFormatContext *s,
const char *metadata_tag = NULL; const char *metadata_tag = NULL;
chunk_id = avio_rl32(pb); chunk_id = avio_rl32(pb);
data_size = avio_rb32(pb); data_size = avio_rb32(pb);
orig_pos = url_ftell(pb); orig_pos = avio_tell(pb);
switch(chunk_id) { switch(chunk_id) {
case ID_VHDR: case ID_VHDR:
@ -161,7 +161,7 @@ static int iff_read_header(AVFormatContext *s,
break; break;
case ID_BODY: case ID_BODY:
iff->body_pos = url_ftell(pb); iff->body_pos = avio_tell(pb);
iff->body_size = data_size; iff->body_size = data_size;
break; break;
@ -223,7 +223,7 @@ static int iff_read_header(AVFormatContext *s,
return res; return res;
} }
} }
avio_seek(pb, data_size - (url_ftell(pb) - orig_pos) + (data_size & 1), SEEK_CUR); avio_seek(pb, data_size - (avio_tell(pb) - orig_pos) + (data_size & 1), SEEK_CUR);
} }
avio_seek(pb, iff->body_pos, SEEK_SET); avio_seek(pb, iff->body_pos, SEEK_SET);

@ -47,7 +47,7 @@ static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt)
if (av_new_packet(pkt, size) < 0) if (av_new_packet(pkt, size) < 0)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
pkt->pos = url_ftell(s->pb); pkt->pos = avio_tell(s->pb);
pkt->stream_index = 0; pkt->stream_index = 0;
ret = avio_read(s->pb, pkt->data, size); ret = avio_read(s->pb, pkt->data, size);
if (ret < 0) { if (ret < 0) {

@ -405,7 +405,7 @@ static int process_ipmovie_chunk(IPMVEContext *s, AVIOContext *pb,
debug_ipmovie("audio frame\n"); debug_ipmovie("audio frame\n");
/* log position and move on for now */ /* log position and move on for now */
s->audio_chunk_offset = url_ftell(pb); s->audio_chunk_offset = avio_tell(pb);
s->audio_chunk_size = opcode_size; s->audio_chunk_size = opcode_size;
avio_seek(pb, opcode_size, SEEK_CUR); avio_seek(pb, opcode_size, SEEK_CUR);
break; break;
@ -471,7 +471,7 @@ static int process_ipmovie_chunk(IPMVEContext *s, AVIOContext *pb,
debug_ipmovie("set decoding map\n"); debug_ipmovie("set decoding map\n");
/* log position and move on for now */ /* log position and move on for now */
s->decode_map_chunk_offset = url_ftell(pb); s->decode_map_chunk_offset = avio_tell(pb);
s->decode_map_chunk_size = opcode_size; s->decode_map_chunk_size = opcode_size;
avio_seek(pb, opcode_size, SEEK_CUR); avio_seek(pb, opcode_size, SEEK_CUR);
break; break;
@ -480,7 +480,7 @@ static int process_ipmovie_chunk(IPMVEContext *s, AVIOContext *pb,
debug_ipmovie("set video data\n"); debug_ipmovie("set video data\n");
/* log position and move on for now */ /* log position and move on for now */
s->video_chunk_offset = url_ftell(pb); s->video_chunk_offset = avio_tell(pb);
s->video_chunk_size = opcode_size; s->video_chunk_size = opcode_size;
avio_seek(pb, opcode_size, SEEK_CUR); avio_seek(pb, opcode_size, SEEK_CUR);
break; break;
@ -494,7 +494,7 @@ static int process_ipmovie_chunk(IPMVEContext *s, AVIOContext *pb,
} }
/* make a note of where the stream is sitting */ /* make a note of where the stream is sitting */
s->next_chunk_offset = url_ftell(pb); s->next_chunk_offset = avio_tell(pb);
/* dispatch the first of any pending packets */ /* dispatch the first of any pending packets */
if ((chunk_type == CHUNK_VIDEO) || (chunk_type == CHUNK_AUDIO_ONLY)) if ((chunk_type == CHUNK_VIDEO) || (chunk_type == CHUNK_AUDIO_ONLY))
@ -541,7 +541,7 @@ static int ipmovie_read_header(AVFormatContext *s,
ipmovie->decode_map_chunk_offset = 0; ipmovie->decode_map_chunk_offset = 0;
/* on the first read, this will position the stream at the first chunk */ /* on the first read, this will position the stream at the first chunk */
ipmovie->next_chunk_offset = url_ftell(pb) + 4; ipmovie->next_chunk_offset = avio_tell(pb) + 4;
/* process the first chunk which should be CHUNK_INIT_VIDEO */ /* process the first chunk which should be CHUNK_INIT_VIDEO */
if (process_ipmovie_chunk(ipmovie, pb, &pkt) != CHUNK_INIT_VIDEO) if (process_ipmovie_chunk(ipmovie, pb, &pkt) != CHUNK_INIT_VIDEO)

@ -87,7 +87,7 @@ static av_cold int iss_read_header(AVFormatContext *s, AVFormatParameters *ap)
get_token(pb, token, sizeof(token)); //Version ID get_token(pb, token, sizeof(token)); //Version ID
get_token(pb, token, sizeof(token)); //Size get_token(pb, token, sizeof(token)); //Size
iss->sample_start_pos = url_ftell(pb); iss->sample_start_pos = avio_tell(pb);
st = av_new_stream(s, 0); st = av_new_stream(s, 0);
if (!st) if (!st)
@ -116,7 +116,7 @@ static int iss_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR(EIO); return AVERROR(EIO);
pkt->stream_index = 0; pkt->stream_index = 0;
pkt->pts = url_ftell(s->pb) - iss->sample_start_pos; pkt->pts = avio_tell(s->pb) - iss->sample_start_pos;
if(s->streams[0]->codec->channels > 0) if(s->streams[0]->codec->channels > 0)
pkt->pts /= s->streams[0]->codec->channels*2; pkt->pts /= s->streams[0]->codec->channels*2;
return 0; return 0;

@ -272,7 +272,7 @@ static int nut_read_packet(AVFormatContext * avf, AVPacket * pkt) {
if (pd.flags & NUT_FLAG_KEY) pkt->flags |= AV_PKT_FLAG_KEY; if (pd.flags & NUT_FLAG_KEY) pkt->flags |= AV_PKT_FLAG_KEY;
pkt->pts = pd.pts; pkt->pts = pd.pts;
pkt->stream_index = pd.stream; pkt->stream_index = pd.stream;
pkt->pos = url_ftell(avf->pb); pkt->pos = avio_tell(avf->pb);
ret = nut_read_frame(priv->nut, &pd.len, pkt->data); ret = nut_read_frame(priv->nut, &pd.len, pkt->data);

@ -517,7 +517,7 @@ static const char *matroska_doctypes[] = { "matroska", "webm" };
static int ebml_level_end(MatroskaDemuxContext *matroska) static int ebml_level_end(MatroskaDemuxContext *matroska)
{ {
AVIOContext *pb = matroska->ctx->pb; AVIOContext *pb = matroska->ctx->pb;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
if (matroska->num_levels > 0) { if (matroska->num_levels > 0) {
MatroskaLevel *level = &matroska->levels[matroska->num_levels - 1]; MatroskaLevel *level = &matroska->levels[matroska->num_levels - 1];
@ -549,7 +549,7 @@ static int ebml_read_num(MatroskaDemuxContext *matroska, AVIOContext *pb,
if (!(total = avio_r8(pb))) { if (!(total = avio_r8(pb))) {
/* we might encounter EOS here */ /* we might encounter EOS here */
if (!url_feof(pb)) { if (!url_feof(pb)) {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
av_log(matroska->ctx, AV_LOG_ERROR, av_log(matroska->ctx, AV_LOG_ERROR,
"Read error at pos. %"PRIu64" (0x%"PRIx64")\n", "Read error at pos. %"PRIu64" (0x%"PRIx64")\n",
pos, pos); pos, pos);
@ -560,7 +560,7 @@ static int ebml_read_num(MatroskaDemuxContext *matroska, AVIOContext *pb,
/* get the length of the EBML number */ /* get the length of the EBML number */
read = 8 - ff_log2_tab[total]; read = 8 - ff_log2_tab[total];
if (read > max_size) { if (read > max_size) {
int64_t pos = url_ftell(pb) - 1; int64_t pos = avio_tell(pb) - 1;
av_log(matroska->ctx, AV_LOG_ERROR, av_log(matroska->ctx, AV_LOG_ERROR,
"Invalid EBML number size tag 0x%02x at pos %"PRIu64" (0x%"PRIx64")\n", "Invalid EBML number size tag 0x%02x at pos %"PRIu64" (0x%"PRIx64")\n",
(uint8_t) total, pos, pos); (uint8_t) total, pos, pos);
@ -659,7 +659,7 @@ static int ebml_read_binary(AVIOContext *pb, int length, EbmlBin *bin)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
bin->size = length; bin->size = length;
bin->pos = url_ftell(pb); bin->pos = avio_tell(pb);
if (avio_read(pb, bin->data, length) != length) { if (avio_read(pb, bin->data, length) != length) {
av_freep(&bin->data); av_freep(&bin->data);
return AVERROR(EIO); return AVERROR(EIO);
@ -685,7 +685,7 @@ static int ebml_read_master(MatroskaDemuxContext *matroska, uint64_t length)
} }
level = &matroska->levels[matroska->num_levels++]; level = &matroska->levels[matroska->num_levels++];
level->start = url_ftell(pb); level->start = avio_tell(pb);
level->length = length; level->length = length;
return 0; return 0;
@ -827,7 +827,7 @@ static int ebml_parse_elem(MatroskaDemuxContext *matroska,
case EBML_NEST: if ((res=ebml_read_master(matroska, length)) < 0) case EBML_NEST: if ((res=ebml_read_master(matroska, length)) < 0)
return res; return res;
if (id == MATROSKA_ID_SEGMENT) if (id == MATROSKA_ID_SEGMENT)
matroska->segment_start = url_ftell(matroska->ctx->pb); matroska->segment_start = avio_tell(matroska->ctx->pb);
return ebml_parse_nest(matroska, syntax->def.n, data); return ebml_parse_nest(matroska, syntax->def.n, data);
case EBML_PASS: return ebml_parse_id(matroska, syntax->def.n, id, data); case EBML_PASS: return ebml_parse_id(matroska, syntax->def.n, id, data);
case EBML_STOP: return 1; case EBML_STOP: return 1;
@ -1111,7 +1111,7 @@ static void matroska_execute_seekhead(MatroskaDemuxContext *matroska)
EbmlList *seekhead_list = &matroska->seekhead; EbmlList *seekhead_list = &matroska->seekhead;
MatroskaSeekhead *seekhead = seekhead_list->elem; MatroskaSeekhead *seekhead = seekhead_list->elem;
uint32_t level_up = matroska->level_up; uint32_t level_up = matroska->level_up;
int64_t before_pos = url_ftell(matroska->ctx->pb); int64_t before_pos = avio_tell(matroska->ctx->pb);
uint32_t saved_id = matroska->current_id; uint32_t saved_id = matroska->current_id;
MatroskaLevel level; MatroskaLevel level;
int i; int i;
@ -1842,7 +1842,7 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska)
EbmlList *blocks_list; EbmlList *blocks_list;
MatroskaBlock *blocks; MatroskaBlock *blocks;
int i, res; int i, res;
int64_t pos = url_ftell(matroska->ctx->pb); int64_t pos = avio_tell(matroska->ctx->pb);
matroska->prev_pkt = NULL; matroska->prev_pkt = NULL;
if (matroska->current_id) if (matroska->current_id)
pos -= 4; /* sizeof the ID which was already read */ pos -= 4; /* sizeof the ID which was already read */

@ -203,7 +203,7 @@ static void put_ebml_string(AVIOContext *pb, unsigned int elementid, const char
*/ */
static void put_ebml_void(AVIOContext *pb, uint64_t size) static void put_ebml_void(AVIOContext *pb, uint64_t size)
{ {
int64_t currentpos = url_ftell(pb); int64_t currentpos = avio_tell(pb);
assert(size >= 2); assert(size >= 2);
@ -215,7 +215,7 @@ static void put_ebml_void(AVIOContext *pb, uint64_t size)
put_ebml_num(pb, size-1, 0); put_ebml_num(pb, size-1, 0);
else else
put_ebml_num(pb, size-9, 8); put_ebml_num(pb, size-9, 8);
while(url_ftell(pb) < currentpos + size) while(avio_tell(pb) < currentpos + size)
avio_w8(pb, 0); avio_w8(pb, 0);
} }
@ -224,12 +224,12 @@ static ebml_master start_ebml_master(AVIOContext *pb, unsigned int elementid, ui
int bytes = expectedsize ? ebml_num_size(expectedsize) : 8; int bytes = expectedsize ? ebml_num_size(expectedsize) : 8;
put_ebml_id(pb, elementid); put_ebml_id(pb, elementid);
put_ebml_size_unknown(pb, bytes); put_ebml_size_unknown(pb, bytes);
return (ebml_master){ url_ftell(pb), bytes }; return (ebml_master){ avio_tell(pb), bytes };
} }
static void end_ebml_master(AVIOContext *pb, ebml_master master) static void end_ebml_master(AVIOContext *pb, ebml_master master)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
if (avio_seek(pb, master.pos - master.sizebytes, SEEK_SET) < 0) if (avio_seek(pb, master.pos - master.sizebytes, SEEK_SET) < 0)
return; return;
@ -265,7 +265,7 @@ static mkv_seekhead * mkv_start_seekhead(AVIOContext *pb, int64_t segment_offset
new_seekhead->segment_offset = segment_offset; new_seekhead->segment_offset = segment_offset;
if (numelements > 0) { if (numelements > 0) {
new_seekhead->filepos = url_ftell(pb); new_seekhead->filepos = avio_tell(pb);
// 21 bytes max for a seek entry, 10 bytes max for the SeekHead ID // 21 bytes max for a seek entry, 10 bytes max for the SeekHead ID
// and size, and 3 bytes to guarantee that an EBML void element // and size, and 3 bytes to guarantee that an EBML void element
// will fit afterwards // will fit afterwards
@ -310,7 +310,7 @@ static int64_t mkv_write_seekhead(AVIOContext *pb, mkv_seekhead *seekhead)
int64_t currentpos; int64_t currentpos;
int i; int i;
currentpos = url_ftell(pb); currentpos = avio_tell(pb);
if (seekhead->reserved_size > 0) if (seekhead->reserved_size > 0)
if (avio_seek(pb, seekhead->filepos, SEEK_SET) < 0) if (avio_seek(pb, seekhead->filepos, SEEK_SET) < 0)
@ -332,7 +332,7 @@ static int64_t mkv_write_seekhead(AVIOContext *pb, mkv_seekhead *seekhead)
end_ebml_master(pb, metaseek); end_ebml_master(pb, metaseek);
if (seekhead->reserved_size > 0) { if (seekhead->reserved_size > 0) {
uint64_t remaining = seekhead->filepos + seekhead->reserved_size - url_ftell(pb); uint64_t remaining = seekhead->filepos + seekhead->reserved_size - avio_tell(pb);
put_ebml_void(pb, remaining); put_ebml_void(pb, remaining);
avio_seek(pb, currentpos, SEEK_SET); avio_seek(pb, currentpos, SEEK_SET);
@ -379,7 +379,7 @@ static int64_t mkv_write_cues(AVIOContext *pb, mkv_cues *cues, int num_tracks)
int64_t currentpos; int64_t currentpos;
int i, j; int i, j;
currentpos = url_ftell(pb); currentpos = avio_tell(pb);
cues_element = start_ebml_master(pb, MATROSKA_ID_CUES, 0); cues_element = start_ebml_master(pb, MATROSKA_ID_CUES, 0);
for (i = 0; i < cues->num_entries; i++) { for (i = 0; i < cues->num_entries; i++) {
@ -526,7 +526,7 @@ static int mkv_write_tracks(AVFormatContext *s)
ebml_master tracks; ebml_master tracks;
int i, j, ret; int i, j, ret;
ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TRACKS, url_ftell(pb)); ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TRACKS, avio_tell(pb));
if (ret < 0) return ret; if (ret < 0) return ret;
tracks = start_ebml_master(pb, MATROSKA_ID_TRACKS, 0); tracks = start_ebml_master(pb, MATROSKA_ID_TRACKS, 0);
@ -658,7 +658,7 @@ static int mkv_write_chapters(AVFormatContext *s)
if (!s->nb_chapters) if (!s->nb_chapters)
return 0; return 0;
ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CHAPTERS, url_ftell(pb)); ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_CHAPTERS, avio_tell(pb));
if (ret < 0) return ret; if (ret < 0) return ret;
chapters = start_ebml_master(pb, MATROSKA_ID_CHAPTERS , 0); chapters = start_ebml_master(pb, MATROSKA_ID_CHAPTERS , 0);
@ -730,7 +730,7 @@ static int mkv_write_tag(AVFormatContext *s, AVMetadata *m, unsigned int element
int ret; int ret;
if (!tags->pos) { if (!tags->pos) {
ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TAGS, url_ftell(s->pb)); ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_TAGS, avio_tell(s->pb));
if (ret < 0) return ret; if (ret < 0) return ret;
*tags = start_ebml_master(s->pb, MATROSKA_ID_TAGS, 0); *tags = start_ebml_master(s->pb, MATROSKA_ID_TAGS, 0);
@ -813,7 +813,7 @@ static int mkv_write_header(AVFormatContext *s)
end_ebml_master(pb, ebml_header); end_ebml_master(pb, ebml_header);
mkv->segment = start_ebml_master(pb, MATROSKA_ID_SEGMENT, 0); mkv->segment = start_ebml_master(pb, MATROSKA_ID_SEGMENT, 0);
mkv->segment_offset = url_ftell(pb); mkv->segment_offset = avio_tell(pb);
// we write 2 seek heads - one at the end of the file to point to each // we write 2 seek heads - one at the end of the file to point to each
// cluster, and one at the beginning to point to all other level one // cluster, and one at the beginning to point to all other level one
@ -824,7 +824,7 @@ static int mkv_write_header(AVFormatContext *s)
if (!mkv->main_seekhead) if (!mkv->main_seekhead)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_INFO, url_ftell(pb)); ret = mkv_add_seekhead_entry(mkv->main_seekhead, MATROSKA_ID_INFO, avio_tell(pb));
if (ret < 0) return ret; if (ret < 0) return ret;
segment_info = start_ebml_master(pb, MATROSKA_ID_INFO, 0); segment_info = start_ebml_master(pb, MATROSKA_ID_INFO, 0);
@ -847,7 +847,7 @@ static int mkv_write_header(AVFormatContext *s)
// reserve space for the duration // reserve space for the duration
mkv->duration = 0; mkv->duration = 0;
mkv->duration_offset = url_ftell(pb); mkv->duration_offset = avio_tell(pb);
put_ebml_void(pb, 11); // assumes double-precision float to be written put_ebml_void(pb, 11); // assumes double-precision float to be written
end_ebml_master(pb, segment_info); end_ebml_master(pb, segment_info);
@ -928,7 +928,7 @@ static int mkv_write_ass_blocks(AVFormatContext *s, AVIOContext *pb, AVPacket *p
av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, " av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, "
"pts %" PRId64 ", duration %d\n", "pts %" PRId64 ", duration %d\n",
url_ftell(pb), size, pkt->pts, duration); avio_tell(pb), size, pkt->pts, duration);
blockgroup = start_ebml_master(pb, MATROSKA_ID_BLOCKGROUP, mkv_blockgroup_size(size)); blockgroup = start_ebml_master(pb, MATROSKA_ID_BLOCKGROUP, mkv_blockgroup_size(size));
put_ebml_id(pb, MATROSKA_ID_BLOCK); put_ebml_id(pb, MATROSKA_ID_BLOCK);
put_ebml_num(pb, size+4, 0); put_ebml_num(pb, size+4, 0);
@ -957,7 +957,7 @@ static void mkv_write_block(AVFormatContext *s, AVIOContext *pb,
av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, " av_log(s, AV_LOG_DEBUG, "Writing block at offset %" PRIu64 ", size %d, "
"pts %" PRId64 ", dts %" PRId64 ", duration %d, flags %d\n", "pts %" PRId64 ", dts %" PRId64 ", duration %d, flags %d\n",
url_ftell(pb), pkt->size, pkt->pts, pkt->dts, pkt->duration, flags); avio_tell(pb), pkt->size, pkt->pts, pkt->dts, pkt->duration, flags);
if (codec->codec_id == CODEC_ID_H264 && codec->extradata_size > 0 && if (codec->codec_id == CODEC_ID_H264 && codec->extradata_size > 0 &&
(AV_RB24(codec->extradata) == 1 || AV_RB32(codec->extradata) == 1)) (AV_RB24(codec->extradata) == 1 || AV_RB32(codec->extradata) == 1))
ff_avc_parse_nal_units_buf(pkt->data, &data, &size); ff_avc_parse_nal_units_buf(pkt->data, &data, &size);
@ -1045,7 +1045,7 @@ static int mkv_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
} }
if (!mkv->cluster_pos) { if (!mkv->cluster_pos) {
mkv->cluster_pos = url_ftell(s->pb); mkv->cluster_pos = avio_tell(s->pb);
mkv->cluster = start_ebml_master(pb, MATROSKA_ID_CLUSTER, 0); mkv->cluster = start_ebml_master(pb, MATROSKA_ID_CLUSTER, 0);
put_ebml_uint(pb, MATROSKA_ID_CLUSTERTIMECODE, FFMAX(0, ts)); put_ebml_uint(pb, MATROSKA_ID_CLUSTERTIMECODE, FFMAX(0, ts));
mkv->cluster_pts = FFMAX(0, ts); mkv->cluster_pts = FFMAX(0, ts);
@ -1094,7 +1094,7 @@ static int mkv_write_packet(AVFormatContext *s, AVPacket *pkt)
AVCodecContext *codec = s->streams[pkt->stream_index]->codec; AVCodecContext *codec = s->streams[pkt->stream_index]->codec;
int ret, keyframe = !!(pkt->flags & AV_PKT_FLAG_KEY); int ret, keyframe = !!(pkt->flags & AV_PKT_FLAG_KEY);
int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts; int64_t ts = mkv->tracks[pkt->stream_index].write_dts ? pkt->dts : pkt->pts;
int cluster_size = url_ftell(pb) - (url_is_streamed(s->pb) ? 0 : mkv->cluster_pos); int cluster_size = avio_tell(pb) - (url_is_streamed(s->pb) ? 0 : mkv->cluster_pos);
// start a new cluster every 5 MB or 5 sec, or 32k / 1 sec for streaming or // start a new cluster every 5 MB or 5 sec, or 32k / 1 sec for streaming or
// after 4k and on a keyframe // after 4k and on a keyframe
@ -1103,7 +1103,7 @@ static int mkv_write_packet(AVFormatContext *s, AVPacket *pkt)
|| cluster_size > 5*1024*1024 || ts > mkv->cluster_pts + 5000 || cluster_size > 5*1024*1024 || ts > mkv->cluster_pts + 5000
|| (codec->codec_type == AVMEDIA_TYPE_VIDEO && keyframe && cluster_size > 4*1024))) { || (codec->codec_type == AVMEDIA_TYPE_VIDEO && keyframe && cluster_size > 4*1024))) {
av_log(s, AV_LOG_DEBUG, "Starting new cluster at offset %" PRIu64 av_log(s, AV_LOG_DEBUG, "Starting new cluster at offset %" PRIu64
" bytes, pts %" PRIu64 "\n", url_ftell(pb), ts); " bytes, pts %" PRIu64 "\n", avio_tell(pb), ts);
end_ebml_master(pb, mkv->cluster); end_ebml_master(pb, mkv->cluster);
mkv->cluster_pos = 0; mkv->cluster_pos = 0;
if (mkv->dyn_bc) if (mkv->dyn_bc)
@ -1162,7 +1162,7 @@ static int mkv_write_trailer(AVFormatContext *s)
// update the duration // update the duration
av_log(s, AV_LOG_DEBUG, "end duration = %" PRIu64 "\n", mkv->duration); av_log(s, AV_LOG_DEBUG, "end duration = %" PRIu64 "\n", mkv->duration);
currentpos = url_ftell(pb); currentpos = avio_tell(pb);
avio_seek(pb, mkv->duration_offset, SEEK_SET); avio_seek(pb, mkv->duration_offset, SEEK_SET);
put_ebml_float(pb, MATROSKA_ID_DURATION, mkv->duration); put_ebml_float(pb, MATROSKA_ID_DURATION, mkv->duration);

@ -52,7 +52,7 @@ static void end_tag_be(AVIOContext *pb, int64_t start)
{ {
int64_t pos; int64_t pos;
pos = url_ftell(pb); pos = avio_tell(pb);
avio_seek(pb, start - 4, SEEK_SET); avio_seek(pb, start - 4, SEEK_SET);
avio_wb32(pb, (uint32_t)(pos - start)); avio_wb32(pb, (uint32_t)(pos - start));
avio_seek(pb, pos, SEEK_SET); avio_seek(pb, pos, SEEK_SET);
@ -84,7 +84,7 @@ static int mmf_write_header(AVFormatContext *s)
avio_write(pb, "ATR\x00", 4); avio_write(pb, "ATR\x00", 4);
avio_wb32(pb, 0); avio_wb32(pb, 0);
mmf->atrpos = url_ftell(pb); mmf->atrpos = avio_tell(pb);
avio_w8(pb, 0); /* format type */ avio_w8(pb, 0); /* format type */
avio_w8(pb, 0); /* sequence type */ avio_w8(pb, 0); /* sequence type */
avio_w8(pb, (0 << 7) | (1 << 4) | rate); /* (channel << 7) | (format << 4) | rate */ avio_w8(pb, (0 << 7) | (1 << 4) | rate); /* (channel << 7) | (format << 4) | rate */
@ -94,7 +94,7 @@ static int mmf_write_header(AVFormatContext *s)
ffio_wfourcc(pb, "Atsq"); ffio_wfourcc(pb, "Atsq");
avio_wb32(pb, 16); avio_wb32(pb, 16);
mmf->atsqpos = url_ftell(pb); mmf->atsqpos = avio_tell(pb);
/* Will be filled on close */ /* Will be filled on close */
avio_write(pb, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16); avio_write(pb, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 16);
@ -139,7 +139,7 @@ static int mmf_write_trailer(AVFormatContext *s)
end_tag_be(pb, mmf->atrpos); end_tag_be(pb, mmf->atrpos);
end_tag_be(pb, 8); end_tag_be(pb, 8);
pos = url_ftell(pb); pos = avio_tell(pb);
size = pos - mmf->awapos; size = pos - mmf->awapos;
/* Fill Atsq chunk */ /* Fill Atsq chunk */

@ -298,7 +298,7 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (!parse) { /* skip leaf atoms data */ if (!parse) { /* skip leaf atoms data */
avio_seek(pb, a.size, SEEK_CUR); avio_seek(pb, a.size, SEEK_CUR);
} else { } else {
int64_t start_pos = url_ftell(pb); int64_t start_pos = avio_tell(pb);
int64_t left; int64_t left;
int err = parse(c, pb, a); int err = parse(c, pb, a);
if (err < 0) if (err < 0)
@ -306,7 +306,7 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (c->found_moov && c->found_mdat && if (c->found_moov && c->found_mdat &&
(url_is_streamed(pb) || start_pos + a.size == url_fsize(pb))) (url_is_streamed(pb) || start_pos + a.size == url_fsize(pb)))
return 0; return 0;
left = a.size - url_ftell(pb) + start_pos; left = a.size - avio_tell(pb) + start_pos;
if (left > 0) /* skip garbage at atom end */ if (left > 0) /* skip garbage at atom end */
avio_seek(pb, left, SEEK_CUR); avio_seek(pb, left, SEEK_CUR);
} }
@ -343,7 +343,7 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom)
for (i = 0; i < sc->drefs_count; i++) { for (i = 0; i < sc->drefs_count; i++) {
MOVDref *dref = &sc->drefs[i]; MOVDref *dref = &sc->drefs[i];
uint32_t size = avio_rb32(pb); uint32_t size = avio_rb32(pb);
int64_t next = url_ftell(pb) + size - 4; int64_t next = avio_tell(pb) + size - 4;
if (size < 12) if (size < 12)
return -1; return -1;
@ -383,7 +383,7 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom)
avio_seek(pb, 16, SEEK_CUR); avio_seek(pb, 16, SEEK_CUR);
for (type = 0; type != -1 && url_ftell(pb) < next; ) { for (type = 0; type != -1 && avio_tell(pb) < next; ) {
type = avio_rb16(pb); type = avio_rb16(pb);
len = avio_rb16(pb); len = avio_rb16(pb);
av_log(c->fc, AV_LOG_DEBUG, "type %d, len %d\n", type, len); av_log(c->fc, AV_LOG_DEBUG, "type %d, len %d\n", type, len);
@ -583,7 +583,7 @@ static int mov_read_moov(MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_moof(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_moof(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{ {
c->fragment.moof_offset = url_ftell(pb) - 8; c->fragment.moof_offset = avio_tell(pb) - 8;
av_dlog(c->fc, "moof offset %llx\n", c->fragment.moof_offset); av_dlog(c->fc, "moof offset %llx\n", c->fragment.moof_offset);
return mov_read_default(c, pb, atom); return mov_read_default(c, pb, atom);
} }
@ -925,7 +925,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
enum CodecID id; enum CodecID id;
int dref_id = 1; int dref_id = 1;
MOVAtom a = { AV_RL32("stsd") }; MOVAtom a = { AV_RL32("stsd") };
int64_t start_pos = url_ftell(pb); int64_t start_pos = avio_tell(pb);
int size = avio_rb32(pb); /* size */ int size = avio_rb32(pb); /* size */
uint32_t format = avio_rl32(pb); /* data format */ uint32_t format = avio_rl32(pb); /* data format */
@ -945,7 +945,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
* in the MOV demuxer, patch welcome. */ * in the MOV demuxer, patch welcome. */
multiple_stsd: multiple_stsd:
av_log(c->fc, AV_LOG_WARNING, "multiple fourcc not supported\n"); av_log(c->fc, AV_LOG_WARNING, "multiple fourcc not supported\n");
avio_seek(pb, size - (url_ftell(pb) - start_pos), SEEK_CUR); avio_seek(pb, size - (avio_tell(pb) - start_pos), SEEK_CUR);
continue; continue;
} }
/* we cannot demux concatenated h264 streams because of different extradata */ /* we cannot demux concatenated h264 streams because of different extradata */
@ -1166,7 +1166,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
} else if(st->codec->codec_type==AVMEDIA_TYPE_SUBTITLE){ } else if(st->codec->codec_type==AVMEDIA_TYPE_SUBTITLE){
// ttxt stsd contains display flags, justification, background // ttxt stsd contains display flags, justification, background
// color, fonts, and default styles, so fake an atom to read it // color, fonts, and default styles, so fake an atom to read it
MOVAtom fake_atom = { .size = size - (url_ftell(pb) - start_pos) }; MOVAtom fake_atom = { .size = size - (avio_tell(pb) - start_pos) };
if (format != AV_RL32("mp4s")) // mp4s contains a regular esds atom if (format != AV_RL32("mp4s")) // mp4s contains a regular esds atom
mov_read_glbl(c, pb, fake_atom); mov_read_glbl(c, pb, fake_atom);
st->codec->codec_id= id; st->codec->codec_id= id;
@ -1174,10 +1174,10 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
st->codec->height = sc->height; st->codec->height = sc->height;
} else { } else {
/* other codec type, just skip (rtp, mp4s, tmcd ...) */ /* other codec type, just skip (rtp, mp4s, tmcd ...) */
avio_seek(pb, size - (url_ftell(pb) - start_pos), SEEK_CUR); avio_seek(pb, size - (avio_tell(pb) - start_pos), SEEK_CUR);
} }
/* this will read extra atoms at the end (wave, alac, damr, avcC, SMI ...) */ /* this will read extra atoms at the end (wave, alac, damr, avcC, SMI ...) */
a.size = size - (url_ftell(pb) - start_pos); a.size = size - (avio_tell(pb) - start_pos);
if (a.size > 8) { if (a.size > 8) {
if (mov_read_default(c, pb, a) < 0) if (mov_read_default(c, pb, a) < 0)
return -1; return -1;
@ -2299,7 +2299,7 @@ static void mov_read_chapters(AVFormatContext *s)
st->discard = AVDISCARD_ALL; st->discard = AVDISCARD_ALL;
sc = st->priv_data; sc = st->priv_data;
cur_pos = url_ftell(sc->pb); cur_pos = avio_tell(sc->pb);
for (i = 0; i < st->nb_index_entries; i++) { for (i = 0; i < st->nb_index_entries; i++) {
AVIndexEntry *sample = &st->index_entries[i]; AVIndexEntry *sample = &st->index_entries[i];
@ -2364,7 +2364,7 @@ static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap)
av_log(s, AV_LOG_ERROR, "moov atom not found\n"); av_log(s, AV_LOG_ERROR, "moov atom not found\n");
return -1; return -1;
} }
av_dlog(mov->fc, "on_parse_exit_offset=%lld\n", url_ftell(pb)); av_dlog(mov->fc, "on_parse_exit_offset=%lld\n", avio_tell(pb));
if (!url_is_streamed(pb) && mov->chapter_track > 0) if (!url_is_streamed(pb) && mov->chapter_track > 0)
mov_read_chapters(s); mov_read_chapters(s);
@ -2413,7 +2413,7 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
mov_read_default(mov, s->pb, (MOVAtom){ AV_RL32("root"), INT64_MAX }) < 0 || mov_read_default(mov, s->pb, (MOVAtom){ AV_RL32("root"), INT64_MAX }) < 0 ||
url_feof(s->pb)) url_feof(s->pb))
return AVERROR_EOF; return AVERROR_EOF;
av_dlog(s, "read fragments, offset 0x%llx\n", url_ftell(s->pb)); av_dlog(s, "read fragments, offset 0x%llx\n", avio_tell(s->pb));
goto retry; goto retry;
} }
sc = st->priv_data; sc = st->priv_data;

@ -39,7 +39,7 @@
//FIXME support 64 bit variant with wide placeholders //FIXME support 64 bit variant with wide placeholders
static int64_t updateSize(AVIOContext *pb, int64_t pos) static int64_t updateSize(AVIOContext *pb, int64_t pos)
{ {
int64_t curpos = url_ftell(pb); int64_t curpos = avio_tell(pb);
avio_seek(pb, pos, SEEK_SET); avio_seek(pb, pos, SEEK_SET);
avio_wb32(pb, curpos - pos); /* rewrite size */ avio_wb32(pb, curpos - pos); /* rewrite size */
avio_seek(pb, curpos, SEEK_SET); avio_seek(pb, curpos, SEEK_SET);
@ -52,7 +52,7 @@ static int mov_write_stco_tag(AVIOContext *pb, MOVTrack *track)
{ {
int i; int i;
int mode64 = 0; // use 32 bit size variant if possible int mode64 = 0; // use 32 bit size variant if possible
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
if (pos > UINT32_MAX) { if (pos > UINT32_MAX) {
mode64 = 1; mode64 = 1;
@ -76,7 +76,7 @@ static int mov_write_stsz_tag(AVIOContext *pb, MOVTrack *track)
int equalChunks = 1; int equalChunks = 1;
int i, j, entries = 0, tst = -1, oldtst = -1; int i, j, entries = 0, tst = -1, oldtst = -1;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "stsz"); ffio_wfourcc(pb, "stsz");
avio_wb32(pb, 0); /* version & flags */ avio_wb32(pb, 0); /* version & flags */
@ -114,11 +114,11 @@ static int mov_write_stsc_tag(AVIOContext *pb, MOVTrack *track)
int index = 0, oldval = -1, i; int index = 0, oldval = -1, i;
int64_t entryPos, curpos; int64_t entryPos, curpos;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "stsc"); ffio_wfourcc(pb, "stsc");
avio_wb32(pb, 0); // version & flags avio_wb32(pb, 0); // version & flags
entryPos = url_ftell(pb); entryPos = avio_tell(pb);
avio_wb32(pb, track->entry); // entry count avio_wb32(pb, track->entry); // entry count
for (i=0; i<track->entry; i++) { for (i=0; i<track->entry; i++) {
if(oldval != track->cluster[i].samplesInChunk) if(oldval != track->cluster[i].samplesInChunk)
@ -130,7 +130,7 @@ static int mov_write_stsc_tag(AVIOContext *pb, MOVTrack *track)
index++; index++;
} }
} }
curpos = url_ftell(pb); curpos = avio_tell(pb);
avio_seek(pb, entryPos, SEEK_SET); avio_seek(pb, entryPos, SEEK_SET);
avio_wb32(pb, index); // rewrite size avio_wb32(pb, index); // rewrite size
avio_seek(pb, curpos, SEEK_SET); avio_seek(pb, curpos, SEEK_SET);
@ -143,11 +143,11 @@ static int mov_write_stss_tag(AVIOContext *pb, MOVTrack *track, uint32_t flag)
{ {
int64_t curpos, entryPos; int64_t curpos, entryPos;
int i, index = 0; int i, index = 0;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); // size avio_wb32(pb, 0); // size
ffio_wfourcc(pb, flag == MOV_SYNC_SAMPLE ? "stss" : "stps"); ffio_wfourcc(pb, flag == MOV_SYNC_SAMPLE ? "stss" : "stps");
avio_wb32(pb, 0); // version & flags avio_wb32(pb, 0); // version & flags
entryPos = url_ftell(pb); entryPos = avio_tell(pb);
avio_wb32(pb, track->entry); // entry count avio_wb32(pb, track->entry); // entry count
for (i=0; i<track->entry; i++) { for (i=0; i<track->entry; i++) {
if (track->cluster[i].flags & flag) { if (track->cluster[i].flags & flag) {
@ -155,7 +155,7 @@ static int mov_write_stss_tag(AVIOContext *pb, MOVTrack *track, uint32_t flag)
index++; index++;
} }
} }
curpos = url_ftell(pb); curpos = avio_tell(pb);
avio_seek(pb, entryPos, SEEK_SET); avio_seek(pb, entryPos, SEEK_SET);
avio_wb32(pb, index); // rewrite size avio_wb32(pb, index); // rewrite size
avio_seek(pb, curpos, SEEK_SET); avio_seek(pb, curpos, SEEK_SET);
@ -256,7 +256,7 @@ static void putDescr(AVIOContext *pb, int tag, unsigned int size)
static int mov_write_esds_tag(AVIOContext *pb, MOVTrack *track) // Basic static int mov_write_esds_tag(AVIOContext *pb, MOVTrack *track) // Basic
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
int decoderSpecificInfoLen = track->vosLen ? descrLength(track->vosLen):0; int decoderSpecificInfoLen = track->vosLen ? descrLength(track->vosLen):0;
avio_wb32(pb, 0); // size avio_wb32(pb, 0); // size
@ -318,7 +318,7 @@ static int mov_pcm_le_gt16(enum CodecID codec_id)
static int mov_write_ms_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_ms_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); avio_wb32(pb, 0);
avio_wl32(pb, track->tag); // store it byteswapped avio_wl32(pb, track->tag); // store it byteswapped
track->enc->codec_tag = av_bswap16(track->tag >> 16); track->enc->codec_tag = av_bswap16(track->tag >> 16);
@ -328,7 +328,7 @@ static int mov_write_ms_tag(AVIOContext *pb, MOVTrack *track)
static int mov_write_wave_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_wave_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "wave"); ffio_wfourcc(pb, "wave");
@ -401,7 +401,7 @@ static int mov_get_lpcm_flags(enum CodecID codec_id)
static int mov_write_audio_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_audio_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
int version = 0; int version = 0;
uint32_t tag = track->tag; uint32_t tag = track->tag;
@ -519,7 +519,7 @@ static int mov_write_svq3_tag(AVIOContext *pb)
static int mov_write_avcc_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_avcc_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); avio_wb32(pb, 0);
ffio_wfourcc(pb, "avcC"); ffio_wfourcc(pb, "avcC");
@ -765,7 +765,7 @@ static int mov_write_uuid_tag_ipod(AVIOContext *pb)
static int mov_write_subtitle_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_subtitle_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
avio_wl32(pb, track->tag); // store it byteswapped avio_wl32(pb, track->tag); // store it byteswapped
avio_wb32(pb, 0); /* Reserved */ avio_wb32(pb, 0); /* Reserved */
@ -793,7 +793,7 @@ static int mov_write_pasp_tag(AVIOContext *pb, MOVTrack *track)
static int mov_write_video_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_video_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
char compressor_name[32]; char compressor_name[32];
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
@ -862,7 +862,7 @@ static int mov_write_video_tag(AVIOContext *pb, MOVTrack *track)
static int mov_write_rtp_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_rtp_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "rtp "); ffio_wfourcc(pb, "rtp ");
avio_wb32(pb, 0); /* Reserved */ avio_wb32(pb, 0); /* Reserved */
@ -882,7 +882,7 @@ static int mov_write_rtp_tag(AVIOContext *pb, MOVTrack *track)
static int mov_write_stsd_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_stsd_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "stsd"); ffio_wfourcc(pb, "stsd");
avio_wb32(pb, 0); /* version & flags */ avio_wb32(pb, 0); /* version & flags */
@ -989,7 +989,7 @@ static int mov_write_dref_tag(AVIOContext *pb)
static int mov_write_stbl_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_stbl_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "stbl"); ffio_wfourcc(pb, "stbl");
mov_write_stsd_tag(pb, track); mov_write_stsd_tag(pb, track);
@ -1011,7 +1011,7 @@ static int mov_write_stbl_tag(AVIOContext *pb, MOVTrack *track)
static int mov_write_dinf_tag(AVIOContext *pb) static int mov_write_dinf_tag(AVIOContext *pb)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "dinf"); ffio_wfourcc(pb, "dinf");
mov_write_dref_tag(pb); mov_write_dref_tag(pb);
@ -1064,7 +1064,7 @@ static int mov_write_vmhd_tag(AVIOContext *pb)
static int mov_write_hdlr_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_hdlr_tag(AVIOContext *pb, MOVTrack *track)
{ {
const char *hdlr, *descr = NULL, *hdlr_type = NULL; const char *hdlr, *descr = NULL, *hdlr_type = NULL;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
if (!track) { /* no media --> data handler */ if (!track) { /* no media --> data handler */
hdlr = "dhlr"; hdlr = "dhlr";
@ -1121,7 +1121,7 @@ static int mov_write_hmhd_tag(AVIOContext *pb)
static int mov_write_minf_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_minf_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "minf"); ffio_wfourcc(pb, "minf");
if(track->enc->codec_type == AVMEDIA_TYPE_VIDEO) if(track->enc->codec_type == AVMEDIA_TYPE_VIDEO)
@ -1173,7 +1173,7 @@ static int mov_write_mdhd_tag(AVIOContext *pb, MOVTrack *track)
static int mov_write_mdia_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_mdia_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "mdia"); ffio_wfourcc(pb, "mdia");
mov_write_mdhd_tag(pb, track); mov_write_mdhd_tag(pb, track);
@ -1250,7 +1250,7 @@ static int mov_write_tapt_tag(AVIOContext *pb, MOVTrack *track)
int32_t width = av_rescale(track->enc->sample_aspect_ratio.num, track->enc->width, int32_t width = av_rescale(track->enc->sample_aspect_ratio.num, track->enc->width,
track->enc->sample_aspect_ratio.den); track->enc->sample_aspect_ratio.den);
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "tapt"); ffio_wfourcc(pb, "tapt");
@ -1339,7 +1339,7 @@ static int mov_write_udta_sdp(AVIOContext *pb, AVCodecContext *ctx, int index)
static int mov_write_trak_tag(AVIOContext *pb, MOVTrack *track, AVStream *st) static int mov_write_trak_tag(AVIOContext *pb, MOVTrack *track, AVStream *st)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "trak"); ffio_wfourcc(pb, "trak");
mov_write_tkhd_tag(pb, track, st); mov_write_tkhd_tag(pb, track, st);
@ -1476,7 +1476,7 @@ static int mov_write_string_data_tag(AVIOContext *pb, const char *data, int lang
static int mov_write_string_tag(AVIOContext *pb, const char *name, const char *value, int lang, int long_style){ static int mov_write_string_tag(AVIOContext *pb, const char *name, const char *value, int lang, int long_style){
int size = 0; int size = 0;
if (value && value[0]) { if (value && value[0]) {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, name); ffio_wfourcc(pb, name);
mov_write_string_data_tag(pb, value, lang, long_style); mov_write_string_data_tag(pb, value, lang, long_style);
@ -1535,7 +1535,7 @@ static int mov_write_trkn_tag(AVIOContext *pb, MOVMuxContext *mov,
static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov, static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov,
AVFormatContext *s) AVFormatContext *s)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "ilst"); ffio_wfourcc(pb, "ilst");
mov_write_string_metadata(s, pb, "\251nam", "title" , 1); mov_write_string_metadata(s, pb, "\251nam", "title" , 1);
@ -1564,7 +1564,7 @@ static int mov_write_meta_tag(AVIOContext *pb, MOVMuxContext *mov,
AVFormatContext *s) AVFormatContext *s)
{ {
int size = 0; int size = 0;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */ avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "meta"); ffio_wfourcc(pb, "meta");
avio_wb32(pb, 0); avio_wb32(pb, 0);
@ -1604,7 +1604,7 @@ static uint16_t language_code(const char *str)
static int mov_write_3gp_udta_tag(AVIOContext *pb, AVFormatContext *s, static int mov_write_3gp_udta_tag(AVIOContext *pb, AVFormatContext *s,
const char *tag, const char *str) const char *tag, const char *str)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
AVMetadataTag *t = av_metadata_get(s->metadata, str, NULL, 0); AVMetadataTag *t = av_metadata_get(s->metadata, str, NULL, 0);
if (!t || !utf8len(t->value)) if (!t || !utf8len(t->value))
return 0; return 0;
@ -1625,7 +1625,7 @@ static int mov_write_3gp_udta_tag(AVIOContext *pb, AVFormatContext *s,
static int mov_write_chpl_tag(AVIOContext *pb, AVFormatContext *s) static int mov_write_chpl_tag(AVIOContext *pb, AVFormatContext *s)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
int i, nb_chapters = FFMIN(s->nb_chapters, 255); int i, nb_chapters = FFMIN(s->nb_chapters, 255);
avio_wb32(pb, 0); // size avio_wb32(pb, 0); // size
@ -1721,7 +1721,7 @@ static int mov_write_uuidusmt_tag(AVIOContext *pb, AVFormatContext *s)
int64_t pos, pos2; int64_t pos, pos2;
if (title) { if (title) {
pos = url_ftell(pb); pos = avio_tell(pb);
avio_wb32(pb, 0); /* size placeholder*/ avio_wb32(pb, 0); /* size placeholder*/
ffio_wfourcc(pb, "uuid"); ffio_wfourcc(pb, "uuid");
ffio_wfourcc(pb, "USMT"); ffio_wfourcc(pb, "USMT");
@ -1729,7 +1729,7 @@ static int mov_write_uuidusmt_tag(AVIOContext *pb, AVFormatContext *s)
avio_wb32(pb, 0xbb88695c); avio_wb32(pb, 0xbb88695c);
avio_wb32(pb, 0xfac9c740); avio_wb32(pb, 0xfac9c740);
pos2 = url_ftell(pb); pos2 = avio_tell(pb);
avio_wb32(pb, 0); /* size placeholder*/ avio_wb32(pb, 0); /* size placeholder*/
ffio_wfourcc(pb, "MTDT"); ffio_wfourcc(pb, "MTDT");
avio_wb16(pb, 4); avio_wb16(pb, 4);
@ -1757,7 +1757,7 @@ static int mov_write_moov_tag(AVIOContext *pb, MOVMuxContext *mov,
AVFormatContext *s) AVFormatContext *s)
{ {
int i; int i;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size placeholder*/ avio_wb32(pb, 0); /* size placeholder*/
ffio_wfourcc(pb, "moov"); ffio_wfourcc(pb, "moov");
@ -1802,7 +1802,7 @@ static int mov_write_mdat_tag(AVIOContext *pb, MOVMuxContext *mov)
avio_wb32(pb, 8); // placeholder for extended size field (64 bit) avio_wb32(pb, 8); // placeholder for extended size field (64 bit)
ffio_wfourcc(pb, mov->mode == MODE_MOV ? "wide" : "free"); ffio_wfourcc(pb, mov->mode == MODE_MOV ? "wide" : "free");
mov->mdat_pos = url_ftell(pb); mov->mdat_pos = avio_tell(pb);
avio_wb32(pb, 0); /* size placeholder*/ avio_wb32(pb, 0); /* size placeholder*/
ffio_wfourcc(pb, "mdat"); ffio_wfourcc(pb, "mdat");
return 0; return 0;
@ -1812,7 +1812,7 @@ static int mov_write_mdat_tag(AVIOContext *pb, MOVMuxContext *mov)
static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s) static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
{ {
MOVMuxContext *mov = s->priv_data; MOVMuxContext *mov = s->priv_data;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
int has_h264 = 0, has_video = 0; int has_h264 = 0, has_video = 0;
int minor = 0x200; int minor = 0x200;
int i; int i;
@ -2012,7 +2012,7 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt)
return -1; return -1;
} }
trk->cluster[trk->entry].pos = url_ftell(pb) - size; trk->cluster[trk->entry].pos = avio_tell(pb) - size;
trk->cluster[trk->entry].samplesInChunk = samplesInChunk; trk->cluster[trk->entry].samplesInChunk = samplesInChunk;
trk->cluster[trk->entry].size = size; trk->cluster[trk->entry].size = size;
trk->cluster[trk->entry].entries = samplesInChunk; trk->cluster[trk->entry].entries = samplesInChunk;
@ -2243,7 +2243,7 @@ static int mov_write_trailer(AVFormatContext *s)
int res = 0; int res = 0;
int i; int i;
int64_t moov_pos = url_ftell(pb); int64_t moov_pos = avio_tell(pb);
/* Write size of mdat tag */ /* Write size of mdat tag */
if (mov->mdat_size+8 <= UINT32_MAX) { if (mov->mdat_size+8 <= UINT32_MAX) {

@ -316,7 +316,7 @@ static int write_hint_packets(AVIOContext *out, const uint8_t *data,
int64_t count_pos, entries_pos; int64_t count_pos, entries_pos;
int count = 0, entries; int count = 0, entries;
count_pos = url_ftell(out); count_pos = avio_tell(out);
/* RTPsample header */ /* RTPsample header */
avio_wb16(out, 0); /* packet count */ avio_wb16(out, 0); /* packet count */
avio_wb16(out, 0); /* reserved */ avio_wb16(out, 0); /* reserved */
@ -358,7 +358,7 @@ static int write_hint_packets(AVIOContext *out, const uint8_t *data,
avio_write(out, data, 2); /* RTP header */ avio_write(out, data, 2); /* RTP header */
avio_wb16(out, seq); /* RTPsequenceseed */ avio_wb16(out, seq); /* RTPsequenceseed */
avio_wb16(out, 0); /* reserved + flags */ avio_wb16(out, 0); /* reserved + flags */
entries_pos = url_ftell(out); entries_pos = avio_tell(out);
avio_wb16(out, 0); /* entry count */ avio_wb16(out, 0); /* entry count */
data += 12; data += 12;
@ -371,13 +371,13 @@ static int write_hint_packets(AVIOContext *out, const uint8_t *data,
data += packet_len; data += packet_len;
size -= packet_len; size -= packet_len;
curpos = url_ftell(out); curpos = avio_tell(out);
avio_seek(out, entries_pos, SEEK_SET); avio_seek(out, entries_pos, SEEK_SET);
avio_wb16(out, entries); avio_wb16(out, entries);
avio_seek(out, curpos, SEEK_SET); avio_seek(out, curpos, SEEK_SET);
} }
curpos = url_ftell(out); curpos = avio_tell(out);
avio_seek(out, count_pos, SEEK_SET); avio_seek(out, count_pos, SEEK_SET);
avio_wb16(out, count); avio_wb16(out, count);
avio_seek(out, curpos, SEEK_SET); avio_seek(out, curpos, SEEK_SET);

@ -147,7 +147,7 @@ static int mp3_read_header(AVFormatContext *s,
// lcm of all mp3 sample rates // lcm of all mp3 sample rates
av_set_pts_info(st, 64, 1, 14112000); av_set_pts_info(st, 64, 1, 14112000);
off = url_ftell(s->pb); off = avio_tell(s->pb);
if (!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX)) if (!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX))
ff_id3v1_read(s); ff_id3v1_read(s);

@ -211,7 +211,7 @@ static int mp3_write_header(struct AVFormatContext *s)
avio_w8(s->pb, 0); /* flags */ avio_w8(s->pb, 0); /* flags */
/* reserve space for size */ /* reserve space for size */
size_pos = url_ftell(s->pb); size_pos = avio_tell(s->pb);
avio_wb32(s->pb, 0); avio_wb32(s->pb, 0);
ff_metadata_conv(&s->metadata, ff_id3v2_34_metadata_conv, NULL); ff_metadata_conv(&s->metadata, ff_id3v2_34_metadata_conv, NULL);
@ -237,7 +237,7 @@ static int mp3_write_header(struct AVFormatContext *s)
totlen += ret; totlen += ret;
} }
cur_pos = url_ftell(s->pb); cur_pos = avio_tell(s->pb);
avio_seek(s->pb, size_pos, SEEK_SET); avio_seek(s->pb, size_pos, SEEK_SET);
id3v2_put_size(s, totlen); id3v2_put_size(s, totlen);
avio_seek(s->pb, cur_pos, SEEK_SET); avio_seek(s->pb, cur_pos, SEEK_SET);

@ -94,7 +94,7 @@ static int mpc_read_header(AVFormatContext *s, AVFormatParameters *ap)
/* try to read APE tags */ /* try to read APE tags */
if (!url_is_streamed(s->pb)) { if (!url_is_streamed(s->pb)) {
int64_t pos = url_ftell(s->pb); int64_t pos = avio_tell(s->pb);
ff_ape_parse_tag(s); ff_ape_parse_tag(s);
if (!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX)) if (!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX))
ff_id3v1_read(s); ff_id3v1_read(s);
@ -120,7 +120,7 @@ static int mpc_read_packet(AVFormatContext *s, AVPacket *pkt)
c->lastframe = c->curframe; c->lastframe = c->curframe;
c->curframe++; c->curframe++;
curbits = c->curbits; curbits = c->curbits;
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
tmp = avio_rl32(s->pb); tmp = avio_rl32(s->pb);
if(curbits <= 12){ if(curbits <= 12){
size2 = (tmp >> (12 - curbits)) & 0xFFFFF; size2 = (tmp >> (12 - curbits)) & 0xFFFFF;

@ -120,10 +120,10 @@ static inline int64_t gb_get_v(GetBitContext *gb)
static void mpc8_get_chunk_header(AVIOContext *pb, int *tag, int64_t *size) static void mpc8_get_chunk_header(AVIOContext *pb, int *tag, int64_t *size)
{ {
int64_t pos; int64_t pos;
pos = url_ftell(pb); pos = avio_tell(pb);
*tag = avio_rl16(pb); *tag = avio_rl16(pb);
*size = ff_get_v(pb); *size = ff_get_v(pb);
*size -= url_ftell(pb) - pos; *size -= avio_tell(pb) - pos;
} }
static void mpc8_parse_seektable(AVFormatContext *s, int64_t off) static void mpc8_parse_seektable(AVFormatContext *s, int64_t off)
@ -176,7 +176,7 @@ static void mpc8_handle_chunk(AVFormatContext *s, int tag, int64_t chunk_pos, in
switch(tag){ switch(tag){
case TAG_SEEKTBLOFF: case TAG_SEEKTBLOFF:
pos = url_ftell(pb) + size; pos = avio_tell(pb) + size;
off = ff_get_v(pb); off = ff_get_v(pb);
mpc8_parse_seektable(s, chunk_pos + off); mpc8_parse_seektable(s, chunk_pos + off);
avio_seek(pb, pos, SEEK_SET); avio_seek(pb, pos, SEEK_SET);
@ -194,14 +194,14 @@ static int mpc8_read_header(AVFormatContext *s, AVFormatParameters *ap)
int tag = 0; int tag = 0;
int64_t size, pos; int64_t size, pos;
c->header_pos = url_ftell(pb); c->header_pos = avio_tell(pb);
if(avio_rl32(pb) != TAG_MPCK){ if(avio_rl32(pb) != TAG_MPCK){
av_log(s, AV_LOG_ERROR, "Not a Musepack8 file\n"); av_log(s, AV_LOG_ERROR, "Not a Musepack8 file\n");
return -1; return -1;
} }
while(!url_feof(pb)){ while(!url_feof(pb)){
pos = url_ftell(pb); pos = avio_tell(pb);
mpc8_get_chunk_header(pb, &tag, &size); mpc8_get_chunk_header(pb, &tag, &size);
if(tag == TAG_STREAMHDR) if(tag == TAG_STREAMHDR)
break; break;
@ -211,7 +211,7 @@ static int mpc8_read_header(AVFormatContext *s, AVFormatParameters *ap)
av_log(s, AV_LOG_ERROR, "Stream header not found\n"); av_log(s, AV_LOG_ERROR, "Stream header not found\n");
return -1; return -1;
} }
pos = url_ftell(pb); pos = avio_tell(pb);
avio_seek(pb, 4, SEEK_CUR); //CRC avio_seek(pb, 4, SEEK_CUR); //CRC
c->ver = avio_r8(pb); c->ver = avio_r8(pb);
if(c->ver != 8){ if(c->ver != 8){
@ -236,7 +236,7 @@ static int mpc8_read_header(AVFormatContext *s, AVFormatParameters *ap)
st->codec->sample_rate = mpc8_rate[st->codec->extradata[0] >> 5]; st->codec->sample_rate = mpc8_rate[st->codec->extradata[0] >> 5];
av_set_pts_info(st, 32, 1152 << (st->codec->extradata[1]&3)*2, st->codec->sample_rate); av_set_pts_info(st, 32, 1152 << (st->codec->extradata[1]&3)*2, st->codec->sample_rate);
st->duration = c->samples / (1152 << (st->codec->extradata[1]&3)*2); st->duration = c->samples / (1152 << (st->codec->extradata[1]&3)*2);
size -= url_ftell(pb) - pos; size -= avio_tell(pb) - pos;
return 0; return 0;
} }
@ -248,7 +248,7 @@ static int mpc8_read_packet(AVFormatContext *s, AVPacket *pkt)
int64_t pos, size; int64_t pos, size;
while(!url_feof(s->pb)){ while(!url_feof(s->pb)){
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
mpc8_get_chunk_header(s->pb, &tag, &size); mpc8_get_chunk_header(s->pb, &tag, &size);
if (size < 0) if (size < 0)
return -1; return -1;

@ -169,7 +169,7 @@ static int find_prev_start_code(AVIOContext *pb, int *size_ptr)
int max_size, start_code; int max_size, start_code;
max_size = *size_ptr; max_size = *size_ptr;
pos_start = url_ftell(pb); pos_start = avio_tell(pb);
/* in order to go faster, we fill the buffer */ /* in order to go faster, we fill the buffer */
pos = pos_start - 16386; pos = pos_start - 16386;
@ -241,7 +241,7 @@ static int mpegps_read_pes_header(AVFormatContext *s,
int len, size, startcode, c, flags, header_len; int len, size, startcode, c, flags, header_len;
int pes_ext, ext2_len, id_ext, skip; int pes_ext, ext2_len, id_ext, skip;
int64_t pts, dts; int64_t pts, dts;
int64_t last_sync= url_ftell(s->pb); int64_t last_sync= avio_tell(s->pb);
error_redo: error_redo:
avio_seek(s->pb, last_sync, SEEK_SET); avio_seek(s->pb, last_sync, SEEK_SET);
@ -250,8 +250,8 @@ static int mpegps_read_pes_header(AVFormatContext *s,
m->header_state = 0xff; m->header_state = 0xff;
size = MAX_SYNC_SIZE; size = MAX_SYNC_SIZE;
startcode = find_next_start_code(s->pb, &size, &m->header_state); startcode = find_next_start_code(s->pb, &size, &m->header_state);
last_sync = url_ftell(s->pb); last_sync = avio_tell(s->pb);
//printf("startcode=%x pos=0x%"PRIx64"\n", startcode, url_ftell(s->pb)); //printf("startcode=%x pos=0x%"PRIx64"\n", startcode, avio_tell(s->pb));
if (startcode < 0){ if (startcode < 0){
if(url_feof(s->pb)) if(url_feof(s->pb))
return AVERROR_EOF; return AVERROR_EOF;
@ -295,7 +295,7 @@ static int mpegps_read_pes_header(AVFormatContext *s,
(startcode == 0x1bd) || (startcode == 0x1fd))) (startcode == 0x1bd) || (startcode == 0x1fd)))
goto redo; goto redo;
if (ppos) { if (ppos) {
*ppos = url_ftell(s->pb) - 4; *ppos = avio_tell(s->pb) - 4;
} }
len = avio_rb16(s->pb); len = avio_rb16(s->pb);
pts = pts =

@ -1265,7 +1265,7 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet)
if (p >= p_end) if (p >= p_end)
return 0; return 0;
pos = url_ftell(ts->stream->pb); pos = avio_tell(ts->stream->pb);
ts->pos47= pos % ts->raw_packet_size; ts->pos47= pos % ts->raw_packet_size;
if (tss->type == MPEGTS_SECTION) { if (tss->type == MPEGTS_SECTION) {
@ -1454,7 +1454,7 @@ static int mpegts_read_header(AVFormatContext *s,
} }
/* read the first 1024 bytes to get packet size */ /* read the first 1024 bytes to get packet size */
pos = url_ftell(pb); pos = avio_tell(pb);
len = avio_read(pb, buf, sizeof(buf)); len = avio_read(pb, buf, sizeof(buf));
if (len != sizeof(buf)) if (len != sizeof(buf))
goto fail; goto fail;
@ -1552,7 +1552,7 @@ static int mpegts_raw_read_packet(AVFormatContext *s,
if (av_new_packet(pkt, TS_PACKET_SIZE) < 0) if (av_new_packet(pkt, TS_PACKET_SIZE) < 0)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
pkt->pos= url_ftell(s->pb); pkt->pos= avio_tell(s->pb);
ret = read_packet(s, pkt->data, ts->raw_packet_size); ret = read_packet(s, pkt->data, ts->raw_packet_size);
if (ret < 0) { if (ret < 0) {
av_free_packet(pkt); av_free_packet(pkt);
@ -1562,7 +1562,7 @@ static int mpegts_raw_read_packet(AVFormatContext *s,
/* compute exact PCR for each packet */ /* compute exact PCR for each packet */
if (parse_pcr(&pcr_h, &pcr_l, pkt->data) == 0) { if (parse_pcr(&pcr_h, &pcr_l, pkt->data) == 0) {
/* we read the next PCR (XXX: optimize it by using a bigger buffer */ /* we read the next PCR (XXX: optimize it by using a bigger buffer */
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
for(i = 0; i < MAX_PACKET_READAHEAD; i++) { for(i = 0; i < MAX_PACKET_READAHEAD; i++) {
avio_seek(s->pb, pos + i * ts->raw_packet_size, SEEK_SET); avio_seek(s->pb, pos + i * ts->raw_packet_size, SEEK_SET);
avio_read(s->pb, pcr_buf, 12); avio_read(s->pb, pcr_buf, 12);
@ -1591,7 +1591,7 @@ static int mpegts_read_packet(AVFormatContext *s,
MpegTSContext *ts = s->priv_data; MpegTSContext *ts = s->priv_data;
int ret, i; int ret, i;
if (url_ftell(s->pb) != ts->last_pos) { if (avio_tell(s->pb) != ts->last_pos) {
/* seek detected, flush pes buffer */ /* seek detected, flush pes buffer */
for (i = 0; i < NB_PID_MAX; i++) { for (i = 0; i < NB_PID_MAX; i++) {
if (ts->pids[i] && ts->pids[i]->type == MPEGTS_PES) { if (ts->pids[i] && ts->pids[i]->type == MPEGTS_PES) {
@ -1620,7 +1620,7 @@ static int mpegts_read_packet(AVFormatContext *s,
} }
} }
ts->last_pos = url_ftell(s->pb); ts->last_pos = avio_tell(s->pb);
return ret; return ret;
} }
@ -1771,7 +1771,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t target_ts, in
if(av_seek_frame_binary(s, stream_index, target_ts, flags) < 0) if(av_seek_frame_binary(s, stream_index, target_ts, flags) < 0)
return -1; return -1;
pos= url_ftell(s->pb); pos= avio_tell(s->pb);
for(;;) { for(;;) {
avio_seek(s->pb, pos, SEEK_SET); avio_seek(s->pb, pos, SEEK_SET);

@ -595,7 +595,7 @@ static void retransmit_si_info(AVFormatContext *s)
static int64_t get_pcr(const MpegTSWrite *ts, AVIOContext *pb) static int64_t get_pcr(const MpegTSWrite *ts, AVIOContext *pb)
{ {
return av_rescale(url_ftell(pb) + 11, 8 * PCR_TIME_BASE, ts->mux_rate) + return av_rescale(avio_tell(pb) + 11, 8 * PCR_TIME_BASE, ts->mux_rate) +
ts->first_pcr; ts->first_pcr;
} }

@ -162,7 +162,7 @@ static int mtv_read_packet(AVFormatContext *s, AVPacket *pkt)
int i; int i;
#endif #endif
if((url_ftell(pb) - s->data_offset + mtv->img_segment_size) % mtv->full_segment_size) if((avio_tell(pb) - s->data_offset + mtv->img_segment_size) % mtv->full_segment_size)
{ {
avio_seek(pb, MTV_AUDIO_PADDING_SIZE, SEEK_CUR); avio_seek(pb, MTV_AUDIO_PADDING_SIZE, SEEK_CUR);

@ -193,7 +193,7 @@ static int klv_read_packet(KLVPacket *klv, AVIOContext *pb)
{ {
if (!mxf_read_sync(pb, mxf_klv_key, 4)) if (!mxf_read_sync(pb, mxf_klv_key, 4))
return -1; return -1;
klv->offset = url_ftell(pb) - 4; klv->offset = avio_tell(pb) - 4;
memcpy(klv->key, mxf_klv_key, 4); memcpy(klv->key, mxf_klv_key, 4);
avio_read(pb, klv->key + 4, 12); avio_read(pb, klv->key + 4, 12);
klv->length = klv_decode_ber_length(pb); klv->length = klv_decode_ber_length(pb);
@ -247,7 +247,7 @@ static int mxf_decrypt_triplet(AVFormatContext *s, AVPacket *pkt, KLVPacket *klv
static const uint8_t checkv[16] = {0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b}; static const uint8_t checkv[16] = {0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b, 0x43, 0x48, 0x55, 0x4b};
MXFContext *mxf = s->priv_data; MXFContext *mxf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
int64_t end = url_ftell(pb) + klv->length; int64_t end = avio_tell(pb) + klv->length;
uint64_t size; uint64_t size;
uint64_t orig_size; uint64_t orig_size;
uint64_t plaintext_size; uint64_t plaintext_size;
@ -297,7 +297,7 @@ static int mxf_decrypt_triplet(AVFormatContext *s, AVPacket *pkt, KLVPacket *klv
&pkt->data[plaintext_size], size >> 4, ivec, 1); &pkt->data[plaintext_size], size >> 4, ivec, 1);
pkt->size = orig_size; pkt->size = orig_size;
pkt->stream_index = index; pkt->stream_index = index;
avio_seek(pb, end - url_ftell(pb), SEEK_CUR); avio_seek(pb, end - avio_tell(pb), SEEK_CUR);
return 0; return 0;
} }
@ -866,14 +866,14 @@ static int mxf_read_local_tags(MXFContext *mxf, KLVPacket *klv, MXFMetadataReadF
{ {
AVIOContext *pb = mxf->fc->pb; AVIOContext *pb = mxf->fc->pb;
MXFMetadataSet *ctx = ctx_size ? av_mallocz(ctx_size) : mxf; MXFMetadataSet *ctx = ctx_size ? av_mallocz(ctx_size) : mxf;
uint64_t klv_end = url_ftell(pb) + klv->length; uint64_t klv_end = avio_tell(pb) + klv->length;
if (!ctx) if (!ctx)
return -1; return -1;
while (url_ftell(pb) + 4 < klv_end) { while (avio_tell(pb) + 4 < klv_end) {
int tag = avio_rb16(pb); int tag = avio_rb16(pb);
int size = avio_rb16(pb); /* KLV specified by 0x53 */ int size = avio_rb16(pb); /* KLV specified by 0x53 */
uint64_t next = url_ftell(pb) + size; uint64_t next = avio_tell(pb) + size;
UID uid = {0}; UID uid = {0};
av_dlog(mxf->fc, "local tag %#04x size %d\n", tag, size); av_dlog(mxf->fc, "local tag %#04x size %d\n", tag, size);

@ -1171,14 +1171,14 @@ static void mxf_write_index_table_segment(AVFormatContext *s)
static void mxf_write_klv_fill(AVFormatContext *s) static void mxf_write_klv_fill(AVFormatContext *s)
{ {
unsigned pad = klv_fill_size(url_ftell(s->pb)); unsigned pad = klv_fill_size(avio_tell(s->pb));
if (pad) { if (pad) {
avio_write(s->pb, klv_fill_key, 16); avio_write(s->pb, klv_fill_key, 16);
pad -= 16 + 4; pad -= 16 + 4;
klv_encode_ber4_length(s->pb, pad); klv_encode_ber4_length(s->pb, pad);
for (; pad; pad--) for (; pad; pad--)
avio_w8(s->pb, 0); avio_w8(s->pb, 0);
assert(!(url_ftell(s->pb) & (KAG_SIZE-1))); assert(!(avio_tell(s->pb) & (KAG_SIZE-1)));
} }
} }
@ -1190,7 +1190,7 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid,
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
int64_t header_byte_count_offset; int64_t header_byte_count_offset;
unsigned index_byte_count = 0; unsigned index_byte_count = 0;
uint64_t partition_offset = url_ftell(pb); uint64_t partition_offset = avio_tell(pb);
if (!mxf->edit_unit_byte_count && mxf->edit_units_count) if (!mxf->edit_unit_byte_count && mxf->edit_units_count)
index_byte_count = 85 + 12+(s->nb_streams+1)*6 + index_byte_count = 85 + 12+(s->nb_streams+1)*6 +
@ -1233,7 +1233,7 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid,
avio_wb64(pb, mxf->footer_partition_offset); // footerPartition avio_wb64(pb, mxf->footer_partition_offset); // footerPartition
// set offset // set offset
header_byte_count_offset = url_ftell(pb); header_byte_count_offset = avio_tell(pb);
avio_wb64(pb, 0); // headerByteCount, update later avio_wb64(pb, 0); // headerByteCount, update later
// indexTable // indexTable
@ -1260,10 +1260,10 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid,
unsigned header_byte_count; unsigned header_byte_count;
mxf_write_klv_fill(s); mxf_write_klv_fill(s);
start = url_ftell(s->pb); start = avio_tell(s->pb);
mxf_write_primer_pack(s); mxf_write_primer_pack(s);
mxf_write_header_metadata_sets(s); mxf_write_header_metadata_sets(s);
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
header_byte_count = pos - start + klv_fill_size(pos); header_byte_count = pos - start + klv_fill_size(pos);
// update header_byte_count // update header_byte_count
@ -1617,7 +1617,7 @@ static void mxf_write_d10_video_packet(AVFormatContext *s, AVStream *st, AVPacke
klv_encode_ber4_length(s->pb, pad); klv_encode_ber4_length(s->pb, pad);
for (; pad; pad--) for (; pad; pad--)
avio_w8(s->pb, 0); avio_w8(s->pb, 0);
assert(!(url_ftell(s->pb) & (KAG_SIZE-1))); assert(!(avio_tell(s->pb) & (KAG_SIZE-1)));
} else { } else {
av_log(s, AV_LOG_WARNING, "cannot fill d-10 video packet\n"); av_log(s, AV_LOG_WARNING, "cannot fill d-10 video packet\n");
for (; pad > 0; pad--) for (; pad > 0; pad--)
@ -1740,7 +1740,7 @@ static void mxf_write_random_index_pack(AVFormatContext *s)
{ {
MXFContext *mxf = s->priv_data; MXFContext *mxf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
uint64_t pos = url_ftell(pb); uint64_t pos = avio_tell(pb);
int i; int i;
avio_write(pb, random_index_pack_key, 16); avio_write(pb, random_index_pack_key, 16);
@ -1760,7 +1760,7 @@ static void mxf_write_random_index_pack(AVFormatContext *s)
avio_wb32(pb, 0); // BodySID of footer partition avio_wb32(pb, 0); // BodySID of footer partition
avio_wb64(pb, mxf->footer_partition_offset); avio_wb64(pb, mxf->footer_partition_offset);
avio_wb32(pb, url_ftell(pb) - pos + 4); avio_wb32(pb, avio_tell(pb) - pos + 4);
} }
static int mxf_write_footer(AVFormatContext *s) static int mxf_write_footer(AVFormatContext *s)
@ -1771,7 +1771,7 @@ static int mxf_write_footer(AVFormatContext *s)
mxf->duration = mxf->last_indexed_edit_unit + mxf->edit_units_count; mxf->duration = mxf->last_indexed_edit_unit + mxf->edit_units_count;
mxf_write_klv_fill(s); mxf_write_klv_fill(s);
mxf->footer_partition_offset = url_ftell(pb); mxf->footer_partition_offset = avio_tell(pb);
if (mxf->edit_unit_byte_count) { // no need to repeat index if (mxf->edit_unit_byte_count) { // no need to repeat index
mxf_write_partition(s, 0, 0, footer_partition_key, 0); mxf_write_partition(s, 0, 0, footer_partition_key, 0);
} else { } else {

@ -225,7 +225,7 @@ static int nsv_resync(AVFormatContext *s)
uint32_t v = 0; uint32_t v = 0;
int i; int i;
av_dlog(s, "%s(), offset = %"PRId64", state = %d\n", __FUNCTION__, url_ftell(pb), nsv->state); av_dlog(s, "%s(), offset = %"PRId64", state = %d\n", __FUNCTION__, avio_tell(pb), nsv->state);
//nsv->state = NSV_UNSYNC; //nsv->state = NSV_UNSYNC;
@ -299,7 +299,7 @@ static int nsv_parse_NSVf_header(AVFormatContext *s, AVFormatParameters *ap)
if (url_feof(pb)) if (url_feof(pb))
return -1; return -1;
av_dlog(s, "NSV got header; filepos %"PRId64"\n", url_ftell(pb)); av_dlog(s, "NSV got header; filepos %"PRId64"\n", avio_tell(pb));
if (strings_size > 0) { if (strings_size > 0) {
char *strings; /* last byte will be '\0' to play safe with str*() */ char *strings; /* last byte will be '\0' to play safe with str*() */
@ -334,7 +334,7 @@ static int nsv_parse_NSVf_header(AVFormatContext *s, AVFormatParameters *ap)
if (url_feof(pb)) if (url_feof(pb))
return -1; return -1;
av_dlog(s, "NSV got infos; filepos %"PRId64"\n", url_ftell(pb)); av_dlog(s, "NSV got infos; filepos %"PRId64"\n", avio_tell(pb));
if (table_entries_used > 0) { if (table_entries_used > 0) {
int i; int i;
@ -355,7 +355,7 @@ static int nsv_parse_NSVf_header(AVFormatContext *s, AVFormatParameters *ap)
} }
} }
av_dlog(s, "NSV got index; filepos %"PRId64"\n", url_ftell(pb)); av_dlog(s, "NSV got index; filepos %"PRId64"\n", avio_tell(pb));
#ifdef DEBUG_DUMP_INDEX #ifdef DEBUG_DUMP_INDEX
#define V(v) ((v<0x20 || v > 127)?'.':v) #define V(v) ((v<0x20 || v > 127)?'.':v)

@ -98,7 +98,7 @@ static inline uint64_t get_vb_trace(AVIOContext *bc, char *file, char *func, int
static int get_packetheader(NUTContext *nut, AVIOContext *bc, int calculate_checksum, uint64_t startcode) static int get_packetheader(NUTContext *nut, AVIOContext *bc, int calculate_checksum, uint64_t startcode)
{ {
int64_t size; int64_t size;
// start= url_ftell(bc) - 8; // start= avio_tell(bc) - 8;
startcode= av_be2ne64(startcode); startcode= av_be2ne64(startcode);
startcode= ff_crc04C11DB7_update(0, (uint8_t*)&startcode, 8); startcode= ff_crc04C11DB7_update(0, (uint8_t*)&startcode, 8);
@ -148,7 +148,7 @@ static int64_t find_startcode(AVIOContext *bc, uint64_t code, int64_t pos){
for(;;){ for(;;){
uint64_t startcode= find_any_startcode(bc, pos); uint64_t startcode= find_any_startcode(bc, pos);
if(startcode == code) if(startcode == code)
return url_ftell(bc) - 8; return avio_tell(bc) - 8;
else if(startcode == 0) else if(startcode == 0)
return -1; return -1;
pos=-1; pos=-1;
@ -176,7 +176,7 @@ static int nut_probe(AVProbeData *p){
dst= tmp; dst= tmp;
static int skip_reserved(AVIOContext *bc, int64_t pos){ static int skip_reserved(AVIOContext *bc, int64_t pos){
pos -= url_ftell(bc); pos -= avio_tell(bc);
if(pos<0){ if(pos<0){
avio_seek(bc, pos, SEEK_CUR); avio_seek(bc, pos, SEEK_CUR);
return -1; return -1;
@ -196,7 +196,7 @@ static int decode_main_header(NUTContext *nut){
int64_t tmp_match; int64_t tmp_match;
end= get_packetheader(nut, bc, 1, MAIN_STARTCODE); end= get_packetheader(nut, bc, 1, MAIN_STARTCODE);
end += url_ftell(bc); end += avio_tell(bc);
GET_V(tmp , tmp >=2 && tmp <= 3) GET_V(tmp , tmp >=2 && tmp <= 3)
GET_V(stream_count , tmp > 0 && tmp <= NUT_MAX_STREAMS) GET_V(stream_count , tmp > 0 && tmp <= NUT_MAX_STREAMS)
@ -267,7 +267,7 @@ static int decode_main_header(NUTContext *nut){
} }
assert(nut->frame_code['N'].flags == FLAG_INVALID); assert(nut->frame_code['N'].flags == FLAG_INVALID);
if(end > url_ftell(bc) + 4){ if(end > avio_tell(bc) + 4){
int rem= 1024; int rem= 1024;
GET_V(nut->header_count, tmp<128U) GET_V(nut->header_count, tmp<128U)
nut->header_count++; nut->header_count++;
@ -306,7 +306,7 @@ static int decode_stream_header(NUTContext *nut){
AVStream *st; AVStream *st;
end= get_packetheader(nut, bc, 1, STREAM_STARTCODE); end= get_packetheader(nut, bc, 1, STREAM_STARTCODE);
end += url_ftell(bc); end += avio_tell(bc);
GET_V(stream_id, tmp < s->nb_streams && !nut->stream[tmp].time_base); GET_V(stream_id, tmp < s->nb_streams && !nut->stream[tmp].time_base);
stc= &nut->stream[stream_id]; stc= &nut->stream[stream_id];
@ -409,7 +409,7 @@ static int decode_info_header(NUTContext *nut){
AVMetadata **metadata = NULL; AVMetadata **metadata = NULL;
end= get_packetheader(nut, bc, 1, INFO_STARTCODE); end= get_packetheader(nut, bc, 1, INFO_STARTCODE);
end += url_ftell(bc); end += avio_tell(bc);
GET_V(stream_id_plus1, tmp <= s->nb_streams) GET_V(stream_id_plus1, tmp <= s->nb_streams)
chapter_id = get_s(bc); chapter_id = get_s(bc);
@ -480,10 +480,10 @@ static int decode_syncpoint(NUTContext *nut, int64_t *ts, int64_t *back_ptr){
AVIOContext *bc = s->pb; AVIOContext *bc = s->pb;
int64_t end, tmp; int64_t end, tmp;
nut->last_syncpoint_pos= url_ftell(bc)-8; nut->last_syncpoint_pos= avio_tell(bc)-8;
end= get_packetheader(nut, bc, 1, SYNCPOINT_STARTCODE); end= get_packetheader(nut, bc, 1, SYNCPOINT_STARTCODE);
end += url_ftell(bc); end += avio_tell(bc);
tmp= ff_get_v(bc); tmp= ff_get_v(bc);
*back_ptr= nut->last_syncpoint_pos - 16*ff_get_v(bc); *back_ptr= nut->last_syncpoint_pos - 16*ff_get_v(bc);
@ -521,7 +521,7 @@ static int find_and_decode_index(NUTContext *nut){
} }
end= get_packetheader(nut, bc, 1, INDEX_STARTCODE); end= get_packetheader(nut, bc, 1, INDEX_STARTCODE);
end += url_ftell(bc); end += avio_tell(bc);
ff_get_v(bc); //max_pts ff_get_v(bc); //max_pts
GET_V(syncpoint_count, tmp < INT_MAX/8 && tmp > 0) GET_V(syncpoint_count, tmp < INT_MAX/8 && tmp > 0)
@ -635,7 +635,7 @@ static int nut_read_header(AVFormatContext *s, AVFormatParameters *ap)
pos=0; pos=0;
for(;;){ for(;;){
uint64_t startcode= find_any_startcode(bc, pos); uint64_t startcode= find_any_startcode(bc, pos);
pos= url_ftell(bc); pos= avio_tell(bc);
if(startcode==0){ if(startcode==0){
av_log(s, AV_LOG_ERROR, "EOF before video frames\n"); av_log(s, AV_LOG_ERROR, "EOF before video frames\n");
@ -653,7 +653,7 @@ static int nut_read_header(AVFormatContext *s, AVFormatParameters *ap)
s->data_offset= pos-8; s->data_offset= pos-8;
if(!url_is_streamed(bc)){ if(!url_is_streamed(bc)){
int64_t orig_pos= url_ftell(bc); int64_t orig_pos= avio_tell(bc);
find_and_decode_index(nut); find_and_decode_index(nut);
avio_seek(bc, orig_pos, SEEK_SET); avio_seek(bc, orig_pos, SEEK_SET);
} }
@ -671,8 +671,8 @@ static int decode_frame_header(NUTContext *nut, int64_t *pts, int *stream_id, ui
int size, flags, size_mul, pts_delta, i, reserved_count; int size, flags, size_mul, pts_delta, i, reserved_count;
uint64_t tmp; uint64_t tmp;
if(url_ftell(bc) > nut->last_syncpoint_pos + nut->max_distance){ if(avio_tell(bc) > nut->last_syncpoint_pos + nut->max_distance){
av_log(s, AV_LOG_ERROR, "Last frame must have been damaged %"PRId64" > %"PRId64" + %d\n", url_ftell(bc), nut->last_syncpoint_pos, nut->max_distance); av_log(s, AV_LOG_ERROR, "Last frame must have been damaged %"PRId64" > %"PRId64" + %d\n", avio_tell(bc), nut->last_syncpoint_pos, nut->max_distance);
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
@ -763,7 +763,7 @@ static int decode_frame(NUTContext *nut, AVPacket *pkt, int frame_code){
av_new_packet(pkt, size + nut->header_len[header_idx]); av_new_packet(pkt, size + nut->header_len[header_idx]);
memcpy(pkt->data, nut->header[header_idx], nut->header_len[header_idx]); memcpy(pkt->data, nut->header[header_idx], nut->header_len[header_idx]);
pkt->pos= url_ftell(bc); //FIXME pkt->pos= avio_tell(bc); //FIXME
avio_read(bc, pkt->data + nut->header_len[header_idx], size); avio_read(bc, pkt->data + nut->header_len[header_idx], size);
pkt->stream_index = stream_id; pkt->stream_index = stream_id;
@ -782,7 +782,7 @@ static int nut_read_packet(AVFormatContext *s, AVPacket *pkt)
int64_t ts, back_ptr; int64_t ts, back_ptr;
for(;;){ for(;;){
int64_t pos= url_ftell(bc); int64_t pos= avio_tell(bc);
uint64_t tmp= nut->next_startcode; uint64_t tmp= nut->next_startcode;
nut->next_startcode=0; nut->next_startcode=0;

@ -639,13 +639,13 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt){
if(pkt->pts < 0) if(pkt->pts < 0)
return -1; return -1;
if(1LL<<(20+3*nut->header_count) <= url_ftell(bc)) if(1LL<<(20+3*nut->header_count) <= avio_tell(bc))
write_headers(s, bc); write_headers(s, bc);
if(key_frame && !(nus->last_flags & FLAG_KEY)) if(key_frame && !(nus->last_flags & FLAG_KEY))
store_sp= 1; store_sp= 1;
if(pkt->size + 30/*FIXME check*/ + url_ftell(bc) >= nut->last_syncpoint_pos + nut->max_distance) if(pkt->size + 30/*FIXME check*/ + avio_tell(bc) >= nut->last_syncpoint_pos + nut->max_distance)
store_sp= 1; store_sp= 1;
//FIXME: Ensure store_sp is 1 in the first place. //FIXME: Ensure store_sp is 1 in the first place.
@ -668,7 +668,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt){
sp= av_tree_find(nut->syncpoints, &dummy, (void *) ff_nut_sp_pos_cmp, sp= av_tree_find(nut->syncpoints, &dummy, (void *) ff_nut_sp_pos_cmp,
NULL); NULL);
nut->last_syncpoint_pos= url_ftell(bc); nut->last_syncpoint_pos= avio_tell(bc);
ret = url_open_dyn_buf(&dyn_bc); ret = url_open_dyn_buf(&dyn_bc);
if(ret < 0) if(ret < 0)
return ret; return ret;

@ -197,7 +197,7 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) {
int ret, size; int ret, size;
while (!url_feof(pb)) { while (!url_feof(pb)) {
int copyhdrsize = ctx->rtjpg_video ? HDRSIZE : 0; int copyhdrsize = ctx->rtjpg_video ? HDRSIZE : 0;
uint64_t pos = url_ftell(pb); uint64_t pos = avio_tell(pb);
ret = avio_read(pb, hdr, HDRSIZE); ret = avio_read(pb, hdr, HDRSIZE);
if (ret < HDRSIZE) if (ret < HDRSIZE)
return ret < 0 ? ret : AVERROR(EIO); return ret < 0 ? ret : AVERROR(EIO);

@ -62,7 +62,7 @@ ogg_save (AVFormatContext * s)
struct ogg_state *ost = struct ogg_state *ost =
av_malloc(sizeof (*ost) + (ogg->nstreams-1) * sizeof (*ogg->streams)); av_malloc(sizeof (*ost) + (ogg->nstreams-1) * sizeof (*ogg->streams));
int i; int i;
ost->pos = url_ftell (s->pb); ost->pos = avio_tell (s->pb);
ost->curidx = ogg->curidx; ost->curidx = ogg->curidx;
ost->next = ogg->state; ost->next = ogg->state;
ost->nstreams = ogg->nstreams; ost->nstreams = ogg->nstreams;
@ -247,7 +247,7 @@ ogg_read_page (AVFormatContext * s, int *str)
} }
os = ogg->streams + idx; os = ogg->streams + idx;
os->page_pos = url_ftell(bc) - 27; os->page_pos = avio_tell(bc) - 27;
if(os->psize > 0) if(os->psize > 0)
ogg_new_buf(ogg, idx); ogg_new_buf(ogg, idx);
@ -607,7 +607,7 @@ ogg_read_timestamp (AVFormatContext * s, int stream_index, int64_t * pos_arg,
avio_seek(bc, *pos_arg, SEEK_SET); avio_seek(bc, *pos_arg, SEEK_SET);
ogg_reset(ogg); ogg_reset(ogg);
while (url_ftell(bc) < pos_limit && !ogg_packet(s, &i, NULL, NULL, pos_arg)) { while (avio_tell(bc) < pos_limit && !ogg_packet(s, &i, NULL, NULL, pos_arg)) {
if (i == stream_index) { if (i == stream_index) {
pts = ogg_calc_pts(s, i, NULL); pts = ogg_calc_pts(s, i, NULL);
if (os->keyframe_seek && !(os->pflags & AV_PKT_FLAG_KEY)) if (os->keyframe_seek && !(os->pflags & AV_PKT_FLAG_KEY))

@ -67,7 +67,7 @@ typedef struct {
static void ogg_update_checksum(AVFormatContext *s, AVIOContext *pb, int64_t crc_offset) static void ogg_update_checksum(AVFormatContext *s, AVIOContext *pb, int64_t crc_offset)
{ {
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
uint32_t checksum = get_checksum(pb); uint32_t checksum = get_checksum(pb);
avio_seek(pb, crc_offset, SEEK_SET); avio_seek(pb, crc_offset, SEEK_SET);
avio_wb32(pb, checksum); avio_wb32(pb, checksum);
@ -92,7 +92,7 @@ static int ogg_write_page(AVFormatContext *s, OGGPage *page, int extra_flags)
avio_wl64(pb, page->granule); avio_wl64(pb, page->granule);
avio_wl32(pb, oggstream->serial_num); avio_wl32(pb, oggstream->serial_num);
avio_wl32(pb, oggstream->page_counter++); avio_wl32(pb, oggstream->page_counter++);
crc_offset = url_ftell(pb); crc_offset = avio_tell(pb);
avio_wl32(pb, 0); // crc avio_wl32(pb, 0); // crc
avio_w8(pb, page->segments_count); avio_w8(pb, page->segments_count);
avio_write(pb, page->segments, page->segments_count); avio_write(pb, page->segments, page->segments_count);

@ -186,7 +186,7 @@ static int str_read_packet(AVFormatContext *s,
if (av_new_packet(pkt, sector_count*VIDEO_DATA_CHUNK_SIZE)) if (av_new_packet(pkt, sector_count*VIDEO_DATA_CHUNK_SIZE))
return AVERROR(EIO); return AVERROR(EIO);
pkt->pos= url_ftell(pb) - RAW_CD_SECTOR_SIZE; pkt->pos= avio_tell(pb) - RAW_CD_SECTOR_SIZE;
pkt->stream_index = pkt->stream_index =
str->channels[channel].video_stream_index; str->channels[channel].video_stream_index;
} }

@ -73,7 +73,7 @@ static int read_part_of_packet(AVFormatContext *s, int64_t *pts,
int64_t pva_pts = AV_NOPTS_VALUE, startpos; int64_t pva_pts = AV_NOPTS_VALUE, startpos;
recover: recover:
startpos = url_ftell(pb); startpos = avio_tell(pb);
syncword = avio_rb16(pb); syncword = avio_rb16(pb);
streamid = avio_r8(pb); streamid = avio_r8(pb);
@ -190,7 +190,7 @@ static int64_t pva_read_timestamp(struct AVFormatContext *s, int stream_index,
continue; continue;
} }
if (streamid - 1 != stream_index || res == AV_NOPTS_VALUE) { if (streamid - 1 != stream_index || res == AV_NOPTS_VALUE) {
*pos = url_ftell(pb) + length; *pos = avio_tell(pb) + length;
continue; continue;
} }
break; break;

@ -165,7 +165,7 @@ static int qcp_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret; return ret;
} }
if (url_ftell(pb) & 1 && avio_r8(pb)) if (avio_tell(pb) & 1 && avio_r8(pb))
av_log(s, AV_LOG_WARNING, "Padding should be 0.\n"); av_log(s, AV_LOG_WARNING, "Padding should be 0.\n");
tag = avio_rl32(pb); tag = avio_rl32(pb);

@ -38,7 +38,7 @@ typedef struct {
static int read_atom(AVFormatContext *s, Atom *atom) static int read_atom(AVFormatContext *s, Atom *atom)
{ {
atom->offset = url_ftell(s->pb); atom->offset = avio_tell(s->pb);
atom->size = avio_rb32(s->pb); atom->size = avio_rb32(s->pb);
if (atom->size < 8) if (atom->size < 8)
return -1; return -1;
@ -175,7 +175,7 @@ static int r3d_read_header(AVFormatContext *s, AVFormatParameters *ap)
return -1; return -1;
} }
s->data_offset = url_ftell(s->pb); s->data_offset = avio_tell(s->pb);
av_dlog(s, "data offset %#llx\n", s->data_offset); av_dlog(s, "data offset %#llx\n", s->data_offset);
if (url_is_streamed(s->pb)) if (url_is_streamed(s->pb))
return 0; return 0;
@ -210,7 +210,7 @@ static int r3d_read_redv(AVFormatContext *s, AVPacket *pkt, Atom *atom)
{ {
AVStream *st = s->streams[0]; AVStream *st = s->streams[0];
int tmp, tmp2; int tmp, tmp2;
uint64_t pos = url_ftell(s->pb); uint64_t pos = avio_tell(s->pb);
unsigned dts; unsigned dts;
int ret; int ret;
@ -241,7 +241,7 @@ static int r3d_read_redv(AVFormatContext *s, AVPacket *pkt, Atom *atom)
tmp = avio_rb32(s->pb); tmp = avio_rb32(s->pb);
av_dlog(s, "metadata len %d\n", tmp); av_dlog(s, "metadata len %d\n", tmp);
} }
tmp = atom->size - 8 - (url_ftell(s->pb) - pos); tmp = atom->size - 8 - (avio_tell(s->pb) - pos);
if (tmp < 0) if (tmp < 0)
return -1; return -1;
ret = av_get_packet(s->pb, pkt, tmp); ret = av_get_packet(s->pb, pkt, tmp);
@ -264,7 +264,7 @@ static int r3d_read_reda(AVFormatContext *s, AVPacket *pkt, Atom *atom)
{ {
AVStream *st = s->streams[1]; AVStream *st = s->streams[1];
int tmp, tmp2, samples, size; int tmp, tmp2, samples, size;
uint64_t pos = url_ftell(s->pb); uint64_t pos = avio_tell(s->pb);
unsigned dts; unsigned dts;
int ret; int ret;
@ -287,7 +287,7 @@ static int r3d_read_reda(AVFormatContext *s, AVPacket *pkt, Atom *atom)
tmp = avio_rb32(s->pb); // unknown tmp = avio_rb32(s->pb); // unknown
av_dlog(s, "unknown %d\n", tmp); av_dlog(s, "unknown %d\n", tmp);
size = atom->size - 8 - (url_ftell(s->pb) - pos); size = atom->size - 8 - (avio_tell(s->pb) - pos);
if (size < 0) if (size < 0)
return -1; return -1;
ret = av_get_packet(s->pb, pkt, size); ret = av_get_packet(s->pb, pkt, size);

@ -80,7 +80,7 @@ int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt)
if (av_new_packet(pkt, size) < 0) if (av_new_packet(pkt, size) < 0)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
pkt->pos= url_ftell(s->pb); pkt->pos= avio_tell(s->pb);
pkt->stream_index = 0; pkt->stream_index = 0;
ret = ffio_read_partial(s->pb, pkt->data, size); ret = ffio_read_partial(s->pb, pkt->data, size);
if (ret < 0) { if (ret < 0) {

@ -305,7 +305,7 @@ rdt_parse_packet (AVFormatContext *ctx, PayloadContext *rdt, AVStream *st,
flags = (flags & RTP_FLAG_KEY) ? 2 : 0; flags = (flags & RTP_FLAG_KEY) ? 2 : 0;
res = ff_rm_parse_packet (rdt->rmctx, &pb, st, rdt->rmst[st->index], len, pkt, res = ff_rm_parse_packet (rdt->rmctx, &pb, st, rdt->rmst[st->index], len, pkt,
&seq, flags, *timestamp); &seq, flags, *timestamp);
pos = url_ftell(&pb); pos = avio_tell(&pb);
if (res < 0) if (res < 0)
return res; return res;
if (res > 0) { if (res > 0) {

@ -324,14 +324,14 @@ int64_t ff_start_tag(AVIOContext *pb, const char *tag)
{ {
ffio_wfourcc(pb, tag); ffio_wfourcc(pb, tag);
avio_wl32(pb, 0); avio_wl32(pb, 0);
return url_ftell(pb); return avio_tell(pb);
} }
void ff_end_tag(AVIOContext *pb, int64_t start) void ff_end_tag(AVIOContext *pb, int64_t start)
{ {
int64_t pos; int64_t pos;
pos = url_ftell(pb); pos = avio_tell(pb);
avio_seek(pb, start - 4, SEEK_SET); avio_seek(pb, start - 4, SEEK_SET);
avio_wl32(pb, (uint32_t)(pos - start)); avio_wl32(pb, (uint32_t)(pos - start));
avio_seek(pb, pos, SEEK_SET); avio_seek(pb, pos, SEEK_SET);

@ -131,17 +131,17 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb,
version = avio_rb16(pb); /* version */ version = avio_rb16(pb); /* version */
if (version == 3) { if (version == 3) {
int header_size = avio_rb16(pb); int header_size = avio_rb16(pb);
int64_t startpos = url_ftell(pb); int64_t startpos = avio_tell(pb);
avio_seek(pb, 14, SEEK_CUR); avio_seek(pb, 14, SEEK_CUR);
rm_read_metadata(s, 0); rm_read_metadata(s, 0);
if ((startpos + header_size) >= url_ftell(pb) + 2) { if ((startpos + header_size) >= avio_tell(pb) + 2) {
// fourcc (should always be "lpcJ") // fourcc (should always be "lpcJ")
avio_r8(pb); avio_r8(pb);
get_str8(pb, buf, sizeof(buf)); get_str8(pb, buf, sizeof(buf));
} }
// Skip extra header crap (this should never happen) // Skip extra header crap (this should never happen)
if ((startpos + header_size) > url_ftell(pb)) if ((startpos + header_size) > avio_tell(pb))
avio_seek(pb, header_size + startpos - url_ftell(pb), SEEK_CUR); avio_seek(pb, header_size + startpos - avio_tell(pb), SEEK_CUR);
st->codec->sample_rate = 8000; st->codec->sample_rate = 8000;
st->codec->channels = 1; st->codec->channels = 1;
st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
@ -273,7 +273,7 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
int ret; int ret;
av_set_pts_info(st, 64, 1, 1000); av_set_pts_info(st, 64, 1, 1000);
codec_pos = url_ftell(pb); codec_pos = avio_tell(pb);
v = avio_rb32(pb); v = avio_rb32(pb);
if (v == MKTAG(0xfd, 'a', 'r', '.')) { if (v == MKTAG(0xfd, 'a', 'r', '.')) {
/* ra type header */ /* ra type header */
@ -301,7 +301,7 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
fps2= avio_rb16(pb); fps2= avio_rb16(pb);
avio_rb16(pb); avio_rb16(pb);
if ((ret = rm_read_extradata(pb, st->codec, codec_data_size - (url_ftell(pb) - codec_pos))) < 0) if ((ret = rm_read_extradata(pb, st->codec, codec_data_size - (avio_tell(pb) - codec_pos))) < 0)
return ret; return ret;
// av_log(s, AV_LOG_DEBUG, "fps= %d fps2= %d\n", fps, fps2); // av_log(s, AV_LOG_DEBUG, "fps= %d fps2= %d\n", fps, fps2);
@ -320,7 +320,7 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
skip: skip:
/* skip codec info */ /* skip codec info */
size = url_ftell(pb) - codec_pos; size = avio_tell(pb) - codec_pos;
avio_seek(pb, codec_data_size - size, SEEK_CUR); avio_seek(pb, codec_data_size - size, SEEK_CUR);
return 0; return 0;
@ -362,7 +362,7 @@ static int rm_read_index(AVFormatContext *s)
} }
skip: skip:
if (next_off && url_ftell(pb) != next_off && if (next_off && avio_tell(pb) != next_off &&
avio_seek(pb, next_off, SEEK_SET) < 0) avio_seek(pb, next_off, SEEK_SET) < 0)
return -1; return -1;
} while (next_off); } while (next_off);
@ -480,7 +480,7 @@ static int rm_read_header(AVFormatContext *s, AVFormatParameters *ap)
avio_rb32(pb); /* next data header */ avio_rb32(pb); /* next data header */
if (!data_off) if (!data_off)
data_off = url_ftell(pb) - 18; data_off = avio_tell(pb) - 18;
if (indx_off && !url_is_streamed(pb) && !(s->flags & AVFMT_FLAG_IGNIDX) && if (indx_off && !url_is_streamed(pb) && !(s->flags & AVFMT_FLAG_IGNIDX) &&
avio_seek(pb, indx_off, SEEK_SET) >= 0) { avio_seek(pb, indx_off, SEEK_SET) >= 0) {
rm_read_index(s); rm_read_index(s);
@ -517,7 +517,7 @@ static int sync(AVFormatContext *s, int64_t *timestamp, int *flags, int *stream_
while(!url_feof(pb)){ while(!url_feof(pb)){
int len, num, i; int len, num, i;
*pos= url_ftell(pb) - 3; *pos= avio_tell(pb) - 3;
if(rm->remaining_len > 0){ if(rm->remaining_len > 0){
num= rm->current_stream; num= rm->current_stream;
len= rm->remaining_len; len= rm->remaining_len;
@ -624,7 +624,7 @@ static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb,
vst->videobufpos = 8*vst->slices + 1; vst->videobufpos = 8*vst->slices + 1;
vst->cur_slice = 0; vst->cur_slice = 0;
vst->curpic_num = pic_num; vst->curpic_num = pic_num;
vst->pktpos = url_ftell(pb); vst->pktpos = avio_tell(pb);
} }
if(type == 2) if(type == 2)
len = FFMIN(len, pos); len = FFMIN(len, pos);
@ -841,7 +841,7 @@ static int rm_read_packet(AVFormatContext *s, AVPacket *pkt)
len = !ast->audio_framesize ? RAW_PACKET_SIZE : len = !ast->audio_framesize ? RAW_PACKET_SIZE :
ast->coded_framesize * ast->sub_packet_h / 2; ast->coded_framesize * ast->sub_packet_h / 2;
flags = (seq++ == 1) ? 2 : 0; flags = (seq++ == 1) ? 2 : 0;
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
} else { } else {
len=sync(s, &timestamp, &flags, &i, &pos); len=sync(s, &timestamp, &flags, &i, &pos);
if (len > 0) if (len > 0)

@ -77,7 +77,7 @@ static int rso_write_trailer(AVFormatContext *s)
int64_t file_size; int64_t file_size;
uint16_t coded_file_size; uint16_t coded_file_size;
file_size = url_ftell(pb); file_size = avio_tell(pb);
if (file_size < 0) if (file_size < 0)
return file_size; return file_size;

@ -114,7 +114,7 @@ int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
if (ret < 0) if (ret < 0)
return ret; return ret;
av_metadata_copy(&s->metadata, rt->asf_ctx->metadata, 0); av_metadata_copy(&s->metadata, rt->asf_ctx->metadata, 0);
rt->asf_pb_pos = url_ftell(&pb); rt->asf_pb_pos = avio_tell(&pb);
av_free(buf); av_free(buf);
rt->asf_ctx->pb = NULL; rt->asf_ctx->pb = NULL;
} }
@ -179,8 +179,8 @@ static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf,
ffio_init_context(pb, buf, len, 0, NULL, NULL, NULL, NULL); ffio_init_context(pb, buf, len, 0, NULL, NULL, NULL, NULL);
while (url_ftell(pb) + 4 < len) { while (avio_tell(pb) + 4 < len) {
int start_off = url_ftell(pb); int start_off = avio_tell(pb);
mflags = avio_r8(pb); mflags = avio_r8(pb);
if (mflags & 0x80) if (mflags & 0x80)
@ -192,7 +192,7 @@ static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf,
avio_seek(pb, 4, SEEK_CUR); avio_seek(pb, 4, SEEK_CUR);
if (mflags & 0x8) /**< has location ID */ if (mflags & 0x8) /**< has location ID */
avio_seek(pb, 4, SEEK_CUR); avio_seek(pb, 4, SEEK_CUR);
off = url_ftell(pb); off = avio_tell(pb);
if (!(mflags & 0x40)) { if (!(mflags & 0x40)) {
/** /**
@ -201,7 +201,7 @@ static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf,
* ASF packet. This is used to spread one ASF packet over * ASF packet. This is used to spread one ASF packet over
* multiple RTP packets. * multiple RTP packets.
*/ */
if (asf->pktbuf && len_off != url_ftell(asf->pktbuf)) { if (asf->pktbuf && len_off != avio_tell(asf->pktbuf)) {
uint8_t *p; uint8_t *p;
url_close_dyn_buf(asf->pktbuf, &p); url_close_dyn_buf(asf->pktbuf, &p);
asf->pktbuf = NULL; asf->pktbuf = NULL;
@ -248,7 +248,7 @@ static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf,
int i; int i;
res = av_read_packet(rt->asf_ctx, pkt); res = av_read_packet(rt->asf_ctx, pkt);
rt->asf_pb_pos = url_ftell(pb); rt->asf_pb_pos = avio_tell(pb);
if (res != 0) if (res != 0)
break; break;
for (i = 0; i < s->nb_streams; i++) { for (i = 0; i < s->nb_streams; i++) {

@ -115,10 +115,10 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
if (pos + data_len > len) if (pos + data_len > len)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
/* TLVs */ /* TLVs */
while (url_ftell(&pb) + 4 < pos + data_len) { while (avio_tell(&pb) + 4 < pos + data_len) {
int tlv_len = avio_rb16(&pb); int tlv_len = avio_rb16(&pb);
tag = avio_rl16(&pb); tag = avio_rl16(&pb);
if (url_ftell(&pb) + tlv_len > pos + data_len) if (avio_tell(&pb) + tlv_len > pos + data_len)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
#define MKTAG16(a,b) MKTAG(a,b,0,0) #define MKTAG16(a,b) MKTAG(a,b,0,0)
@ -155,7 +155,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
} }
/* 32-bit alignment */ /* 32-bit alignment */
avio_seek(&pb, ((url_ftell(&pb) + 3) & ~3) - url_ftell(&pb), SEEK_CUR); avio_seek(&pb, ((avio_tell(&pb) + 3) & ~3) - avio_tell(&pb), SEEK_CUR);
} else } else
avio_seek(&pb, 4, SEEK_SET); avio_seek(&pb, 4, SEEK_SET);
@ -164,7 +164,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
return AVERROR_NOTSUPP; return AVERROR_NOTSUPP;
} }
alen = len - url_ftell(&pb); alen = len - avio_tell(&pb);
if (alen <= 0) if (alen <= 0)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
@ -182,7 +182,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
} }
if (!qt->pkt.data) if (!qt->pkt.data)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
memcpy(qt->pkt.data + qt->pkt.size, buf + url_ftell(&pb), alen); memcpy(qt->pkt.data + qt->pkt.size, buf + avio_tell(&pb), alen);
qt->pkt.size += alen; qt->pkt.size += alen;
if (has_marker_bit) { if (has_marker_bit) {
*pkt = qt->pkt; *pkt = qt->pkt;
@ -203,7 +203,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
qt->remaining = (alen / qt->bytes_per_frame) - 1; qt->remaining = (alen / qt->bytes_per_frame) - 1;
if (av_new_packet(pkt, qt->bytes_per_frame)) if (av_new_packet(pkt, qt->bytes_per_frame))
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
memcpy(pkt->data, buf + url_ftell(&pb), qt->bytes_per_frame); memcpy(pkt->data, buf + avio_tell(&pb), qt->bytes_per_frame);
pkt->flags = flags & RTP_FLAG_KEY ? AV_PKT_FLAG_KEY : 0; pkt->flags = flags & RTP_FLAG_KEY ? AV_PKT_FLAG_KEY : 0;
pkt->stream_index = st->index; pkt->stream_index = st->index;
if (qt->remaining > 0) { if (qt->remaining > 0) {
@ -215,7 +215,7 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
} }
qt->pkt.size = qt->remaining * qt->bytes_per_frame; qt->pkt.size = qt->remaining * qt->bytes_per_frame;
memcpy(qt->pkt.data, memcpy(qt->pkt.data,
buf + url_ftell(&pb) + qt->bytes_per_frame, buf + avio_tell(&pb) + qt->bytes_per_frame,
qt->remaining * qt->bytes_per_frame); qt->remaining * qt->bytes_per_frame);
qt->pkt.flags = pkt->flags; qt->pkt.flags = pkt->flags;
return 1; return 1;

@ -405,7 +405,7 @@ AVParserState *ff_store_parser_state(AVFormatContext *s)
return NULL; return NULL;
} }
state->fpos = url_ftell(s->pb); state->fpos = avio_tell(s->pb);
// copy context structures // copy context structures
state->cur_st = s->cur_st; state->cur_st = s->cur_st;

@ -222,7 +222,7 @@ static int film_read_packet(AVFormatContext *s,
/* do a special song and dance when loading FILM Cinepak chunks */ /* do a special song and dance when loading FILM Cinepak chunks */
if ((sample->stream == film->video_stream_index) && if ((sample->stream == film->video_stream_index) &&
(film->video_type == CODEC_ID_CINEPAK)) { (film->video_type == CODEC_ID_CINEPAK)) {
pkt->pos= url_ftell(pb); pkt->pos= avio_tell(pb);
if (av_new_packet(pkt, sample->sample_size)) if (av_new_packet(pkt, sample->sample_size))
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
avio_read(pb, pkt->data, sample->sample_size); avio_read(pb, pkt->data, sample->sample_size);
@ -240,7 +240,7 @@ static int film_read_packet(AVFormatContext *s,
film->stereo_buffer = av_malloc(film->stereo_buffer_size); film->stereo_buffer = av_malloc(film->stereo_buffer_size);
} }
pkt->pos= url_ftell(pb); pkt->pos= avio_tell(pb);
ret = avio_read(pb, film->stereo_buffer, sample->sample_size); ret = avio_read(pb, film->stereo_buffer, sample->sample_size);
if (ret != sample->sample_size) if (ret != sample->sample_size)
ret = AVERROR(EIO); ret = AVERROR(EIO);

@ -247,7 +247,7 @@ static int vmd_read_packet(AVFormatContext *s,
if (av_new_packet(pkt, frame->frame_size + BYTES_PER_FRAME_RECORD)) if (av_new_packet(pkt, frame->frame_size + BYTES_PER_FRAME_RECORD))
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
pkt->pos= url_ftell(pb); pkt->pos= avio_tell(pb);
memcpy(pkt->data, frame->frame_record, BYTES_PER_FRAME_RECORD); memcpy(pkt->data, frame->frame_record, BYTES_PER_FRAME_RECORD);
if(vmd->is_indeo3) if(vmd->is_indeo3)
ret = avio_read(pb, pkt->data, frame->frame_size); ret = avio_read(pb, pkt->data, frame->frame_size);

@ -219,7 +219,7 @@ static int smacker_read_header(AVFormatContext *s, AVFormatParameters *ap)
((int32_t*)st->codec->extradata)[3] = av_le2ne32(smk->type_size); ((int32_t*)st->codec->extradata)[3] = av_le2ne32(smk->type_size);
smk->curstream = -1; smk->curstream = -1;
smk->nextpos = url_ftell(pb); smk->nextpos = avio_tell(pb);
return 0; return 0;
} }
@ -244,7 +244,7 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt)
frame_size = smk->frm_size[smk->cur_frame] & (~3); frame_size = smk->frm_size[smk->cur_frame] & (~3);
flags = smk->frm_flags[smk->cur_frame]; flags = smk->frm_flags[smk->cur_frame];
/* handle palette change event */ /* handle palette change event */
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
if(flags & SMACKER_PAL){ if(flags & SMACKER_PAL){
int size, sz, t, off, j, pos; int size, sz, t, off, j, pos;
uint8_t *pal = smk->pal; uint8_t *pal = smk->pal;
@ -256,7 +256,7 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt)
frame_size -= size; frame_size -= size;
frame_size--; frame_size--;
sz = 0; sz = 0;
pos = url_ftell(s->pb) + size; pos = avio_tell(s->pb) + size;
while(sz < 256){ while(sz < 256){
t = avio_r8(s->pb); t = avio_r8(s->pb);
if(t & 0x80){ /* skip palette entries */ if(t & 0x80){ /* skip palette entries */
@ -313,7 +313,7 @@ static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt)
pkt->stream_index = smk->videoindex; pkt->stream_index = smk->videoindex;
pkt->size = ret + 769; pkt->size = ret + 769;
smk->cur_frame++; smk->cur_frame++;
smk->nextpos = url_ftell(s->pb); smk->nextpos = avio_tell(s->pb);
} else { } else {
if (av_new_packet(pkt, smk->buf_sizes[smk->curstream])) if (av_new_packet(pkt, smk->buf_sizes[smk->curstream]))
return AVERROR(ENOMEM); return AVERROR(ENOMEM);

@ -98,7 +98,7 @@ static int sox_write_trailer(AVFormatContext *s)
if (!url_is_streamed(s->pb)) { if (!url_is_streamed(s->pb)) {
/* update number of samples */ /* update number of samples */
int64_t file_size = url_ftell(pb); int64_t file_size = avio_tell(pb);
int64_t num_samples = (file_size - sox->header_size - 4LL) >> 2LL; int64_t num_samples = (file_size - sox->header_size - 4LL) >> 2LL;
avio_seek(pb, 8, SEEK_SET); avio_seek(pb, 8, SEEK_SET);
if (enc->codec_id == CODEC_ID_PCM_S32LE) { if (enc->codec_id == CODEC_ID_PCM_S32LE) {

@ -185,7 +185,7 @@ static int spdif_read_packet(AVFormatContext *s, AVPacket *pkt)
if (ret) if (ret)
return ret; return ret;
pkt->pos = url_ftell(pb) - BURST_HEADER_SIZE; pkt->pos = avio_tell(pb) - BURST_HEADER_SIZE;
if (avio_read(pb, pkt->data, pkt->size) < pkt->size) { if (avio_read(pb, pkt->data, pkt->size) < pkt->size) {
av_free_packet(pkt); av_free_packet(pkt);

@ -75,7 +75,7 @@ static inline int is_eol(char c)
static int srt_read_packet(AVFormatContext *s, AVPacket *pkt) static int srt_read_packet(AVFormatContext *s, AVPacket *pkt)
{ {
char buffer[2048], *ptr = buffer, *ptr2; char buffer[2048], *ptr = buffer, *ptr2;
int64_t pos = url_ftell(s->pb); int64_t pos = avio_tell(s->pb);
int res = AVERROR_EOF; int res = AVERROR_EOF;
do { do {

@ -87,7 +87,7 @@ static int swf_read_packet(AVFormatContext *s, AVPacket *pkt)
int tag, len, i, frame, v; int tag, len, i, frame, v;
for(;;) { for(;;) {
uint64_t pos = url_ftell(pb); uint64_t pos = avio_tell(pb);
tag = get_swf_tag(pb, &len); tag = get_swf_tag(pb, &len);
if (tag < 0) if (tag < 0)
return AVERROR(EIO); return AVERROR(EIO);

@ -29,7 +29,7 @@ static void put_swf_tag(AVFormatContext *s, int tag)
SWFContext *swf = s->priv_data; SWFContext *swf = s->priv_data;
AVIOContext *pb = s->pb; AVIOContext *pb = s->pb;
swf->tag_pos = url_ftell(pb); swf->tag_pos = avio_tell(pb);
swf->tag = tag; swf->tag = tag;
/* reserve some room for the tag */ /* reserve some room for the tag */
if (tag & TAG_LONG) { if (tag & TAG_LONG) {
@ -47,7 +47,7 @@ static void put_swf_end_tag(AVFormatContext *s)
int64_t pos; int64_t pos;
int tag_len, tag; int tag_len, tag;
pos = url_ftell(pb); pos = avio_tell(pb);
tag_len = pos - swf->tag_pos - 2; tag_len = pos - swf->tag_pos - 2;
tag = swf->tag; tag = swf->tag;
avio_seek(pb, swf->tag_pos, SEEK_SET); avio_seek(pb, swf->tag_pos, SEEK_SET);
@ -246,7 +246,7 @@ static int swf_write_header(AVFormatContext *s)
put_swf_rect(pb, 0, width * 20, 0, height * 20); put_swf_rect(pb, 0, width * 20, 0, height * 20);
avio_wl16(pb, (rate * 256) / rate_base); /* frame rate */ avio_wl16(pb, (rate * 256) / rate_base); /* frame rate */
swf->duration_pos = url_ftell(pb); swf->duration_pos = avio_tell(pb);
avio_wl16(pb, (uint16_t)(DUMMY_DURATION * (int64_t)rate / rate_base)); /* frame count */ avio_wl16(pb, (uint16_t)(DUMMY_DURATION * (int64_t)rate / rate_base)); /* frame count */
/* avm2/swf v9 (also v8?) files require a file attribute tag */ /* avm2/swf v9 (also v8?) files require a file attribute tag */
@ -346,7 +346,7 @@ static int swf_write_video(AVFormatContext *s,
/* create a new video object */ /* create a new video object */
put_swf_tag(s, TAG_VIDEOSTREAM); put_swf_tag(s, TAG_VIDEOSTREAM);
avio_wl16(pb, VIDEO_ID); avio_wl16(pb, VIDEO_ID);
swf->vframes_pos = url_ftell(pb); swf->vframes_pos = avio_tell(pb);
avio_wl16(pb, 15000); /* hard flash player limit */ avio_wl16(pb, 15000); /* hard flash player limit */
avio_wl16(pb, enc->width); avio_wl16(pb, enc->width);
avio_wl16(pb, enc->height); avio_wl16(pb, enc->height);
@ -493,7 +493,7 @@ static int swf_write_trailer(AVFormatContext *s)
/* patch file size and number of frames if not streamed */ /* patch file size and number of frames if not streamed */
if (!url_is_streamed(s->pb) && video_enc) { if (!url_is_streamed(s->pb) && video_enc) {
file_size = url_ftell(pb); file_size = avio_tell(pb);
avio_seek(pb, 4, SEEK_SET); avio_seek(pb, 4, SEEK_SET);
avio_wl32(pb, file_size); avio_wl32(pb, file_size);
avio_seek(pb, swf->duration_pos, SEEK_SET); avio_seek(pb, swf->duration_pos, SEEK_SET);

@ -46,7 +46,7 @@ static int tta_read_header(AVFormatContext *s, AVFormatParameters *ap)
if (!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX)) if (!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX))
ff_id3v1_read(s); ff_id3v1_read(s);
start_offset = url_ftell(s->pb); start_offset = avio_tell(s->pb);
if (avio_rl32(s->pb) != AV_RL32("TTA1")) if (avio_rl32(s->pb) != AV_RL32("TTA1"))
return -1; // not tta file return -1; // not tta file
@ -84,7 +84,7 @@ static int tta_read_header(AVFormatContext *s, AVFormatParameters *ap)
st->start_time = 0; st->start_time = 0;
st->duration = datalen; st->duration = datalen;
framepos = url_ftell(s->pb) + 4*c->totalframes + 4; framepos = avio_tell(s->pb) + 4*c->totalframes + 4;
for (i = 0; i < c->totalframes; i++) { for (i = 0; i < c->totalframes; i++) {
uint32_t size = avio_rl32(s->pb); uint32_t size = avio_rl32(s->pb);
@ -99,7 +99,7 @@ static int tta_read_header(AVFormatContext *s, AVFormatParameters *ap)
st->codec->sample_rate = samplerate; st->codec->sample_rate = samplerate;
st->codec->bits_per_coded_sample = bps; st->codec->bits_per_coded_sample = bps;
st->codec->extradata_size = url_ftell(s->pb) - start_offset; st->codec->extradata_size = avio_tell(s->pb) - start_offset;
if(st->codec->extradata_size+FF_INPUT_BUFFER_PADDING_SIZE <= (unsigned)st->codec->extradata_size){ if(st->codec->extradata_size+FF_INPUT_BUFFER_PADDING_SIZE <= (unsigned)st->codec->extradata_size){
//this check is redundant as avio_read should fail //this check is redundant as avio_read should fail
av_log(s, AV_LOG_ERROR, "extradata_size too large\n"); av_log(s, AV_LOG_ERROR, "extradata_size too large\n");

@ -112,7 +112,7 @@ static int read_packet(AVFormatContext *avctx, AVPacket *pkt)
n = s->chars_per_frame; n = s->chars_per_frame;
if (s->fsize) { if (s->fsize) {
// ignore metadata buffer // ignore metadata buffer
uint64_t p = url_ftell(avctx->pb); uint64_t p = avio_tell(avctx->pb);
if (p + s->chars_per_frame > s->fsize) if (p + s->chars_per_frame > s->fsize)
n = s->fsize - p; n = s->fsize - p;
} }

@ -330,7 +330,7 @@ int av_get_packet(AVIOContext *s, AVPacket *pkt, int size)
if(ret<0) if(ret<0)
return ret; return ret;
pkt->pos= url_ftell(s); pkt->pos= avio_tell(s);
ret= avio_read(s, pkt->data, size); ret= avio_read(s, pkt->data, size);
if(ret<=0) if(ret<=0)
@ -490,7 +490,7 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
} }
if (pb && !ic->data_offset) if (pb && !ic->data_offset)
ic->data_offset = url_ftell(ic->pb); ic->data_offset = avio_tell(ic->pb);
#if FF_API_OLD_METADATA #if FF_API_OLD_METADATA
ff_metadata_demux_compat(ic); ff_metadata_demux_compat(ic);
@ -2212,7 +2212,7 @@ int av_find_stream_info(AVFormatContext *ic)
int i, count, ret, read_size, j; int i, count, ret, read_size, j;
AVStream *st; AVStream *st;
AVPacket pkt1, *pkt; AVPacket pkt1, *pkt;
int64_t old_offset = url_ftell(ic->pb); int64_t old_offset = avio_tell(ic->pb);
for(i=0;i<ic->nb_streams;i++) { for(i=0;i<ic->nb_streams;i++) {
AVCodec *codec; AVCodec *codec;

@ -80,7 +80,7 @@ voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size)
if (!voc->remaining_size) { if (!voc->remaining_size) {
if (url_is_streamed(s->pb)) if (url_is_streamed(s->pb))
return AVERROR(EIO); return AVERROR(EIO);
voc->remaining_size = url_fsize(pb) - url_ftell(pb); voc->remaining_size = url_fsize(pb) - avio_tell(pb);
} }
max_size -= 4; max_size -= 4;

@ -200,7 +200,7 @@ static int vqf_read_packet(AVFormatContext *s, AVPacket *pkt)
int ret; int ret;
int size = (c->frame_bit_len - c->remaining_bits + 7)>>3; int size = (c->frame_bit_len - c->remaining_bits + 7)>>3;
pkt->pos = url_ftell(s->pb); pkt->pos = avio_tell(s->pb);
pkt->stream_index = 0; pkt->stream_index = 0;
if (av_new_packet(pkt, size+2) < 0) if (av_new_packet(pkt, size+2) < 0)

@ -102,7 +102,7 @@ static int wav_write_trailer(AVFormatContext *s)
ff_end_tag(pb, wav->data); ff_end_tag(pb, wav->data);
/* update file size */ /* update file size */
file_size = url_ftell(pb); file_size = avio_tell(pb);
avio_seek(pb, 4, SEEK_SET); avio_seek(pb, 4, SEEK_SET);
avio_wl32(pb, (uint32_t)(file_size - 8)); avio_wl32(pb, (uint32_t)(file_size - 8));
avio_seek(pb, file_size, SEEK_SET); avio_seek(pb, file_size, SEEK_SET);
@ -252,7 +252,7 @@ static int wav_read_header(AVFormatContext *s,
if (!size) { if (!size) {
wav->data_end = INT64_MAX; wav->data_end = INT64_MAX;
} else } else
wav->data_end= url_ftell(pb) + size; wav->data_end= avio_tell(pb) + size;
if (!sample_count && st->codec->channels && av_get_bits_per_sample(st->codec->codec_id)) if (!sample_count && st->codec->channels && av_get_bits_per_sample(st->codec->codec_id))
sample_count = (size<<3) / (st->codec->channels * (uint64_t)av_get_bits_per_sample(st->codec->codec_id)); sample_count = (size<<3) / (st->codec->channels * (uint64_t)av_get_bits_per_sample(st->codec->codec_id));
@ -296,7 +296,7 @@ static int wav_read_packet(AVFormatContext *s,
st = s->streams[0]; st = s->streams[0];
left = wav->data_end - url_ftell(s->pb); left = wav->data_end - avio_tell(s->pb);
if (left <= 0){ if (left <= 0){
if (CONFIG_W64_DEMUXER && wav->w64) if (CONFIG_W64_DEMUXER && wav->w64)
left = find_guid(s->pb, guid_data) - 24; left = find_guid(s->pb, guid_data) - 24;
@ -304,7 +304,7 @@ static int wav_read_packet(AVFormatContext *s,
left = find_tag(s->pb, MKTAG('d', 'a', 't', 'a')); left = find_tag(s->pb, MKTAG('d', 'a', 't', 'a'));
if (left < 0) if (left < 0)
return AVERROR_EOF; return AVERROR_EOF;
wav->data_end= url_ftell(s->pb) + left; wav->data_end= avio_tell(s->pb) + left;
} }
size = MAX_SIZE; size = MAX_SIZE;
@ -421,7 +421,7 @@ static int w64_read_header(AVFormatContext *s, AVFormatParameters *ap)
av_log(s, AV_LOG_ERROR, "could not find data guid\n"); av_log(s, AV_LOG_ERROR, "could not find data guid\n");
return -1; return -1;
} }
wav->data_end = url_ftell(pb) + size - 24; wav->data_end = avio_tell(pb) + size - 24;
wav->w64 = 1; wav->w64 = 1;
return 0; return 0;

@ -468,7 +468,7 @@ static void get_attachment(AVFormatContext *s, AVIOContext *pb, int length)
char description[1024]; char description[1024];
unsigned int filesize; unsigned int filesize;
AVStream *st; AVStream *st;
int64_t pos = url_ftell(pb); int64_t pos = avio_tell(pb);
avio_get_str16le(pb, INT_MAX, mime, sizeof(mime)); avio_get_str16le(pb, INT_MAX, mime, sizeof(mime));
if (strcmp(mime, "image/jpeg")) if (strcmp(mime, "image/jpeg"))
@ -980,7 +980,7 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap)
return ret; return ret;
avio_seek(wtv->pb, -32, SEEK_CUR); avio_seek(wtv->pb, -32, SEEK_CUR);
timeline_pos = url_ftell(s->pb); // save before opening another file timeline_pos = avio_tell(s->pb); // save before opening another file
/* read metadata */ /* read metadata */
pb = wtvfile_open(s, root, root_size, table_0_entries_legacy_attrib_le16); pb = wtvfile_open(s, root, root_size, table_0_entries_legacy_attrib_le16);

@ -84,7 +84,7 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, int appen
int rate, bpp, chan; int rate, bpp, chan;
uint32_t chmask; uint32_t chmask;
wc->pos = url_ftell(pb); wc->pos = avio_tell(pb);
if(!append){ if(!append){
tag = avio_rl32(pb); tag = avio_rl32(pb);
if (tag != MKTAG('w', 'v', 'p', 'k')) if (tag != MKTAG('w', 'v', 'p', 'k'))
@ -120,12 +120,12 @@ static int wv_read_block_header(AVFormatContext *ctx, AVIOContext *pb, int appen
chmask = wc->chmask; chmask = wc->chmask;
} }
if((rate == -1 || !chan) && !wc->block_parsed){ if((rate == -1 || !chan) && !wc->block_parsed){
int64_t block_end = url_ftell(pb) + wc->blksize - 24; int64_t block_end = avio_tell(pb) + wc->blksize - 24;
if(url_is_streamed(pb)){ if(url_is_streamed(pb)){
av_log(ctx, AV_LOG_ERROR, "Cannot determine additional parameters\n"); av_log(ctx, AV_LOG_ERROR, "Cannot determine additional parameters\n");
return -1; return -1;
} }
while(url_ftell(pb) < block_end){ while(avio_tell(pb) < block_end){
int id, size; int id, size;
id = avio_r8(pb); id = avio_r8(pb);
size = (id & 0x80) ? avio_rl24(pb) : avio_r8(pb); size = (id & 0x80) ? avio_rl24(pb) : avio_r8(pb);
@ -224,7 +224,7 @@ static int wv_read_header(AVFormatContext *s,
st->duration = wc->samples; st->duration = wc->samples;
if(!url_is_streamed(s->pb)) { if(!url_is_streamed(s->pb)) {
int64_t cur = url_ftell(s->pb); int64_t cur = avio_tell(s->pb);
ff_ape_parse_tag(s); ff_ape_parse_tag(s);
if(!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX)) if(!av_metadata_get(s->metadata, "", NULL, AV_METADATA_IGNORE_SUFFIX))
ff_id3v1_read(s); ff_id3v1_read(s);
@ -327,7 +327,7 @@ static int wv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp,
if(timestamp < 0 || timestamp >= s->duration) if(timestamp < 0 || timestamp >= s->duration)
return -1; return -1;
pos = url_ftell(s->pb); pos = avio_tell(s->pb);
do{ do{
ret = av_read_frame(s, pkt); ret = av_read_frame(s, pkt);
if (ret < 0){ if (ret < 0){

@ -136,7 +136,7 @@ static int yop_read_packet(AVFormatContext *s, AVPacket *pkt)
if (ret < 0) if (ret < 0)
return ret; return ret;
yop->video_packet.pos = url_ftell(pb); yop->video_packet.pos = avio_tell(pb);
ret = avio_read(pb, yop->video_packet.data, yop->palette_size); ret = avio_read(pb, yop->video_packet.data, yop->palette_size);
if (ret < 0) { if (ret < 0) {

Loading…
Cancel
Save