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 {