libavcodec/h261dec.c File Reference

H.261 decoder. More...

#include "libavutil/avassert.h"
#include "dsputil.h"
#include "avcodec.h"
#include "mpegvideo.h"
#include "h263.h"
#include "h261.h"
#include "h261data.h"

Go to the source code of this file.

Defines

#define H261_MBA_VLC_BITS   9
#define H261_MTYPE_VLC_BITS   6
#define H261_MV_VLC_BITS   7
#define H261_CBP_VLC_BITS   9
#define TCOEFF_VLC_BITS   9
#define MBA_STUFFING   33
#define MBA_STARTCODE   34

Functions

static int h261_decode_block (H261Context *h, DCTELEM *block, int n, int coded)
 Decode a macroblock.
static av_cold void h261_decode_init_vlc (H261Context *h)
static av_cold int h261_decode_init (AVCodecContext *avctx)
static int h261_decode_gob_header (H261Context *h)
 Decode the group of blocks header or slice header.
static int ff_h261_resync (H261Context *h)
 Decode the group of blocks / video packet header.
static int h261_decode_mb_skipped (H261Context *h, int mba1, int mba2)
 Decode skipped macroblocks.
static int decode_mv_component (GetBitContext *gb, int v)
static int h261_decode_mb (H261Context *h)
static int h261_decode_picture_header (H261Context *h)
 Decode the H.261 picture header.
static int h261_decode_gob (H261Context *h)
static int get_consumed_bytes (MpegEncContext *s, int buf_size)
 returns the number of bytes consumed for building the current frame
static int h261_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int h261_decode_end (AVCodecContext *avctx)

Variables

uint8_t ff_h261_rl_table_store [2][2 *MAX_RUN+MAX_LEVEL+3]
static VLC h261_mba_vlc
static VLC h261_mtype_vlc
static VLC h261_mv_vlc
static VLC h261_cbp_vlc
AVCodec ff_h261_decoder


Detailed Description

H.261 decoder.

Definition in file h261dec.c.


Define Documentation

#define H261_CBP_VLC_BITS   9

Definition at line 39 of file h261dec.c.

Referenced by h261_decode_init_vlc(), and h261_decode_mb().

#define H261_MBA_VLC_BITS   9

Definition at line 36 of file h261dec.c.

Referenced by h261_decode_init_vlc(), and h261_decode_mb().

#define H261_MTYPE_VLC_BITS   6

Definition at line 37 of file h261dec.c.

Referenced by h261_decode_init_vlc(), and h261_decode_mb().

#define H261_MV_VLC_BITS   7

Definition at line 38 of file h261dec.c.

Referenced by decode_mv_component(), and h261_decode_init_vlc().

#define MBA_STARTCODE   34

Definition at line 42 of file h261dec.c.

Referenced by h261_decode_mb().

#define MBA_STUFFING   33

Definition at line 41 of file h261dec.c.

Referenced by h261_decode_gob(), and h261_decode_mb().

#define TCOEFF_VLC_BITS   9

Definition at line 40 of file h261dec.c.

Referenced by h261_decode_block().


Function Documentation

static int decode_mv_component ( GetBitContext gb,
int  v 
) [static]

Definition at line 231 of file h261dec.c.

Referenced by h261_decode_mb().

static int ff_h261_resync ( H261Context h  )  [static]

Decode the group of blocks / video packet header.

Returns:
<0 if no resync found

Definition at line 157 of file h261dec.c.

Referenced by h261_decode_frame().

static int get_consumed_bytes ( MpegEncContext s,
int  buf_size 
) [static]

returns the number of bytes consumed for building the current frame

Definition at line 545 of file h261dec.c.

Referenced by decode_frame(), ff_h263_decode_frame(), and h261_decode_frame().

static int h261_decode_block ( H261Context h,
DCTELEM block,
int  n,
int  coded 
) [static]

Decode a macroblock.

Returns:
<0 if an error occurred

Definition at line 369 of file h261dec.c.

Referenced by h261_decode_mb().

static av_cold int h261_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 644 of file h261dec.c.

static int h261_decode_frame ( AVCodecContext avctx,
void *  data,
int data_size,
AVPacket avpkt 
) [static]

Definition at line 553 of file h261dec.c.

static int h261_decode_gob ( H261Context h  )  [static]

Definition at line 516 of file h261dec.c.

Referenced by h261_decode_frame().

static int h261_decode_gob_header ( H261Context h  )  [static]

Decode the group of blocks header or slice header.

Returns:
<0 if an error occurred

Definition at line 104 of file h261dec.c.

Referenced by ff_h261_resync().

static av_cold int h261_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 75 of file h261dec.c.

static av_cold void h261_decode_init_vlc ( H261Context h  )  [static]

Definition at line 53 of file h261dec.c.

Referenced by h261_decode_init().

static int h261_decode_mb ( H261Context h  )  [static]

Definition at line 253 of file h261dec.c.

Referenced by h261_decode_gob().

static int h261_decode_mb_skipped ( H261Context h,
int  mba1,
int  mba2 
) [static]

Decode skipped macroblocks.

Returns:
0

Definition at line 198 of file h261dec.c.

Referenced by h261_decode_gob().

static int h261_decode_picture_header ( H261Context h  )  [static]

Decode the H.261 picture header.

Returns:
<0 if no startcode found

Definition at line 451 of file h261dec.c.

Referenced by h261_decode_frame().


Variable Documentation

Initial value:

 {
    .name           = "h261",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_H261,
    .priv_data_size = sizeof(H261Context),
    .init           = h261_decode_init,
    .close          = h261_decode_end,
    .decode         = h261_decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .max_lowres     = 3,
    .long_name      = NULL_IF_CONFIG_SMALL("H.261"),
}

Definition at line 653 of file h261dec.c.

uint8_t ff_h261_rl_table_store[2][2 *MAX_RUN+MAX_LEVEL+3]

Definition at line 34 of file h261.c.

VLC h261_cbp_vlc [static]

Definition at line 49 of file h261dec.c.

VLC h261_mba_vlc [static]

Definition at line 46 of file h261dec.c.

VLC h261_mtype_vlc [static]

Definition at line 47 of file h261dec.c.

VLC h261_mv_vlc [static]

Definition at line 48 of file h261dec.c.


Generated on Fri Oct 26 02:50:05 2012 for FFmpeg by  doxygen 1.5.8