xine-lib 1.2.11
Data Structures | Macros | Typedefs | Enumerations | Functions
mpeg2.h File Reference

Go to the source code of this file.

Data Structures

struct  mpeg2_sequence_s
 
struct  mpeg2_gop_s
 
struct  mpeg2_picture_s
 
struct  mpeg2_fbuf_s
 
struct  mpeg2_info_s
 
struct  mpeg2_convert_init_s
 

Macros

#define MPEG2_VERSION(a, b, c)   (((a)<<16)|((b)<<8)|(c))
 
#define MPEG2_RELEASE   MPEG2_VERSION (0, 4, 1) /* 0.4.1 */
 
#define SEQ_FLAG_MPEG2   1
 
#define SEQ_FLAG_CONSTRAINED_PARAMETERS   2
 
#define SEQ_FLAG_PROGRESSIVE_SEQUENCE   4
 
#define SEQ_FLAG_LOW_DELAY   8
 
#define SEQ_FLAG_COLOUR_DESCRIPTION   16
 
#define SEQ_MASK_VIDEO_FORMAT   0xe0
 
#define SEQ_VIDEO_FORMAT_COMPONENT   0
 
#define SEQ_VIDEO_FORMAT_PAL   0x20
 
#define SEQ_VIDEO_FORMAT_NTSC   0x40
 
#define SEQ_VIDEO_FORMAT_SECAM   0x60
 
#define SEQ_VIDEO_FORMAT_MAC   0x80
 
#define SEQ_VIDEO_FORMAT_UNSPECIFIED   0xa0
 
#define GOP_FLAG_DROP_FRAME   1
 
#define GOP_FLAG_BROKEN_LINK   2
 
#define GOP_FLAG_CLOSED_GOP   4
 
#define PIC_MASK_CODING_TYPE   7
 
#define PIC_FLAG_CODING_TYPE_I   1
 
#define PIC_FLAG_CODING_TYPE_P   2
 
#define PIC_FLAG_CODING_TYPE_B   3
 
#define PIC_FLAG_CODING_TYPE_D   4
 
#define PIC_FLAG_TOP_FIELD_FIRST   8
 
#define PIC_FLAG_PROGRESSIVE_FRAME   16
 
#define PIC_FLAG_COMPOSITE_DISPLAY   32
 
#define PIC_FLAG_SKIP   64
 
#define PIC_FLAG_TAGS   128
 
#define PIC_MASK_COMPOSITE_DISPLAY   0xfffff000
 
#define MPEG2_ACCEL_X86_MMX   1
 
#define MPEG2_ACCEL_X86_3DNOW   2
 
#define MPEG2_ACCEL_X86_MMXEXT   4
 
#define MPEG2_ACCEL_X86_SSE2   8
 
#define MPEG2_ACCEL_X86_SSE3   16
 
#define MPEG2_ACCEL_PPC_ALTIVEC   1
 
#define MPEG2_ACCEL_ALPHA   1
 
#define MPEG2_ACCEL_ALPHA_MVI   2
 
#define MPEG2_ACCEL_SPARC_VIS   1
 
#define MPEG2_ACCEL_SPARC_VIS2   2
 
#define MPEG2_ACCEL_DETECT   0x80000000
 

Typedefs

typedef struct mpeg2_sequence_s mpeg2_sequence_t
 
typedef struct mpeg2_gop_s mpeg2_gop_t
 
typedef struct mpeg2_picture_s mpeg2_picture_t
 
typedef struct mpeg2_fbuf_s mpeg2_fbuf_t
 
typedef struct mpeg2_info_s mpeg2_info_t
 
typedef struct mpeg2dec_s mpeg2dec_t
 
typedef struct mpeg2_decoder_s mpeg2_decoder_t
 
typedef struct mpeg2_convert_init_s mpeg2_convert_init_t
 
typedef int mpeg2_convert_t(int stage, void *id, const mpeg2_sequence_t *sequence, int stride, uint32_t accel, void *arg, mpeg2_convert_init_t *result)
 

Enumerations

enum  mpeg2_state_t {
  STATE_BUFFER = 0 , STATE_SEQUENCE = 1 , STATE_SEQUENCE_REPEATED = 2 , STATE_SEQUENCE_MODIFIED = 3 ,
  STATE_GOP = 4 , STATE_PICTURE = 5 , STATE_SLICE_1ST = 6 , STATE_PICTURE_2ND = 7 ,
  STATE_SLICE = 8 , STATE_END = 9 , STATE_INVALID = 10 , STATE_INVALID_END = 11
}
 
enum  mpeg2_convert_stage_t { MPEG2_CONVERT_SET = 0 , MPEG2_CONVERT_STRIDE = 1 , MPEG2_CONVERT_START = 2 }
 
enum  mpeg2_alloc_t {
  MPEG2_ALLOC_MPEG2DEC = 0 , MPEG2_ALLOC_CHUNK = 1 , MPEG2_ALLOC_YUV = 2 , MPEG2_ALLOC_CONVERT_ID = 3 ,
  MPEG2_ALLOC_CONVERTED = 4
}
 

Functions

int mpeg2_convert (mpeg2dec_t *mpeg2dec, mpeg2_convert_t convert, void *arg)
 
int mpeg2_stride (mpeg2dec_t *mpeg2dec, int stride)
 
void mpeg2_set_buf (mpeg2dec_t *mpeg2dec, uint8_t *buf[3], void *id)
 
void mpeg2_custom_fbuf (mpeg2dec_t *mpeg2dec, int custom_fbuf)
 
uint32_t mpeg2_accel (uint32_t accel)
 
mpeg2dec_tmpeg2_init (void)
 
const mpeg2_info_tmpeg2_info (mpeg2dec_t *mpeg2dec)
 
void mpeg2_close (mpeg2dec_t *mpeg2dec)
 
void mpeg2_buffer (mpeg2dec_t *mpeg2dec, uint8_t *start, uint8_t *end)
 
int mpeg2_getpos (mpeg2dec_t *mpeg2dec)
 
mpeg2_state_t mpeg2_parse (mpeg2dec_t *mpeg2dec)
 
void mpeg2_reset (mpeg2dec_t *mpeg2dec, int full_reset)
 
void mpeg2_skip (mpeg2dec_t *mpeg2dec, int skip)
 
void mpeg2_slice_region (mpeg2dec_t *mpeg2dec, int start, int end)
 
void mpeg2_tag_picture (mpeg2dec_t *mpeg2dec, uint32_t tag, uint32_t tag2)
 
void mpeg2_init_fbuf (mpeg2_decoder_t *decoder, uint8_t *current_fbuf[3], uint8_t *forward_fbuf[3], uint8_t *backward_fbuf[3])
 
void mpeg2_slice (mpeg2_decoder_t *decoder, int code, const uint8_t *buffer)
 
int mpeg2_guess_aspect (const mpeg2_sequence_t *sequence, unsigned int *pixel_width, unsigned int *pixel_height)
 
void * mpeg2_malloc (unsigned size, mpeg2_alloc_t reason)
 
void mpeg2_free (void *buf)
 
void mpeg2_malloc_hooks (void *malloc(unsigned, mpeg2_alloc_t), int free(void *))
 

Macro Definition Documentation

◆ GOP_FLAG_BROKEN_LINK

#define GOP_FLAG_BROKEN_LINK   2

◆ GOP_FLAG_CLOSED_GOP

#define GOP_FLAG_CLOSED_GOP   4

◆ GOP_FLAG_DROP_FRAME

#define GOP_FLAG_DROP_FRAME   1

◆ MPEG2_ACCEL_ALPHA

#define MPEG2_ACCEL_ALPHA   1

◆ MPEG2_ACCEL_ALPHA_MVI

#define MPEG2_ACCEL_ALPHA_MVI   2

◆ MPEG2_ACCEL_DETECT

#define MPEG2_ACCEL_DETECT   0x80000000

◆ MPEG2_ACCEL_PPC_ALTIVEC

#define MPEG2_ACCEL_PPC_ALTIVEC   1

◆ MPEG2_ACCEL_SPARC_VIS

#define MPEG2_ACCEL_SPARC_VIS   1

◆ MPEG2_ACCEL_SPARC_VIS2

#define MPEG2_ACCEL_SPARC_VIS2   2

◆ MPEG2_ACCEL_X86_3DNOW

#define MPEG2_ACCEL_X86_3DNOW   2

◆ MPEG2_ACCEL_X86_MMX

#define MPEG2_ACCEL_X86_MMX   1

◆ MPEG2_ACCEL_X86_MMXEXT

#define MPEG2_ACCEL_X86_MMXEXT   4

◆ MPEG2_ACCEL_X86_SSE2

#define MPEG2_ACCEL_X86_SSE2   8

◆ MPEG2_ACCEL_X86_SSE3

#define MPEG2_ACCEL_X86_SSE3   16

◆ MPEG2_RELEASE

#define MPEG2_RELEASE   MPEG2_VERSION (0, 4, 1) /* 0.4.1 */

◆ MPEG2_VERSION

#define MPEG2_VERSION (   a,
  b,
 
)    (((a)<<16)|((b)<<8)|(c))

◆ PIC_FLAG_CODING_TYPE_B

#define PIC_FLAG_CODING_TYPE_B   3

◆ PIC_FLAG_CODING_TYPE_D

#define PIC_FLAG_CODING_TYPE_D   4

◆ PIC_FLAG_CODING_TYPE_I

#define PIC_FLAG_CODING_TYPE_I   1

◆ PIC_FLAG_CODING_TYPE_P

#define PIC_FLAG_CODING_TYPE_P   2

◆ PIC_FLAG_COMPOSITE_DISPLAY

#define PIC_FLAG_COMPOSITE_DISPLAY   32

◆ PIC_FLAG_PROGRESSIVE_FRAME

#define PIC_FLAG_PROGRESSIVE_FRAME   16

◆ PIC_FLAG_SKIP

#define PIC_FLAG_SKIP   64

◆ PIC_FLAG_TAGS

#define PIC_FLAG_TAGS   128

◆ PIC_FLAG_TOP_FIELD_FIRST

#define PIC_FLAG_TOP_FIELD_FIRST   8

◆ PIC_MASK_CODING_TYPE

#define PIC_MASK_CODING_TYPE   7

◆ PIC_MASK_COMPOSITE_DISPLAY

#define PIC_MASK_COMPOSITE_DISPLAY   0xfffff000

◆ SEQ_FLAG_COLOUR_DESCRIPTION

#define SEQ_FLAG_COLOUR_DESCRIPTION   16

◆ SEQ_FLAG_CONSTRAINED_PARAMETERS

#define SEQ_FLAG_CONSTRAINED_PARAMETERS   2

◆ SEQ_FLAG_LOW_DELAY

#define SEQ_FLAG_LOW_DELAY   8

◆ SEQ_FLAG_MPEG2

#define SEQ_FLAG_MPEG2   1

◆ SEQ_FLAG_PROGRESSIVE_SEQUENCE

#define SEQ_FLAG_PROGRESSIVE_SEQUENCE   4

◆ SEQ_MASK_VIDEO_FORMAT

#define SEQ_MASK_VIDEO_FORMAT   0xe0

◆ SEQ_VIDEO_FORMAT_COMPONENT

#define SEQ_VIDEO_FORMAT_COMPONENT   0

◆ SEQ_VIDEO_FORMAT_MAC

#define SEQ_VIDEO_FORMAT_MAC   0x80

◆ SEQ_VIDEO_FORMAT_NTSC

#define SEQ_VIDEO_FORMAT_NTSC   0x40

◆ SEQ_VIDEO_FORMAT_PAL

#define SEQ_VIDEO_FORMAT_PAL   0x20

◆ SEQ_VIDEO_FORMAT_SECAM

#define SEQ_VIDEO_FORMAT_SECAM   0x60

◆ SEQ_VIDEO_FORMAT_UNSPECIFIED

#define SEQ_VIDEO_FORMAT_UNSPECIFIED   0xa0

Typedef Documentation

◆ mpeg2_convert_init_t

◆ mpeg2_convert_t

typedef int mpeg2_convert_t(int stage, void *id, const mpeg2_sequence_t *sequence, int stride, uint32_t accel, void *arg, mpeg2_convert_init_t *result)

◆ mpeg2_decoder_t

◆ mpeg2_fbuf_t

typedef struct mpeg2_fbuf_s mpeg2_fbuf_t

◆ mpeg2_gop_t

typedef struct mpeg2_gop_s mpeg2_gop_t

◆ mpeg2_info_t

typedef struct mpeg2_info_s mpeg2_info_t

◆ mpeg2_picture_t

◆ mpeg2_sequence_t

◆ mpeg2dec_t

typedef struct mpeg2dec_s mpeg2dec_t

Enumeration Type Documentation

◆ mpeg2_alloc_t

Enumerator
MPEG2_ALLOC_MPEG2DEC 
MPEG2_ALLOC_CHUNK 
MPEG2_ALLOC_YUV 
MPEG2_ALLOC_CONVERT_ID 
MPEG2_ALLOC_CONVERTED 

◆ mpeg2_convert_stage_t

Enumerator
MPEG2_CONVERT_SET 
MPEG2_CONVERT_STRIDE 
MPEG2_CONVERT_START 

◆ mpeg2_state_t

Enumerator
STATE_BUFFER 
STATE_SEQUENCE 
STATE_SEQUENCE_REPEATED 
STATE_SEQUENCE_MODIFIED 
STATE_GOP 
STATE_PICTURE 
STATE_SLICE_1ST 
STATE_PICTURE_2ND 
STATE_SLICE 
STATE_END 
STATE_INVALID 
STATE_INVALID_END 

Function Documentation

◆ mpeg2_accel()

uint32_t mpeg2_accel ( uint32_t  accel)

◆ mpeg2_buffer()

void mpeg2_buffer ( mpeg2dec_t mpeg2dec,
uint8_t *  start,
uint8_t *  end 
)

◆ mpeg2_close()

void mpeg2_close ( mpeg2dec_t mpeg2dec)

◆ mpeg2_convert()

int mpeg2_convert ( mpeg2dec_t mpeg2dec,
mpeg2_convert_t  convert,
void *  arg 
)

◆ mpeg2_custom_fbuf()

void mpeg2_custom_fbuf ( mpeg2dec_t mpeg2dec,
int  custom_fbuf 
)

References mpeg2dec_s::custom_fbuf.

Referenced by open_plugin().

◆ mpeg2_free()

void mpeg2_free ( void *  buf)

References free_hook.

Referenced by mpeg2_close(), and mpeg2_header_state_init().

◆ mpeg2_getpos()

int mpeg2_getpos ( mpeg2dec_t mpeg2dec)

◆ mpeg2_guess_aspect()

int mpeg2_guess_aspect ( const mpeg2_sequence_t sequence,
unsigned int *  pixel_width,
unsigned int *  pixel_height 
)

◆ mpeg2_info()

const mpeg2_info_t * mpeg2_info ( mpeg2dec_t mpeg2dec)

◆ mpeg2_init()

mpeg2dec_t * mpeg2_init ( void  )

◆ mpeg2_init_fbuf()

void mpeg2_init_fbuf ( mpeg2_decoder_t decoder,
uint8_t *  current_fbuf[3],
uint8_t *  forward_fbuf[3],
uint8_t *  backward_fbuf[3] 
)

◆ mpeg2_malloc()

void * mpeg2_malloc ( unsigned  size,
mpeg2_alloc_t  reason 
)

References malloc_hook, and NULL.

Referenced by mpeg2_header_picture_finalize(), and mpeg2_init().

◆ mpeg2_malloc_hooks()

void mpeg2_malloc_hooks ( void *  mallocunsigned, mpeg2_alloc_t,
int   freevoid * 
)

References free_hook, and malloc_hook.

◆ mpeg2_parse()

mpeg2_state_t mpeg2_parse ( mpeg2dec_t mpeg2dec)

◆ mpeg2_reset()

void mpeg2_reset ( mpeg2dec_t mpeg2dec,
int  full_reset 
)

◆ mpeg2_set_buf()

void mpeg2_set_buf ( mpeg2dec_t mpeg2dec,
uint8_t *  buf[3],
void *  id 
)

◆ mpeg2_skip()

void mpeg2_skip ( mpeg2dec_t mpeg2dec,
int  skip 
)

◆ mpeg2_slice()

void mpeg2_slice ( mpeg2_decoder_t decoder,
int  code,
const uint8_t *  buffer 
)

◆ mpeg2_slice_region()

void mpeg2_slice_region ( mpeg2dec_t mpeg2dec,
int  start,
int  end 
)

◆ mpeg2_stride()

int mpeg2_stride ( mpeg2dec_t mpeg2dec,
int  stride 
)

◆ mpeg2_tag_picture()

void mpeg2_tag_picture ( mpeg2dec_t mpeg2dec,
uint32_t  tag,
uint32_t  tag2 
)