FFmpeg
|
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 | STRIDE_ALIGN 8 |
#define | FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE) |
Maximum size in bytes of extradata. | |
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. | |
unsigned int | avpriv_toupper4 (unsigned int x) |
int | ff_init_buffer_info (AVCodecContext *s, AVFrame *frame) |
does needed setup of pkt_pts/pos and such for (re)get_buffer(); | |
void | avpriv_color_frame (AVFrame *frame, const int color[4]) |
int | ff_lock_avcodec (AVCodecContext *log_ctx) |
int | ff_unlock_avcodec (void) |
int | avpriv_lock_avformat (void) |
int | avpriv_unlock_avformat (void) |
int | ff_alloc_packet2 (AVCodecContext *avctx, AVPacket *avpkt, int64_t size) |
Check AVPacket size and/or allocate data. | |
int | ff_alloc_packet (AVPacket *avpkt, int size) |
static av_always_inline int64_t | ff_samples_to_time_base (AVCodecContext *avctx, int64_t samples) |
Rescale from sample rate to AVCodecContext.time_base. | |
int | ff_get_buffer (AVCodecContext *avctx, AVFrame *frame, int flags) |
Get a buffer for a frame. | |
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. | |
int | ff_thread_can_start_frame (AVCodecContext *avctx) |
int | avpriv_h264_has_num_reorder_frames (AVCodecContext *avctx) |
int | ff_codec_open2_recursive (AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) |
Call avcodec_open2 recursively by decrementing counter, unlocking mutex, calling the function and then restoring again. | |
int | avpriv_bprint_to_extradata (AVCodecContext *avctx, struct AVBPrint *buf) |
Finalize buf into extradata and set its size appropriately. | |
const uint8_t * | avpriv_find_start_code (const uint8_t *p, const uint8_t *end, uint32_t *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. | |
int | ff_set_sar (AVCodecContext *avctx, AVRational sar) |
Check that the provided sample aspect ratio is valid and set it on the codec context. | |
int | ff_side_data_update_matrix_encoding (AVFrame *frame, enum AVMatrixEncoding matrix_encoding) |
Add or update AV_FRAME_DATA_MATRIXENCODING side data. | |
int | ff_get_format (AVCodecContext *avctx, const enum AVPixelFormat *fmt) |
Select the (possibly hardware accelerated) pixel format. | |
int | ff_decode_frame_props (AVCodecContext *avctx, AVFrame *frame) |
Set various frame properties from the codec context / packet data. | |
Variables | |
const uint8_t | ff_log2_run [41] |
volatile int | ff_avcodec_locked |
common internal api header.
Definition in file internal.h.
#define FF_SANE_NB_CHANNELS 63U |
Definition at line 36 of file internal.h.
Referenced by avcodec_open2(), and ff_init_buffer_info().
#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 STRIDE_ALIGN 8 |
Definition at line 45 of file internal.h.
Referenced by avcodec_align_dimensions2(), load_input_picture(), and update_frame_pool().
#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 171 of file internal.h.
Referenced by avcodec_open2(), and avformat_find_stream_info().
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 3512 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 3648 of file utils.c.
Referenced by ff_codec_get_id(), ff_mpv_decode_init(), mpeg_decode_frame(), and validate_codec_tag().
int ff_init_buffer_info | ( | AVCodecContext * | s, |
AVFrame * | frame | ||
) |
does needed setup of pkt_pts/pos and such for (re)get_buffer();
Definition at line 738 of file utils.c.
Referenced by ff_decode_frame_props(), get_buffer_internal(), reget_buffer_internal(), and thread_get_buffer_internal().
Definition at line 692 of file utils.c.
Referenced by h264_frame_start().
int ff_lock_avcodec | ( | AVCodecContext * | log_ctx | ) |
Definition at line 3597 of file utils.c.
Referenced by avcodec_open2(), and ff_codec_open2_recursive().
int ff_unlock_avcodec | ( | void | ) |
Definition at line 3617 of file utils.c.
Referenced by avcodec_open2(), ff_codec_open2_recursive(), and ff_lock_avcodec().
int avpriv_lock_avformat | ( | void | ) |
Definition at line 3630 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 3639 of file utils.c.
Referenced by avisynth_read_close(), avisynth_read_header(), ff_tls_deinit(), and ff_tls_init().
int ff_alloc_packet2 | ( | AVCodecContext * | avctx, |
AVPacket * | avpkt, | ||
int64_t | 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.
avctx | the AVCodecContext of the encoder |
avpkt | the 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(). |
size | the minimum required packet size |
Definition at line 1720 of file utils.c.
Referenced by a64multi_encode_frame(), aac_encode_frame(), aacPlus_encode_frame(), adx_encode_frame(), alac_encode_frame(), amr_wb_encode_frame(), avui_encode_frame(), bmp_encode_frame(), cinepak_encode_frame(), dnxhd_encode_picture(), dvvideo_encode_frame(), encode_frame(), encode_nals(), encode_picture_ls(), encode_superframe(), Faac_encode_frame(), ff_alloc_packet(), ff_mpv_encode_picture(), flac_encode_frame(), flashsv2_encode_frame(), flashsv_encode_frame(), gif_encode_frame(), ilbc_encode_frame(), libgsm_encode_frame(), libopenjpeg_encode_frame(), libopus_encode(), libschroedinger_encode_frame(), libshine_encode_frame(), libvorbis_encode_frame(), ljpeg_encode_frame(), mp3lame_encode_frame(), MPA_encode_frame(), pam_encode_frame(), pcm_encode_frame(), pcx_encode_frame(), pnm_encode_frame(), process_output_surface(), prores_encode_frame(), qtrle_encode_frame(), ra144_encode_frame(), raw_encode(), roq_dpcm_encode_frame(), roq_encode_frame(), s302m_encode2_frame(), storeframe(), sunrast_encode_frame(), svq1_encode_frame(), targa_encode_frame(), tta_encode_frame(), twolame_encode_frame(), utvideo_encode_frame(), v308_encode_frame(), v408_encode_frame(), v410_encode_frame(), vorbis_encode_frame(), wavpack_encode_frame(), XAVS_frame(), xbm_encode_frame(), xface_encode_frame(), xvid_encode_frame(), xwd_encode_frame(), y41p_encode_frame(), and yuv4_encode_frame().
int ff_alloc_packet | ( | AVPacket * | avpkt, |
int | size | ||
) |
Definition at line 1776 of file utils.c.
Referenced by cng_encode_frame(), encode_frame(), libwebp_encode_frame(), libx265_encode_frame(), and svc_encode_frame().
|
static |
Rescale from sample rate to AVCodecContext.time_base.
Definition at line 197 of file internal.h.
Referenced by amr_wb_encode_frame(), avcodec_encode_audio(), avcodec_encode_audio2(), encode_frame(), encode_superframe(), ff_af_queue_remove(), flac_encode_frame(), libvorbis_encode_frame(), MPA_encode_frame(), tta_encode_frame(), twolame_encode_frame(), vorbis_encode_frame(), and wavpack_encode_frame().
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 1030 of file utils.c.
Referenced by ac3_decode_frame(), adpcm_decode_frame(), adx_decode_frame(), aic_decode_frame(), alloc_frame(), amrnb_decode_frame(), amrwb_decode_frame(), ape_decode_frame(), atrac1_decode_frame(), atrac3_decode_frame(), atrac3p_decode_frame(), aura_decode_frame(), avui_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_frame(), copy_output(), cyuv_decode_frame(), dca_decode_frame(), decode_frame(), decode_pic(), decode_tag(), decode_thread(), dfa_decode_frame(), dpcm_decode_frame(), dss_sp_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(), evrc_decode_frame(), execute_code(), fdk_aac_decode_frame(), ff_ivi_decode_frame(), ff_mjpeg_decode_sof(), ff_snow_common_init_after_header(), ff_snow_get_buffer(), ff_thread_get_buffer(), ff_twinvq_decode_frame(), ff_vp56_decode_frame(), frame_configure_elements(), g2m_decode_frame(), g722_decode_frame(), g723_1_decode_frame(), get_buffer(), get_buffer_with_edge(), gif_decode_frame(), gsm_decode_frame(), hnm_decode_frame(), hqx_decode_frame(), idcin_decode_frame(), ilbc_decode_frame(), imc_decode_frame(), ipvideo_decode_frame(), libcelt_dec_decode(), 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(), oggvorbis_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(), reget_buffer_internal(), rl2_decode_frame(), roq_encode_frame(), s302m_decode_frame(), shorten_decode_frame(), sipr_decode_frame(), smka_decode_frame(), submit_packet(), sunrast_decode_frame(), svq1_decode_frame(), svq1_encode_frame(), synth_superframe(), tgq_decode_frame(), tgv_decode_frame(), thread_get_buffer_internal(), tmv_decode_frame(), tqi_decode_frame(), truespeech_decode_frame(), txd_decode_frame(), v308_decode_frame(), v408_decode_frame(), v410_decode_frame(), vble_decode_frame(), vcr1_decode_frame(), vmdaudio_decode_frame(), vmdvideo_decode_frame(), vorbis_decode_frame(), vp8_decode(), vqa_decode_frame(), wavesynth_decode(), wma_decode_superframe(), ws_snd_decode_frame(), xan_decode_frame(), xbm_decode_frame(), xface_decode_frame(), xwd_decode_frame(), y216_decode_frame(), y41p_decode_frame(), yuv4_decode_frame(), zero12v_decode_frame(), and zerocodec_decode_frame().
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.
Definition at line 1077 of file utils.c.
Referenced by aasc_decode_frame(), avs_decode_frame(), bethsoftvid_decode_frame(), cdg_decode_frame(), cinepak_decode_frame(), cinvideo_decode_frame(), cpia_decode_frame(), decode_frame(), fic_decode_frame(), flashsv_decode_frame(), flic_decode_frame_15_16BPP(), flic_decode_frame_8BPP(), gif_decode_frame(), ir2_decode_frame(), mm_decode_frame(), mp_decode_frame(), msrle_decode_frame(), mss1_decode_frame(), mss2_decode_frame(), mss3_decode_frame(), mss4_decode_frame(), msvideo1_decode_frame(), mvc_decode_frame(), paf_video_decode(), qtrle_decode_frame(), roq_decode_frame(), rpza_decode_frame(), seqvideo_decode_frame(), sgirle_decode_frame(), smc_decode_frame(), truemotion1_decode_frame(), tscc2_decode_frame(), ulti_decode_frame(), xan_decode_frame(), and yop_decode_frame().
int ff_thread_can_start_frame | ( | AVCodecContext * | avctx | ) |
Definition at line 743 of file pthread_frame.c.
Referenced by ff_mpv_frame_start(), and h264_frame_start().
int avpriv_h264_has_num_reorder_frames | ( | AVCodecContext * | avctx | ) |
Definition at line 56 of file h264.c.
Referenced by has_decode_delay_been_guessed().
int ff_codec_open2_recursive | ( | AVCodecContext * | avctx, |
const AVCodec * | codec, | ||
AVDictionary ** | options | ||
) |
Call avcodec_open2 recursively by decrementing counter, unlocking mutex, calling the function and then restoring again.
Assumes the mutex is already locked
Definition at line 1313 of file utils.c.
Referenced by smvjpeg_decode_init().
int avpriv_bprint_to_extradata | ( | AVCodecContext * | avctx, |
struct AVBPrint * | buf | ||
) |
Finalize buf into extradata and set its size appropriately.
Definition at line 3757 of file utils.c.
Referenced by ass_read_header(), dvdsub_init(), jacosub_read_header(), sami_read_header(), and subviewer_read_header().
Referenced by cavs_decode_frame(), decode_chunks(), ff_mpeg1_find_frame_end(), ff_mpeg4video_split(), ff_rtp_send_mpegvideo(), find_next_marker(), find_start_code(), h264_split(), mpeg_decode_slice(), mpegts_write_packet_internal(), mpegvideo_extract_headers(), mxf_parse_h264_frame(), parse_nal_units(), slice_decode_thread(), and vc1_split().
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.
Definition at line 229 of file utils.c.
Referenced by apply_param_change(), avcodec_open2(), avcodec_set_dimensions(), avpriv_dirac_parse_sequence_header(), avs_decode_init(), cdxl_decode_frame(), cmv_process_header(), decode_frame(), decode_frame_headers(), decode_init(), dnxhd_decode_frame(), dvdsub_parse_extradata(), dvvideo_decode_frame(), execute_code(), ff_h263_decode_frame(), ff_ivi_decode_frame(), ff_mjpeg_decode_sof(), ff_rv34_decode_frame(), ff_vc1_decode_entry_point(), ff_vc1_decode_sequence_header(), flashsv_decode_frame(), g2m_decode_frame(), gif_decode_frame(), h261_decode_frame(), init_image(), libopenjpeg_decode_frame(), mpeg4_decode_header(), mpegvideo_extract_headers(), mvc_decode_init(), parse_presentation_segment(), pcx_decode_frame(), pix_decode_frame(), process_frame_obj(), ptx_decode_frame(), rv20_decode_picture_header(), smvjpeg_decode_frame(), sunrast_decode_frame(), svq1_decode_frame(), tgq_decode_frame(), tgv_decode_frame(), tqi_decode_frame(), truemotion1_decode_header(), txd_decode_frame(), update_dimensions(), vp56_size_changed(), vp5_parse_header(), vp6_parse_header(), vp8_decode(), vp8_lossless_decode_frame(), and xbm_decode_frame().
int ff_set_sar | ( | AVCodecContext * | avctx, |
AVRational | sar | ||
) |
Check that the provided sample aspect ratio is valid and set it on the codec context.
Definition at line 244 of file utils.c.
Referenced by avpriv_dirac_parse_sequence_header(), decode_frame(), decode_header(), decode_sequence_header_adv(), dvvideo_decode_frame(), ff_h263_decode_frame(), h264_slice_header_init(), mjpeg_decode_app(), set_sps(), and truemotion1_decode_header().
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 259 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 1193 of file utils.c.
Referenced by decode_init(), ff_thread_get_format(), h263_get_format(), qsv_process_data(), submit_packet(), 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 864 of file utils.c.
Referenced by get_buffer_internal(), raw_decode(), and reget_buffer_internal().
const uint8_t ff_log2_run[41] |
Definition at line 38 of file bitstream.c.
Referenced by decode_line(), encode_line(), ls_decode_line(), ls_encode_line(), and ls_encode_run().
volatile int ff_avcodec_locked |
Definition at line 120 of file utils.c.
Referenced by ff_lock_avcodec(), and ff_unlock_avcodec().