59                "changes, but PARAM_CHANGE side data was sent to it.\n");
 
   67     flags = bytestream_get_le32(&data);
 
   73         val = bytestream_get_le32(&data);
 
   74         if (val <= 0 || val > INT_MAX) {
 
   91         val = bytestream_get_le32(&data);
 
   92         if (val <= 0 || val > INT_MAX) {
 
  103         avctx->
width  = bytestream_get_le32(&data);
 
  104         avctx->
height = bytestream_get_le32(&data);
 
  187     const char *bsfs_str;
 
  194     while (bsfs_str && *bsfs_str) {
 
  208                    "requested by a decoder. This is a bug, please report it.\n",
 
  283                        "Error pre-processing a packet before decoding\n");
 
  335                                  int64_t reordered_pts, int64_t dts)
 
  373     int got_frame, actual_got_frame, did_split;
 
  417         ret = avctx->
codec->
decode(avctx, frame, &got_frame, &tmp);
 
  435     actual_got_frame = got_frame;
 
  447         uint32_t discard_padding = 0;
 
  451         if (ret >= 0 && got_frame) {
 
  466         if(side && side_size>=10) {
 
  468             discard_padding = 
AV_RL32(side + 4);
 
  471             skip_reason = 
AV_RL8(side + 8);
 
  472             discard_reason = 
AV_RL8(side + 9);
 
  496                         frame->
pts += diff_ts;
 
  517         if (discard_padding > 0 && discard_padding <= frame->nb_samples && got_frame &&
 
  539                 AV_WL32(fside->
data, avctx->internal->skip_samples);
 
  543                 avctx->internal->skip_samples = 0;
 
  556         !avci->showed_multi_packet_warning &&
 
  559         avci->showed_multi_packet_warning = 1;
 
  568 #if FF_API_AVCTX_TIMEBASE 
  569     if (avctx->framerate.num > 0 && avctx->framerate.den > 0)
 
  575     if (avctx->internal->draining && !actual_got_frame) {
 
  579             int nb_errors_max = 20 + (HAVE_THREADS && avctx->active_thread_type & 
FF_THREAD_FRAME ?
 
  580                                 avctx->thread_count : 1);
 
  582             if (avci->nb_draining_errors++ >= nb_errors_max) {
 
  584                        "Stop draining and force EOF.\n");
 
  585                 avci->draining_done = 1;
 
  589             avci->draining_done = 1;
 
  593     avci->compat_decode_consumed += ret;
 
  595     if (ret >= 
pkt->
size || ret < 0) {
 
  602         avci->last_pkt_props->size -= consumed; 
 
  612     return ret < 0 ? ret : 0;
 
  619     while (!frame->
buf[0]) {
 
  657     if (avpkt && !avpkt->
size && avpkt->
data)
 
  694                "Invalid cropping information set by a decoder: " 
  696                "(frame size %dx%d). This is a bug, please report it\n",
 
  767                "Got unexpected packet size after a partial decode\n");
 
  776         else if (ret == 
AVERROR(EAGAIN)) {
 
  805                        "API cannot return all the frames for this decoder. " 
  806                        "Some frames will be dropped. Update your code to the " 
  807                        "new decoding API to fix this.\n");
 
  831                                               int *got_picture_ptr,
 
  834     return compat_decode(avctx, picture, got_picture_ptr, avpkt);
 
  847     memset(sub, 0, 
sizeof(*sub));
 
  851 #define UTF8_MAX_BYTES 4  
  856     iconv_t cd = (iconv_t)-1;
 
  888     if (iconv(cd, &inb, &inl, &outb, &outl) == (
size_t)-1 ||
 
  889         iconv(cd, 
NULL, 
NULL, &outb, &outl) == (
size_t)-1 ||
 
  890         outl >= outpkt->
size || inl != 0) {
 
  897     outpkt->
size -= outl;
 
  898     memset(outpkt->
data + outpkt->
size, 0, outl);
 
  901     if (cd != (iconv_t)-1)
 
  913     uint32_t codepoint, 
min;
 
  917         GET_UTF8(codepoint, *(byte++), 
return 0;);
 
  918         min = byte - str == 1 ? 0 : byte - str == 2 ? 0x80 :
 
  919               1 << (5 * (byte - str) - 4);
 
  920         if (codepoint < min || codepoint >= 0x110000 ||
 
  921             codepoint == 0xFFFE  ||
 
  922             codepoint >= 0xD800 && codepoint <= 0xDFFF )
 
  929 #if FF_API_ASS_TIMING 
  937         h = ts/360000;  ts -= 360000*
h;
 
  938         m = ts/  6000;  ts -=   6000*m;
 
  939         s = ts/   100;  ts -=    100*
s;
 
  940         av_bprintf(buf, 
"%d:%02d:%02d.%02d,", h, m, s, ts);
 
  955         int ts_start, ts_duration = -1;
 
  964         dialog = strchr(rect->
ass, 
',');
 
  970         layer = strtol(dialog, (
char**)&dialog, 10);
 
  984         insert_ts(&buf, ts_duration == -1 ? -1 : ts_start + ts_duration);
 
  994         rect->
ass = final_dialog;
 
 1057             ret = avctx->
codec->
decode(avctx, sub, got_sub_ptr, &pkt_recoded);
 
 1061 #if FF_API_ASS_TIMING 
 1087                            "Invalid UTF-8 in decoded subtitles text; " 
 1088                            "maybe missing -sub_charenc option\n");
 
 1095             if (tmp.
data != pkt_recoded.data) { 
 
 1097                 pkt_recoded.side_data = 
NULL;
 
 1098                 pkt_recoded.side_data_elems = 0;
 
 1138         if (hwaccel->
id == codec_id
 
 1139             && hwaccel->
pix_fmt == pix_fmt)
 
 1153                "Could not find an AVHWAccel for the pixel format: %s",
 
 1173         ret = hwa->
init(avctx);
 
 1202     memcpy(choices, fmt, (n + 1) * 
sizeof(*choices));
 
 1222 #if FF_API_CAP_VDPAU 
 1229             if (hw_frames_ctx->
format != ret) {
 
 1231                        "does not match the format of provided AVHWFramesContext\n");
 
 1241         for (n = 0; choices[
n] != ret; n++)
 
 1245             choices[
n] = choices[n + 1];
 
 1262         int size[4] = { 0 };
 
 1263         int w = frame->
width;
 
 1265         int tmpsize, unaligned;
 
 1283             for (i = 0; i < 4; i++)
 
 1285         } 
while (unaligned);
 
 1292         for (i = 0; i < 3 && data[i + 1]; i++)
 
 1293             size[i] = data[i + 1] - data[i];
 
 1294         size[i] = tmpsize - (data[i] - data[0]);
 
 1296         for (i = 0; i < 4; i++) {
 
 1301                                                      CONFIG_MEMORY_POISONING ?
 
 1304                 if (!pool->
pools[i]) {
 
 1319         int planes = planar ? ch : 1;
 
 1332         if (!pool->
pools[0]) {
 
 1347     for (i = 0; i < 4; i++)
 
 1358     int planes = pool->
planes;
 
 1413             "Unable to get pixel format descriptor for format %s\n",
 
 1418     memset(pic->
data, 0, 
sizeof(pic->
data));
 
 1421     for (i = 0; i < 4 && pool->
pools[i]; i++) {
 
 1487     static const struct {
 
 1522                 memcpy(frame_sd->
data, packet_sd, size);
 
 1572                             "configuration.\n");
 
 1605         for (i = 0; i < num_planes; i++) {
 
 1614                 av_log(avctx, 
AV_LOG_ERROR, 
"Buffer returned by get_buffer2() did not zero unused plane pointers\n");
 
 1623     int override_dimensions = 1;
 
 1635             override_dimensions = 0;
 
 1638         if (frame->
data[0] || frame->
data[1] || frame->
data[2] || frame->
data[3]) {
 
 1687         av_log(avctx, 
AV_LOG_WARNING, 
"Picture changed from size:%dx%d fmt:%s to size:%dx%d fmt:%s in reget buffer()\n",
 
 1694     if (!frame->
data[0])
 
 1757     for (i = 0; i < s->
nb_bsfs; i++)
 
#define AV_PIX_FMT_FLAG_PAL
Pixel format has a palette in data[1], values are indexes in this palette. 
#define FF_SANE_NB_CHANNELS
#define FF_COMPLIANCE_EXPERIMENTAL
Allow nonstandardized experimental things. 
static int is_hwaccel_pix_fmt(enum AVPixelFormat pix_fmt)
#define FF_SUB_CHARENC_MODE_PRE_DECODER
the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv ...
attribute_deprecated int av_packet_split_side_data(AVPacket *pkt)
void av_bsf_free(AVBSFContext **ctx)
Free a bitstream filter context and everything associated with it; write NULL into the supplied point...
int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt)
Select the (possibly hardware accelerated) pixel format. 
const struct AVCodec * codec
const char const char void * val
const AVCodecDescriptor * codec_descriptor
AVCodecDescriptor. 
#define AVERROR_INVALIDDATA
Invalid data found when processing input. 
static enum AVPixelFormat pix_fmt
#define AV_NUM_DATA_POINTERS
AVCodecParameters * par_out
Parameters of the output stream. 
void av_bprintf(AVBPrint *buf, const char *fmt,...)
int64_t pts_correction_num_faulty_dts
Number of incorrect PTS values so far. 
void av_buffer_unref(AVBufferRef **buf)
Free a given reference and automatically free the buffer if there are no more references to it...
#define GET_UTF8(val, GET_BYTE, ERROR)
Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. 
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
This structure describes decoded (raw) audio or video data. 
int(* init)(AVCodecContext *avctx)
Initialize the hwaccel private data. 
int stride_align[AV_NUM_DATA_POINTERS]
ptrdiff_t const GLvoid * data
int ff_packet_split_and_drop_side_data(AVPacket *pkt)
This side data must be associated with an audio frame and corresponds to enum AVAudioServiceType defi...
int apply_cropping
Video decoding only. 
static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame)
#define AV_CODEC_FLAG2_SKIP_MANUAL
Do not skip samples and export skip information as frame side data. 
int coded_width
Bitstream width / height, may be different from width/height e.g. 
int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame)
does needed setup of pkt_pts/pos and such for (re)get_buffer(); 
int64_t pkt_pos
reordered pos from the last AVPacket that has been input into the decoder 
int capabilities
Hardware accelerated codec capabilities. 
void(* flush)(AVCodecContext *)
Flush buffers. 
AVPacket * last_pkt_props
Properties (timestamps+side data) extracted from the last packet passed for decoding. 
#define AV_LOG_WARNING
Something somehow does not look correct. 
static int convert_sub_to_old_ass_form(AVSubtitle *sub, const AVPacket *pkt, AVRational tb)
int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt)
int64_t pos
byte position in stream, -1 if unknown 
static void get_subtitle_defaults(AVSubtitle *sub)
int ff_set_dimensions(AVCodecContext *s, int width, int height)
Check that the provided frame dimensions are valid and set them on the codec context. 
AVBufferRef * buf[AV_NUM_DATA_POINTERS]
AVBuffer references backing the data for this frame. 
static int decode_simple_receive_frame(AVCodecContext *avctx, AVFrame *frame)
This side data should be associated with a video stream and contains Stereoscopic 3D information in f...
ATSC A53 Part 4 Closed Captions. 
enum AVColorRange color_range
MPEG vs JPEG YUV range. 
int nb_extended_buf
Number of elements in extended_buf. 
Content light level (based on CTA-861.3). 
The bitstream filter state. 
const AVBitStreamFilter * av_bsf_get_by_name(const char *name)
enum AVPixelFormat pix_fmt
Supported pixel format. 
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown) That is the width of a pixel divided by the height of the pixel...
#define AV_CODEC_PROP_TEXT_SUB
Subtitle codec is text based. 
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx. 
static int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame)
int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, const AVPacket *avpkt)
Decode the audio frame of size avpkt->size from avpkt->data into frame. 
enum AVPixelFormat format
The pixel format identifying the underlying HW surface type. 
Mastering display metadata associated with a video frame. 
void av_frame_move_ref(AVFrame *dst, AVFrame *src)
Move everything contained in src to dst and reset src. 
static int apply_param_change(AVCodecContext *avctx, const AVPacket *avpkt)
static int get_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flags)
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
static int recode_subtitle(AVCodecContext *avctx, AVPacket *outpkt, const AVPacket *inpkt)
AVBufferPool * pools[4]
Pools for each data plane. 
int(* decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt)
int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame)
Set various frame properties from the codec context / packet data. 
int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, int *got_sub_ptr, AVPacket *avpkt)
Decode a subtitle message. 
static int utf8_check(const uint8_t *str)
int av_bsf_init(AVBSFContext *ctx)
Prepare the filter for use, after all the parameters and options have been set. 
int av_bprint_finalize(AVBPrint *buf, char **ret_str)
Finalize a print buffer. 
int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame)
Identical in function to av_frame_make_writable(), except it uses ff_get_buffer() to allocate the buf...
static int apply_cropping(AVCodecContext *avctx, AVFrame *frame)
void ff_decode_bsfs_uninit(AVCodecContext *avctx)
Mastering display metadata (based on SMPTE-2086:2014). 
Apply the maximum possible cropping, even if it requires setting the AVFrame.data[] entries to unalig...
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
Return the number of channels in the channel layout. 
int av_codec_is_decoder(const AVCodec *codec)
int av_bsf_alloc(const AVBitStreamFilter *filter, AVBSFContext **ctx)
Allocate a context for a given bitstream filter. 
struct AVHWAccel * hwaccel
Hardware accelerator in use. 
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define av_assert0(cond)
assert() equivalent, that is always enabled. 
int av_bsf_receive_packet(AVBSFContext *ctx, AVPacket *pkt)
Retrieve a filtered packet. 
DecodeFilterContext filter
enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat *fmt)
enum AVSampleFormat sample_fmt
audio sample format 
AVFrame * av_frame_alloc(void)
Allocate an AVFrame and set its fields to default values. 
int av_packet_unpack_dictionary(const uint8_t *data, int size, AVDictionary **dict)
Unpack a dictionary from side_data. 
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code. 
static int64_t guess_correct_pts(AVCodecContext *ctx, int64_t reordered_pts, int64_t dts)
Attempt to guess proper monotonic timestamps for decoded video frames which might have incorrect time...
int avpriv_set_systematic_pal2(uint32_t pal[256], enum AVPixelFormat pix_fmt)
static av_cold int end(AVCodecContext *avctx)
int64_t duration
Duration of this packet in AVStream->time_base units, 0 if unknown. 
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
#define AV_CODEC_FLAG_UNALIGNED
Allow decoders to produce frames with data planes that are not aligned to CPU requirements (e...
uint8_t pi<< 24) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_U8,(uint64_t)((*(constuint8_t *) pi-0x80U))<< 56) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8,(*(constuint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8,(*(constuint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16,(*(constint16_t *) pi >>8)+0x80) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_S16,(uint64_t)(*(constint16_t *) pi)<< 48) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16,*(constint16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16,*(constint16_t *) pi *(1.0/(1<< 15))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32,(*(constint32_t *) pi >>24)+0x80) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_S32,(uint64_t)(*(constint32_t *) pi)<< 32) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32,*(constint32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32,*(constint32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S64,(*(constint64_t *) pi >>56)+0x80) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S64,*(constint64_t *) pi *(1.0f/(INT64_C(1)<< 63))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S64,*(constint64_t *) pi *(1.0/(INT64_C(1)<< 63))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, av_clip_uint8(lrintf(*(constfloat *) pi *(1<< 7))+0x80)) CONV_FUNC(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, av_clip_int16(lrintf(*(constfloat *) pi *(1<< 15)))) CONV_FUNC(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, av_clipl_int32(llrintf(*(constfloat *) pi *(1U<< 31)))) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_FLT, llrintf(*(constfloat *) pi *(INT64_C(1)<< 63))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, av_clip_uint8(lrint(*(constdouble *) pi *(1<< 7))+0x80)) CONV_FUNC(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, av_clip_int16(lrint(*(constdouble *) pi *(1<< 15)))) CONV_FUNC(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, av_clipl_int32(llrint(*(constdouble *) pi *(1U<< 31)))) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_DBL, llrint(*(constdouble *) pi *(INT64_C(1)<< 63)))#defineFMT_PAIR_FUNC(out, in) staticconv_func_type *constfmt_pair_to_conv_functions[AV_SAMPLE_FMT_NB *AV_SAMPLE_FMT_NB]={FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S64),};staticvoidcpy1(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, len);}staticvoidcpy2(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, 2 *len);}staticvoidcpy4(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, 4 *len);}staticvoidcpy8(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, 8 *len);}AudioConvert *swri_audio_convert_alloc(enumAVSampleFormatout_fmt, enumAVSampleFormatin_fmt, intchannels, constint *ch_map, intflags){AudioConvert *ctx;conv_func_type *f=fmt_pair_to_conv_functions[av_get_packed_sample_fmt(out_fmt)+AV_SAMPLE_FMT_NB *av_get_packed_sample_fmt(in_fmt)];if(!f) returnNULL;ctx=av_mallocz(sizeof(*ctx));if(!ctx) returnNULL;if(channels==1){in_fmt=av_get_planar_sample_fmt(in_fmt);out_fmt=av_get_planar_sample_fmt(out_fmt);}ctx->channels=channels;ctx->conv_f=f;ctx->ch_map=ch_map;if(in_fmt==AV_SAMPLE_FMT_U8||in_fmt==AV_SAMPLE_FMT_U8P) memset(ctx->silence, 0x80, sizeof(ctx->silence));if(out_fmt==in_fmt &&!ch_map){switch(av_get_bytes_per_sample(in_fmt)){case1:ctx->simd_f=cpy1;break;case2:ctx->simd_f=cpy2;break;case4:ctx->simd_f=cpy4;break;case8:ctx->simd_f=cpy8;break;}}if(HAVE_X86ASM &&1) swri_audio_convert_init_x86(ctx, out_fmt, in_fmt, channels);if(ARCH_ARM) swri_audio_convert_init_arm(ctx, out_fmt, in_fmt, channels);if(ARCH_AARCH64) swri_audio_convert_init_aarch64(ctx, out_fmt, in_fmt, channels);returnctx;}voidswri_audio_convert_free(AudioConvert **ctx){av_freep(ctx);}intswri_audio_convert(AudioConvert *ctx, AudioData *out, AudioData *in, intlen){intch;intoff=0;constintos=(out->planar?1:out->ch_count)*out->bps;unsignedmisaligned=0;av_assert0(ctx->channels==out->ch_count);if(ctx->in_simd_align_mask){intplanes=in->planar?in->ch_count:1;unsignedm=0;for(ch=0;ch< planes;ch++) m|=(intptr_t) in->ch[ch];misaligned|=m &ctx->in_simd_align_mask;}if(ctx->out_simd_align_mask){intplanes=out->planar?out->ch_count:1;unsignedm=0;for(ch=0;ch< planes;ch++) m|=(intptr_t) out->ch[ch];misaligned|=m &ctx->out_simd_align_mask;}if(ctx->simd_f &&!ctx->ch_map &&!misaligned){off=len &~15;av_assert1(off >=0);av_assert1(off<=len);av_assert2(ctx->channels==SWR_CH_MAX||!in->ch[ctx->channels]);if(off >0){if(out->planar==in->planar){intplanes=out->planar?out->ch_count:1;for(ch=0;ch< planes;ch++){ctx->simd_f(out-> ch ch
Multithreading support functions. 
int ff_decode_get_packet(AVCodecContext *avctx, AVPacket *pkt)
Called by decoders to get the next packet for decoding. 
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user). 
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, uint8_t clip)
uint8_t pi<< 24) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_U8,(uint64_t)((*(constuint8_t *) pi-0x80U))<< 56) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8,(*(constuint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8,(*(constuint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16,(*(constint16_t *) pi >>8)+0x80) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_S16,(uint64_t)(*(constint16_t *) pi)<< 48) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16,*(constint16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16,*(constint16_t *) pi *(1.0/(1<< 15))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32,(*(constint32_t *) pi >>24)+0x80) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_S32,(uint64_t)(*(constint32_t *) pi)<< 32) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32,*(constint32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32,*(constint32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S64,(*(constint64_t *) pi >>56)+0x80) CONV_FUNC(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S64,*(constint64_t *) pi *(1.0f/(INT64_C(1)<< 63))) CONV_FUNC(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S64,*(constint64_t *) pi *(1.0/(INT64_C(1)<< 63))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, av_clip_uint8(lrintf(*(constfloat *) pi *(1<< 7))+0x80)) CONV_FUNC(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, av_clip_int16(lrintf(*(constfloat *) pi *(1<< 15)))) CONV_FUNC(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, av_clipl_int32(llrintf(*(constfloat *) pi *(1U<< 31)))) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_FLT, llrintf(*(constfloat *) pi *(INT64_C(1)<< 63))) CONV_FUNC(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, av_clip_uint8(lrint(*(constdouble *) pi *(1<< 7))+0x80)) CONV_FUNC(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, av_clip_int16(lrint(*(constdouble *) pi *(1<< 15)))) CONV_FUNC(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, av_clipl_int32(llrint(*(constdouble *) pi *(1U<< 31)))) CONV_FUNC(AV_SAMPLE_FMT_S64, int64_t, AV_SAMPLE_FMT_DBL, llrint(*(constdouble *) pi *(INT64_C(1)<< 63)))#defineFMT_PAIR_FUNC(out, in) staticconv_func_type *constfmt_pair_to_conv_functions[AV_SAMPLE_FMT_NB *AV_SAMPLE_FMT_NB]={FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_U8), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S16), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S32), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_FLT), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_DBL), FMT_PAIR_FUNC(AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_S64), FMT_PAIR_FUNC(AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S64),};staticvoidcpy1(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, len);}staticvoidcpy2(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, 2 *len);}staticvoidcpy4(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, 4 *len);}staticvoidcpy8(uint8_t **dst, constuint8_t **src, intlen){memcpy(*dst,*src, 8 *len);}AudioConvert *swri_audio_convert_alloc(enumAVSampleFormatout_fmt, enumAVSampleFormatin_fmt, intchannels, constint *ch_map, intflags){AudioConvert *ctx;conv_func_type *f=fmt_pair_to_conv_functions[av_get_packed_sample_fmt(out_fmt)+AV_SAMPLE_FMT_NB *av_get_packed_sample_fmt(in_fmt)];if(!f) returnNULL;ctx=av_mallocz(sizeof(*ctx));if(!ctx) returnNULL;if(channels==1){in_fmt=av_get_planar_sample_fmt(in_fmt);out_fmt=av_get_planar_sample_fmt(out_fmt);}ctx->channels=channels;ctx->conv_f=f;ctx->ch_map=ch_map;if(in_fmt==AV_SAMPLE_FMT_U8||in_fmt==AV_SAMPLE_FMT_U8P) memset(ctx->silence, 0x80, sizeof(ctx->silence));if(out_fmt==in_fmt &&!ch_map){switch(av_get_bytes_per_sample(in_fmt)){case1:ctx->simd_f=cpy1;break;case2:ctx->simd_f=cpy2;break;case4:ctx->simd_f=cpy4;break;case8:ctx->simd_f=cpy8;break;}}if(HAVE_X86ASM &&1) swri_audio_convert_init_x86(ctx, out_fmt, in_fmt, channels);if(ARCH_ARM) swri_audio_convert_init_arm(ctx, out_fmt, in_fmt, channels);if(ARCH_AARCH64) swri_audio_convert_init_aarch64(ctx, out_fmt, in_fmt, channels);returnctx;}voidswri_audio_convert_free(AudioConvert **ctx){av_freep(ctx);}intswri_audio_convert(AudioConvert *ctx, AudioData *out, AudioData *in, intlen){intch;intoff=0;constintos=(out->planar?1:out->ch_count)*out->bps;unsignedmisaligned=0;av_assert0(ctx->channels==out->ch_count);if(ctx->in_simd_align_mask){intplanes=in->planar?in->ch_count:1;unsignedm=0;for(ch=0;ch< planes;ch++) m|=(intptr_t) in->ch[ch];misaligned|=m &ctx->in_simd_align_mask;}if(ctx->out_simd_align_mask){intplanes=out->planar?out->ch_count:1;unsignedm=0;for(ch=0;ch< planes;ch++) m|=(intptr_t) out->ch[ch];misaligned|=m &ctx->out_simd_align_mask;}if(ctx->simd_f &&!ctx->ch_map &&!misaligned){off=len &~15;av_assert1(off >=0);av_assert1(off<=len);av_assert2(ctx->channels==SWR_CH_MAX||!in->ch[ctx->channels]);if(off >0){if(out->planar==in->planar){intplanes=out->planar?out->ch_count:1;for(ch=0;ch< planes;ch++){ctx->simd_f(out-> ch const uint8_t **in ch off *out planar
Structure to hold side data for an AVFrame. 
int av_image_check_sar(unsigned int w, unsigned int h, AVRational sar)
Check if the given sample aspect ratio of an image is valid. 
size_t compat_decode_consumed
#define AV_CODEC_CAP_HWACCEL_VDPAU
Codec can export data for HW decoding (VDPAU). 
#define AVERROR_EOF
End of file. 
AVDictionary * metadata
metadata. 
int lowres
low resolution decoding, 1-> 1/2 size, 2->1/4 size 
The data represents the AVSphericalMapping structure defined in libavutil/spherical.h. 
void * av_realloc_array(void *ptr, size_t nmemb, size_t size)
static int bsfs_poll(AVCodecContext *avctx, AVPacket *pkt)
enum AVChromaLocation chroma_sample_location
This defines the location of chroma samples. 
int av_packet_ref(AVPacket *dst, const AVPacket *src)
Setup a new reference to the data described by a given packet. 
int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt)
Check if the sample format is planar. 
void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, int linesize_align[AV_NUM_DATA_POINTERS])
Modify width and height values so that they will result in a memory buffer that is acceptable for the...
int ff_thread_decode_frame(AVCodecContext *avctx, AVFrame *picture, int *got_picture_ptr, AVPacket *avpkt)
Submit a new frame to a decoding thread. 
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
Rescale a 64-bit integer by 2 rational numbers. 
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values. 
AVRational pkt_timebase
Timebase in which pkt_dts/pts and AVPacket.dts/pts are. 
AVCodecID
Identify the syntax and semantics of the bitstream. 
int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src)
Copy the contents of src to dst. 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
int has_b_frames
Size of the frame reordering buffer in the decoder. 
#define AV_BPRINT_SIZE_UNLIMITED
static void validate_avframe_allocation(AVCodecContext *avctx, AVFrame *frame)
An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows: 
int av_frame_apply_cropping(AVFrame *frame, int flags)
Crop the given video AVFrame according to its crop_left/crop_top/crop_right/ crop_bottom fields...
uint8_t * av_packet_get_side_data(const AVPacket *pkt, enum AVPacketSideDataType type, int *size)
Get side information from packet. 
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g. 
void av_packet_free_side_data(AVPacket *pkt)
Convenience function to free all the side data stored. 
int64_t pts_correction_last_pts
Number of incorrect DTS values so far. 
int active_thread_type
Which multithreading methods are in use by the codec. 
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
int avcodec_is_open(AVCodecContext *s)
int attribute_align_arg avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame)
Return decoded output data from a decoder. 
static int extract_packet_props(AVCodecInternal *avci, const AVPacket *pkt)
int capabilities
Codec capabilities. 
enum AVColorRange color_range
MPEG vs JPEG YUV range. 
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers. 
ATSC A53 Part 4 Closed Captions. 
AVBufferRef * buf
A reference to the reference-counted buffer where the packet data is stored. 
int flags
AV_CODEC_FLAG_*. 
enum AVColorSpace colorspace
YUV colorspace type. 
AVRational time_base_in
The timebase used for the timestamps of the input packets. 
#define AV_PIX_FMT_FLAG_HWACCEL
Pixel format is an HW accelerated format. 
simple assert() macros that are a bit more flexible than ISO C assert(). 
int64_t max_pixels
The number of pixels per image to maximally accept. 
static int reget_buffer_internal(AVCodecContext *avctx, AVFrame *frame)
static void * av_mallocz_array(size_t nmemb, size_t size)
int av_hwframe_get_buffer(AVBufferRef *hwframe_ref, AVFrame *frame, int flags)
Allocate a new frame attached to the given AVHWFramesContext. 
char * av_get_token(const char **buf, const char *term)
Unescape the given string until a non escaped terminating char, and return the token corresponding to...
int av_frame_copy(AVFrame *dst, const AVFrame *src)
Copy the frame data from src to dst. 
#define FF_CODEC_CAP_EXPORTS_CROPPING
The decoder sets the cropping fields in the output frames manually. 
int priv_data_size
Size of the private data to allocate in AVCodecInternal.hwaccel_priv_data. 
int flags
A combination of AV_PKT_FLAG values. 
reference-counted frame API 
uint64_t channel_layout
Audio channel layout. 
uint32_t end_display_time
int64_t pts
Same as packet pts, in AV_TIME_BASE. 
uint64_t channel_layout
Channel layout of the audio data. 
int props
Codec properties, a combination of AV_CODEC_PROP_* flags. 
common internal API header 
uint64_t flags
Combination of AV_PIX_FMT_FLAG_... 
int av_packet_copy_props(AVPacket *dst, const AVPacket *src)
Copy only "properties" fields from src to dst. 
int channels
number of audio channels, only used for audio. 
int flags
Frame flags, a combination of AV_FRAME_FLAGS. 
int err_recognition
Error recognition; may misdetect some more or less valid parts as errors. 
#define av_assert1(cond)
assert() equivalent, that does not lie in speed critical code. 
#define FF_THREAD_FRAME
Decode more than one frame at once. 
const char * name
Name of the hardware accelerated codec. 
AVBufferRef ** extended_buf
For planar audio which requires more than AV_NUM_DATA_POINTERS AVBufferRef pointers, this array will hold all the references which cannot fit into AVFrame.buf. 
int(* alloc_frame)(AVCodecContext *avctx, AVFrame *frame)
Allocate a custom buffer. 
AVFrame * compat_decode_frame
static AVHWAccel * find_hwaccel(enum AVCodecID codec_id, enum AVPixelFormat pix_fmt)
int width
picture width / height. 
AVBufferRef * hw_frames_ctx
A reference to the AVHWFramesContext describing the input (for encoding) or output (decoding) frames...
static int add_metadata_from_side_data(const AVPacket *avpkt, AVFrame *frame)
AVRational time_base_out
The timebase used for the timestamps of the output packets. 
static int compat_decode(AVCodecContext *avctx, AVFrame *frame, int *got_frame, const AVPacket *pkt)
#define AV_PIX_FMT_FLAG_PSEUDOPAL
The pixel format is "pseudo-paletted". 
This side data should be associated with a video stream and corresponds to the AVSphericalMapping str...
int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt)
Submit a packet for filtering. 
enum AVColorPrimaries color_primaries
Chromaticity coordinates of the source primaries. 
int64_t reordered_opaque
opaque 64-bit number (generally a PTS) that will be reordered and output in AVFrame.reordered_opaque 
#define AV_EF_EXPLODE
abort decoding on minor error detection 
static int av_bprint_is_complete(const AVBPrint *buf)
Test if the print buffer is complete (not truncated). 
const char * bsfs
Decoding only, a comma-separated list of bitstream filters to apply to packets before decoding...
char * sub_charenc
DTS of the last frame. 
static int audio_get_buffer(AVCodecContext *avctx, AVFrame *frame)
int draining
checks API usage: after codec draining, flush is required to resume operation 
#define FF_ARRAY_ELEMS(a)
int sub_charenc_mode
Subtitles character encoding mode. 
void avcodec_flush_buffers(AVCodecContext *avctx)
Reset the internal decoder state / flush internal buffers. 
#define AVERROR_PATCHWELCOME
Not yet implemented in FFmpeg, patches welcome. 
int format
format of the frame, -1 if unknown or unset Values correspond to enum AVPixelFormat for video frames...
Content light level (based on CTA-861.3). 
int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt)
Supply raw packet data as input to a decoder. 
#define attribute_align_arg
char * av_strdup(const char *s)
Duplicate a string. 
int avcodec_default_get_buffer2(AVCodecContext *avctx, AVFrame *frame, int flags)
The default callback for AVCodecContext.get_buffer2(). 
int av_image_fill_pointers(uint8_t *data[4], enum AVPixelFormat pix_fmt, int height, uint8_t *ptr, const int linesizes[4])
Fill plane data pointers for an image with pixel format pix_fmt and height height. 
Libavcodec external API header. 
enum AVMediaType codec_type
int64_t pkt_duration
duration of the corresponding packet, expressed in AVStream->time_base units, 0 if unknown...
A list of zero terminated key/value strings. 
int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, int *got_picture_ptr, const AVPacket *avpkt)
Decode the video frame of size avpkt->size from avpkt->data into picture. 
This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...
#define AV_TIME_BASE_Q
Internal time base represented as fractional value. 
int av_frame_is_writable(AVFrame *frame)
Check if the frame data is writable. 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_WB16 unsigned int_TMPL byte
int sample_rate
samples per second 
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line. 
static AVRational av_make_q(int num, int den)
Create an AVRational. 
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
main external API structure. 
void av_packet_unref(AVPacket *pkt)
Wipe the packet. 
int skip_samples_multiplier
uint8_t * data
The data buffer. 
void avsubtitle_free(AVSubtitle *sub)
Free all allocated data in the given subtitle struct. 
AVRational sample_aspect_ratio
Sample aspect ratio for the video frame, 0/1 if unknown/unspecified. 
int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
Get a buffer for a frame. 
#define AV_CODEC_PROP_BITMAP_SUB
Subtitle codec is bitmap based Decoded AVSubtitle data can be read from the AVSubtitleRect->pict fiel...
int av_samples_copy(uint8_t **dst, uint8_t *const *src, int dst_offset, int src_offset, int nb_samples, int nb_channels, enum AVSampleFormat sample_fmt)
Copy samples from src to dst. 
AVBufferRef * av_buffer_allocz(int size)
Same as av_buffer_alloc(), except the returned buffer will be initialized to zero. 
#define AVERROR_BUG
Internal bug, also see AVERROR_BUG2. 
int64_t reordered_opaque
reordered opaque 64 bits (generally an integer or a double precision float PTS but can be anything)...
int sample_rate
Sample rate of the audio data. 
enum AVPixelFormat(* get_format)(struct AVCodecContext *s, const enum AVPixelFormat *fmt)
callback to negotiate the pixelFormat 
int av_image_fill_linesizes(int linesizes[4], enum AVPixelFormat pix_fmt, int width)
Fill plane linesizes for an image with pixel format pix_fmt and width width. 
AVFrameSideData * av_frame_new_side_data(AVFrame *frame, enum AVFrameSideDataType type, int size)
Add a new side data to a frame. 
#define AV_CODEC_CAP_SUBFRAMES
Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time...
void av_buffer_pool_uninit(AVBufferPool **ppool)
Mark the pool as being available for freeing. 
int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples, enum AVSampleFormat sample_fmt, int align)
Get the required buffer size for the given audio parameters. 
enum AVColorSpace colorspace
YUV colorspace type. 
Rational number (pair of numerator and denominator). 
enum AVColorTransferCharacteristic color_trc
Color Transfer Characteristic. 
int avcodec_parameters_from_context(AVCodecParameters *par, const AVCodecContext *codec)
Fill the parameters struct based on the values from the supplied codec context. 
Recommmends skipping the specified number of samples. 
This struct describes a set or pool of "hardware" frames (i.e. 
int sub_text_format
Control the form of AVSubtitle.rects[N]->ass. 
int skip_samples
Number of audio samples to skip at the start of the next decoded frame. 
int(* get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags)
This callback is called at the beginning of each frame to get data buffer(s) for it. 
enum AVChromaLocation chroma_location
int64_t best_effort_timestamp
frame timestamp estimated using various heuristics, in stream time base 
attribute_deprecated int refcounted_frames
If non-zero, the decoded audio and video frames returned from avcodec_decode_video2() and avcodec_dec...
AVHWAccel * av_hwaccel_next(const AVHWAccel *hwaccel)
If hwaccel is NULL, returns the first registered hardware accelerator, if hwaccel is non-NULL...
void av_frame_unref(AVFrame *frame)
Unreference all the buffers referenced by frame and reset the frame fields. 
static int64_t pts
Global timestamp for the audio frames. 
This side data should be associated with an audio stream and contains ReplayGain information in form ...
#define FF_CODEC_CAP_SETS_PKT_DTS
Decoders marked with FF_CODEC_CAP_SETS_PKT_DTS want to set AVFrame.pkt_dts manually. 
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes. 
attribute_deprecated int64_t pkt_pts
PTS copied from the AVPacket that was decoded to produce this frame. 
void av_bprint_clear(AVBPrint *buf)
Reset the string to "" but keep internal allocated data. 
static av_always_inline AVRational av_inv_q(AVRational q)
Invert a rational. 
AVPacket * buffer_pkt
buffers for using new encode/decode API through legacy API 
int64_t pkt_dts
DTS copied from the AVPacket that triggered returning this frame. 
static int unrefcount_frame(AVCodecInternal *avci, AVFrame *frame)
#define AV_PKT_FLAG_DISCARD
Flag is used to discard packets which are required to maintain valid decoder state but are not requir...
#define FF_DISABLE_DEPRECATION_WARNINGS
common internal api header. 
common internal and external API header 
AVBufferPool * av_buffer_pool_init(int size, AVBufferRef *(*alloc)(int size))
Allocate and initialize a buffer pool. 
#define AV_HWACCEL_CODEC_CAP_EXPERIMENTAL
HWAccel is experimental and is thus avoided in favor of non experimental codecs. 
#define AV_CODEC_CAP_PARAM_CHANGE
Codec supports changed parameters at any point. 
int(* uninit)(AVCodecContext *avctx)
Uninitialize the hwaccel private data. 
static void insert_ts(AVBPrint *buf, int ts)
void * hwaccel_priv_data
hwaccel-specific private data 
enum AVCodecID id
Codec implemented by the hardware accelerator. 
int caps_internal
Internal codec capabilities. 
int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enum AVPixelFormat pix_fmt, int log_offset, void *log_ctx)
Check if the given dimension of an image is valid, meaning that all bytes of a plane of an image with...
#define AV_INPUT_BUFFER_PADDING_SIZE
Required number of additionally allocated bytes at the end of the input bitstream for decoding...
static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
Formatted text, the ass field must be set by the decoder and is authoritative. 
void ff_thread_flush(AVCodecContext *avctx)
Wait for decoding threads to finish and reset internal state. 
static int setup_hwaccel(AVCodecContext *avctx, const enum AVPixelFormat fmt, const char *name)
#define FF_ENABLE_DEPRECATION_WARNINGS
int channels
number of audio channels 
struct AVCodecInternal * internal
Private context used for internal data. 
char * ass
0 terminated ASS/SSA compatible event line. 
#define AV_FRAME_FLAG_DISCARD
A flag to mark the frames which need to be decoded, but shouldn't be output. 
int flags2
AV_CODEC_FLAG2_*. 
enum AVColorPrimaries color_primaries
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed...
AVRational av_mul_q(AVRational b, AVRational c)
Multiply two rationals. 
int64_t pts_correction_last_dts
PTS of the last frame. 
size_t compat_decode_partial_size
#define AV_CODEC_FLAG_TRUNCATED
Input bitstream might be truncated at a random location instead of only at frame boundaries. 
int frame_number
Frame counter, set by libavcodec. 
static int update_frame_pool(AVCodecContext *avctx, AVFrame *frame)
int64_t pts_correction_num_faulty_pts
Current statistics for PTS correction. 
enum AVColorTransferCharacteristic color_trc
AVBufferRef * av_buffer_pool_get(AVBufferPool *pool)
Allocate a new AVBuffer, reusing an old buffer from the pool when available. 
Recommmends skipping the specified number of samples. 
#define av_malloc_array(a, b)
#define FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS
const char * av_get_pix_fmt_name(enum AVPixelFormat pix_fmt)
Return the short name for a pixel format, NULL in case pix_fmt is unknown. 
ReplayGain information in the form of the AVReplayGain struct. 
uint8_t ** extended_data
pointers to the data planes/channels. 
int pkt_size
size of the corresponding packet containing the compressed frame. 
Stereoscopic 3d metadata. 
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
AVPixelFormat
Pixel format. 
This structure stores compressed data. 
AVCodecParameters * par_in
Parameters of the input stream. 
#define AV_GET_BUFFER_FLAG_REF
The decoder will keep a reference to the frame and may reuse it later. 
int nb_samples
number of audio samples (per channel) described by this frame 
int strict_std_compliance
strictly follow the standard (MPEG-4, ...). 
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators. 
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
enum AVPixelFormat sw_pix_fmt
Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx. 
int av_frame_copy_props(AVFrame *dst, const AVFrame *src)
Copy only "metadata" fields from src to dst. 
#define AV_NOPTS_VALUE
Undefined timestamp value. 
static int bsfs_init(AVCodecContext *avctx)
#define AV_CEIL_RSHIFT(a, b)
This side data should be associated with an audio stream and corresponds to enum AVAudioServiceType. 
int(* receive_frame)(AVCodecContext *avctx, AVFrame *frame)
Decode API with decoupled packet/frame dataflow.