Mercurial > mplayer.hg
comparison libmpdemux/muxer_lavf.c @ 15500:41fd530bd7a9
mux extradata
author | nicodvb |
---|---|
date | Tue, 17 May 2005 21:44:28 +0000 |
parents | 5ca3a981d62a |
children | b939c687986f |
comparison
equal
deleted
inserted
replaced
15499:4876278747dc | 15500:41fd530bd7a9 |
---|---|
170 ctx->frame_size= (stream->h.dwScale * (int64_t)ctx->sample_rate) / stream->h.dwRate; | 170 ctx->frame_size= (stream->h.dwScale * (int64_t)ctx->sample_rate) / stream->h.dwRate; |
171 mp_msg(MSGT_MUXER, MSGL_V, "MUXER_LAVF(audio stream) frame_size: %d, scale: %u, sps: %u, rate: %u, ctx->block_align = stream->wf->nBlockAlign; %d=%d stream->wf->nAvgBytesPerSec:%d\n", | 171 mp_msg(MSGT_MUXER, MSGL_V, "MUXER_LAVF(audio stream) frame_size: %d, scale: %u, sps: %u, rate: %u, ctx->block_align = stream->wf->nBlockAlign; %d=%d stream->wf->nAvgBytesPerSec:%d\n", |
172 ctx->frame_size, stream->h.dwScale, ctx->sample_rate, stream->h.dwRate, | 172 ctx->frame_size, stream->h.dwScale, ctx->sample_rate, stream->h.dwRate, |
173 ctx->block_align, stream->wf->nBlockAlign, stream->wf->nAvgBytesPerSec); | 173 ctx->block_align, stream->wf->nBlockAlign, stream->wf->nAvgBytesPerSec); |
174 ctx->block_align = stream->wf->nBlockAlign; | 174 ctx->block_align = stream->wf->nBlockAlign; |
175 if(stream->wf+1 && stream->wf->cbSize) | |
176 { | |
177 ctx->extradata = av_malloc(stream->wf->cbSize); | |
178 if(ctx->extradata != NULL) | |
179 { | |
180 ctx->extradata_size = stream->wf->cbSize; | |
181 memcpy(ctx->extradata, stream->wf+1, ctx->extradata_size); | |
182 } | |
183 else | |
184 mp_msg(MSGT_MUXER, MSGL_ERR, "MUXER_LAVF(audio stream) error! couldn't allocate %d bytes for extradata\n", | |
185 stream->wf->cbSize); | |
186 } | |
175 } | 187 } |
176 else if(stream->type == MUXER_TYPE_VIDEO) | 188 else if(stream->type == MUXER_TYPE_VIDEO) |
177 { | 189 { |
178 ctx->codec_id = codec_get_bmp_id(stream->bih->biCompression); | 190 ctx->codec_id = codec_get_bmp_id(stream->bih->biCompression); |
179 mp_msg(MSGT_MUXER, MSGL_INFO, "VIDEO CODEC ID: %d\n", ctx->codec_id); | 191 mp_msg(MSGT_MUXER, MSGL_INFO, "VIDEO CODEC ID: %d\n", ctx->codec_id); |
185 ctx->time_base.num = stream->h.dwScale; | 197 ctx->time_base.num = stream->h.dwScale; |
186 #else | 198 #else |
187 ctx->frame_rate = stream->h.dwRate; | 199 ctx->frame_rate = stream->h.dwRate; |
188 ctx->frame_rate_base = stream->h.dwScale; | 200 ctx->frame_rate_base = stream->h.dwScale; |
189 #endif | 201 #endif |
202 if(stream->bih+1 && (stream->bih->biSize > sizeof(BITMAPINFOHEADER))) | |
203 { | |
204 ctx->extradata = av_malloc(stream->bih->biSize - sizeof(BITMAPINFOHEADER)); | |
205 if(ctx->extradata != NULL) | |
206 { | |
207 ctx->extradata_size = stream->bih->biSize - sizeof(BITMAPINFOHEADER); | |
208 memcpy(ctx->extradata, stream->bih+1, ctx->extradata_size); | |
209 } | |
210 else | |
211 mp_msg(MSGT_MUXER, MSGL_ERR, "MUXER_LAVF(video stream) error! couldn't allocate %d bytes for extradata\n", | |
212 stream->bih->biSize - sizeof(BITMAPINFOHEADER)); | |
213 } | |
190 } | 214 } |
191 } | 215 } |
192 | 216 |
193 static void write_chunk(muxer_stream_t *stream, size_t len, unsigned int flags) | 217 static void write_chunk(muxer_stream_t *stream, size_t len, unsigned int flags) |
194 { | 218 { |