Commit 5e8477b0 authored by Evgeniy Stepanov's avatar Evgeniy Stepanov Committed by Aurelien Jacobs

matroskadec: decode track private data if needed

original patch by Evgeniy Stepanov  eugeni.stepanov _at_ gmail _dot_ com

Originally committed as revision 13892 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 935ec5a1
......@@ -1610,6 +1610,23 @@ matroska_add_stream (MatroskaDemuxContext *matroska)
}
}
if (track->codec_priv_size && track->encoding_scope & 2) {
uint8_t *orig_priv = track->codec_priv;
int offset = matroska_decode_buffer(&track->codec_priv,
&track->codec_priv_size, track);
if (offset > 0) {
track->codec_priv = av_malloc(track->codec_priv_size + offset);
memcpy(track->codec_priv, track->encoding_settings, offset);
memcpy(track->codec_priv+offset, orig_priv, track->codec_priv_size);
track->codec_priv_size += offset;
av_free(orig_priv);
} else if (!offset) {
av_free(orig_priv);
} else
av_log(matroska->ctx, AV_LOG_ERROR,
"Failed to decode codec private data\n");
}
if (track->type && matroska->num_tracks < ARRAY_SIZE(matroska->tracks)) {
matroska->tracks[matroska->num_tracks++] = track;
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment