comparison utils.c @ 992:b9ca09e5c9ad libavcodec

moved avpicture_xxx to imgconvert
author bellard
date Sat, 11 Jan 2003 04:52:39 +0000
parents 001b7d3045e5
children 6129c88a6393
comparison
equal deleted inserted replaced
991:2fabb7d709e7 992:b9ca09e5c9ad
381 p = p->next; 381 p = p->next;
382 } 382 }
383 return NULL; 383 return NULL;
384 } 384 }
385 385
386 const char *pix_fmt_str[] = {
387 "yuv420p",
388 "yuv422",
389 "rgb24",
390 "bgr24",
391 "yuv422p",
392 "yuv444p",
393 "rgba32",
394 "bgra32",
395 "yuv410p",
396 "yuv411p",
397 };
398
399 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) 386 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
400 { 387 {
401 const char *codec_name; 388 const char *codec_name;
402 AVCodec *p; 389 AVCodec *p;
403 char buf1[32]; 390 char buf1[32];
506 } 493 }
507 if (bitrate != 0) { 494 if (bitrate != 0) {
508 snprintf(buf + strlen(buf), buf_size - strlen(buf), 495 snprintf(buf + strlen(buf), buf_size - strlen(buf),
509 ", %d kb/s", bitrate / 1000); 496 ", %d kb/s", bitrate / 1000);
510 } 497 }
511 }
512
513 /* Picture field are filled with 'ptr' addresses */
514 void avpicture_fill(AVPicture *picture, UINT8 *ptr,
515 int pix_fmt, int width, int height)
516 {
517 int size;
518
519 size = width * height;
520 switch(pix_fmt) {
521 case PIX_FMT_YUV420P:
522 picture->data[0] = ptr;
523 picture->data[1] = picture->data[0] + size;
524 picture->data[2] = picture->data[1] + size / 4;
525 picture->linesize[0] = width;
526 picture->linesize[1] = width / 2;
527 picture->linesize[2] = width / 2;
528 break;
529 case PIX_FMT_YUV422P:
530 picture->data[0] = ptr;
531 picture->data[1] = picture->data[0] + size;
532 picture->data[2] = picture->data[1] + size / 2;
533 picture->linesize[0] = width;
534 picture->linesize[1] = width / 2;
535 picture->linesize[2] = width / 2;
536 break;
537 case PIX_FMT_YUV444P:
538 picture->data[0] = ptr;
539 picture->data[1] = picture->data[0] + size;
540 picture->data[2] = picture->data[1] + size;
541 picture->linesize[0] = width;
542 picture->linesize[1] = width;
543 picture->linesize[2] = width;
544 break;
545 case PIX_FMT_RGB24:
546 case PIX_FMT_BGR24:
547 picture->data[0] = ptr;
548 picture->data[1] = NULL;
549 picture->data[2] = NULL;
550 picture->linesize[0] = width * 3;
551 break;
552 case PIX_FMT_RGBA32:
553 picture->data[0] = ptr;
554 picture->data[1] = NULL;
555 picture->data[2] = NULL;
556 picture->linesize[0] = width * 4;
557 break;
558 case PIX_FMT_YUV422:
559 picture->data[0] = ptr;
560 picture->data[1] = NULL;
561 picture->data[2] = NULL;
562 picture->linesize[0] = width * 2;
563 break;
564 default:
565 picture->data[0] = NULL;
566 picture->data[1] = NULL;
567 picture->data[2] = NULL;
568 break;
569 }
570 }
571
572 int avpicture_get_size(int pix_fmt, int width, int height)
573 {
574 int size;
575
576 size = width * height;
577 switch(pix_fmt) {
578 case PIX_FMT_YUV420P:
579 size = (size * 3) / 2;
580 break;
581 case PIX_FMT_YUV422P:
582 size = (size * 2);
583 break;
584 case PIX_FMT_YUV444P:
585 size = (size * 3);
586 break;
587 case PIX_FMT_RGB24:
588 case PIX_FMT_BGR24:
589 size = (size * 3);
590 break;
591 case PIX_FMT_RGBA32:
592 size = (size * 4);
593 break;
594 case PIX_FMT_YUV422:
595 size = (size * 2);
596 break;
597 default:
598 size = -1;
599 break;
600 }
601 return size;
602 } 498 }
603 499
604 unsigned avcodec_version( void ) 500 unsigned avcodec_version( void )
605 { 501 {
606 return LIBAVCODEC_VERSION_INT; 502 return LIBAVCODEC_VERSION_INT;