[FFmpeg-cvslog] r13892 - trunk/libavformat/matroskadec.c
aurel
subversion
Sun Jun 22 17:52:28 CEST 2008
Author: aurel
Date: Sun Jun 22 17:52:28 2008
New Revision: 13892
Log:
matroskadec: decode track private data if needed
original patch by Evgeniy Stepanov eugeni.stepanov _at_ gmail _dot_ com
Modified:
trunk/libavformat/matroskadec.c
Modified: trunk/libavformat/matroskadec.c
==============================================================================
--- trunk/libavformat/matroskadec.c (original)
+++ trunk/libavformat/matroskadec.c Sun Jun 22 17:52:28 2008
@@ -1610,6 +1610,23 @@ matroska_add_stream (MatroskaDemuxContex
}
}
+ 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 {
More information about the ffmpeg-cvslog
mailing list