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

H.264 / AVC / MPEG4 part10 parameter set decoding. More...

#include <inttypes.h>
#include "libavutil/imgutils.h"
#include "internal.h"
#include "avcodec.h"
#include "h264.h"
#include "h264data.h"
#include "golomb.h"

Go to the source code of this file.

Macros

#define MAX_LOG2_MAX_FRAME_NUM   (12 + 4)
 
#define MIN_LOG2_MAX_FRAME_NUM   4
 
#define QP(qP, depth)   ((qP) + 6 * ((depth) - 8))
 
#define CHROMA_QP_TABLE_END(d)
 

Functions

static int decode_hrd_parameters (H264Context *h, SPS *sps)
 
static int decode_vui_parameters (H264Context *h, SPS *sps)
 
static void decode_scaling_list (H264Context *h, uint8_t *factors, int size, const uint8_t *jvt_list, const uint8_t *fallback_list)
 
static void decode_scaling_matrices (H264Context *h, SPS *sps, PPS *pps, int is_sps, uint8_t(*scaling_matrix4)[16], uint8_t(*scaling_matrix8)[64])
 
int ff_h264_decode_seq_parameter_set (H264Context *h)
 Decode SPS.
 
static void build_qp_table (PPS *pps, int t, int index, const int depth)
 
static int more_rbsp_data_in_pps (H264Context *h, PPS *pps)
 
int ff_h264_decode_picture_parameter_set (H264Context *h, int bit_length)
 Decode PPS.
 

Variables

const uint8_t ff_h264_chroma_qp [7][QP_MAX_NUM+1]
 One chroma qp table for each possible bit depth (8-14).
 
static const uint8_t default_scaling4 [2][16]
 
static const uint8_t default_scaling8 [2][64]
 

Detailed Description

H.264 / AVC / MPEG4 part10 parameter set decoding.

Author
Michael Niedermayer micha.nosp@m.elni.nosp@m.@gmx..nosp@m.at

Definition in file h264_ps.c.

Macro Definition Documentation

#define MAX_LOG2_MAX_FRAME_NUM   (12 + 4)

Definition at line 37 of file h264_ps.c.

Referenced by ff_h264_decode_seq_parameter_set().

#define MIN_LOG2_MAX_FRAME_NUM   4

Definition at line 38 of file h264_ps.c.

Referenced by ff_h264_decode_seq_parameter_set().

#define QP (   qP,
  depth 
)    ((qP) + 6 * ((depth) - 8))
#define CHROMA_QP_TABLE_END (   d)
Value:
QP(0, d), QP(1, d), QP(2, d), QP(3, d), QP(4, d), QP(5, d), \
QP(6, d), QP(7, d), QP(8, d), QP(9, d), QP(10, d), QP(11, d), \
QP(12, d), QP(13, d), QP(14, d), QP(15, d), QP(16, d), QP(17, d), \
QP(18, d), QP(19, d), QP(20, d), QP(21, d), QP(22, d), QP(23, d), \
QP(24, d), QP(25, d), QP(26, d), QP(27, d), QP(28, d), QP(29, d), \
QP(29, d), QP(30, d), QP(31, d), QP(32, d), QP(32, d), QP(33, d), \
QP(34, d), QP(34, d), QP(35, d), QP(35, d), QP(36, d), QP(36, d), \
QP(37, d), QP(37, d), QP(37, d), QP(38, d), QP(38, d), QP(38, d), \
QP(39, d), QP(39, d), QP(39, d), QP(39, d)

Definition at line 42 of file h264_ps.c.

Function Documentation

static int decode_hrd_parameters ( H264Context h,
SPS sps 
)
inlinestatic

Definition at line 110 of file h264_ps.c.

Referenced by decode_vui_parameters().

static int decode_vui_parameters ( H264Context h,
SPS sps 
)
inlinestatic

Definition at line 135 of file h264_ps.c.

Referenced by ff_h264_decode_seq_parameter_set().

static void decode_scaling_list ( H264Context h,
uint8_t factors,
int  size,
const uint8_t jvt_list,
const uint8_t fallback_list 
)
static

Definition at line 253 of file h264_ps.c.

Referenced by decode_scaling_matrices().

static void decode_scaling_matrices ( H264Context h,
SPS sps,
PPS pps,
int  is_sps,
uint8_t(*)  scaling_matrix4[16],
uint8_t(*)  scaling_matrix8[64] 
)
static
int ff_h264_decode_seq_parameter_set ( H264Context h)

Decode SPS.

Definition at line 306 of file h264_ps.c.

Referenced by decode_nal_units(), and parse_nal_units().

static void build_qp_table ( PPS pps,
int  t,
int  index,
const int  depth 
)
static

Definition at line 560 of file h264_ps.c.

Referenced by ff_h264_decode_picture_parameter_set().

static int more_rbsp_data_in_pps ( H264Context h,
PPS pps 
)
static

Definition at line 569 of file h264_ps.c.

Referenced by ff_h264_decode_picture_parameter_set().

int ff_h264_decode_picture_parameter_set ( H264Context h,
int  bit_length 
)

Decode PPS.

Definition at line 584 of file h264_ps.c.

Referenced by decode_nal_units(), and parse_nal_units().

Variable Documentation

const uint8_t ff_h264_chroma_qp[7][QP_MAX_NUM+1]
Initial value:
= {
{ 0, 1, 2, 3, 4, 5,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
18,19,20,21, 22, 23,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
18,19,20,21, 22, 23,
24,25,26,27, 28, 29,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
18,19,20,21, 22, 23,
24,25,26,27, 28, 29,
30,31,32,33, 34, 35,
}

One chroma qp table for each possible bit depth (8-14).

Definition at line 53 of file h264_ps.c.

Referenced by build_qp_table(), and hl_decode_mb().

const uint8_t default_scaling4[2][16]
static
Initial value:
= {
{ 6, 13, 20, 28, 13, 20, 28, 32,
20, 28, 32, 37, 28, 32, 37, 42 },
{ 10, 14, 20, 24, 14, 20, 24, 27,
20, 24, 27, 30, 24, 27, 30, 34 }
}

Definition at line 84 of file h264_ps.c.

Referenced by decode_scaling_matrices().

const uint8_t default_scaling8[2][64]
static
Initial value:
= {
{ 6, 10, 13, 16, 18, 23, 25, 27,
10, 11, 16, 18, 23, 25, 27, 29,
13, 16, 18, 23, 25, 27, 29, 31,
16, 18, 23, 25, 27, 29, 31, 33,
18, 23, 25, 27, 29, 31, 33, 36,
23, 25, 27, 29, 31, 33, 36, 38,
25, 27, 29, 31, 33, 36, 38, 40,
27, 29, 31, 33, 36, 38, 40, 42 },
{ 9, 13, 15, 17, 19, 21, 22, 24,
13, 13, 17, 19, 21, 22, 24, 25,
15, 17, 19, 21, 22, 24, 25, 27,
17, 19, 21, 22, 24, 25, 27, 28,
19, 21, 22, 24, 25, 27, 28, 30,
21, 22, 24, 25, 27, 28, 30, 32,
22, 24, 25, 27, 28, 30, 32, 33,
24, 25, 27, 28, 30, 32, 33, 35 }
}

Definition at line 91 of file h264_ps.c.

Referenced by decode_scaling_matrices().