Mercurial > libavformat.hg
comparison mov.c @ 2771:d52c718e83f9 libavformat
Use dynamically allocated ByteIOContext in AVFormatContext
patch by: Bj«Órn Axelsson, bjorn d axelsson a intinor d se
thread: [PATCH] Remove static ByteIOContexts, 06 nov 2007
author | andoma |
---|---|
date | Wed, 21 Nov 2007 07:41:00 +0000 |
parents | 7782a46ddbf5 |
children | b556182542cb |
comparison
equal
deleted
inserted
replaced
2770:a7e42cf4b364 | 2771:d52c718e83f9 |
---|---|
1421 } | 1421 } |
1422 | 1422 |
1423 static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap) | 1423 static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap) |
1424 { | 1424 { |
1425 MOVContext *mov = s->priv_data; | 1425 MOVContext *mov = s->priv_data; |
1426 ByteIOContext *pb = &s->pb; | 1426 ByteIOContext *pb = s->pb; |
1427 int i, err; | 1427 int i, err; |
1428 MOV_atom_t atom = { 0, 0, 0 }; | 1428 MOV_atom_t atom = { 0, 0, 0 }; |
1429 | 1429 |
1430 mov->fc = s; | 1430 mov->fc = s; |
1431 mov->parse_table = mov_default_parse_table; | 1431 mov->parse_table = mov_default_parse_table; |
1514 } | 1514 } |
1515 if (!sample) | 1515 if (!sample) |
1516 return -1; | 1516 return -1; |
1517 /* must be done just before reading, to avoid infinite loop on sample */ | 1517 /* must be done just before reading, to avoid infinite loop on sample */ |
1518 sc->current_sample++; | 1518 sc->current_sample++; |
1519 if (sample->pos >= url_fsize(&s->pb)) { | 1519 if (sample->pos >= url_fsize(s->pb)) { |
1520 av_log(mov->fc, AV_LOG_ERROR, "stream %d, offset 0x%"PRIx64": partial file\n", sc->ffindex, sample->pos); | 1520 av_log(mov->fc, AV_LOG_ERROR, "stream %d, offset 0x%"PRIx64": partial file\n", sc->ffindex, sample->pos); |
1521 return -1; | 1521 return -1; |
1522 } | 1522 } |
1523 #ifdef CONFIG_DV_DEMUXER | 1523 #ifdef CONFIG_DV_DEMUXER |
1524 if (sc->dv_audio_container) { | 1524 if (sc->dv_audio_container) { |
1525 dv_get_packet(mov->dv_demux, pkt); | 1525 dv_get_packet(mov->dv_demux, pkt); |
1526 dprintf(s, "dv audio pkt size %d\n", pkt->size); | 1526 dprintf(s, "dv audio pkt size %d\n", pkt->size); |
1527 } else { | 1527 } else { |
1528 #endif | 1528 #endif |
1529 url_fseek(&s->pb, sample->pos, SEEK_SET); | 1529 url_fseek(s->pb, sample->pos, SEEK_SET); |
1530 av_get_packet(&s->pb, pkt, sample->size); | 1530 av_get_packet(s->pb, pkt, sample->size); |
1531 #ifdef CONFIG_DV_DEMUXER | 1531 #ifdef CONFIG_DV_DEMUXER |
1532 if (mov->dv_demux) { | 1532 if (mov->dv_demux) { |
1533 void *pkt_destruct_func = pkt->destruct; | 1533 void *pkt_destruct_func = pkt->destruct; |
1534 dv_produce_packet(mov->dv_demux, pkt, pkt->data, pkt->size); | 1534 dv_produce_packet(mov->dv_demux, pkt, pkt->data, pkt->size); |
1535 pkt->destruct = pkt_destruct_func; | 1535 pkt->destruct = pkt_destruct_func; |