|
|
|
@ -115,18 +115,16 @@ static int parse_sprop_parameter_sets(AVFormatContext *s, |
|
|
|
|
packet_size = av_base64_decode(decoded_packet, base64packet, |
|
|
|
|
sizeof(decoded_packet)); |
|
|
|
|
if (packet_size > 0) { |
|
|
|
|
uint8_t *dest = av_malloc(packet_size + sizeof(start_sequence) + |
|
|
|
|
codec->extradata_size + |
|
|
|
|
FF_INPUT_BUFFER_PADDING_SIZE); |
|
|
|
|
uint8_t *dest = av_realloc(codec->extradata, |
|
|
|
|
packet_size + sizeof(start_sequence) + |
|
|
|
|
codec->extradata_size + |
|
|
|
|
FF_INPUT_BUFFER_PADDING_SIZE); |
|
|
|
|
if (!dest) { |
|
|
|
|
av_log(s, AV_LOG_ERROR, |
|
|
|
|
"Unable to allocate memory for extradata!\n"); |
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
} |
|
|
|
|
if (codec->extradata_size) { |
|
|
|
|
memcpy(dest, codec->extradata, codec->extradata_size); |
|
|
|
|
av_free(codec->extradata); |
|
|
|
|
} |
|
|
|
|
codec->extradata = dest; |
|
|
|
|
|
|
|
|
|
memcpy(dest + codec->extradata_size, start_sequence, |
|
|
|
|
sizeof(start_sequence)); |
|
|
|
@ -135,7 +133,6 @@ static int parse_sprop_parameter_sets(AVFormatContext *s, |
|
|
|
|
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; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|