comparison utils.c @ 92:1d3eb6cdc6b5 libavcodec

added pcm codecs
author glantau
date Sun, 23 Sep 2001 17:16:51 +0000
parents db55e2d3b380
children 7e263a256a6f
comparison
equal deleted inserted replaced
91:db55e2d3b380 92:1d3eb6cdc6b5
203 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) 203 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
204 { 204 {
205 const char *codec_name; 205 const char *codec_name;
206 AVCodec *p; 206 AVCodec *p;
207 char buf1[32]; 207 char buf1[32];
208 int bitrate;
208 209
209 if (encode) 210 if (encode)
210 p = avcodec_find_encoder(enc->codec_id); 211 p = avcodec_find_encoder(enc->codec_id);
211 else 212 else
212 p = avcodec_find_decoder(enc->codec_id); 213 p = avcodec_find_decoder(enc->codec_id);
243 snprintf(buf + strlen(buf), buf_size - strlen(buf), 244 snprintf(buf + strlen(buf), buf_size - strlen(buf),
244 ", %dx%d, %0.2f fps", 245 ", %dx%d, %0.2f fps",
245 enc->width, enc->height, 246 enc->width, enc->height,
246 (float)enc->frame_rate / FRAME_RATE_BASE); 247 (float)enc->frame_rate / FRAME_RATE_BASE);
247 } 248 }
249 bitrate = enc->bit_rate;
248 break; 250 break;
249 case CODEC_TYPE_AUDIO: 251 case CODEC_TYPE_AUDIO:
250 snprintf(buf, buf_size, 252 snprintf(buf, buf_size,
251 "Audio: %s", 253 "Audio: %s",
252 codec_name); 254 codec_name);
254 snprintf(buf + strlen(buf), buf_size - strlen(buf), 256 snprintf(buf + strlen(buf), buf_size - strlen(buf),
255 ", %d Hz, %s", 257 ", %d Hz, %s",
256 enc->sample_rate, 258 enc->sample_rate,
257 enc->channels == 2 ? "stereo" : "mono"); 259 enc->channels == 2 ? "stereo" : "mono");
258 } 260 }
261 /* for PCM codecs, compute bitrate directly */
262 switch(enc->codec_id) {
263 case CODEC_ID_PCM_S16LE:
264 case CODEC_ID_PCM_S16BE:
265 case CODEC_ID_PCM_U16LE:
266 case CODEC_ID_PCM_U16BE:
267 bitrate = enc->sample_rate * 16;
268 break;
269 case CODEC_ID_PCM_S8:
270 case CODEC_ID_PCM_U8:
271 case CODEC_ID_PCM_ALAW:
272 case CODEC_ID_PCM_MULAW:
273 bitrate = enc->sample_rate * 8;
274 break;
275 default:
276 bitrate = enc->bit_rate;
277 break;
278 }
259 break; 279 break;
260 default: 280 default:
261 abort(); 281 abort();
262 } 282 }
263 if (enc->bit_rate != 0) { 283 if (bitrate != 0) {
264 snprintf(buf + strlen(buf), buf_size - strlen(buf), 284 snprintf(buf + strlen(buf), buf_size - strlen(buf),
265 ", %d kb/s", enc->bit_rate / 1000); 285 ", %d kb/s", bitrate / 1000);
266 } 286 }
267 } 287 }
268 288
269 /* Picture field are filled with 'ptr' addresses */ 289 /* Picture field are filled with 'ptr' addresses */
270 void avpicture_fill(AVPicture *picture, UINT8 *ptr, 290 void avpicture_fill(AVPicture *picture, UINT8 *ptr,
368 register_avcodec(&rv10_encoder); 388 register_avcodec(&rv10_encoder);
369 register_avcodec(&mjpeg_encoder); 389 register_avcodec(&mjpeg_encoder);
370 register_avcodec(&mpeg4_encoder); 390 register_avcodec(&mpeg4_encoder);
371 register_avcodec(&msmpeg4_encoder); 391 register_avcodec(&msmpeg4_encoder);
372 #endif /* CONFIG_ENCODERS */ 392 #endif /* CONFIG_ENCODERS */
373 register_avcodec(&pcm_codec);
374 register_avcodec(&rawvideo_codec); 393 register_avcodec(&rawvideo_codec);
375 394
376 /* decoders */ 395 /* decoders */
377 #ifdef CONFIG_DECODERS 396 #ifdef CONFIG_DECODERS
378 register_avcodec(&h263_decoder); 397 register_avcodec(&h263_decoder);
380 register_avcodec(&msmpeg4_decoder); 399 register_avcodec(&msmpeg4_decoder);
381 register_avcodec(&mpeg_decoder); 400 register_avcodec(&mpeg_decoder);
382 register_avcodec(&h263i_decoder); 401 register_avcodec(&h263i_decoder);
383 register_avcodec(&rv10_decoder); 402 register_avcodec(&rv10_decoder);
384 register_avcodec(&mjpeg_decoder); 403 register_avcodec(&mjpeg_decoder);
385 //#ifdef CONFIG_MPGLIB
386 register_avcodec(&mp3_decoder); 404 register_avcodec(&mp3_decoder);
387 //#endif
388 #ifdef CONFIG_AC3 405 #ifdef CONFIG_AC3
389 register_avcodec(&ac3_decoder); 406 register_avcodec(&ac3_decoder);
390 #endif 407 #endif
391 #endif /* CONFIG_DECODERS */ 408 #endif /* CONFIG_DECODERS */
409
410 /* pcm codecs */
411
412 #define PCM_CODEC(id, name) \
413 register_avcodec(& name ## _encoder); \
414 register_avcodec(& name ## _decoder); \
415
416 PCM_CODEC(CODEC_ID_PCM_S16LE, pcm_s16le);
417 PCM_CODEC(CODEC_ID_PCM_S16BE, pcm_s16be);
418 PCM_CODEC(CODEC_ID_PCM_U16LE, pcm_u16le);
419 PCM_CODEC(CODEC_ID_PCM_U16BE, pcm_u16be);
420 PCM_CODEC(CODEC_ID_PCM_S8, pcm_s8);
421 PCM_CODEC(CODEC_ID_PCM_U8, pcm_u8);
422 PCM_CODEC(CODEC_ID_PCM_ALAW, pcm_alaw);
423 PCM_CODEC(CODEC_ID_PCM_MULAW, pcm_mulaw);
424
425 #undef PCM_CODEC
392 } 426 }
393 427
394 static int encode_init(AVCodecContext *s) 428 static int encode_init(AVCodecContext *s)
395 { 429 {
396 return 0; 430 return 0;
406 static int encode_frame(AVCodecContext *avctx, 440 static int encode_frame(AVCodecContext *avctx,
407 unsigned char *frame, int buf_size, void *data) 441 unsigned char *frame, int buf_size, void *data)
408 { 442 {
409 return -1; 443 return -1;
410 } 444 }
411
412 /* dummy pcm codec */
413 AVCodec pcm_codec = {
414 "pcm",
415 CODEC_TYPE_AUDIO,
416 CODEC_ID_PCM,
417 0,
418 encode_init,
419 encode_frame,
420 NULL,
421 decode_frame,
422 };
423 445
424 AVCodec rawvideo_codec = { 446 AVCodec rawvideo_codec = {
425 "rawvideo", 447 "rawvideo",
426 CODEC_TYPE_VIDEO, 448 CODEC_TYPE_VIDEO,
427 CODEC_ID_RAWVIDEO, 449 CODEC_ID_RAWVIDEO,