diff --git a/libavformat/rtpdec_h264.c b/libavformat/rtpdec_h264.c index f41dfdcc39..970e6fdcc7 100644 --- a/libavformat/rtpdec_h264.c +++ b/libavformat/rtpdec_h264.c @@ -134,7 +134,9 @@ static void sdp_parse_fmtp_config_h264(AVStream * stream, packet_size= av_base64_decode(decoded_packet, base64packet, sizeof(decoded_packet)); if (packet_size) { - uint8_t *dest= av_malloc(packet_size+sizeof(start_sequence)+codec->extradata_size); + uint8_t *dest = av_malloc(packet_size + sizeof(start_sequence) + + codec->extradata_size + + FF_INPUT_BUFFER_PADDING_SIZE); if(dest) { if(codec->extradata_size) @@ -146,6 +148,8 @@ static void sdp_parse_fmtp_config_h264(AVStream * stream, memcpy(dest+codec->extradata_size, start_sequence, sizeof(start_sequence)); memcpy(dest+codec->extradata_size+sizeof(start_sequence), decoded_packet, packet_size); + memset(dest+codec->extradata_size+sizeof(start_sequence)+ + packet_size, 0, FF_INPUT_BUFFER_PADDING_SIZE); codec->extradata= dest; codec->extradata_size+= sizeof(start_sequence)+packet_size;