diff options
Diffstat (limited to 'contrib/ffmpeg/libavformat/wv.c')
-rw-r--r-- | contrib/ffmpeg/libavformat/wv.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/contrib/ffmpeg/libavformat/wv.c b/contrib/ffmpeg/libavformat/wv.c index ed1eefeea..2240dfde2 100644 --- a/contrib/ffmpeg/libavformat/wv.c +++ b/contrib/ffmpeg/libavformat/wv.c @@ -20,7 +20,6 @@ */ #include "avformat.h" -#include "allformats.h" #include "bswap.h" // specs say that maximum block size is 1Mb @@ -86,7 +85,7 @@ static int wv_read_block_header(AVFormatContext *ctx, ByteIOContext *pb) } wc->blksize = size; ver = get_le16(pb); - if(ver < 0x402 || ver > 0x40F){ + if(ver < 0x402 || ver > 0x410){ av_log(ctx, AV_LOG_ERROR, "Unsupported version %03X\n", ver); return -1; } @@ -105,10 +104,6 @@ static int wv_read_block_header(AVFormatContext *ctx, ByteIOContext *pb) av_log(ctx, AV_LOG_ERROR, "Hybrid coding mode is not supported\n"); return -1; } - if(wc->flags & WV_INT32){ - av_log(ctx, AV_LOG_ERROR, "Integer point data is not supported\n"); - return -1; - } bpp = ((wc->flags & 3) + 1) << 3; chan = 1 + !(wc->flags & WV_MONO); @@ -140,7 +135,7 @@ static int wv_read_block_header(AVFormatContext *ctx, ByteIOContext *pb) static int wv_read_header(AVFormatContext *s, AVFormatParameters *ap) { - ByteIOContext *pb = &s->pb; + ByteIOContext *pb = s->pb; WVContext *wc = s->priv_data; AVStream *st; @@ -169,20 +164,20 @@ static int wv_read_packet(AVFormatContext *s, WVContext *wc = s->priv_data; int ret; - if (url_feof(&s->pb)) + if (url_feof(s->pb)) return AVERROR(EIO); if(wc->block_parsed){ - if(wv_read_block_header(s, &s->pb) < 0) + if(wv_read_block_header(s, s->pb) < 0) return -1; } if(av_new_packet(pkt, wc->blksize + WV_EXTRA_SIZE) < 0) - return AVERROR_NOMEM; + return AVERROR(ENOMEM); memcpy(pkt->data, wc->extra, WV_EXTRA_SIZE); - ret = get_buffer(&s->pb, pkt->data + WV_EXTRA_SIZE, wc->blksize); + ret = get_buffer(s->pb, pkt->data + WV_EXTRA_SIZE, wc->blksize); if(ret != wc->blksize){ av_free_packet(pkt); - return AVERROR_IO; + return AVERROR(EIO); } pkt->stream_index = 0; wc->block_parsed = 1; @@ -209,18 +204,18 @@ static int wv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, /* if found, seek there */ if (index >= 0){ wc->block_parsed = 1; - url_fseek(&s->pb, st->index_entries[index].pos, SEEK_SET); + url_fseek(s->pb, st->index_entries[index].pos, SEEK_SET); return 0; } /* if timestamp is out of bounds, return error */ if(timestamp < 0 || timestamp >= s->duration) return -1; - pos = url_ftell(&s->pb); + pos = url_ftell(s->pb); do{ ret = av_read_frame(s, pkt); if (ret < 0){ - url_fseek(&s->pb, pos, SEEK_SET); + url_fseek(s->pb, pos, SEEK_SET); return -1; } pts = pkt->pts; |