comparison avcodec.h @ 803:08423289ec57 libavcodec

exporting the internal qscale table, this allso fixes the ordering
author michaelni
date Wed, 30 Oct 2002 20:41:40 +0000
parents b6eefd714bf3
children 770578c6c300
comparison
equal deleted inserted replaced
802:99db75050d38 803:08423289ec57
3 3
4 #include "common.h" 4 #include "common.h"
5 5
6 #define LIBAVCODEC_VERSION_INT 0x000406 6 #define LIBAVCODEC_VERSION_INT 0x000406
7 #define LIBAVCODEC_VERSION "0.4.6" 7 #define LIBAVCODEC_VERSION "0.4.6"
8 #define LIBAVCODEC_BUILD 4632 8 #define LIBAVCODEC_BUILD 4633
9 #define LIBAVCODEC_BUILD_STR "4632" 9 #define LIBAVCODEC_BUILD_STR "4633"
10 10
11 enum CodecID { 11 enum CodecID {
12 CODEC_ID_NONE, 12 CODEC_ID_NONE,
13 CODEC_ID_MPEG1VIDEO, 13 CODEC_ID_MPEG1VIDEO,
14 CODEC_ID_H263, 14 CODEC_ID_H263,
465 * encoding: unused 465 * encoding: unused
466 * decoding: set by user 466 * decoding: set by user
467 */ 467 */
468 int error_resilience; 468 int error_resilience;
469 469
470 #ifndef MBC 470 /**
471 #define MBC 128 471 * obsolete, just here to keep ABI compatible (should be removed perhaps, dunno)
472 #define MBR 96 472 */
473 #endif 473 int *quant_store;
474 #define QP_TYPE int //FIXME note xxx this might be changed to int8_t 474
475 475 /**
476 QP_TYPE *quant_store; /* field for communicating with external postprocessing */ 476 * QP store stride
477 477 * encoding: unused
478 unsigned qstride; 478 * decoding: set by lavc
479 */
480 int qstride;
479 481
480 /** 482 /**
481 * buffer, where the next picture should be decoded into 483 * buffer, where the next picture should be decoded into
482 * encoding: unused 484 * encoding: unused
483 * decoding: set by user in get_buffer_callback to a buffer into which the next part 485 * decoding: set by user in get_buffer_callback to a buffer into which the next part
733 */ 735 */
734 int error_concealment; 736 int error_concealment;
735 #define FF_EC_GUESS_MVS 1 737 #define FF_EC_GUESS_MVS 1
736 #define FF_EC_DEBLOCK 2 738 #define FF_EC_DEBLOCK 2
737 739
738 //FIXME this should be reordered after kabis API is finished ... 740 /**
739 //TODO kill kabi 741 * QP table of the currently decoded frame
740 /* 742 * encoding; unused
741 Note: Below are located reserved fields for further usage 743 * decoding: set by lavc
742 It requires for ABI !!! 744 */
743 If you'll perform some changes then borrow new space from these fields 745 int8_t *current_qscale_table;
744 (void * can be safety replaced with struct * ;) 746 /**
745 P L E A S E ! ! ! 747 * QP table of the currently displayed frame
746 Note: use avcodec_alloc_context instead of malloc to allocate this, 748 * encoding; unused
747 otherwise the ABI compatibility will be broken between versions 749 * decoding: set by lavc
748 IMPORTANT: Never change order of already declared fields!!! 750 */
749 */ 751 int8_t *display_qscale_table;
750 //TODO: remove mess below
751 unsigned long long int
752 ull_res0,ull_res1,ull_res2,ull_res3,ull_res4,ull_res5,
753 ull_res6,ull_res7,ull_res8,ull_res9,ull_res10,ull_res11;
754 float
755 flt_res0,flt_res1,flt_res2,flt_res3,flt_res4,flt_res5,
756 flt_res6,flt_res7,flt_res8,flt_res9,flt_res10,flt_res11,flt_res12;
757 void
758 *ptr_res0,*ptr_res1,*ptr_res2,*ptr_res3,*ptr_res4,*ptr_res5,
759 *ptr_res6,*ptr_res7,*ptr_res8,*ptr_res9,*ptr_res10,*ptr_res11,*ptr_res12;
760 unsigned long int
761 ul_res0,ul_res1,ul_res2,ul_res3,ul_res4,ul_res5,
762 ul_res6,ul_res7,ul_res8,ul_res9,ul_res10,ul_res11,ul_res12;
763 unsigned short int
764 us_res0,us_res1,us_res2,us_res3,us_res4,us_res5,
765 us_res6,us_res7,us_res8,us_res9,us_res10,us_res11,us_res12;
766 unsigned char
767 uc_res0,uc_res1,uc_res2,uc_res3,uc_res4,uc_res5,
768 uc_res6,uc_res7,uc_res8,uc_res9,uc_res10,uc_res11,uc_res12;
769 unsigned int
770 ui_res0,ui_res1,ui_res2,ui_res3,ui_res4,ui_res5,ui_res6,ui_res7,ui_res8,ui_res9,
771 ui_res10,ui_res11,ui_res12,ui_res13,ui_res14,ui_res15,ui_res16;
772 } AVCodecContext; 752 } AVCodecContext;
773 753
774 typedef struct AVCodec { 754 typedef struct AVCodec {
775 char *name; 755 char *name;
776 int type; 756 int type;
781 int (*close)(AVCodecContext *); 761 int (*close)(AVCodecContext *);
782 int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, 762 int (*decode)(AVCodecContext *, void *outdata, int *outdata_size,
783 UINT8 *buf, int buf_size); 763 UINT8 *buf, int buf_size);
784 int capabilities; 764 int capabilities;
785 struct AVCodec *next; 765 struct AVCodec *next;
786 /*
787 Note: Below are located reserved fields for further usage
788 It requires for ABI !!!
789 If you'll perform some changes then borrow new space from these fields
790 (void * can be safety replaced with struct * ;)
791 P L E A S E ! ! !
792 IMPORTANT: Never change order of already declared fields!!!
793 */
794 unsigned long long int
795 ull_res0,ull_res1,ull_res2,ull_res3,ull_res4,ull_res5,
796 ull_res6,ull_res7,ull_res8,ull_res9,ull_res10,ull_res11,ull_res12;
797 float
798 flt_res0,flt_res1,flt_res2,flt_res3,flt_res4,flt_res5,
799 flt_res6,flt_res7,flt_res8,flt_res9,flt_res10,flt_res11,flt_res12;
800 void
801 *ptr_res0,*ptr_res1,*ptr_res2,*ptr_res3,*ptr_res4,*ptr_res5,
802 *ptr_res6,*ptr_res7,*ptr_res8,*ptr_res9,*ptr_res10,*ptr_res11,*ptr_res12;
803 } AVCodec; 766 } AVCodec;
804 767
805 /* three components are given, that's all */ 768 /* three components are given, that's all */
806 typedef struct AVPicture { 769 typedef struct AVPicture {
807 UINT8 *data[3]; 770 UINT8 *data[3];
953 916
954 void avcodec_register_all(void); 917 void avcodec_register_all(void);
955 918
956 void avcodec_flush_buffers(AVCodecContext *avctx); 919 void avcodec_flush_buffers(AVCodecContext *avctx);
957 920
958 #ifdef FF_POSTPROCESS 921 // deprecated / obsolete stuff, WILL be removed
959 extern int quant_store[MBR+1][MBC+1]; // [Review] 922 #ifndef MBC
923 #define MBC 128
924 #define MBR 96
960 #endif 925 #endif
961 926 #define QP_TYPE int
962 927
963 /** 928 /**
964 * Interface for 0.5.0 version 929 * Interface for 0.5.0 version
965 * 930 *
966 * do not even think about it's usage for this moment 931 * do not even think about it's usage for this moment