30 #define UNCHECKED_BITSTREAM_READER 1 
   55 #define H263_MBTYPE_B_VLC_BITS 6 
   56 #define CBPC_B_VLC_BITS 3 
  110     static volatile int done = 0;
 
  143     for (i = 0; i < 6; i++)
 
  159     unsigned int val, gob_number;
 
  171     for(;left>13; left--){
 
  234     for(;left>16+1+5+5; left-=8){
 
  268         val = (val - 1) << shift;
 
  281         if (pred < -31 && val < -63)
 
  283         if (pred > 32 && val > 63)
 
  309    code = (sign) ? (pred - code) : (pred + code);
 
  321     int cbpc, i, pred_x, pred_y, mx, my;
 
  338             mot_val[0       ]= mot_val[2       ]=
 
  340             mot_val[1       ]= mot_val[3       ]=
 
  361         if ((cbpc & 16) == 0) {
 
  375                 mot_val[0       ]= mot_val[2       ]=
 
  377                 mot_val[1       ]= mot_val[3       ]=
 
  392                 if (s->
umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1)
 
  411     static const int8_t quant_tab[4] = { -1, -2, 1, 2 };
 
  446             component = (n <= 3 ? 0 : n - 4 + 1);
 
  453                 level = level & 0xff; 
 
  465             if((level&0x7F) == 0){
 
  498             if (CONFIG_FLV_DECODER && s->
h263_flv > 1) {
 
  540             i = i - run + ((run-1)&63) + 1;
 
  543                 block[scan_table[i]] = 
level;
 
  582     for (i = 0; i < 6; i++) {
 
  598         if (pb_frame == 2 && c)
 
  611                       int16_t 
block[6][64])
 
  613     int cbpc, cbpy, i, cbp, pred_x, pred_y, mx, my, dquant;
 
  616     int cbpb = 0, pb_mv_count = 0;
 
  655         cbp = (cbpc & 3) | (cbpy << 2);
 
  661         if ((cbpc & 16) == 0) {
 
  684             if (s->
umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1)
 
  706                 if (s->
umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1)
 
  720         mot_val0[0       ]= mot_val0[2       ]= mot_val0[0+2*
stride]= mot_val0[2+2*
stride]=
 
  721         mot_val0[1       ]= mot_val0[3       ]= mot_val0[1+2*
stride]= mot_val0[3+2*
stride]=
 
  722         mot_val1[0       ]= mot_val1[2       ]= mot_val1[0+2*
stride]= mot_val1[2+2*
stride]=
 
  723         mot_val1[1       ]= mot_val1[3       ]= mot_val1[1+2*
stride]= mot_val1[3+2*
stride]= 0;
 
  754             cbp = (cbpc & 3) | (cbpy << 2);
 
  781                 mot_val[0       ]= mot_val[2       ]= mot_val[0+2*
stride]= mot_val[2+2*
stride]= mx;
 
  782                 mot_val[1       ]= mot_val[3       ]= mot_val[1+2*
stride]= mot_val[3+2*
stride]= my;
 
  794                 mot_val[0       ]= mot_val[2       ]= mot_val[0+2*
stride]= mot_val[2+2*
stride]= mx;
 
  795                 mot_val[1       ]= mot_val[3       ]= mot_val[1+2*
stride]= mot_val[3+2*
stride]= my;
 
  832         cbp = (cbpc & 3) | (cbpy << 2);
 
  840     while(pb_mv_count--){
 
  846     for (i = 0; i < 6; i++) {
 
  890         startcode = ((startcode << 8) | 
get_bits(&s->
gb, 8)) & 0x003FFFFF;
 
  892         if(startcode == 0x20)
 
  896     if (startcode != 0x20) {
 
  926     if (format != 7 && format != 6) {
 
  992         } 
else if (ufep != 0) {
 
 1030                 ff_dlog(s->
avctx, 
"\nH.263+ Custom picture: %dx%d\n",width,height);
 
 1044             if ((width == 0) || (height == 0))
 
 1148         for(i=0; i<13; i++){
 
av_cold void ff_h263_decode_init_vlc(void)
int rv10_first_dc_coded[3]
const char const char void * val
#define AVERROR_INVALIDDATA
Invalid data found when processing input. 
ScanTable intra_v_scantable
static int h263_decode_gob_header(MpegEncContext *s)
Decode the group of blocks header or slice header. 
static int shift(int a, int b)
VLC ff_h263_inter_MCBPC_vlc
const uint8_t * y_dc_scale_table
qscale -> y_dc_scale table 
const uint16_t ff_mba_max[6]
void(* clear_block)(int16_t *block)
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits. 
#define AV_LOG_WARNING
Something somehow does not look correct. 
#define INIT_VLC_STATIC(vlc, bits, a, b, c, d, e, f, g, static_size)
#define SKIP_COUNTER(name, gb, num)
static int check_marker(void *logctx, GetBitContext *s, const char *msg)
#define AV_EF_COMPLIANT
consider all spec non compliances as errors 
void(* clear_blocks)(int16_t *blocks)
int obmc
overlapped block motion compensation 
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown) That is the width of a pixel divided by the height of the pixel...
static int h263_decode_block(MpegEncContext *s, int16_t *block, int n, int coded)
#define AV_EF_BITSTREAM
detect bitstream specification deviations 
const uint16_t ff_h263_format[8][2]
#define FF_ASPECT_EXTENDED
int mb_num
number of MBs of a picture 
static int get_sbits(GetBitContext *s, int n)
int h263_aic
Advanced INTRA Coding (AIC) 
int16_t * ff_h263_pred_motion(MpegEncContext *s, int block, int dir, int *px, int *py)
Macro definitions for various function/variable attributes. 
#define USES_LIST(a, list)
int alt_inter_vlc
alternative inter vlc 
int mb_num_left
number of MBs left in this video packet (for partitioned Slices only) 
int64_t time
time of current frame 
const uint8_t ff_mpeg1_dc_scale_table[128]
#define MV_DIRECT
bidirectional mode where the difference equals the MV of the last P/S/I-Frame (MPEG-4) ...
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code. 
#define FF_DEBUG_PICT_INFO
static av_cold int end(AVCodecContext *avctx)
static VLC h263_mbtype_b_vlc
int ff_rv_decode_dc(MpegEncContext *s, int n)
int no_rounding
apply no rounding to motion compensation (MPEG-4, msmpeg4, ...) for B-frames rounding mode is always ...
Picture current_picture
copy of the current picture structure. 
GetBitContext last_resync_gb
used to search for the next resync marker 
static int get_bits_count(const GetBitContext *s)
char av_get_picture_type_char(enum AVPictureType pict_type)
Return a single letter to describe the given picture type pict_type. 
const uint8_t ff_h263_intra_MCBPC_bits[9]
uint16_t pp_time
time distance between the last 2 p,s,i frames 
const uint8_t ff_mba_length[7]
int mb_height
number of MBs horizontally & vertically 
int lowres
low resolution decoding, 1-> 1/2 size, 2->1/4 size 
static int h263_skip_b_part(MpegEncContext *s, int cbp)
int codec_tag
internal codec_tag upper case converted from avctx codec_tag 
void ff_set_qscale(MpegEncContext *s, int qscale)
set qscale and update qscale dependent variables. 
const uint8_t ff_h263_mbtype_b_tab[15][2]
static int get_bits_left(GetBitContext *gb)
#define H263_MBTYPE_B_VLC_BITS
int h263_plus
H.263+ headers. 
uint8_t ff_h263_static_rl_table_store[2][2][2 *MAX_RUN+MAX_LEVEL+3]
#define UPDATE_CACHE(name, gb)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
int last_dc[3]
last DC values for MPEG-1 
const uint8_t ff_h263_inter_MCBPC_code[28]
int mb_skipped
MUST BE SET only during DECODING. 
const uint8_t ff_modified_quant_tab[2][32]
int unrestricted_mv
mv can point outside of the coded picture 
int ff_h263_decode_motion(MpegEncContext *s, int pred, int f_code)
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers. 
static const int h263_mb_type_b_map[15]
int h263_slice_structured
#define INTER_MCBPC_VLC_BITS
int64_t av_gcd(int64_t a, int64_t b)
Compute the greatest common divisor of two integer operands. 
void ff_mpeg4_init_direct_mv(MpegEncContext *s)
int ff_mpeg4_decode_video_packet_header(Mpeg4DecContext *ctx)
Decode the next video packet. 
static int h263_get_modb(GetBitContext *gb, int pb_frame, int *cbpb)
#define CLOSE_READER(name, gb)
#define INIT_VLC_RL(rl, static_size)
#define GET_RL_VLC(level, run, name, gb, table, bits,max_depth, need_update)
common internal API header 
int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx)
Check if the given dimension of an image is valid, meaning that all bytes of the image can be address...
const uint8_t ff_h263_inter_MCBPC_bits[28]
const uint8_t ff_h263_chroma_qscale_table[32]
int err_recognition
Error recognition; may misdetect some more or less valid parts as errors. 
int umvplus
== H.263+ && unrestricted_mv 
int16_t(*[2] motion_val)[2]
static unsigned int show_bits(GetBitContext *s, int n)
Show 1-25 bits. 
static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE(*table)[2], int bits, int max_depth)
Parse a vlc code. 
int block_last_index[12]
last non zero coefficient in block 
int pb_frame
PB-frame mode (0 = none, 1 = base, 2 = improved) 
int ff_h263_decode_mba(MpegEncContext *s)
RL_VLC_ELEM * rl_vlc[32]
decoding only 
#define SHOW_UBITS(name, gb, num)
static int h263p_decode_umotion(MpegEncContext *s, int pred)
int block_index[6]
index to current MB in block based arrays with edges 
static const float pred[4]
static const int8_t mv[256][2]
#define MV_TYPE_16X16
1 vector for the whole mb 
const uint8_t ff_aic_dc_scale_table[32]
Libavcodec external API header. 
int h263_flv
use flv H.263 header 
const uint8_t ff_h263_intra_MCBPC_code[9]
ScanTable intra_scantable
int height
picture size. must be a multiple of 16 
#define OPEN_READER(name, gb)
av_cold int ff_rl_init(RLTable *rl, uint8_t static_store[2][2 *MAX_RUN+MAX_LEVEL+3])
#define SLICE_END
end marker found 
VLC ff_h263_intra_MCBPC_vlc
static unsigned int get_bits1(GetBitContext *s)
static void skip_bits1(GetBitContext *s)
static const char * format
ScanTable intra_h_scantable
static void skip_bits(GetBitContext *s, int n)
Rational number (pair of numerator and denominator). 
int ff_h263_resync(MpegEncContext *s)
Decode the group of blocks / video packet header. 
#define SKIP_CACHE(name, gb, num)
const uint8_t ff_cbpc_b_tab[4][2]
int f_code
forward MV resolution 
int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my)
const uint8_t ff_h263_cbpy_tab[16][2]
int ff_h263_decode_picture_header(MpegEncContext *s)
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ... 
static av_const int sign_extend(int val, unsigned bits)
static void h263_decode_dquant(MpegEncContext *s)
int h263_pred
use MPEG-4/H.263 ac/dc predictions 
const AVRational ff_h263_pixel_aspect[16]
const uint8_t * c_dc_scale_table
qscale -> c_dc_scale table 
int mv[2][4][2]
motion vectors for a macroblock first coordinate : 0 = forward 1 = backward second "         : depend...
int b8_stride
2*mb_width+1 used for some 8x8 block arrays to allow simple addressing 
struct AVCodecContext * avctx
#define SHOW_SBITS(name, gb, num)
GLint GLenum GLboolean GLsizei stride
common internal api header. 
int mb_stride
mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11 ...
void ff_h263_pred_acdc(MpegEncContext *s, int16_t *block, int n)
static int get_unary(GetBitContext *gb, int stop, int len)
Get unary code of limited length. 
const uint8_t * chroma_qscale_table
qscale -> chroma_qscale (H.263) 
static av_always_inline int diff(const uint32_t a, const uint32_t b)
void ff_h263_show_pict_info(MpegEncContext *s)
Print picture info if FF_DEBUG_PICT_INFO is set. 
int16_t(* block)[64]
points to one of the following blocks 
VLC_TYPE(* table)[2]
code, bits 
static const uint8_t * align_get_bits(GetBitContext *s)
int chroma_qscale
chroma QP 
int frame_number
Frame counter, set by libavcodec. 
static void preview_obmc(MpegEncContext *s)
read the next MVs for OBMC. 
uint32_t * mb_type
types and macros are defined in mpegutils.h 
#define LOCAL_ALIGNED_16(t, v,...)
int rv10_version
RV10 version: 0 or 3. 
static int skip_1stop_8data_bits(GetBitContext *gb)
int h263_long_vectors
use horrible H.263v1 long vector mode 
#define MV_TYPE_8X8
4 vectors (H.263, MPEG-4 4MV) 
int h263_aic_dir
AIC direction: 0 = left, 1 = top. 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
int ff_h263_decode_mb(MpegEncContext *s, int16_t block[6][64])
#define INTRA_MCBPC_VLC_BITS
uint16_t pb_time
time distance between the last b and p,s,i frame 
const uint8_t ff_mvtab[33][2]