FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
h2645_parse.c File Reference
#include <string.h>
#include "config.h"
#include "libavutil/intmath.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "hevc.h"
#include "h2645_parse.h"

Go to the source code of this file.

Macros

#define STARTCODE_TEST
 

Functions

int ff_h2645_extract_rbsp (const uint8_t *src, int length, H2645NAL *nal, int small_padding)
 Extract the raw (unescaped) bitstream. More...
 
static const char * nal_unit_name (int nal_type)
 
static int get_bit_length (H2645NAL *nal, int skip_trailing_zeros)
 
static int hevc_parse_nal_header (H2645NAL *nal, void *logctx)
 
static int h264_parse_nal_header (H2645NAL *nal, void *logctx)
 
int ff_h2645_packet_split (H2645Packet *pkt, const uint8_t *buf, int length, void *logctx, int is_nalff, int nal_length_size, enum AVCodecID codec_id, int small_padding)
 Split an input packet into NAL units. More...
 
void ff_h2645_packet_uninit (H2645Packet *pkt)
 Free all the allocated memory in the packet. More...
 

Macro Definition Documentation

#define STARTCODE_TEST
Value:
if (i + 2 < length && src[i + 1] == 0 && src[i + 2] <= 3) { \
if (src[i + 2] != 3 && src[i + 2] != 0) { \
/* startcode, so we must be past the end */ \
length = i; \
} \
break; \
}
#define src
Definition: vp8dsp.c:254
GLsizei GLsizei * length
Definition: opengl_enc.c:115
if(ret< 0)
Definition: vf_mcdeint.c:282

Referenced by ff_h2645_extract_rbsp().

Function Documentation

int ff_h2645_extract_rbsp ( const uint8_t src,
int  length,
H2645NAL nal,
int  small_padding 
)

Extract the raw (unescaped) bitstream.

Definition at line 32 of file h2645_parse.c.

Referenced by ff_h2645_packet_split(), generate_fake_vps(), and parse_nal_units().

static const char* nal_unit_name ( int  nal_type)
static

Definition at line 150 of file h2645_parse.c.

Referenced by hevc_parse_nal_header().

static int get_bit_length ( H2645NAL nal,
int  skip_trailing_zeros 
)
static

Definition at line 182 of file h2645_parse.c.

Referenced by ff_h2645_packet_split().

static int hevc_parse_nal_header ( H2645NAL nal,
void logctx 
)
static
Returns
AVERROR_INVALIDDATA if the packet is not a valid NAL unit, 0 if the unit should be skipped, 1 otherwise

Definition at line 211 of file h2645_parse.c.

Referenced by ff_h2645_packet_split().

static int h264_parse_nal_header ( H2645NAL nal,
void logctx 
)
static

Definition at line 233 of file h2645_parse.c.

Referenced by ff_h2645_packet_split().

int ff_h2645_packet_split ( H2645Packet pkt,
const uint8_t buf,
int  length,
void logctx,
int  is_nalff,
int  nal_length_size,
enum AVCodecID  codec_id,
int  small_padding 
)

Split an input packet into NAL units.

Definition at line 250 of file h2645_parse.c.

Referenced by decode_extradata_ps(), decode_nal_units(), extract_extradata_h2645(), hevc_decode_nal_units(), and parse_nal_units().

void ff_h2645_packet_uninit ( H2645Packet pkt)

Free all the allocated memory in the packet.

Definition at line 371 of file h2645_parse.c.

Referenced by decode_extradata_ps(), extract_extradata_h2645(), h264_decode_end(), hevc_decode_free(), hevc_decode_nal_units(), and hevc_parser_close().