FFmpeg
|
#include <string.h>
#include "config.h"
#include "libavutil/intmath.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "bytestream.h"
#include "hevc.h"
#include "h264.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, H2645RBSP *rbsp, H2645NAL *nal, int small_padding) |
Extract the raw (unescaped) bitstream. More... | |
static const char * | hevc_nal_unit_name (int nal_type) |
static const char * | h264_nal_unit_name (int nal_type) |
static int | get_bit_length (H2645NAL *nal, int min_size, int skip_trailing_zeros) |
static int | hevc_parse_nal_header (H2645NAL *nal, void *logctx) |
static int | h264_parse_nal_header (H2645NAL *nal, void *logctx) |
static int | find_next_start_code (const uint8_t *buf, const uint8_t *next_avc) |
static void | alloc_rbsp_buffer (H2645RBSP *rbsp, unsigned int size, int use_ref) |
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, int use_ref) |
Split an input packet into NAL units. More... | |
void | ff_h2645_packet_uninit (H2645Packet *pkt) |
Free all the allocated memory in the packet. More... | |
Variables | |
static const char *const | hevc_nal_type_name [64] |
static const char *const | h264_nal_type_name [32] |
#define STARTCODE_TEST |
int ff_h2645_extract_rbsp | ( | const uint8_t * | src, |
int | length, | ||
H2645RBSP * | rbsp, | ||
H2645NAL * | nal, | ||
int | small_padding | ||
) |
Extract the raw (unescaped) bitstream.
Definition at line 34 of file h2645_parse.c.
Referenced by ff_h2645_packet_split(), generate_fake_vps(), and parse_nal_units().
|
static |
Definition at line 215 of file h2645_parse.c.
Referenced by hevc_parse_nal_header().
|
static |
Definition at line 256 of file h2645_parse.c.
Referenced by h264_parse_nal_header().
Definition at line 262 of file h2645_parse.c.
Referenced by ff_h2645_packet_split().
Definition at line 296 of file h2645_parse.c.
Referenced by ff_h2645_packet_split().
Definition at line 317 of file h2645_parse.c.
Referenced by ff_h2645_packet_split().
|
static |
Definition at line 334 of file h2645_parse.c.
Referenced by ff_h2645_packet_split().
Definition at line 349 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, | ||
int | use_ref | ||
) |
Split an input packet into NAL units.
If data == raw_data holds true for a NAL unit of the returned pkt, then said NAL unit does not contain any emulation_prevention_three_byte and the data is contained in the input buffer pointed to by buf. Otherwise, the unescaped data is part of the rbsp_buffer described by the packet's H2645RBSP.
If the packet's rbsp_buffer_ref is not NULL, the underlying AVBuffer must own rbsp_buffer. If not and rbsp_buffer is not NULL, use_ref must be 0. If use_ref is set, rbsp_buffer will be reference-counted and owned by the underlying AVBuffer of rbsp_buffer_ref.
Definition at line 396 of file h2645_parse.c.
Referenced by cbs_h2645_split_fragment(), 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 528 of file h2645_parse.c.
Referenced by cbs_h264_close(), cbs_h265_close(), decode_extradata_ps(), extract_extradata_close(), h264_decode_end(), hevc_decode_free(), hevc_decode_nal_units(), and hevc_parser_close().
|
static |
Definition at line 148 of file h2645_parse.c.
Referenced by hevc_nal_unit_name().
|
static |
Definition at line 221 of file h2645_parse.c.
Referenced by h264_nal_unit_name().