|  | @@ -45,16 +45,14 @@ static int vp8_handle_packet(AVFormatContext *ctx, | 
														
													
														
															
																|  |  | int len, int flags) |  |  | int len, int flags) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | int start_partition, end_packet; |  |  | int start_partition, end_packet; | 
														
													
														
															
																|  |  | int extended_bits, non_ref, part_id; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | int extended_bits, part_id; | 
														
													
														
															
																|  |  | int pictureid_present = 0, tl0picidx_present = 0, tid_present = 0, |  |  | int pictureid_present = 0, tl0picidx_present = 0, tid_present = 0, | 
														
													
														
															
																|  |  | keyidx_present = 0; |  |  | keyidx_present = 0; | 
														
													
														
															
																|  |  | int pictureid = -1, keyidx = -1; |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | if (len < 1) |  |  | if (len < 1) | 
														
													
														
															
																|  |  | return AVERROR_INVALIDDATA; |  |  | return AVERROR_INVALIDDATA; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | extended_bits   = buf[0] & 0x80; |  |  | extended_bits   = buf[0] & 0x80; | 
														
													
														
															
																|  |  | non_ref         = buf[0] & 0x20; |  |  |  | 
														
													
														
															
																|  |  | start_partition = buf[0] & 0x10; |  |  | start_partition = buf[0] & 0x10; | 
														
													
														
															
																|  |  | part_id         = buf[0] & 0x0f; |  |  | part_id         = buf[0] & 0x0f; | 
														
													
														
															
																|  |  | end_packet      = flags & RTP_FLAG_MARKER; |  |  | end_packet      = flags & RTP_FLAG_MARKER; | 
														
													
												
													
														
															
																|  | @@ -71,19 +69,12 @@ static int vp8_handle_packet(AVFormatContext *ctx, | 
														
													
														
															
																|  |  | len--; |  |  | len--; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | if (pictureid_present) { |  |  | if (pictureid_present) { | 
														
													
														
															
																|  |  |  |  |  | int size; | 
														
													
														
															
																|  |  | if (len < 1) |  |  | if (len < 1) | 
														
													
														
															
																|  |  | return AVERROR_INVALIDDATA; |  |  | return AVERROR_INVALIDDATA; | 
														
													
														
															
																|  |  | if (buf[0] & 0x80) { |  |  |  | 
														
													
														
															
																|  |  | if (len < 2) |  |  |  | 
														
													
														
															
																|  |  | return AVERROR_INVALIDDATA; |  |  |  | 
														
													
														
															
																|  |  | pictureid = AV_RB16(buf) & 0x7fff; |  |  |  | 
														
													
														
															
																|  |  | buf += 2; |  |  |  | 
														
													
														
															
																|  |  | len -= 2; |  |  |  | 
														
													
														
															
																|  |  | } else { |  |  |  | 
														
													
														
															
																|  |  | pictureid = buf[0] & 0x7f; |  |  |  | 
														
													
														
															
																|  |  | buf++; |  |  |  | 
														
													
														
															
																|  |  | len--; |  |  |  | 
														
													
														
															
																|  |  | } |  |  |  | 
														
													
														
															
																|  |  |  |  |  | size = buf[0] & 0x80 ? 2 : 1; | 
														
													
														
															
																|  |  |  |  |  | buf += size; | 
														
													
														
															
																|  |  |  |  |  | len -= size; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | if (tl0picidx_present) { |  |  | if (tl0picidx_present) { | 
														
													
														
															
																|  |  | // Ignoring temporal level zero index |  |  | // Ignoring temporal level zero index | 
														
													
												
													
														
															
																|  | @@ -91,11 +82,7 @@ static int vp8_handle_packet(AVFormatContext *ctx, | 
														
													
														
															
																|  |  | len--; |  |  | len--; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | if (tid_present || keyidx_present) { |  |  | if (tid_present || keyidx_present) { | 
														
													
														
															
																|  |  | // Ignoring temporal layer index and layer sync bit |  |  |  | 
														
													
														
															
																|  |  | if (len < 1) |  |  |  | 
														
													
														
															
																|  |  | return AVERROR_INVALIDDATA; |  |  |  | 
														
													
														
															
																|  |  | if (keyidx_present) |  |  |  | 
														
													
														
															
																|  |  | keyidx = buf[0] & 0x1f; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | // Ignoring temporal layer index, layer sync bit and keyframe index | 
														
													
														
															
																|  |  | buf++; |  |  | buf++; | 
														
													
														
															
																|  |  | len--; |  |  | len--; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
												
													
														
															
																|  | 
 |