diff options
author | Peter Ross <pross@xvid.org> | 2011-03-12 13:31:26 +1100 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2011-03-14 08:05:34 -0400 |
commit | 20c1281fe3fb30a8583d3a56ab2978e4ac8e9ee6 (patch) | |
tree | 1ecd51d311afd2f07a7b7ba88536dc8686e33725 | |
parent | 402f9ad5fd13f594719408ca8d4cea8238db1de9 (diff) | |
download | ffmpeg-20c1281fe3fb30a8583d3a56ab2978e4ac8e9ee6.tar.gz |
jv demuxer: calculate palette_size for each frame in read_header
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
-rw-r--r-- | libavformat/jvdec.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libavformat/jvdec.c b/libavformat/jvdec.c index 90b689948f..98fa6e72b2 100644 --- a/libavformat/jvdec.c +++ b/libavformat/jvdec.c @@ -31,7 +31,7 @@ typedef struct { int audio_size; /** audio packet size (bytes) */ int video_size; /** video packet size (bytes) */ - int palette; /** frame contains palette change */ + int palette_size; /** palette size (bytes) */ int video_type; /** per-frame video compression type */ } JVFrame; @@ -113,7 +113,7 @@ static int read_header(AVFormatContext *s, jvf->audio_size = avio_rl32(pb); jvf->video_size = avio_rl32(pb); - jvf->palette = avio_r8(pb); + jvf->palette_size = avio_r8(pb) ? 768 : 0; if (avio_r8(pb)) av_log(s, AV_LOG_WARNING, "unsupported audio codec\n"); jvf->video_type = avio_r8(pb); @@ -152,8 +152,8 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) } case JV_VIDEO: jv->state++; - if (jvf->video_size || jvf->palette) { - int size = jvf->video_size + (jvf->palette ? 768 : 0); + if (jvf->video_size || jvf->palette_size) { + int size = jvf->video_size + jvf->palette_size; if (av_new_packet(pkt, size + 5)) return AVERROR(ENOMEM); @@ -171,7 +171,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) } case JV_PADDING: avio_skip(pb, FFMAX(e->size - jvf->audio_size - jvf->video_size - - (jvf->palette ? 768 : 0), 0)); + - jvf->palette_size, 0)); jv->state = JV_AUDIO; jv->pts++; } |