* commit '8a2250344b19a343d830a902dbcf4c0b929ea49b': jv: detect partial packets in the demuxer Conflicts: libavformat/jvdec.c See:tags/n2.2-rc19d0c71e5e3See:b948ab8132Merged-by: Michael Niedermayer <michaelni@gmx.at>
| @@ -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; | |||||
| if ((size = avio_read(pb, pkt->data + JV_PREAMBLE_SIZE, size)) < 0) | |||||
| return AVERROR(EIO); | |||||
| memset(pkt->data + JV_PREAMBLE_SIZE + size, 0, FF_INPUT_BUFFER_PADDING_SIZE); | |||||
| pkt->size = size + JV_PREAMBLE_SIZE; | |||||
| pkt->data[4] = jvf->video_type; | |||||
| ret = avio_read(pb, pkt->data + JV_PREAMBLE_SIZE, size); | |||||
| if (ret < 0) | |||||
| return ret; | |||||
| if (ret < 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) | ||||
| @@ -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 | ||||