FFmpeg
Macros | Functions | Variables
utils.c File Reference

utils. More...

#include "config.h"
#include "libavutil/atomic.h"
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/crc.h"
#include "libavutil/frame.h"
#include "libavutil/internal.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
#include "libavutil/samplefmt.h"
#include "libavutil/dict.h"
#include "avcodec.h"
#include "dsputil.h"
#include "libavutil/opt.h"
#include "thread.h"
#include "frame_thread_encoder.h"
#include "internal.h"
#include "bytestream.h"
#include "version.h"
#include <stdlib.h>
#include <stdarg.h>
#include <limits.h>
#include <float.h>

Go to the source code of this file.

Macros

#define  STRIDE_ALIGN   16
 
#define  UTF8_MAX_BYTES   4 /* 5 and 6 bytes sequences should not be used */
 
#define  TAG_PRINT(x)
 
#define  LICENSE_PREFIX   "libavcodec license: "
 

Functions

voidav_fast_realloc (void *ptr, unsigned int *size, size_t min_size)
  Reallocate the given block if it is not large enough, otherwise do nothing.
 
static int  ff_fast_malloc (void *ptr, unsigned int *size, size_t min_size, int zero_realloc)
 
void  av_fast_malloc (void *ptr, unsigned int *size, size_t min_size)
  Allocate a buffer, reusing the given one if large enough.
 
void  av_fast_padded_malloc (void *ptr, unsigned int *size, size_t min_size)
  Same behaviour av_fast_malloc but the buffer has additional FF_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0.
 
void  av_fast_padded_mallocz (void *ptr, unsigned int *size, size_t min_size)
  Same behaviour av_fast_padded_malloc except that buffer will always be 0-initialized after call.
 
  If c is NULL, returns the first registered codec, if c is non-NULL, returns the next registered codec after c, or NULL if c is the last one.
 
 
int  av_codec_is_encoder (const AVCodec *codec)
 
int  av_codec_is_decoder (const AVCodec *codec)
 
  Register the codec codec and initialize libavcodec.
 
  Return the amount of padding in pixels which the get_buffer callback must provide around the edge of the image for codecs which do not have the CODEC_FLAG_EMU_EDGE flag.
 
 
  Modify width and height values so that they will result in a memory buffer that is acceptable for the codec if you also ensure that all line sizes are a multiple of the respective linesize_align[i].
 
  Modify width and height values so that they will result in a memory buffer that is acceptable for the codec if you do not use any horizontal padding.
 
int  avcodec_enum_to_chroma_pos (int *xpos, int *ypos, enum AVChromaLocation pos)
  Converts AVChromaLocation to swscale x/y chroma position.
 
enum AVChromaLocation  avcodec_chroma_pos_to_enum (int xpos, int ypos)
  Converts swscale x/y chroma position to AVChromaLocation.
 
int  avcodec_fill_audio_frame (AVFrame *frame, int nb_channels, enum AVSampleFormat sample_fmt, const uint8_t *buf, int buf_size, int align)
  Fill AVFrame audio data and linesize pointers.
 
 
static int  audio_get_buffer (AVCodecContext *avctx, AVFrame *frame)
 
static int  video_get_buffer (AVCodecContext *s, AVFrame *pic)
 
void  avpriv_color_frame (AVFrame *frame, const int c[4])
 
  The default callback for AVCodecContext.get_buffer2().
 
  does needed setup of pkt_pts/pos and such for (re)get_buffer();
 
static int  get_buffer_internal (AVCodecContext *avctx, AVFrame *frame, int flags)
 
  Get a buffer for a frame.
 
 
  Identical in function to av_frame_make_writable(), except it uses ff_get_buffer() to allocate the buffer when needed.
 
int  avcodec_default_execute (AVCodecContext *c, int(*func)(AVCodecContext *c2, void *arg2), void *arg, int *ret, int count, int size)
 
int  avcodec_default_execute2 (AVCodecContext *c, int(*func)(AVCodecContext *c2, void *arg2, int jobnr, int threadnr), void *arg, int *ret, int count)
 
 
 
  Set the fields of the given AVFrame to default values.
 
  Allocate an AVFrame and set its fields to default values.
 
  Free the frame and any dynamically allocated objects in it, e.g.
 
int  av_codec_get_max_lowres (const AVCodec *codec)
 
 
static int  get_bit_rate (AVCodecContext *ctx)
 
  Call avcodec_open2 recursively by decrementing counter, unlocking mutex, calling the function and then restoring again.
 
  Initialize the AVCodecContext to use the given AVCodec.
 
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 int  pad_last_frame (AVCodecContext *s, AVFrame **dst, const AVFrame *src)
  Pad last frame with silence.
 
int attribute_align_arg  avcodec_encode_audio2 (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
  Encode a frame of audio.
 
int attribute_align_arg  avcodec_encode_video2 (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
  Encode a frame of video.
 
int  avcodec_encode_subtitle (AVCodecContext *avctx, uint8_t *buf, int buf_size, const AVSubtitle *sub)
 
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 times.
 
static void  apply_param_change (AVCodecContext *avctx, AVPacket *avpkt)
 
 
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.
 
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.
 
static int  recode_subtitle (AVCodecContext *avctx, AVPacket *outpkt, const AVPacket *inpkt)
 
static int  utf8_check (const uint8_t *str)
 
int  avcodec_decode_subtitle2 (AVCodecContext *avctx, AVSubtitle *sub, int *got_sub_ptr, AVPacket *avpkt)
  Decode a subtitle message.
 
  Free all allocated data in the given subtitle struct.
 
  Call avcodec_close recursively, counterpart to avcodec_open2_recursive.
 
  Close a given AVCodecContext and free all the data associated with it (but not the AVCodecContext itself).
 
 
static AVCodecfind_encdec (enum AVCodecID id, int encoder)
 
  Find a registered encoder with a matching codec ID.
 
  Find a registered encoder with the specified name.
 
  Find a registered decoder with a matching codec ID.
 
  Find a registered decoder with the specified name.
 
const char *  avcodec_get_name (enum AVCodecID id)
  Get the name of a codec.
 
size_t  av_get_codec_tag_string (char *buf, size_t buf_size, unsigned int codec_tag)
  Put a string representing the codec tag codec_tag in buf.
 
void  avcodec_string (char *buf, int buf_size, AVCodecContext *enc, int encode)
 
const char *  av_get_profile_name (const AVCodec *codec, int profile)
  Return a name for the specified profile, if available.
 
unsigned  avcodec_version (void)
  Return the LIBAVCODEC_VERSION_INT constant.
 
const char *  avcodec_configuration (void)
  Return the libavcodec build-time configuration.
 
const char *  avcodec_license (void)
  Return the libavcodec license.
 
  Reset the internal decoder state / flush internal buffers.
 
  Return codec bits per sample.
 
  Return the PCM codec associated with a sample format.
 
  Return codec bits per sample.
 
int  av_get_audio_frame_duration (AVCodecContext *avctx, int frame_bytes)
  Return audio frame duration.
 
 
unsigned int  av_xiphlacing (unsigned char *s, unsigned int v)
  Encode extradata length to a buffer.
 
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.
 
  Register the hardware accelerator hwaccel.
 
  If hwaccel is NULL, returns the first registered hardware accelerator, if hwaccel is non-NULL, returns the next registered hardware accelerator after hwaccel, or NULL if hwaccel is the last one.
 
  Return the hardware accelerated codec for codec codec_id and pixel format pix_fmt.
 
int  av_lockmgr_register (int(*cb)(void **mutex, enum AVLockOp op))
  Register a user provided lock manager supporting the operations specified by AVLockOp.
 
 
 
 
 
unsigned int  avpriv_toupper4 (unsigned int x)
 
 
  Wrapper around get_format() for frame-multithreaded codecs.
 
  Wrapper around get_buffer() for frame-multithreaded codecs.
 
  Wrapper around release_buffer() frame-for multithreaded codecs.
 
  If the codec defines update_thread_context(), call this when they are ready for the next thread to start decoding the next frame.
 
void  ff_thread_report_progress (ThreadFrame *f, int progress, int field)
  Notify later decoding threads when part of their reference picture is ready.
 
void  ff_thread_await_progress (ThreadFrame *f, int progress, int field)
  Wait for earlier decoding threads to finish reference pictures.
 
 
 
 
void  ff_thread_await_progress2 (AVCodecContext *avctx, int field, int thread, int shift)
 
void  ff_thread_report_progress2 (AVCodecContext *avctx, int field, int thread, int n)
 
  Get the type of the given codec.
 
 
  Finalize buf into extradata and set its size appropriately.
 
const uint8_tavpriv_find_start_code (const uint8_t *av_restrict p, const uint8_t *end, uint32_t *av_restrict state)
 

Variables

static int(*  lockmgr_cb )(void **mutex, enum AVLockOp op) = NULL
 
volatile int  ff_avcodec_locked
 
static int volatile  entangled_thread_counter = 0
 
static voidcodec_mutex
 
static voidavformat_mutex
 
static AVCodecfirst_avcodec = NULL
 
static AVHWAccelfirst_hwaccel = NULL
 

Detailed Description

utils.

Definition in file utils.c.

Macro Definition Documentation

#define STRIDE_ALIGN   16

Definition at line 243 of file utils.c.

Referenced by avcodec_align_dimensions2(), and update_frame_pool().

#define UTF8_MAX_BYTES   4 /* 5 and 6 bytes sequences should not be used */

Definition at line 2316 of file utils.c.

Referenced by recode_subtitle().

#define TAG_PRINT (   x )
Value:
(((x) >= '0' && (x) <= '9') || \
((x) >= 'a' && (x) <= 'z') || ((x) >= 'A' && (x) <= 'Z') || \
((x) == '.' || (x) == ' ' || (x) == '-' || (x) == '_'))

Referenced by av_get_codec_tag_string().

#define LICENSE_PREFIX   "libavcodec license: "

Referenced by avcodec_license(), avdevice_license(), avfilter_license(), avformat_license(), avresample_license(), avutil_license(), postproc_license(), swresample_license(), and swscale_license().

Function Documentation

static int ff_fast_malloc ( voidptr,
unsigned int *  size,
size_t  min_size,
int  zero_realloc 
)
inlinestatic

Definition at line 139 of file utils.c.

Referenced by av_fast_malloc(), av_fast_padded_malloc(), and av_fast_padded_mallocz().

static av_cold void avcodec_init ( void  )
static

Definition at line 193 of file utils.c.

Referenced by avcodec_register().

static int update_frame_pool ( AVCodecContextavctx,
AVFrameframe 
)
static

Definition at line 468 of file utils.c.

Referenced by avcodec_default_get_buffer2().

static int audio_get_buffer ( AVCodecContextavctx,
AVFrameframe 
)
static

Definition at line 572 of file utils.c.

Referenced by avcodec_default_get_buffer2().

static int video_get_buffer ( AVCodecContexts,
AVFramepic 
)
static

Definition at line 617 of file utils.c.

Referenced by avcodec_default_get_buffer2().

void avpriv_color_frame ( AVFrameframe,
const int  c[4] 
)

Definition at line 671 of file utils.c.

Referenced by h264_frame_start().

int ff_init_buffer_info ( AVCodecContextavctx,
AVFrameframe 
)

does needed setup of pkt_pts/pos and such for (re)get_buffer();

Definition at line 717 of file utils.c.

Referenced by get_buffer_internal(), reget_buffer_internal(), and thread_get_buffer_internal().

static int get_buffer_internal ( AVCodecContextavctx,
AVFrameframe,
int  flags 
)
static

Definition at line 802 of file utils.c.

Referenced by ff_get_buffer().

int ff_get_buffer ( AVCodecContextavctx,
AVFrameframe,
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 942 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(), aura_decode_frame(), avui_decode_frame(), bfi_decode_frame(), bmp_decode_frame(), bmv_aud_decode_frame(), brpix_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_p_frame(), decode_pic(), decode_tag(), decode_thread(), dfa_decode_frame(), dirac_decode_data_unit(), dirac_decode_picture_header(), dpcm_decode_frame(), dvvideo_decode_frame(), dxtory_decode_v1(), dxtory_decode_v2(), eightsvx_decode_frame(), encode_init(), 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_frame_start(), ff_thread_get_buffer(), ff_thread_video_encode_frame(), ff_twinvq_decode_frame(), ff_vp56_decode_frame(), frame_configure_elements(), g2m_decode_frame(), g722_decode_frame(), g723_1_decode_frame(), get_buffer(), gif_decode_frame(), gsm_decode_frame(), hls_slice_header(), 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(), output_data(), paf_aud_decode(), pcm_bluray_decode_frame(), pcm_decode_frame(), pcm_dvd_decode_frame(), pcx_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(), vp9_decode_frame(), 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().

static int reget_buffer_internal ( AVCodecContextavctx,
AVFrameframe 
)
static

Definition at line 950 of file utils.c.

Referenced by ff_reget_buffer().

int ff_reget_buffer ( AVCodecContextavctx,
AVFrameframe 
)

Identical in function to av_frame_make_writable(), except it uses ff_get_buffer() to allocate the buffer when needed.

Definition at line 987 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(), 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_vid_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 avcodec_default_execute2 ( AVCodecContextc,
int(*)(AVCodecContext *c2, void *arg2, int jobnr, int threadnr)  func,
voidarg,
int *  ret,
int  count 
)

Definition at line 1022 of file utils.c.

static int is_hwaccel_pix_fmt ( enum AVPixelFormat  pix_fmt )
static

Definition at line 1034 of file utils.c.

Referenced by avcodec_default_get_format().

static void avcodec_get_subtitle_defaults ( AVSubtitlesub )
static

Definition at line 1102 of file utils.c.

Referenced by avcodec_decode_subtitle2().

static int get_bit_rate ( AVCodecContextctx )
static

Definition at line 1108 of file utils.c.

Referenced by avcodec_open2(), and avcodec_string().

int attribute_align_arg ff_codec_open2_recursive ( AVCodecContextavctx,
const AVCodeccodec,
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 1138 of file utils.c.

Referenced by smvjpeg_decode_init().

int ff_alloc_packet2 ( AVCodecContextavctx,
AVPacketavpkt,
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.

Parameters
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
Returns
0 on success, negative error code on failure

Definition at line 1493 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(), dnxhd_encode_picture(), encode_frame(), encode_nals(), encode_picture_lossless(), 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(), mp3lame_encode_frame(), MPA_encode_frame(), oggvorbis_encode_frame(), pam_encode_frame(), pcm_encode_frame(), pcx_encode_frame(), pnm_encode_frame(), 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 ( AVPacketavpkt,
int  size 
)

Definition at line 1545 of file utils.c.

Referenced by cng_encode_frame().

static int pad_last_frame ( AVCodecContexts,
AVFrame **  dst,
const AVFramesrc 
)
static

Pad last frame with silence.

Definition at line 1553 of file utils.c.

Referenced by avcodec_encode_audio2().

static int64_t guess_correct_pts ( AVCodecContextctx,
int64_t  reordered_pts,
int64_t  dts 
)
static

Attempt to guess proper monotonic timestamps for decoded video frames which might have incorrect times.

Input timestamps may wrap around, in which case the output will as well.

Parameters
pts the pts field of the decoded AVPacket, as passed through AVFrame.pkt_pts
dts the dts field of the decoded AVPacket
Returns
one of the input values, may be AV_NOPTS_VALUE

Definition at line 1934 of file utils.c.

Referenced by avcodec_decode_audio4(), and avcodec_decode_video2().

static void apply_param_change ( AVCodecContextavctx,
AVPacketavpkt 
)
static

Definition at line 1956 of file utils.c.

Referenced by avcodec_decode_audio4(), and avcodec_decode_video2().

static int add_metadata_from_side_data ( AVCodecContextavctx,
AVFrameframe 
)
static

Definition at line 1998 of file utils.c.

Referenced by avcodec_decode_audio4(), and avcodec_decode_video2().

static int recode_subtitle ( AVCodecContextavctx,
AVPacketoutpkt,
const AVPacketinpkt 
)
static

Definition at line 2317 of file utils.c.

Referenced by avcodec_decode_subtitle2().

static int utf8_check ( const uint8_tstr )
static

Definition at line 2374 of file utils.c.

Referenced by avcodec_decode_subtitle2().

av_cold int ff_codec_close_recursive ( AVCodecContextavctx )

Call avcodec_close recursively, counterpart to avcodec_open2_recursive.

Definition at line 2506 of file utils.c.

Referenced by smvjpeg_decode_end().

static enum AVCodecID remap_deprecated_codec_id ( enum AVCodecID  id )
static

Definition at line 2566 of file utils.c.

Referenced by find_encdec().

static AVCodec* find_encdec ( enum AVCodecID  id,
int  encoder 
)
static

Definition at line 2583 of file utils.c.

Referenced by avcodec_find_decoder(), and avcodec_find_encoder().

int ff_thread_init ( AVCodecContexts )

Definition at line 3125 of file utils.c.

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 3146 of file utils.c.

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

AVHWAccel* ff_find_hwaccel ( enum AVCodecID  codec_id,
enum AVPixelFormat  pix_fmt 
)

Return the hardware accelerated codec for codec codec_id and pixel format pix_fmt.

Parameters
codec_id the codec to match
pix_fmt the pixel format to match
Returns
the hardware accelerated codec, or NULL if none was found.

Definition at line 3197 of file utils.c.

Referenced by ff_h263_decode_init(), h264_slice_header_init(), setup_hwaccel_for_pixfmt(), and vc1_decode_init().

int ff_lock_avcodec ( AVCodecContextlog_ctx )

Definition at line 3228 of file utils.c.

Referenced by avcodec_close(), avcodec_open2(), ff_codec_close_recursive(), and ff_codec_open2_recursive().

int ff_unlock_avcodec ( void  )

Definition at line 3248 of file utils.c.

Referenced by avcodec_close(), avcodec_open2(), ff_codec_close_recursive(), ff_codec_open2_recursive(), and ff_lock_avcodec().

int avpriv_lock_avformat ( void  )

Definition at line 3260 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 3269 of file utils.c.

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

unsigned int avpriv_toupper4 ( unsigned int  x )

Definition at line 3278 of file utils.c.

Referenced by ff_codec_get_id(), ff_MPV_common_init(), mpeg_decode_frame(), and validate_codec_tag().

int ff_thread_ref_frame ( ThreadFramedst,
ThreadFramesrc 
)

Definition at line 3286 of file utils.c.

Referenced by ff_mpeg_ref_picture(), hevc_ref_frame(), mimic_decode_update_thread_context(), ref_frame(), ref_picture(), update_frames(), update_thread_context(), and vp8_ref_frame().

enum AVPixelFormat ff_thread_get_format ( AVCodecContextavctx,
const enum AVPixelFormatfmt 
)

Wrapper around get_format() for frame-multithreaded codecs.

Call this function instead of avctx->get_format(). Cannot be called after the codec has called ff_thread_finish_setup().

Parameters
avctx The current context.
fmt The list of available formats.

Definition at line 3307 of file utils.c.

int ff_thread_get_buffer ( AVCodecContextavctx,
ThreadFramef,
int  flags 
)

Wrapper around get_buffer() for frame-multithreaded codecs.

Call this function instead of ff_get_buffer(f). Cannot be called after the codec has called ff_thread_finish_setup().

Parameters
avctx The current context.
f The frame to write into.

Definition at line 3312 of file utils.c.

void ff_thread_release_buffer ( AVCodecContextavctx,
ThreadFramef 
)

Wrapper around release_buffer() frame-for multithreaded codecs.

Call this function instead of avctx->release_buffer(f). The AVFrame will be copied and the actual release_buffer() call will be performed later. The contents of data pointed to by the AVFrame should not be changed until ff_thread_get_buffer() is called on it.

Parameters
avctx The current context.
f The picture being released.

Definition at line 3318 of file utils.c.

void ff_thread_finish_setup ( AVCodecContextavctx )

If the codec defines update_thread_context(), call this when they are ready for the next thread to start decoding the next frame.

After calling it, do not change any variables read by the update_thread_context() method, or call ff_thread_get_buffer().

Parameters
avctx The context.

Definition at line 3323 of file utils.c.

void ff_thread_report_progress ( ThreadFramef,
int  progress,
int  field 
)

Notify later decoding threads when part of their reference picture is ready.

Call this when some part of the picture is finished decoding. Later calls with lower values of progress have no effect.

Parameters
f The picture being decoded.
progress Value, in arbitrary units, of how much of the picture has decoded.
field The field being decoded, for field-picture codecs. 0 for top field or frame pictures, 1 for bottom field.

Definition at line 3327 of file utils.c.

void ff_thread_await_progress ( ThreadFramef,
int  progress,
int  field 
)

Wait for earlier decoding threads to finish reference pictures.

Call this before accessing some part of a picture, with a given value for progress, and it will return after the responsible decoding thread calls ff_thread_report_progress() with the same or higher value for progress.

Parameters
f The picture being referenced.
progress Value, in arbitrary units, to wait for.
field The field being referenced, for field-picture codecs. 0 for top field or frame pictures, 1 for bottom field.

Definition at line 3331 of file utils.c.

int ff_thread_can_start_frame ( AVCodecContextavctx )

Definition at line 3335 of file utils.c.

Referenced by ff_MPV_frame_start(), and h264_frame_start().

int ff_alloc_entries ( AVCodecContextavctx,
int  count 
)

Definition at line 3340 of file utils.c.

void ff_reset_entries ( AVCodecContextavctx )

Definition at line 3345 of file utils.c.

void ff_thread_await_progress2 ( AVCodecContextavctx,
int  field,
int  thread,
int  shift 
)

Definition at line 3349 of file utils.c.

void ff_thread_report_progress2 ( AVCodecContextavctx,
int  field,
int  thread,
int  n 
)

Definition at line 3353 of file utils.c.

int avpriv_bprint_to_extradata ( AVCodecContextavctx,
struct AVBPrintbuf 
)

Finalize buf into extradata and set its size appropriately.

Definition at line 3384 of file utils.c.

Referenced by ass_read_header(), dvdsub_init(), jacosub_read_header(), sami_read_header(), and subviewer_read_header().

const uint8_t* avpriv_find_start_code ( const uint8_t *av_restrict  p,
const uint8_tend,
uint32_t *av_restrict  state 
)

Definition at line 3402 of file utils.c.

Variable Documentation

int(* lockmgr_cb)(void **mutex, enum AVLockOp op) = NULL
static

Definition at line 111 of file utils.c.

Referenced by av_lockmgr_register(), avpriv_lock_avformat(), avpriv_unlock_avformat(), ff_lock_avcodec(), and ff_unlock_avcodec().

volatile int ff_avcodec_locked

Definition at line 115 of file utils.c.

int volatile entangled_thread_counter = 0
static

Definition at line 116 of file utils.c.

void* codec_mutex
static

Definition at line 117 of file utils.c.

void* avformat_mutex
static

Definition at line 118 of file utils.c.

AVCodec* first_avcodec = NULL
static

Definition at line 183 of file utils.c.

Referenced by av_codec_next(), avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), avcodec_register(), and find_encdec().

AVHWAccel* first_hwaccel = NULL
static

Definition at line 3182 of file utils.c.

Referenced by av_hwaccel_next(), and av_register_hwaccel().


Generated on Sat Jan 25 2014 19:52:15 for FFmpeg by   doxygen 1.8.2

AltStyle によって変換されたページ (->オリジナル) /