FFmpeg
Data Structures | Macros | Enumerations | Functions
h2645_parse.h File Reference
#include <stdint.h>
#include "libavutil/buffer.h"
#include "libavutil/error.h"
#include "libavutil/log.h"
#include "codec_id.h"
#include "get_bits.h"

Go to the source code of this file.

Data Structures

struct  H2645NAL
 
struct  H2645RBSP
 
struct  H2645Packet
 

Macros

#define MAX_MBPAIR_SIZE   (256*1024)
 

Enumerations

enum  { H2645_FLAG_IS_NALFF = (1 << 0), H2645_FLAG_SMALL_PADDING = (1 << 1), H2645_FLAG_USE_REF = (1 << 2) }
 

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...
 
int ff_h2645_packet_split (H2645Packet *pkt, const uint8_t *buf, int length, void *logctx, int nal_length_size, enum AVCodecID codec_id, int flags)
 Split an input packet into NAL units. More...
 
void ff_h2645_packet_uninit (H2645Packet *pkt)
 Free all the allocated memory in the packet. More...
 
static int get_nalsize (int nal_length_size, const uint8_t *buf, int buf_size, int *buf_index, void *logctx)
 

Macro Definition Documentation

◆ MAX_MBPAIR_SIZE

#define MAX_MBPAIR_SIZE   (256*1024)

Definition at line 32 of file h2645_parse.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
H2645_FLAG_IS_NALFF 
H2645_FLAG_SMALL_PADDING 
H2645_FLAG_USE_REF 

Definition at line 96 of file h2645_parse.h.

Function Documentation

◆ ff_h2645_extract_rbsp()

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 36 of file h2645_parse.c.

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

◆ ff_h2645_packet_split()

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

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, H2645_FLAG_USE_REF must not be set in flags. If H2645_FLAG_USE_REF is set in flags, rbsp_buffer will be reference-counted and owned by the underlying AVBuffer of rbsp_buffer_ref.

Definition at line 465 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().

◆ ff_h2645_packet_uninit()

void ff_h2645_packet_uninit ( H2645Packet pkt)

◆ get_nalsize()

static int get_nalsize ( int  nal_length_size,
const uint8_t *  buf,
int  buf_size,
int *  buf_index,
void *  logctx 
)
inlinestatic

Definition at line 126 of file h2645_parse.h.

Referenced by ff_h2645_packet_split(), and parse_nal_units().