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;