FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions
mpegutils.h File Reference
#include <stdint.h>
#include "libavutil/frame.h"
#include "avcodec.h"
#include "version.h"

Go to the source code of this file.

Macros

#define FRAME_SKIPPED   100
 Return value for header parsers if frame is not coded. More...
 
#define PICT_TOP_FIELD   1
 
#define PICT_BOTTOM_FIELD   2
 
#define PICT_FRAME   3
 
#define DELAYED_PIC_REF   4
 Value of Picture.reference when Picture is not a reference picture, but is held for delayed output. More...
 
#define MAX_MB_BYTES   (30 * 16 * 16 * 3 / 8 + 120)
 
#define MAX_FCODE   7
 
#define MB_TYPE_INTRA4x4   (1 << 0)
 
#define MB_TYPE_INTRA16x16   (1 << 1)
 
#define MB_TYPE_INTRA_PCM   (1 << 2)
 
#define MB_TYPE_16x16   (1 << 3)
 
#define MB_TYPE_16x8   (1 << 4)
 
#define MB_TYPE_8x16   (1 << 5)
 
#define MB_TYPE_8x8   (1 << 6)
 
#define MB_TYPE_INTERLACED   (1 << 7)
 
#define MB_TYPE_DIRECT2   (1 << 8)
 
#define MB_TYPE_ACPRED   (1 << 9)
 
#define MB_TYPE_GMC   (1 << 10)
 
#define MB_TYPE_SKIP   (1 << 11)
 
#define MB_TYPE_P0L0   (1 << 12)
 
#define MB_TYPE_P1L0   (1 << 13)
 
#define MB_TYPE_P0L1   (1 << 14)
 
#define MB_TYPE_P1L1   (1 << 15)
 
#define MB_TYPE_L0   (MB_TYPE_P0L0 | MB_TYPE_P1L0)
 
#define MB_TYPE_L1   (MB_TYPE_P0L1 | MB_TYPE_P1L1)
 
#define MB_TYPE_L0L1   (MB_TYPE_L0 | MB_TYPE_L1)
 
#define MB_TYPE_QUANT   (1 << 16)
 
#define MB_TYPE_CBP   (1 << 17)
 
#define MB_TYPE_INTRA   MB_TYPE_INTRA4x4
 
#define IS_INTRA4x4(a)   ((a) & MB_TYPE_INTRA4x4)
 
#define IS_INTRA16x16(a)   ((a) & MB_TYPE_INTRA16x16)
 
#define IS_PCM(a)   ((a) & MB_TYPE_INTRA_PCM)
 
#define IS_INTRA(a)   ((a) & 7)
 
#define IS_INTER(a)
 
#define IS_SKIP(a)   ((a) & MB_TYPE_SKIP)
 
#define IS_INTRA_PCM(a)   ((a) & MB_TYPE_INTRA_PCM)
 
#define IS_INTERLACED(a)   ((a) & MB_TYPE_INTERLACED)
 
#define IS_DIRECT(a)   ((a) & MB_TYPE_DIRECT2)
 
#define IS_GMC(a)   ((a) & MB_TYPE_GMC)
 
#define IS_16X16(a)   ((a) & MB_TYPE_16x16)
 
#define IS_16X8(a)   ((a) & MB_TYPE_16x8)
 
#define IS_8X16(a)   ((a) & MB_TYPE_8x16)
 
#define IS_8X8(a)   ((a) & MB_TYPE_8x8)
 
#define IS_SUB_8X8(a)   ((a) & MB_TYPE_16x16)
 
#define IS_SUB_8X4(a)   ((a) & MB_TYPE_16x8)
 
#define IS_SUB_4X8(a)   ((a) & MB_TYPE_8x16)
 
#define IS_SUB_4X4(a)   ((a) & MB_TYPE_8x8)
 
#define IS_ACPRED(a)   ((a) & MB_TYPE_ACPRED)
 
#define IS_QUANT(a)   ((a) & MB_TYPE_QUANT)
 
#define IS_DIR(a, part, list)   ((a) & (MB_TYPE_P0L0 << ((part) + 2 * (list))))
 
#define USES_LIST(a, list)   ((a) & ((MB_TYPE_P0L0 | MB_TYPE_P1L0) << (2 * (list))))
 
#define HAS_CBP(a)   ((a) & MB_TYPE_CBP)
 
#define CANDIDATE_MB_TYPE_INTRA   (1 << 0)
 
#define CANDIDATE_MB_TYPE_INTER   (1 << 1)
 
#define CANDIDATE_MB_TYPE_INTER4V   (1 << 2)
 
#define CANDIDATE_MB_TYPE_SKIPPED   (1 << 3)
 
#define CANDIDATE_MB_TYPE_DIRECT   (1 << 4)
 
#define CANDIDATE_MB_TYPE_FORWARD   (1 << 5)
 
#define CANDIDATE_MB_TYPE_BACKWARD   (1 << 6)
 
#define CANDIDATE_MB_TYPE_BIDIR   (1 << 7)
 
#define CANDIDATE_MB_TYPE_INTER_I   (1 << 8)
 
#define CANDIDATE_MB_TYPE_FORWARD_I   (1 << 9)
 
#define CANDIDATE_MB_TYPE_BACKWARD_I   (1 << 10)
 
#define CANDIDATE_MB_TYPE_BIDIR_I   (1 << 11)
 
#define CANDIDATE_MB_TYPE_DIRECT0   (1 << 12)
 
#define INPLACE_OFFSET   16
 

Enumerations

enum  OutputFormat { FMT_MPEG1, FMT_H261, FMT_H263, FMT_MJPEG }
 

Functions

void ff_draw_horiz_band (AVCodecContext *avctx, AVFrame *cur, AVFrame *last, int y, int h, int picture_structure, int first_field, int low_delay)
 Draw a horizontal band if supported. More...
 

Macro Definition Documentation

#define FRAME_SKIPPED   100

Return value for header parsers if frame is not coded.

Definition at line 34 of file mpegutils.h.

Referenced by ff_h263_decode_frame(), ff_intel_h263_decode_picture_header(), and ff_mpeg4_decode_picture_header().

#define PICT_TOP_FIELD   1
#define PICT_BOTTOM_FIELD   2
#define PICT_FRAME   3
#define DELAYED_PIC_REF   4

Value of Picture.reference when Picture is not a reference picture, but is held for delayed output.

Definition at line 45 of file mpegutils.h.

#define MAX_MB_BYTES   (30 * 16 * 16 * 3 / 8 + 120)
#define MAX_FCODE   7

Definition at line 48 of file mpegutils.h.

Referenced by ff_mpeg1_encode_init(), and init_mv_penalty_and_fcode().

#define MB_TYPE_INTRA4x4   (1 << 0)

Definition at line 51 of file mpegutils.h.

Referenced by ff_er_frame_end(), and svq3_decode_mb().

#define MB_TYPE_INTRA16x16   (1 << 1)
#define MB_TYPE_INTRA_PCM   (1 << 2)

Definition at line 53 of file mpegutils.h.

Referenced by decode_cabac_intra_mb_type().

#define MB_TYPE_16x16   (1 << 3)
#define MB_TYPE_16x8   (1 << 4)
#define MB_TYPE_8x16   (1 << 5)
#define MB_TYPE_8x8   (1 << 6)
#define MB_TYPE_INTERLACED   (1 << 7)
#define MB_TYPE_DIRECT2   (1 << 8)
#define MB_TYPE_ACPRED   (1 << 9)

Definition at line 60 of file mpegutils.h.

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

#define MB_TYPE_GMC   (1 << 10)

Definition at line 61 of file mpegutils.h.

Referenced by mpeg4_decode_mb(), and mpeg4_decode_partition_a().

#define MB_TYPE_SKIP   (1 << 11)
#define MB_TYPE_P0L0   (1 << 12)

Definition at line 63 of file mpegutils.h.

Referenced by decode_mb_skip(), and pred_temp_direct_motion().

#define MB_TYPE_P1L0   (1 << 13)

Definition at line 64 of file mpegutils.h.

Referenced by decode_mb_skip(), and pred_spatial_direct_motion().

#define MB_TYPE_P0L1   (1 << 14)

Definition at line 65 of file mpegutils.h.

Referenced by pred_temp_direct_motion().

#define MB_TYPE_P1L1   (1 << 15)

Definition at line 66 of file mpegutils.h.

Referenced by pred_spatial_direct_motion().

#define MB_TYPE_L0   (MB_TYPE_P0L0 | MB_TYPE_P1L0)
#define MB_TYPE_L1   (MB_TYPE_P0L1 | MB_TYPE_P1L1)

Definition at line 68 of file mpegutils.h.

Referenced by rv34_pred_mv_b().

#define MB_TYPE_L0L1   (MB_TYPE_L0 | MB_TYPE_L1)
#define MB_TYPE_QUANT   (1 << 16)

Definition at line 70 of file mpegutils.h.

Referenced by mpeg_decode_mb().

#define MB_TYPE_CBP   (1 << 17)

Definition at line 71 of file mpegutils.h.

Referenced by mpeg_decode_mb().

#define MB_TYPE_INTRA   MB_TYPE_INTRA4x4
#define IS_INTRA4x4 (   a)    ((a) & MB_TYPE_INTRA4x4)
#define IS_INTRA16x16 (   a)    ((a) & MB_TYPE_INTRA16x16)
#define IS_PCM (   a)    ((a) & MB_TYPE_INTRA_PCM)

Definition at line 77 of file mpegutils.h.

Referenced by ff_print_debug_info2().

#define IS_INTRA (   a)    ((a) & 7)

Definition at line 78 of file mpegutils.h.

#define IS_INTER (   a)
Value:
#define MB_TYPE_16x8
Definition: mpegutils.h:55
#define MB_TYPE_16x16
Definition: mpegutils.h:54
#define MB_TYPE_8x16
Definition: mpegutils.h:56
#define MB_TYPE_8x8
Definition: mpegutils.h:57

Definition at line 79 of file mpegutils.h.

Referenced by ff_er_frame_end(), ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), fill_decode_caches(), fill_filter_caches_inter(), guess_dc(), hl_motion(), and svq3_decode_mb().

#define IS_SKIP (   a)    ((a) & MB_TYPE_SKIP)
#define IS_INTRA_PCM (   a)    ((a) & MB_TYPE_INTRA_PCM)
#define IS_INTERLACED (   a)    ((a) & MB_TYPE_INTERLACED)
#define IS_DIRECT (   a)    ((a) & MB_TYPE_DIRECT2)
#define IS_GMC (   a)    ((a) & MB_TYPE_GMC)

Definition at line 85 of file mpegutils.h.

Referenced by ff_print_debug_info2().

#define IS_16X16 (   a)    ((a) & MB_TYPE_16x16)
#define IS_16X8 (   a)    ((a) & MB_TYPE_16x8)
#define IS_8X16 (   a)    ((a) & MB_TYPE_8x16)
#define IS_8X8 (   a)    ((a) & MB_TYPE_8x8)
#define IS_SUB_8X8 (   a)    ((a) & MB_TYPE_16x16)
#define IS_SUB_8X4 (   a)    ((a) & MB_TYPE_16x8)
#define IS_SUB_4X8 (   a)    ((a) & MB_TYPE_8x16)
#define IS_SUB_4X4 (   a)    ((a) & MB_TYPE_8x8)

Definition at line 93 of file mpegutils.h.

Referenced by await_references(), and hl_motion().

#define IS_ACPRED (   a)    ((a) & MB_TYPE_ACPRED)

Definition at line 94 of file mpegutils.h.

Referenced by ff_print_debug_info2(), and mpeg4_decode_partitioned_mb().

#define IS_QUANT (   a)    ((a) & MB_TYPE_QUANT)

Definition at line 95 of file mpegutils.h.

Referenced by ff_h261_encode_mb(), ff_h263_decode_mb(), h261_decode_mb(), and mpeg_decode_mb().

#define IS_DIR (   a,
  part,
  list 
)    ((a) & (MB_TYPE_P0L0 << ((part) + 2 * (list))))
#define USES_LIST (   a,
  list 
)    ((a) & ((MB_TYPE_P0L0 | MB_TYPE_P1L0) << (2 * (list))))
#define HAS_CBP (   a)    ((a) & MB_TYPE_CBP)

Definition at line 101 of file mpegutils.h.

Referenced by ff_h261_encode_mb(), ff_h263_decode_mb(), h261_decode_mb(), and mpeg_decode_mb().

#define CANDIDATE_MB_TYPE_INTRA   (1 << 0)
#define CANDIDATE_MB_TYPE_INTER   (1 << 1)
#define CANDIDATE_MB_TYPE_INTER4V   (1 << 2)
#define CANDIDATE_MB_TYPE_SKIPPED   (1 << 3)

Definition at line 107 of file mpegutils.h.

Referenced by encode_thread(), and ff_estimate_p_frame_motion().

#define CANDIDATE_MB_TYPE_DIRECT   (1 << 4)

Definition at line 109 of file mpegutils.h.

Referenced by encode_thread(), ff_clean_mpeg4_qscales(), and ff_estimate_b_frame_motion().

#define CANDIDATE_MB_TYPE_FORWARD   (1 << 5)

Definition at line 110 of file mpegutils.h.

Referenced by encode_picture(), encode_thread(), and ff_estimate_b_frame_motion().

#define CANDIDATE_MB_TYPE_BACKWARD   (1 << 6)

Definition at line 111 of file mpegutils.h.

Referenced by encode_picture(), encode_thread(), and ff_estimate_b_frame_motion().

#define CANDIDATE_MB_TYPE_BIDIR   (1 << 7)
#define CANDIDATE_MB_TYPE_INTER_I   (1 << 8)

Definition at line 114 of file mpegutils.h.

Referenced by encode_picture(), encode_thread(), and ff_estimate_p_frame_motion().

#define CANDIDATE_MB_TYPE_FORWARD_I   (1 << 9)

Definition at line 115 of file mpegutils.h.

Referenced by encode_picture(), encode_thread(), and ff_estimate_b_frame_motion().

#define CANDIDATE_MB_TYPE_BACKWARD_I   (1 << 10)

Definition at line 116 of file mpegutils.h.

Referenced by encode_picture(), encode_thread(), and ff_estimate_b_frame_motion().

#define CANDIDATE_MB_TYPE_BIDIR_I   (1 << 11)

Definition at line 117 of file mpegutils.h.

Referenced by encode_picture(), encode_thread(), and ff_estimate_b_frame_motion().

#define CANDIDATE_MB_TYPE_DIRECT0   (1 << 12)

Definition at line 119 of file mpegutils.h.

Referenced by encode_thread(), and ff_estimate_b_frame_motion().

#define INPLACE_OFFSET   16

Enumeration Type Documentation

Enumerator
FMT_MPEG1 
FMT_H261 
FMT_H263 
FMT_MJPEG 

Definition at line 123 of file mpegutils.h.

Function Documentation

void ff_draw_horiz_band ( AVCodecContext avctx,
AVFrame cur,
AVFrame last,
int  y,
int  h,
int  picture_structure,
int  first_field,
int  low_delay 
)

Draw a horizontal band if supported.

Parameters
his the normal height, this will be reduced automatically if needed

Definition at line 30 of file mpegutils.c.

Referenced by ff_intrax8_decode_picture(), ff_mpeg_draw_horiz_band(), and svq3_decode_frame().