/*
- * H263 internal header
+ * H.263 internal header
*
* This file is part of Libav.
*
#define AVCODEC_H263_H
#include <stdint.h>
+
+#include "config.h"
+
#include "libavutil/rational.h"
+
#include "get_bits.h"
#include "mpegvideo.h"
+#include "h263data.h"
#include "rl.h"
+#if !FF_API_ASPECT_EXTENDED
+#define FF_ASPECT_EXTENDED 15
+#endif
+#define INT_BIT (CHAR_BIT * sizeof(int))
+
// The defines below define the number of bits that are read at once for
// reading vlc values. Changing these may improve speed and data cache needs
// be aware though that decreasing them may need the number of stages that is
#define CBPY_VLC_BITS 6
#define TEX_VLC_BITS 9
-extern const AVRational ff_h263_pixel_aspect[16];
-extern const uint8_t ff_h263_cbpy_tab[16][2];
-
-extern const uint8_t ff_cbpc_b_tab[4][2];
-
-extern const uint8_t ff_mvtab[33][2];
-
-extern const uint8_t ff_h263_intra_MCBPC_code[9];
-extern const uint8_t ff_h263_intra_MCBPC_bits[9];
-
-extern const uint8_t ff_h263_inter_MCBPC_code[28];
-extern const uint8_t ff_h263_inter_MCBPC_bits[28];
-extern const uint8_t ff_h263_mbtype_b_tab[15][2];
+#define H263_GOB_HEIGHT(h) ((h) <= 400 ? 1 : (h) <= 800 ? 2 : 4)
extern VLC ff_h263_intra_MCBPC_vlc;
extern VLC ff_h263_inter_MCBPC_vlc;
extern VLC ff_h263_cbpy_vlc;
-extern RLTable ff_h263_rl_inter;
-
-extern RLTable ff_rl_intra_aic;
-
-extern const uint16_t ff_h263_format[8][2];
-extern const uint8_t ff_modified_quant_tab[2][32];
-extern uint16_t ff_mba_max[6];
-extern uint8_t ff_mba_length[7];
-
-extern uint8_t ff_h263_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
-
extern const enum AVPixelFormat ff_h263_hwaccel_pixfmt_list_420[];
int16_t block[6][64]);
/**
- * Return the value of the 3bit "source format" syntax element.
+ * Return the value of the 3-bit "source format" syntax element.
* This represents some standard picture dimensions or indicates that
* width&height are explicitly stored later.
*/
void ff_clean_h263_qscales(MpegEncContext *s);
int ff_h263_resync(MpegEncContext *s);
-const uint8_t *ff_h263_find_resync_marker(const uint8_t *p, const uint8_t *end);
-int ff_h263_get_gob_height(MpegEncContext *s);
+const uint8_t *ff_h263_find_resync_marker(const uint8_t *restrict p, const uint8_t *restrict end);
void ff_h263_encode_motion(MpegEncContext * s, int val, int f_code);
}
static inline void ff_h263_encode_motion_vector(MpegEncContext * s, int x, int y, int f_code){
- if(s->flags2 & CODEC_FLAG2_NO_OUTPUT){
+ if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) {
skip_put_bits(&s->pb,
h263_get_motion_length(s, x, f_code)
+h263_get_motion_length(s, y, f_code));
for (i = 0; i < 6; i++) {
if (s->block_last_index[i] >= 0 && ((cbp >> (5 - i))&1)==0 ){
s->block_last_index[i]= -1;
- s->dsp.clear_block(s->block[i]);
+ s->bdsp.clear_block(s->block[i]);
}
}
}else{
return cbp;
}
-static inline void memsetw(short *tab, int val, int n)
-{
- int i;
- for(i=0;i<n;i++)
- tab[i] = val;
-}
-
#endif /* AVCODEC_H263_H */