Merge commit '8a2250344b19a343d830a902dbcf4c0b929ea49b'

* commit '8a2250344b19a343d830a902dbcf4c0b929ea49b':
  jv: detect partial packets in the demuxer

Conflicts:
	libavformat/jvdec.c

See: 9d0c71e5e34dec2c6246bf47da8d9674c92f85c1
See: b948ab8132e24d215072120e210139dc456d4997
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-02-14 01:47:06 +01:00
commit abb6821e43
2 changed files with 12 additions and 7 deletions

View File

@ -184,17 +184,22 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
case JV_VIDEO: case JV_VIDEO:
jv->state++; jv->state++;
if (jvf->video_size || jvf->palette_size) { if (jvf->video_size || jvf->palette_size) {
int ret;
int size = jvf->video_size + jvf->palette_size; int size = jvf->video_size + jvf->palette_size;
if (av_new_packet(pkt, size + JV_PREAMBLE_SIZE)) if (av_new_packet(pkt, size + JV_PREAMBLE_SIZE))
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
AV_WL32(pkt->data, jvf->video_size); AV_WL32(pkt->data, jvf->video_size);
pkt->data[4] = jvf->video_type; pkt->data[4] = jvf->video_type;
if ((size = avio_read(pb, pkt->data + JV_PREAMBLE_SIZE, size)) < 0) ret = avio_read(pb, pkt->data + JV_PREAMBLE_SIZE, size);
return AVERROR(EIO); if (ret < 0)
memset(pkt->data + JV_PREAMBLE_SIZE + size, 0, FF_INPUT_BUFFER_PADDING_SIZE); return ret;
if (ret < size) {
pkt->size = size + JV_PREAMBLE_SIZE; memset(pkt->data + JV_PREAMBLE_SIZE + ret, 0,
FF_INPUT_BUFFER_PADDING_SIZE);
pkt->flags |= AV_PKT_FLAG_CORRUPT;
}
pkt->size = ret + JV_PREAMBLE_SIZE;
pkt->stream_index = 1; pkt->stream_index = 1;
pkt->pts = jv->pts; pkt->pts = jv->pts;
if (jvf->video_type != 1) if (jvf->video_type != 1)

View File

@ -9,7 +9,7 @@
0, 5, 5, 1, 13940, 0x064c350a 0, 5, 5, 1, 13940, 0x064c350a
0, 6, 6, 1, 14418, 0x078d2dd2 0, 6, 6, 1, 14418, 0x078d2dd2
0, 7, 7, 1, 14539, 0x145167ed 0, 7, 7, 1, 14539, 0x145167ed
0, 8, 8, 1, 2552, 0xcf2b1db7 0, 8, 8, 1, 2552, 0xcf2b1db7, F=0x3
1, 131072, 131072, 1764, 1764, 0x30be734d 1, 131072, 131072, 1764, 1764, 0x30be734d
1, 132836, 132836, 1764, 1764, 0xa4c873a7 1, 132836, 132836, 1764, 1764, 0xa4c873a7
1, 134600, 134600, 1764, 1764, 0xd5f17443 1, 134600, 134600, 1764, 1764, 0xd5f17443