summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-17 21:44:28 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-17 21:44:28 +0000
commit34ad64a0ed1cab659bf34e4132102e677eb0f7f2 (patch)
tree23d6c456b5b2157225f67b24dac450acb77e459d /libmpdemux
parent2f727d8b11a5eb942a7ef2b5713aaf4e379f6242 (diff)
downloadmpv-34ad64a0ed1cab659bf34e4132102e677eb0f7f2.tar.bz2
mpv-34ad64a0ed1cab659bf34e4132102e677eb0f7f2.tar.xz
mux extradata
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15501 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/muxer_lavf.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/libmpdemux/muxer_lavf.c b/libmpdemux/muxer_lavf.c
index 5ffa1e3020..10c88c0128 100644
--- a/libmpdemux/muxer_lavf.c
+++ b/libmpdemux/muxer_lavf.c
@@ -172,6 +172,18 @@ static void fix_parameters(muxer_stream_t *stream)
ctx->frame_size, stream->h.dwScale, ctx->sample_rate, stream->h.dwRate,
ctx->block_align, stream->wf->nBlockAlign, stream->wf->nAvgBytesPerSec);
ctx->block_align = stream->wf->nBlockAlign;
+ if(stream->wf+1 && stream->wf->cbSize)
+ {
+ ctx->extradata = av_malloc(stream->wf->cbSize);
+ if(ctx->extradata != NULL)
+ {
+ ctx->extradata_size = stream->wf->cbSize;
+ memcpy(ctx->extradata, stream->wf+1, ctx->extradata_size);
+ }
+ else
+ mp_msg(MSGT_MUXER, MSGL_ERR, "MUXER_LAVF(audio stream) error! couldn't allocate %d bytes for extradata\n",
+ stream->wf->cbSize);
+ }
}
else if(stream->type == MUXER_TYPE_VIDEO)
{
@@ -187,6 +199,18 @@ static void fix_parameters(muxer_stream_t *stream)
ctx->frame_rate = stream->h.dwRate;
ctx->frame_rate_base = stream->h.dwScale;
#endif
+ if(stream->bih+1 && (stream->bih->biSize > sizeof(BITMAPINFOHEADER)))
+ {
+ ctx->extradata = av_malloc(stream->bih->biSize - sizeof(BITMAPINFOHEADER));
+ if(ctx->extradata != NULL)
+ {
+ ctx->extradata_size = stream->bih->biSize - sizeof(BITMAPINFOHEADER);
+ memcpy(ctx->extradata, stream->bih+1, ctx->extradata_size);
+ }
+ else
+ mp_msg(MSGT_MUXER, MSGL_ERR, "MUXER_LAVF(video stream) error! couldn't allocate %d bytes for extradata\n",
+ stream->bih->biSize - sizeof(BITMAPINFOHEADER));
+ }
}
}