remove no more needed MOVAtom.offset field

Originally committed as revision 21023 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Baptiste Coudurier 15 years ago
parent 7ead7e2181
commit cb41b2b6e0
  1. 1
      libavformat/isom.h
  2. 13
      libavformat/mov.c

@ -64,7 +64,6 @@ typedef struct {
typedef struct { typedef struct {
uint32_t type; uint32_t type;
int64_t offset;
int64_t size; /* total size (excluding the size and type fields) */ int64_t size; /* total size (excluding the size and type fields) */
} MOVAtom; } MOVAtom;

@ -183,8 +183,6 @@ static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
int i; int i;
int err = 0; int err = 0;
a.offset = atom.offset;
if (atom.size < 0) if (atom.size < 0)
atom.size = INT64_MAX; atom.size = INT64_MAX;
while(((total_size + 8) < atom.size) && !url_feof(pb) && !err) { while(((total_size + 8) < atom.size) && !url_feof(pb) && !err) {
@ -196,12 +194,10 @@ static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
a.type = get_le32(pb); a.type = get_le32(pb);
} }
total_size += 8; total_size += 8;
a.offset += 8;
dprintf(c->fc, "type: %08x %.4s sz: %"PRIx64" %"PRIx64" %"PRIx64"\n", dprintf(c->fc, "type: %08x %.4s sz: %"PRIx64" %"PRIx64" %"PRIx64"\n",
a.type, (char*)&a.type, a.size, atom.size, total_size); a.type, (char*)&a.type, a.size, atom.size, total_size);
if (a.size == 1) { /* 64 bit extended size */ if (a.size == 1) { /* 64 bit extended size */
a.size = get_be64(pb) - 8; a.size = get_be64(pb) - 8;
a.offset += 8;
total_size += 8; total_size += 8;
} }
if (a.size == 0) { if (a.size == 0) {
@ -238,7 +234,6 @@ static int mov_read_default(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
url_fskip(pb, left); url_fskip(pb, left);
} }
a.offset += a.size;
total_size += a.size; total_size += a.size;
} }
@ -862,7 +857,7 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
//Parsing Sample description table //Parsing Sample description table
enum CodecID id; enum CodecID id;
int dref_id = 1; int dref_id = 1;
MOVAtom a = { 0, 0, 0 }; MOVAtom a = { 0 };
int64_t start_pos = url_ftell(pb); int64_t start_pos = url_ftell(pb);
int size = get_be32(pb); /* size */ int size = get_be32(pb); /* size */
uint32_t format = get_le32(pb); /* data format */ uint32_t format = get_le32(pb); /* data format */
@ -1935,7 +1930,6 @@ static int mov_read_wide(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
return 0; return 0;
} }
atom.type = get_le32(pb); atom.type = get_le32(pb);
atom.offset += 8;
atom.size -= 8; atom.size -= 8;
if (atom.type != MKTAG('m','d','a','t')) { if (atom.type != MKTAG('m','d','a','t')) {
url_fskip(pb, atom.size); url_fskip(pb, atom.size);
@ -1981,7 +1975,6 @@ static int mov_read_cmov(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
if(init_put_byte(&ctx, moov_data, moov_len, 0, NULL, NULL, NULL, NULL) != 0) if(init_put_byte(&ctx, moov_data, moov_len, 0, NULL, NULL, NULL, NULL) != 0)
goto free_and_return; goto free_and_return;
atom.type = MKTAG('m','o','o','v'); atom.type = MKTAG('m','o','o','v');
atom.offset = 0;
atom.size = moov_len; atom.size = moov_len;
#ifdef DEBUG #ifdef DEBUG
// { int fd = open("/tmp/uncompheader.mov", O_WRONLY | O_CREAT); write(fd, moov_data, moov_len); close(fd); } // { int fd = open("/tmp/uncompheader.mov", O_WRONLY | O_CREAT); write(fd, moov_data, moov_len); close(fd); }
@ -2133,7 +2126,7 @@ static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap)
MOVContext *mov = s->priv_data; MOVContext *mov = s->priv_data;
ByteIOContext *pb = s->pb; ByteIOContext *pb = s->pb;
int err; int err;
MOVAtom atom = { 0, 0, 0 }; MOVAtom atom = { 0 };
mov->fc = s; mov->fc = s;
/* .mov and .mp4 aren't streamable anyway (only progressive download if moov is before mdat) */ /* .mov and .mp4 aren't streamable anyway (only progressive download if moov is before mdat) */
@ -2194,7 +2187,7 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
if (!sample) { if (!sample) {
mov->found_mdat = 0; mov->found_mdat = 0;
if (!url_is_streamed(s->pb) || if (!url_is_streamed(s->pb) ||
mov_read_default(mov, s->pb, (MOVAtom){ 0, 0, INT64_MAX }) < 0 || mov_read_default(mov, s->pb, (MOVAtom){ 0, INT64_MAX }) < 0 ||
url_feof(s->pb)) url_feof(s->pb))
return AVERROR_EOF; return AVERROR_EOF;
dprintf(s, "read fragments, offset 0x%llx\n", url_ftell(s->pb)); dprintf(s, "read fragments, offset 0x%llx\n", url_ftell(s->pb));

Loading…
Cancel
Save