Go to the documentation of this file.
20 #ifndef AVCODEC_H263DEC_H
21 #define AVCODEC_H263DEC_H
32 #define H263_MV_VLC_BITS 9
33 #define INTRA_MCBPC_VLC_BITS 6
34 #define INTER_MCBPC_VLC_BITS 7
35 #define CBPY_VLC_BITS 6
36 #define TEX_VLC_BITS 9
87 #define FRAME_SKIPPED 100
91 #define SLICE_ERROR -1
93 #define SLICE_NOEND -3
int padding_bug_score
used to detect the VERY common padding bug in MPEG-4
VLCElem ff_h263_cbpy_vlc[]
int ff_h263_resync(H263DecContext *const h)
Decode the group of blocks / video packet header / slice header (MPEG-4 Studio).
void ff_h263_show_pict_info(H263DecContext *const h, int h263_plus)
Print picture info if FF_DEBUG_PICT_INFO is set.
int rv10_version
RV10 version: 0 or 3.
int rv10_first_dc_coded[3]
int slice_height
in macroblocks
This structure describes decoded (raw) audio or video data.
GetBitContext last_resync_gb
used to search for the next resync marker
int ff_h263_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt)
int ff_h263_decode_gob_header(H263DecContext *const h)
int partitioned_frame
is current frame partitioned
int pb_frame
PB-frame mode (0 = none, 1 = base, 2 = improved)
int ff_h263_decode_motion(H263DecContext *const h, int pred, int f_code)
void ff_h263_decode_init_vlc(void)
int h263_slice_structured
int ff_h263_decode_mb(H263DecContext *const h)
int(* decode_mb)(struct H263DecContext *h)
int(* decode_header)(struct H263DecContext *const h)
VLCElem ff_h263_intra_MCBPC_vlc[]
int alt_inter_vlc
alternative inter vlc
int h263_long_vectors
use horrible H.263v1 long vector mode
int data_partitioning
data partitioning flag from header
int ff_h263_decode_mba(H263DecContext *const h)
DECLARE_ALIGNED_32(int16_t, block)[6][64]
int ff_intel_h263_decode_picture_header(H263DecContext *const h)
static const float pred[4]
int ff_h263_decode_init(AVCodecContext *avctx)
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
main external API structure.
int mb_num_left
number of MBs left in this video packet (for partitioned slices only)
int divx_packed
divx specific, used to workaround (many) bugs in divx5
int umvplus
== H.263+ && unrestricted_mv
VLCElem ff_h263_inter_MCBPC_vlc[]
This structure stores compressed data.
The exact code depends on how similar the blocks are and how related they are to the block
int flv
use flv H.263 header
int ff_h263_decode_picture_header(H263DecContext *const h)