FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
ituh263dec.c File Reference

H.263 decoder. More...

#include <limits.h>
#include "libavutil/attributes.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/mathematics.h"
#include "avcodec.h"
#include "mpegvideo.h"
#include "h263.h"
#include "h263data.h"
#include "internal.h"
#include "mathops.h"
#include "mpegutils.h"
#include "unary.h"
#include "flv.h"
#include "rv10.h"
#include "mpeg4video.h"
#include "mpegvideodata.h"

Go to the source code of this file.

Macros

#define UNCHECKED_BITSTREAM_READER   1
 
#define MV_VLC_BITS   9
 
#define H263_MBTYPE_B_VLC_BITS   6
 
#define CBPC_B_VLC_BITS   3
 
#define tab_size   ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0]))
 
#define tab_bias   (tab_size / 2)
 

Functions

void ff_h263_show_pict_info (MpegEncContext *s)
 Print picture info if FF_DEBUG_PICT_INFO is set. More...
 
av_cold void ff_h263_decode_init_vlc (void)
 
int ff_h263_decode_mba (MpegEncContext *s)
 
static int h263_decode_gob_header (MpegEncContext *s)
 Decode the group of blocks header or slice header. More...
 
int ff_h263_resync (MpegEncContext *s)
 Decode the group of blocks / video packet header / slice header (MPEG-4 Studio). More...
 
int ff_h263_decode_motion (MpegEncContext *s, int pred, int f_code)
 
static int h263p_decode_umotion (MpegEncContext *s, int pred)
 
static void preview_obmc (MpegEncContext *s)
 read the next MVs for OBMC. More...
 
static void h263_decode_dquant (MpegEncContext *s)
 
static int h263_decode_block (MpegEncContext *s, int16_t *block, int n, int coded)
 
static int h263_skip_b_part (MpegEncContext *s, int cbp)
 
static int h263_get_modb (GetBitContext *gb, int pb_frame, int *cbpb)
 
static void set_one_direct_mv (MpegEncContext *s, Picture *p, int i)
 
static int set_direct_mv (MpegEncContext *s)
 
int ff_h263_decode_mb (MpegEncContext *s, int16_t block[6][64])
 
int ff_h263_decode_picture_header (MpegEncContext *s)
 

Variables

static const int h263_mb_type_b_map [15]
 
VLC ff_h263_intra_MCBPC_vlc
 
VLC ff_h263_inter_MCBPC_vlc
 
VLC ff_h263_cbpy_vlc
 
static VLC mv_vlc
 
static VLC h263_mbtype_b_vlc
 
static VLC cbpc_b_vlc
 

Detailed Description

H.263 decoder.

Definition in file ituh263dec.c.

Macro Definition Documentation

#define UNCHECKED_BITSTREAM_READER   1

Definition at line 30 of file ituh263dec.c.

#define MV_VLC_BITS   9
#define H263_MBTYPE_B_VLC_BITS   6

Definition at line 55 of file ituh263dec.c.

Referenced by ff_h263_decode_init_vlc(), and ff_h263_decode_mb().

#define CBPC_B_VLC_BITS   3

Definition at line 56 of file ituh263dec.c.

Referenced by ff_h263_decode_init_vlc(), and ff_h263_decode_mb().

#define tab_size   ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0]))

Definition at line 630 of file ituh263dec.c.

Referenced by set_one_direct_mv().

#define tab_bias   (tab_size / 2)

Definition at line 631 of file ituh263dec.c.

Referenced by set_one_direct_mv().

Function Documentation

void ff_h263_show_pict_info ( MpegEncContext s)

Print picture info if FF_DEBUG_PICT_INFO is set.

Definition at line 76 of file ituh263dec.c.

Referenced by ff_h263_decode_picture_header(), and ff_intel_h263_decode_picture_header().

av_cold void ff_h263_decode_init_vlc ( void  )

Definition at line 108 of file ituh263dec.c.

Referenced by ff_h263_decode_init(), and rv10_decode_init().

int ff_h263_decode_mba ( MpegEncContext s)
static int h263_decode_gob_header ( MpegEncContext s)
static

Decode the group of blocks header or slice header.

Returns
<0 if an error occurred

Definition at line 157 of file ituh263dec.c.

Referenced by ff_h263_resync().

int ff_h263_resync ( MpegEncContext s)

Decode the group of blocks / video packet header / slice header (MPEG-4 Studio).

Returns
bit position of the resync_marker, or <0 if none was found

Definition at line 213 of file ituh263dec.c.

Referenced by ff_h263_decode_frame().

int ff_h263_decode_motion ( MpegEncContext s,
int  pred,
int  f_code 
)
static int h263p_decode_umotion ( MpegEncContext s,
int  pred 
)
static

Definition at line 308 of file ituh263dec.c.

Referenced by ff_h263_decode_mb(), and preview_obmc().

static void preview_obmc ( MpegEncContext s)
static

read the next MVs for OBMC.

yes this is an ugly hack, feel free to send a patch :)

Definition at line 338 of file ituh263dec.c.

Referenced by ff_h263_decode_mb().

static void h263_decode_dquant ( MpegEncContext s)
static

Definition at line 430 of file ituh263dec.c.

Referenced by ff_h263_decode_mb().

static int h263_decode_block ( MpegEncContext s,
int16_t *  block,
int  n,
int  coded 
)
static

Definition at line 443 of file ituh263dec.c.

Referenced by ff_h263_decode_mb(), and h263_skip_b_part().

static int h263_skip_b_part ( MpegEncContext s,
int  cbp 
)
static

Definition at line 590 of file ituh263dec.c.

Referenced by ff_h263_decode_mb().

static int h263_get_modb ( GetBitContext gb,
int  pb_frame,
int cbpb 
)
static

Definition at line 612 of file ituh263dec.c.

Referenced by ff_h263_decode_mb().

static void set_one_direct_mv ( MpegEncContext s,
Picture p,
int  i 
)
inlinestatic

Definition at line 632 of file ituh263dec.c.

Referenced by set_direct_mv().

static int set_direct_mv ( MpegEncContext s)
static
Returns
the mb_type

Definition at line 660 of file ituh263dec.c.

Referenced by ff_h263_decode_mb().

int ff_h263_decode_mb ( MpegEncContext s,
int16_t  block[6][64] 
)

Definition at line 697 of file ituh263dec.c.

Referenced by ff_h263_decode_init(), and rv10_decode_packet().

int ff_h263_decode_picture_header ( MpegEncContext s)

Definition at line 999 of file ituh263dec.c.

Referenced by ff_h263_decode_frame().

Variable Documentation

const int h263_mb_type_b_map[15]
static
VLC ff_h263_intra_MCBPC_vlc

Definition at line 98 of file ituh263dec.c.

Referenced by mpeg4_decode_mb(), mpeg4_decode_partition_a(), and msmpeg4v12_decode_mb().

VLC ff_h263_inter_MCBPC_vlc

Definition at line 99 of file ituh263dec.c.

Referenced by mpeg4_decode_mb(), mpeg4_decode_partition_a(), and msmpeg4v12_decode_mb().

VLC ff_h263_cbpy_vlc

Definition at line 100 of file ituh263dec.c.

Referenced by mpeg4_decode_mb(), mpeg4_decode_partition_b(), and msmpeg4v12_decode_mb().

VLC mv_vlc
static

Definition at line 101 of file ituh263dec.c.

VLC h263_mbtype_b_vlc
static

Definition at line 102 of file ituh263dec.c.

VLC cbpc_b_vlc
static

Definition at line 103 of file ituh263dec.c.