00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AVCODEC_UTVIDEO_H
00023 #define AVCODEC_UTVIDEO_H
00024
00030 #include "libavutil/common.h"
00031 #include "avcodec.h"
00032 #include "dsputil.h"
00033
00034 enum {
00035 PRED_NONE = 0,
00036 PRED_LEFT,
00037 PRED_GRADIENT,
00038 PRED_MEDIAN,
00039 };
00040
00041 enum {
00042 COMP_NONE = 0,
00043 COMP_HUFF,
00044 };
00045
00046
00047
00048
00049
00050
00051
00052
00053 enum {
00054 UTVIDEO_RGB = MKTAG(0x00, 0x00, 0x01, 0x18),
00055 UTVIDEO_RGBA = MKTAG(0x00, 0x00, 0x02, 0x18),
00056 UTVIDEO_420 = MKTAG('Y', 'V', '1', '2'),
00057 UTVIDEO_422 = MKTAG('Y', 'U', 'Y', '2'),
00058 };
00059
00060
00061 extern const int ff_ut_pred_order[5];
00062
00063
00064 extern const int ff_ut_rgb_order[4];
00065
00066 typedef struct UtvideoContext {
00067 AVCodecContext *avctx;
00068 AVFrame pic;
00069 DSPContext dsp;
00070
00071 uint32_t frame_info_size, flags, frame_info;
00072 int planes;
00073 int slices;
00074 int compression;
00075 int interlaced;
00076 int frame_pred;
00077
00078 int slice_stride;
00079 uint8_t *slice_bits, *slice_buffer[4];
00080 int slice_bits_size;
00081 } UtvideoContext;
00082
00083 typedef struct HuffEntry {
00084 uint8_t sym;
00085 uint8_t len;
00086 uint32_t code;
00087 } HuffEntry;
00088
00089
00090 int ff_ut_huff_cmp_len(const void *a, const void *b);
00091
00092 #endif