Libav
Data Structures | Macros | Functions
internal.h File Reference

common internal api header. More...

#include <stdint.h>
#include "libavutil/buffer.h"
#include "libavutil/channel_layout.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixfmt.h"
#include "avcodec.h"
#include "config.h"

Go to the source code of this file.

Data Structures

struct  FramePool
 
struct  AVCodecInternal
 
struct  AVCodecDefault
 

Macros

#define FF_SANE_NB_CHANNELS   63U
 
#define FF_SIGNBIT(x)   (x >> CHAR_BIT * sizeof(x) - 1)
 
#define FF_MAX_EXTRADATA_SIZE   ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)
 Maximum size in bytes of extradata. More...
 

Functions

int ff_match_2uint16 (const uint16_t(*tab)[2], int size, int a, int b)
 Return the index into tab at which {a,b} match elements {[0],[1]} of tab. More...
 
unsigned int avpriv_toupper4 (unsigned int x)
 
int avpriv_lock_avformat (void)
 
int avpriv_unlock_avformat (void)
 
int ff_alloc_packet (AVPacket *avpkt, int size)
 Check AVPacket size and/or allocate data. More...
 
static av_always_inline int64_t ff_samples_to_time_base (AVCodecContext *avctx, int64_t samples)
 Rescale from sample rate to AVCodecContext.time_base. More...
 
int ff_get_buffer (AVCodecContext *avctx, AVFrame *frame, int flags)
 Get a buffer for a frame. More...
 
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 buffer when needed. More...
 
const uint8_tavpriv_find_start_code (const uint8_t *restrict p, const uint8_t *end, uint32_t *restrict state)
 
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. More...
 
int ff_set_sar (AVCodecContext *avctx, AVRational sar)
 Check that the provided sample aspect ratio is valid and set it on the codec context. More...
 
int ff_side_data_update_matrix_encoding (AVFrame *frame, enum AVMatrixEncoding matrix_encoding)
 Add or update AV_FRAME_DATA_MATRIXENCODING side data. More...
 
int ff_get_format (AVCodecContext *avctx, const enum AVPixelFormat *fmt)
 Select the (possibly hardware accelerated) pixel format. More...
 
int ff_decode_frame_props (AVCodecContext *avctx, AVFrame *frame)
 Set various frame properties from the codec context / packet data. More...
 

Detailed Description

common internal api header.

Definition in file internal.h.

Macro Definition Documentation

#define FF_SANE_NB_CHANNELS   63U

Definition at line 36 of file internal.h.

Referenced by avcodec_open2(), and ff_get_buffer().

#define FF_SIGNBIT (   x)    (x >> CHAR_BIT * sizeof(x) - 1)

Definition at line 38 of file internal.h.

Referenced by dnxhd_10bit_dct_quantize(), inter_predict(), mv_pred_direct(), and scale_mv().

#define FF_MAX_EXTRADATA_SIZE   ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)

Maximum size in bytes of extradata.

This value was chosen such that every bit of the buffer is addressable by a 32-bit signed integer as used by get_bits.

Definition at line 128 of file internal.h.

Referenced by avcodec_open2(), and avformat_find_stream_info().

Function Documentation

int ff_match_2uint16 ( const uint16_t(*)  tab[2],
int  size,
int  a,
int  b 
)

Return the index into tab at which {a,b} match elements {[0],[1]} of tab.

If there is no such matching pair then size is returned.

Definition at line 2242 of file utils.c.

Referenced by ff_h263_encode_picture_header(), ff_mpv_encode_init(), and svq1_write_header().

unsigned int avpriv_toupper4 ( unsigned int  x)

Definition at line 2332 of file utils.c.

Referenced by ff_codec_get_id(), ff_mpv_common_init(), and validate_codec_tag().

int avpriv_lock_avformat ( void  )

Definition at line 2314 of file utils.c.

Referenced by avisynth_read_close(), avisynth_read_header(), ff_tls_deinit(), and ff_tls_init().

int avpriv_unlock_avformat ( void  )

Definition at line 2323 of file utils.c.

Referenced by avisynth_read_close(), avisynth_read_header(), ff_tls_deinit(), and ff_tls_init().

int ff_alloc_packet ( AVPacket avpkt,
int  size 
)

Check AVPacket size and/or allocate data.

Encoders supporting AVCodec.encode2() can use this as a convenience to ensure the output packet data is large enough, whether provided by the user or allocated in this function.

Parameters
avpktthe AVPacket If avpkt->data is already set, avpkt->size is checked to ensure it is large enough. If avpkt->data is NULL, a new buffer is allocated. avpkt->size is set to the specified size. All other AVPacket fields will be reset with av_init_packet().
sizethe minimum required packet size
Returns
0 on success, negative error code on failure

Definition at line 1257 of file utils.c.

Referenced by a64multi_encode_frame(), aac_encode_frame(), adpcm_encode_frame(), adx_encode_frame(), alac_encode_frame(), amr_wb_encode_frame(), bmp_encode_frame(), cng_encode_frame(), dnxhd_encode_picture(), dvvideo_encode_frame(), encode_frame(), encode_nals(), encode_picture_ls(), encode_superframe(), Faac_encode_frame(), ff_mpv_encode_picture(), ffv1_encode_frame(), flac_encode_frame(), flashsv_encode_frame(), g722_encode_frame(), gif_encode_frame(), ilbc_encode_frame(), libgsm_encode_frame(), libopenjpeg_encode_frame(), libopus_encode(), libschroedinger_encode_frame(), libvorbis_encode_frame(), libwebp_encode_frame(), libx265_encode_frame(), ljpeg_encode_frame(), mp3lame_encode_frame(), MPA_encode_frame(), pam_encode_frame(), pcm_encode_frame(), pcx_encode_frame(), pnm_encode_frame(), qtrle_encode_frame(), ra144_encode_frame(), raw_encode(), roq_dpcm_encode_frame(), roq_encode_frame(), storeframe(), sunrast_encode_frame(), targa_encode_frame(), twolame_encode_frame(), utvideo_encode_frame(), v410_encode_frame(), vorbis_encode_frame(), XAVS_frame(), xbm_encode_frame(), and xwd_encode_frame().

static av_always_inline int64_t ff_samples_to_time_base ( AVCodecContext avctx,
int64_t  samples 
)
static
int ff_get_buffer ( AVCodecContext avctx,
AVFrame frame,
int  flags 
)

Get a buffer for a frame.

This is a wrapper around AVCodecContext.get_buffer() and should be used instead calling get_buffer() directly.

Definition at line 612 of file utils.c.

Referenced by ac3_decode_frame(), adpcm_decode_frame(), adx_decode_frame(), aic_decode_frame(), amrnb_decode_frame(), amrwb_decode_frame(), ape_decode_frame(), atrac1_decode_frame(), atrac3_decode_frame(), atrac3p_decode_frame(), aura_decode_frame(), bfi_decode_frame(), bmp_decode_frame(), bmv_aud_decode_frame(), cdg_decode_frame(), cdxl_decode_frame(), cinaudio_decode_frame(), cllc_decode_frame(), cmv_decode_frame(), cng_decode_frame(), cook_decode_frame(), copy_output(), cyuv_decode_frame(), dca_decode_frame(), decode_element(), decode_frame(), decode_pic(), decode_tag(), dfa_decode_frame(), dnxhd_decode_frame(), dpcm_decode_frame(), dvvideo_decode_frame(), dxtory_decode_v1_410(), dxtory_decode_v1_420(), dxtory_decode_v1_444(), dxtory_decode_v1_rgb(), dxtory_decode_v2_410(), dxtory_decode_v2_420(), dxtory_decode_v2_444(), dxtory_decode_v2_565(), dxtory_decode_v2_rgb(), eightsvx_decode_frame(), escape124_decode_frame(), escape130_decode_frame(), execute_code(), fdk_aac_decode_frame(), ff_ivi_decode_frame(), ff_mjpeg_decode_sof(), ff_reget_buffer(), ff_thread_get_buffer(), ff_twinvq_decode_frame(), ff_vp56_decode_frame(), ffv1_decode_frame(), flac_decode_frame(), frame_configure_elements(), g2m_decode_frame(), g722_decode_frame(), g723_1_decode_frame(), get_buffer(), gif_decode_frame(), gsm_decode_frame(), hnm_decode_frame(), idcin_decode_frame(), ilbc_decode_frame(), imc_decode_frame(), init_image(), ipvideo_decode_frame(), libgsm_decode_frame(), libopus_decode(), libschroedinger_decode_frame(), libspeex_decode_frame(), mace_decode_frame(), mp_decode_frame(), mpc7_decode_frame(), mpc8_decode_frame(), mss2_decode_frame(), mxpeg_decode_frame(), on2avc_decode_frame(), opus_decode_packet(), output_data(), paf_audio_decode(), pcm_bluray_decode_frame(), pcm_decode_frame(), pcm_dvd_decode_frame(), pcx_decode_frame(), pix_decode_frame(), pnm_decode_frame(), ptx_decode_frame(), qcelp_decode_frame(), qdm2_decode_frame(), ra144_decode_frame(), ra288_decode_frame(), rl2_decode_frame(), roq_encode_frame(), s302m_decode_frame(), set_sps(), shorten_decode_frame(), sipr_decode_frame(), smka_decode_frame(), submit_packet(), sunrast_decode_frame(), svq1_decode_frame(), svq1_encode_frame(), synth_superframe(), tak_decode_frame(), tgq_decode_frame(), tgv_decode_frame(), tmv_decode_frame(), tqi_decode_frame(), truespeech_decode_frame(), tta_decode_frame(), txd_decode_frame(), v410_decode_frame(), vble_decode_frame(), vcr1_decode_frame(), vmdaudio_decode_frame(), vmdvideo_decode_frame(), vorbis_decode_frame(), vp8_decode(), vp9_decode_frame(), vqa_decode_frame(), wavpack_decode_block(), wma_decode_superframe(), ws_snd_decode_frame(), xan_decode_frame(), xbm_decode_frame(), xwd_decode_frame(), yop_decode_frame(), and zerocodec_decode_frame().

int ff_reget_buffer ( AVCodecContext avctx,
AVFrame frame 
)
const uint8_t* avpriv_find_start_code ( const uint8_t *restrict  p,
const uint8_t end,
uint32_t *restrict  state 
)
int ff_set_dimensions ( AVCodecContext s,
int  width,
int  height 
)
int ff_set_sar ( AVCodecContext avctx,
AVRational  sar 
)
int ff_side_data_update_matrix_encoding ( AVFrame frame,
enum AVMatrixEncoding  matrix_encoding 
)

Add or update AV_FRAME_DATA_MATRIXENCODING side data.

Definition at line 160 of file utils.c.

Referenced by ac3_decode_frame(), dca_decode_frame(), and output_data().

int ff_get_format ( AVCodecContext avctx,
const enum AVPixelFormat fmt 
)

Select the (possibly hardware accelerated) pixel format.

This is a wrapper around AVCodecContext.get_format() and should be used instead of calling get_format() directly.

Definition at line 914 of file utils.c.

Referenced by decode_init(), ff_h263_decode_init(), get_pixel_format(), mpeg_get_pixelformat(), and vc1_decode_init().

int ff_decode_frame_props ( AVCodecContext avctx,
AVFrame frame 
)

Set various frame properties from the codec context / packet data.

Definition at line 560 of file utils.c.

Referenced by ff_get_buffer(), ff_reget_buffer(), and raw_decode().