FFmpeg
|
#include "libavcodec/get_bits.h"
#include "libavcodec/put_bits.h"
#include "libavcodec/golomb.h"
#include "libavcodec/vvc.h"
#include "libavutil/avassert.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "avc.h"
#include "avio.h"
#include "avio_internal.h"
#include "nal.h"
#include "vvc.h"
Go to the source code of this file.
Data Structures | |
struct | VVCCNALUnitArray |
struct | VVCPTLRecord |
struct | VVCDecoderConfigurationRecord |
Enumerations | |
enum | { OPI_INDEX, VPS_INDEX, SPS_INDEX, PPS_INDEX, SEI_PREFIX_INDEX, SEI_SUFFIX_INDEX, NB_ARRAYS } |
Functions | |
static void | vvcc_update_ptl (VVCDecoderConfigurationRecord *vvcc, VVCPTLRecord *ptl) |
static void | vvcc_parse_ptl (GetBitContext *gb, VVCDecoderConfigurationRecord *vvcc, unsigned int profileTierPresentFlag, unsigned int max_sub_layers_minus1) |
static int | vvcc_parse_vps (GetBitContext *gb, VVCDecoderConfigurationRecord *vvcc) |
static int | vvcc_parse_sps (GetBitContext *gb, VVCDecoderConfigurationRecord *vvcc) |
static int | vvcc_parse_pps (GetBitContext *gb, VVCDecoderConfigurationRecord *vvcc) |
static void | nal_unit_parse_header (GetBitContext *gb, uint8_t *nal_type) |
static int | vvcc_array_add_nal_unit (uint8_t *nal_buf, uint32_t nal_size, uint8_t nal_type, int ps_array_completeness, VVCCNALUnitArray *array) |
static int | vvcc_add_nal_unit (uint8_t *nal_buf, uint32_t nal_size, int ps_array_completeness, VVCDecoderConfigurationRecord *vvcc, unsigned array_idx) |
static void | vvcc_init (VVCDecoderConfigurationRecord *vvcc) |
static void | vvcc_close (VVCDecoderConfigurationRecord *vvcc) |
static int | vvcc_write (AVIOContext *pb, VVCDecoderConfigurationRecord *vvcc) |
int | ff_vvc_annexb2mp4 (AVIOContext *pb, const uint8_t *buf_in, int size, int filter_ps, int *ps_count) |
Writes Annex B formatted H.266/VVC NAL units to the provided AVIOContext. More... | |
int | ff_vvc_annexb2mp4_buf (const uint8_t *buf_in, uint8_t **buf_out, int *size, int filter_ps, int *ps_count) |
Writes Annex B formatted H.266/VVC NAL units to a data buffer. More... | |
int | ff_isom_write_vvcc (AVIOContext *pb, const uint8_t *data, int size, int ps_array_completeness) |
Writes H.266/VVC extradata (parameter sets, declarative SEI NAL units) to the provided AVIOContext. More... | |
anonymous enum |
|
static |
Definition at line 84 of file vvc.c.
Referenced by vvcc_parse_ptl().
|
static |
Definition at line 178 of file vvc.c.
Referenced by vvcc_parse_sps(), and vvcc_parse_vps().
|
static |
Definition at line 229 of file vvc.c.
Referenced by vvcc_add_nal_unit().
|
static |
Definition at line 329 of file vvc.c.
Referenced by vvcc_add_nal_unit().
|
static |
Definition at line 419 of file vvc.c.
Referenced by vvcc_add_nal_unit().
|
static |
Definition at line 428 of file vvc.c.
Referenced by vvcc_add_nal_unit().
|
static |
Definition at line 444 of file vvc.c.
Referenced by vvcc_add_nal_unit().
|
static |
Definition at line 495 of file vvc.c.
Referenced by ff_isom_write_vvcc().
|
static |
Definition at line 548 of file vvc.c.
Referenced by ff_isom_write_vvcc().
|
static |
Definition at line 556 of file vvc.c.
Referenced by ff_isom_write_vvcc().
|
static |
Definition at line 569 of file vvc.c.
Referenced by ff_isom_write_vvcc().
int ff_vvc_annexb2mp4 | ( | AVIOContext * | pb, |
const uint8_t * | buf_in, | ||
int | size, | ||
int | filter_ps, | ||
int * | ps_count | ||
) |
Writes Annex B formatted H.266/VVC NAL units to the provided AVIOContext.
The NAL units are converted to an MP4-compatible format (start code prefixes are replaced by 4-byte size fields, as per ISO/IEC 14496-15).
If filter_ps is non-zero, any VVC parameter sets found in the input will be discarded, and *ps_count will be set to the number of discarded PS NAL units.
pb | address of the AVIOContext where the data shall be written |
buf_in | address of the buffer holding the input data |
size | size (in bytes) of the input buffer |
filter_ps | whether to write parameter set NAL units to the output (0) or to discard them (non-zero) |
ps_count | address of the variable where the number of discarded parameter set NAL units shall be written, may be NULL |
Definition at line 810 of file vvc.c.
Referenced by ff_mov_write_packet(), and ff_vvc_annexb2mp4_buf().
int ff_vvc_annexb2mp4_buf | ( | const uint8_t * | buf_in, |
uint8_t ** | buf_out, | ||
int * | size, | ||
int | filter_ps, | ||
int * | ps_count | ||
) |
Writes Annex B formatted H.266/VVC NAL units to a data buffer.
The NAL units are converted to an MP4-compatible format (start code prefixes are replaced by 4-byte size fields, as per ISO/IEC 14496-15).
If filter_ps is non-zero, any VVC parameter sets found in the input will be discarded, and *ps_count will be set to the number of discarded PS NAL units.
On success, *size holds the size (in bytes) of the output data buffer.
buf_in | address of the buffer holding the input data |
size | address of the variable holding the size (in bytes) of the input buffer (on input) and of the output buffer (on success) |
buf_out | on success, address of the variable holding the address of the output buffer |
filter_ps | whether to write parameter set NAL units to the output (0) or to discard them (non-zero) |
ps_count | address of the variable where the number of discarded parameter set NAL units shall be written, may be NULL |
Definition at line 858 of file vvc.c.
Referenced by ff_mov_write_packet().
int ff_isom_write_vvcc | ( | AVIOContext * | pb, |
const uint8_t * | data, | ||
int | size, | ||
int | ps_array_completeness | ||
) |
Writes H.266/VVC extradata (parameter sets, declarative SEI NAL units) to the provided AVIOContext.
If the extradata is Annex B format, it gets converted to vvcC format before writing.
pb | address of the AVIOContext where the vvcC shall be written |
data | address of the buffer holding the data needed to write the vvcC |
size | size (in bytes) of the data buffer |
ps_array_completeness | whether all parameter sets are in the vvcC (1) or there may be additional parameter sets in the bitstream (0) |
Definition at line 879 of file vvc.c.
Referenced by mov_write_vvcc_tag().