FFmpeg
Data Structures | Macros | Enumerations | Functions
packet.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "libavutil/attributes.h"
#include "libavutil/buffer.h"
#include "libavutil/dict.h"
#include "libavutil/rational.h"
#include "libavutil/version.h"
#include "libavcodec/version_major.h"

Go to the source code of this file.

Data Structures

struct  AVPacketSideData
 This structure stores auxiliary information for decoding, presenting, or otherwise processing the coded stream. More...
 
struct  AVPacket
 This structure stores compressed data. More...
 

Macros

#define AV_PKT_FLAG_KEY   0x0001
 The packet contains a keyframe. More...
 
#define AV_PKT_FLAG_CORRUPT   0x0002
 The packet content is corrupted. More...
 
#define AV_PKT_FLAG_DISCARD   0x0004
 Flag is used to discard packets which are required to maintain valid decoder state but are not required for output and should be dropped after decoding. More...
 
#define AV_PKT_FLAG_TRUSTED   0x0008
 The packet comes from a trusted source. More...
 
#define AV_PKT_FLAG_DISPOSABLE   0x0010
 Flag is used to indicate packets that contain frames that can be discarded by the decoder. More...
 

Enumerations

enum  AVPacketSideDataType {
  AV_PKT_DATA_PALETTE, AV_PKT_DATA_NEW_EXTRADATA, AV_PKT_DATA_PARAM_CHANGE, AV_PKT_DATA_H263_MB_INFO,
  AV_PKT_DATA_REPLAYGAIN, AV_PKT_DATA_DISPLAYMATRIX, AV_PKT_DATA_STEREO3D, AV_PKT_DATA_AUDIO_SERVICE_TYPE,
  AV_PKT_DATA_QUALITY_STATS, AV_PKT_DATA_FALLBACK_TRACK, AV_PKT_DATA_CPB_PROPERTIES, AV_PKT_DATA_SKIP_SAMPLES,
  AV_PKT_DATA_JP_DUALMONO, AV_PKT_DATA_STRINGS_METADATA, AV_PKT_DATA_SUBTITLE_POSITION, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL,
  AV_PKT_DATA_WEBVTT_IDENTIFIER, AV_PKT_DATA_WEBVTT_SETTINGS, AV_PKT_DATA_METADATA_UPDATE, AV_PKT_DATA_MPEGTS_STREAM_ID,
  AV_PKT_DATA_MASTERING_DISPLAY_METADATA, AV_PKT_DATA_SPHERICAL, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_PKT_DATA_A53_CC,
  AV_PKT_DATA_ENCRYPTION_INIT_INFO, AV_PKT_DATA_ENCRYPTION_INFO, AV_PKT_DATA_AFD, AV_PKT_DATA_PRFT,
  AV_PKT_DATA_ICC_PROFILE, AV_PKT_DATA_DOVI_CONF, AV_PKT_DATA_S12M_TIMECODE, AV_PKT_DATA_DYNAMIC_HDR10_PLUS,
  AV_PKT_DATA_IAMF_MIX_GAIN_PARAM, AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM, AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM, AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,
  AV_PKT_DATA_NB
}
 
enum  AVSideDataParamChangeFlags { AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004, AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008 }
 

Functions

AVPacketSideDataav_packet_side_data_new (AVPacketSideData **psd, int *pnb_sd, enum AVPacketSideDataType type, size_t size, int flags)
 Allocate a new packet side data. More...
 
AVPacketSideDataav_packet_side_data_add (AVPacketSideData **sd, int *nb_sd, enum AVPacketSideDataType type, void *data, size_t size, int flags)
 Wrap existing data as packet side data. More...
 
const AVPacketSideDataav_packet_side_data_get (const AVPacketSideData *sd, int nb_sd, enum AVPacketSideDataType type)
 Get side information from a side data array. More...
 
void av_packet_side_data_remove (AVPacketSideData *sd, int *nb_sd, enum AVPacketSideDataType type)
 Remove side data of the given type from a side data array. More...
 
void av_packet_side_data_free (AVPacketSideData **sd, int *nb_sd)
 Convenience function to free all the side data stored in an array, and the array itself. More...
 
const char * av_packet_side_data_name (enum AVPacketSideDataType type)
 
AVPacketav_packet_alloc (void)
 Allocate an AVPacket and set its fields to default values. More...
 
AVPacketav_packet_clone (const AVPacket *src)
 Create a new packet that references the same data as src. More...
 
void av_packet_free (AVPacket **pkt)
 Free the packet, if the packet is reference counted, it will be unreferenced first. More...
 
int av_new_packet (AVPacket *pkt, int size)
 Allocate the payload of a packet and initialize its fields with default values. More...
 
void av_shrink_packet (AVPacket *pkt, int size)
 Reduce packet size, correctly zeroing padding. More...
 
int av_grow_packet (AVPacket *pkt, int grow_by)
 Increase packet size, correctly zeroing padding. More...
 
int av_packet_from_data (AVPacket *pkt, uint8_t *data, int size)
 Initialize a reference-counted packet from av_malloc()ed data. More...
 
uint8_t * av_packet_new_side_data (AVPacket *pkt, enum AVPacketSideDataType type, size_t size)
 Allocate new information of a packet. More...
 
int av_packet_add_side_data (AVPacket *pkt, enum AVPacketSideDataType type, uint8_t *data, size_t size)
 Wrap an existing array as a packet side data. More...
 
int av_packet_shrink_side_data (AVPacket *pkt, enum AVPacketSideDataType type, size_t size)
 Shrink the already allocated side data buffer. More...
 
uint8_t * av_packet_get_side_data (const AVPacket *pkt, enum AVPacketSideDataType type, size_t *size)
 Get side information from packet. More...
 
uint8_t * av_packet_pack_dictionary (AVDictionary *dict, size_t *size)
 Pack a dictionary for use in side_data. More...
 
int av_packet_unpack_dictionary (const uint8_t *data, size_t size, AVDictionary **dict)
 Unpack a dictionary from side_data. More...
 
void av_packet_free_side_data (AVPacket *pkt)
 Convenience function to free all the side data stored. More...
 
int av_packet_ref (AVPacket *dst, const AVPacket *src)
 Setup a new reference to the data described by a given packet. More...
 
void av_packet_unref (AVPacket *pkt)
 Wipe the packet. More...
 
void av_packet_move_ref (AVPacket *dst, AVPacket *src)
 Move every field in src to dst and reset src. More...
 
int av_packet_copy_props (AVPacket *dst, const AVPacket *src)
 Copy only "properties" fields from src to dst. More...
 
int av_packet_make_refcounted (AVPacket *pkt)
 Ensure the data described by a given packet is reference counted. More...
 
int av_packet_make_writable (AVPacket *pkt)
 Create a writable reference for the data described by a given packet, avoiding data copy if possible. More...
 
void av_packet_rescale_ts (AVPacket *pkt, AVRational tb_src, AVRational tb_dst)
 Convert valid timing fields (timestamps / durations) in a packet from one timebase to another. More...