summaryrefslogtreecommitdiffstats
path: root/libavcodec/huffyuv.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/huffyuv.c')
-rw-r--r--libavcodec/huffyuv.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c
index c00f9a2..1ab31a9 100644
--- a/libavcodec/huffyuv.c
+++ b/libavcodec/huffyuv.c
@@ -170,6 +170,8 @@ static inline void add_median_prediction(uint8_t *dst, uint8_t *src1, uint8_t *d
*left= l;
*left_top= lt;
}
+
+#ifdef CONFIG_ENCODERS
//FIXME optimize
static inline void sub_median_prediction(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w, int *left, int *left_top){
int i;
@@ -189,6 +191,7 @@ static inline void sub_median_prediction(uint8_t *dst, uint8_t *src1, uint8_t *s
*left_top= lt;
}
+#endif //CONFIG_ENCODERS
static inline void add_left_prediction_bgr32(uint8_t *dst, uint8_t *src, int w, int *red, int *green, int *blue){
int i;
@@ -212,6 +215,7 @@ static inline void add_left_prediction_bgr32(uint8_t *dst, uint8_t *src, int w,
*blue= b;
}
+#ifdef CONFIG_ENCODERS
static inline int sub_left_prediction(HYuvContext *s, uint8_t *dst, uint8_t *src, int w, int left){
int i;
if(w<32){
@@ -231,7 +235,7 @@ static inline int sub_left_prediction(HYuvContext *s, uint8_t *dst, uint8_t *src
return src[w-1];
}
}
-
+#endif //CONFIG_ENCODERS
static void read_len_table(uint8_t *dst, GetBitContext *gb){
int i, val, repeat;
@@ -266,6 +270,8 @@ static int generate_bits_table(uint32_t *dst, uint8_t *len_table){
return 0;
}
+#ifdef CONFIG_ENCODERS
+
static void generate_len_table(uint8_t *dst, uint64_t *stats, int size){
uint64_t counts[2*size];
int up[2*size];
@@ -322,6 +328,8 @@ static void generate_len_table(uint8_t *dst, uint64_t *stats, int size){
}
}
+#endif //CONFIG_ENCODERS
+
static int read_huffman_tables(HYuvContext *s, uint8_t *src, int length){
GetBitContext gb;
int i;
@@ -472,6 +480,8 @@ s->bgr32=1;
return 0;
}
+#ifdef CONFIG_ENCODERS
+
static void store_table(HYuvContext *s, uint8_t *len){
int i;
int index= s->avctx->extradata_size;
@@ -585,17 +595,19 @@ static int encode_init(AVCodecContext *avctx)
s->stats[i][j]= 0;
s->interlaced= height > 288;
-
+
// printf("pred:%d bpp:%d hbpp:%d il:%d\n", s->predictor, s->bitstream_bpp, avctx->bits_per_sample, s->interlaced);
-
+
s->picture_number=0;
-
+
return 0;
}
+#endif //CONFIG_ENCODERS
+
static void decode_422_bitstream(HYuvContext *s, int count){
int i;
-
+
count/=2;
for(i=0; i<count; i++){
@@ -617,6 +629,8 @@ static void decode_gray_bitstream(HYuvContext *s, int count){
}
}
+#ifdef CONFIG_ENCODERS
+
static void encode_422_bitstream(HYuvContext *s, int count){
int i;
@@ -655,9 +669,11 @@ static void encode_gray_bitstream(HYuvContext *s, int count){
}
}
+#endif //CONFIG_ENCODERS
+
static void decode_bgr_bitstream(HYuvContext *s, int count){
int i;
-
+
if(s->decorrelate){
if(s->bitstream_bpp==24){
for(i=0; i<count; i++){
@@ -965,6 +981,8 @@ static int decode_end(AVCodecContext *avctx)
return 0;
}
+#ifdef CONFIG_ENCODERS
+
static int encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data){
HYuvContext *s = avctx->priv_data;
AVFrame *pict = data;
@@ -1126,6 +1144,8 @@ static int encode_end(AVCodecContext *avctx)
return 0;
}
+#endif //CONFIG_ENCODERS
+
static const AVOption huffyuv_options[] =
{
AVOPTION_CODEC_INT("prediction_method", "prediction_method", prediction_method, 0, 2, 0),
@@ -1145,6 +1165,8 @@ AVCodec huffyuv_decoder = {
NULL
};
+#ifdef CONFIG_ENCODERS
+
AVCodec huffyuv_encoder = {
"huffyuv",
CODEC_TYPE_VIDEO,
@@ -1155,3 +1177,5 @@ AVCodec huffyuv_encoder = {
encode_end,
.options = huffyuv_options,
};
+
+#endif //CONFIG_ENCODERS \ No newline at end of file
OpenPOWER on IntegriCloud