添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
逃跑的松鼠  ·  QRadar: "Unable to ...·  1 年前    · 
拉风的领结  ·  no such column: 1 ...·  2 年前    · 
光明磊落的萝卜  ·  有趣的CSS | ...·  2 年前    · 

Miscellaneous utility functions related to both encoding and decoding (or neither). More...

Modules Pixel formats Functions for working with pixel formats.
FFT functions Data Structures struct AVBitStreamFilterContext struct AVBitStreamFilter Enumerations enum AVLockOp { AV_LOCK_CREATE , AV_LOCK_OBTAIN , AV_LOCK_RELEASE , AV_LOCK_DESTROY Lock operation used by lockmgr. More...
Functions void avcodec_set_dimensions ( AVCodecContext * s , int width , int height ) 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.
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, int), void * arg , int * ret , int count ) 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.
void avcodec_flush_buffers ( AVCodecContext *avctx)  Reset the internal decoder state / flush internal buffers.
int av_get_bits_per_sample (enum AVCodecID codec_id )  Return codec bits per sample.
enum AVCodecID av_get_pcm_codec (enum AVSampleFormat fmt , int be)  Return the PCM codec associated with a sample format.
int av_get_exact_bits_per_sample (enum AVCodecID codec_id )  Return codec bits per sample.
int av_get_audio_frame_duration ( AVCodecContext *avctx, int frame_bytes)  Return audio frame duration.
void av_register_bitstream_filter ( AVBitStreamFilter *bsf)  Register a bitstream filter.
AVBitStreamFilterContext * av_bitstream_filter_init (const char * name )  Create and initialize a bitstream filter context given a bitstream filter name.
int av_bitstream_filter_filter ( AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const char * args , uint8_t **poutbuf, int *poutbuf_size, const uint8_t * buf , int buf_size, int keyframe)  Filter bitstream.
void av_bitstream_filter_close ( AVBitStreamFilterContext *bsf)  Release bitstream filter context.
AVBitStreamFilter * av_bitstream_filter_next ( AVBitStreamFilter *f)  If f is NULL, return the first registered bitstream filter, if f is non-NULL, return the next registered bitstream filter after f, or NULL if f is the last one.
void * av_fast_realloc ( void *ptr, unsigned int * size , size_t min_size)  Reallocate the given block if it is not large enough, otherwise do nothing.
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.
unsigned int av_xiphlacing (unsigned char * s , unsigned int v )  Encode extradata length to a buffer.
void av_register_hwaccel ( AVHWAccel *hwaccel)  Register the hardware accelerator hwaccel.
AVHWAccel * av_hwaccel_next ( AVHWAccel *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.
int av_lockmgr_register (int(* cb )( void ** mutex , enum AVLockOp op ))  Register a user provided lock manager supporting the operations specified by AVLockOp.
enum AVMediaType avcodec_get_type (enum AVCodecID codec_id )  Get the type of the given codec.
const char * avcodec_get_name (enum AVCodecID id )  Get the name of a codec.
int avcodec_is_open ( AVCodecContext * s ) int av_codec_is_encoder (const AVCodec *codec) int av_codec_is_decoder (const AVCodec *codec) const AVCodecDescriptor * avcodec_descriptor_get (enum AVCodecID id ) const AVCodecDescriptor * avcodec_descriptor_next (const AVCodecDescriptor *prev)  Iterate over all codec descriptors known to libavcodec.
const AVCodecDescriptor * avcodec_descriptor_get_by_name (const char * name )

Detailed Description

Miscellaneous utility functions related to both encoding and decoding (or neither).

Enumeration Type Documentation

Definition at line 234 of file utils.c .

Referenced by apply_param_change() , av_mpeg4_decode_header() , avcodec_open2() , avpriv_dirac_parse_sequence_header() , avs_decode_init() , brpix_decode_frame() , 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() , mpeg_decode_postinit() , mpegvideo_extract_headers() , mvc_decode_init() , parse_presentation_segment() , pcx_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() , theora_header() , tqi_decode_frame() , truemotion1_decode_header() , txd_decode_frame() , update_dimensions() , vp56_size_changed() , vp5_parse_header() , vp6_parse_header() , vp8_decode() , and vp8_lossless_decode_frame() .

Returns
the length of the string that would have been generated if enough space had been available, excluding the trailing null

Definition at line 2659 of file utils.c .

Referenced by avcodec_string() , init_muxer() , main() , mov_write_hdlr_tag() , print_pix_fmt_fourccs() , rsd_read_header() , and show_stream() .

Returns
A name for the profile if found, NULL otherwise.

Definition at line 2815 of file utils.c .

Referenced by avcodec_string() , and show_stream() .

Fill AVFrame audio data and linesize pointers.

The buffer buf must be a preallocated buffer with a size big enough to contain the specified samples amount. The filled AVFrame data pointers will point to this buffer.

AVFrame extended_data channel pointers are allocated if necessary for planar audio.

Parameters
framethe AVFrame frame->nb_samples must be set prior to calling the function. This function fills in frame->data, frame->extended_data, frame->linesize[0]. nb_channelschannel count sample_fmtsample format bufbuffer to use for frame data buf_sizesize of buffer alignplane size sample alignment (0 = default)
Returns
>=0 on success, negative error code on failure
Todo:
return the size in bytes required to store the samples in case of success, at the next libavutil bump
Examples:
doc/examples/decoding_encoding.c , and doc/examples/muxing.c .

Definition at line 432 of file utils.c .

Referenced by audio_encode_example() , and write_audio_frame() .

Reset the internal decoder state / flush internal buffers.

Should be called e.g. when seeking or when switching to a different stream.

Note
when refcounted frames are not used (i.e. avctx->refcounted_frames is 0), this invalidates the frames previously returned from the decoder. When refcounted frames are used, the decoder just releases any references it might keep internally, but the caller's reference remains valid.

Definition at line 2856 of file utils.c .

Referenced by get_video_frame() , rewind_file() , subtitle_thread() , and video_thread() .

Returns
Number of bits per sample or zero if unknown for the given codec.

Definition at line 2941 of file utils.c .

Referenced by adpcm_encode_init() , aiff_write_header() , avformat_find_stream_info() , caf_write_header() , epaf_read_header() , ff_alsa_open() , ff_audio_interleave_init() , ff_pcm_read_seek() , ff_put_wav_header() , ff_voc_get_packet() , g722_read_header() , get_aiff_header() , get_bit_rate() , gxf_packet() , iff_read_header() , init_muxer() , ircam_read_header() , mkv_write_tracks() , mov_get_codec_tag() , mov_parse_stsd_audio() , mov_write_audio_tag() , mov_write_header() , mxf_set_audio_pts() , mxf_write_generic_sound_common() , oma_read_header() , pcm_decode_frame() , pcm_decode_init() , pcm_encode_frame() , pcm_encode_init() , pcm_read_header() , pulse_read_header() , read_header() , rso_read_header() , and show_stream() .

Return codec bits per sample.

Only return non-zero if the bits per sample is exactly correct, not an approximation.

Parameters
[in]codec_idthe codec
Returns
Number of bits per sample or zero if unknown for the given codec.

Definition at line 2870 of file utils.c .

Referenced by av_get_audio_frame_duration() , av_get_bits_per_sample() , and new_output_stream() .

Returns
frame duration, in samples, if known. 0 if not able to determine.

Definition at line 2959 of file utils.c .

Referenced by adp_read_header() , build_frame_code() , do_streamcopy() , ff_get_audio_frame_size() , ff_parse_specific_params() , ff_put_wav_header() , get_aiff_header() , rsd_read_header() , rtp_send_ilbc() , and rtp_write_header() .

Register a bitstream filter.

The filter will be accessible to the application code through av_bitstream_filter_next() or can be directly initialized with av_bitstream_filter_init() .

See Also
avcodec_register_all()

Definition at line 37 of file bitstream_filter.c .

Create and initialize a bitstream filter context given a bitstream filter name.

The returned context must be freed with av_bitstream_filter_close() .

Parameters
namethe name of the bitstream filter
Returns
a bitstream filter context if a matching filter was found and successfully initialized, NULL otherwise

Definition at line 44 of file bitstream_filter.c .

Referenced by init() , new_output_stream() , parse_bsfs() , and Stagefright_init() .

Filter bitstream.

This function filters the buffer buf with size buf_size, and places the filtered buffer in the buffer pointed to by poutbuf.

The output buffer must be freed by the caller.

Parameters
bsfcbitstream filter context created by av_bitstream_filter_init() avctx AVCodecContext accessed by the filter, may be NULL. If specified, this must point to the encoder context of the output stream the packet is sent to. argsarguments which specify the filter configuration, may be NULL poutbufpointer which is updated to point to the filtered buffer poutbuf_sizepointer which is updated to the filtered buffer size in bytes bufbuffer containing the data to filter buf_sizesize in bytes of buf keyframeset to non-zero if the buffer to filter corresponds to a key-frame packet data
Returns
>= 0 in case of success, or a negative error code in case of failure

If the return value is positive, an output buffer is allocated and is availble in *poutbuf, and is distinct from the input buffer.

If the return value is 0, the output buffer is not allocated and should be considered identical to the input buffer, or in case *poutbuf was set it points to the input buffer (not necessarily to its starting address).

Definition at line 73 of file bitstream_filter.c .

Referenced by decode() , filter_packet() , init() , Stagefright_decode_frame() , and write_frame() .

If f is NULL, return the first registered bitstream filter, if f is non-NULL, return the next registered bitstream filter after f, or NULL if f is the last one.

This function can be used to iterate over all registered bitstream filters.

Definition at line 29 of file bitstream_filter.c .

Referenced by show_bsfs() .

Reallocate the given block if it is not large enough, otherwise do nothing.

See Also
av_realloc

Definition at line 120 of file utils.c .

Referenced by caf_write_packet() , decode_frame() , decode_frame_header() , dirac_combine_frame() , ff_add_index_entry() , ff_af_queue_add() , ff_combine_frame() , ff_mms_asf_header_parser() , ff_subtitles_queue_insert() , ff_thread_release_buffer() , ff_vaapi_alloc_slice() , ff_vaapi_commit_slices() , ff_vdpau_add_buffer() , ff_vdpau_add_data_chunk() , flac_fifo_read_wrap() , get_stats() , mxg_update_cache() , read_frame() , shorten_decode_frame() , spdif_header_eac3() , and vda_h264_decode_slice() .

Allocate a buffer, reusing the given one if large enough.

Contrary to av_fast_realloc the current buffer contents might not be preserved and on error the old buffer is freed, thus no special handling to avoid memleaks is necessary.

Parameters
ptrpointer to pointer to already allocated buffer, overwritten with pointer to new buffer sizesize of the buffer *ptr points to min_sizeminimum size of *ptr buffer after returning, *ptr will be NULL and *size 0 if an error occurred.

Definition at line 153 of file utils.c .

Referenced by allocate_buffers() , ape_decode_frame() , audio_decode_frame() , codec_reinit() , dca_decode_frame() , decode_8() , decode_frame() , decode_i_frame() , decode_p_frame() , ff_h263_decode_frame() , ff_hevc_extract_rbsp() , ff_mpeg_update_thread_context() , gif_decode_frame() , gif_read_image() , hevc_frame_start() , id3v2_parse() , ljpeg_decode_rgb_scan() , mp_decode_frame() , parse_picture_segment() , pmp_packet() , reconfigure_at_keyframe() , spdif_header_dts4() , spdif_write_packet() , submit_packet() , svq3_decode_frame() , tak_decode_frame() , truemotion1_decode_header() , truemotion1_decode_init() , update_md5_sum() , utvideo_encode_frame() , and verify_md5() .

Same behaviour av_fast_malloc but the buffer has additional FF_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0.

In addition the whole buffer will initially and after resizes be 0-initialized so that no uninitialized data will ever appear.

Definition at line 158 of file utils.c .

Referenced by allocate_buffers() , allocate_buffers2() , cdxl_decode_frame() , cllc_decode_frame() , decode_block() , decode_frame() , deinvert_buffer() , ebml_read_binary() , encode_frame() , ff_alloc_packet2() , ff_h264_decode_nal() , ff_mjpeg_find_marker() , init_buffers() , mimic_decode_frame() , mpc7_decode_frame() , tqi_decode_frame() , wavpack_encode_block() , wavpack_encode_frame() , and wv_stereo() .

Same behaviour av_fast_padded_malloc except that buffer will always be 0-initialized after call.

Definition at line 170 of file utils.c .

Referenced by decode_frame() , and encode_frame() .

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.

Definition at line 3192 of file utils.c .

Referenced by ff_find_hwaccel() .

Register a user provided lock manager supporting the operations specified by AVLockOp.

mutex points to a (void *) where the lockmgr should store/get a pointer to a user allocated mutex. It's NULL upon AV_LOCK_CREATE and != NULL for all other ops.

Parameters
cbUser defined callback. Note: FFmpeg may invoke calls to this callback during the call to av_lockmgr_register() . Thus, the application must be prepared to handle that. If cb is set to NULL the lockmgr will be unregistered. Also note that during unregistration the previously registered lockmgr callback may also be invoked.

Get the name of a codec.

Returns
a static string identifying the codec; never NULL
Examples:
doc/examples/muxing.c .

Definition at line 2639 of file utils.c .

Referenced by add_stream() , avcodec_string() , avformat_find_stream_info() , device_try_init() , filter_packet() , flv_write_header() , flv_write_packet() , get_audio_flags() , init_input_stream() , log_slave() , mkv_write_codecprivate() , mkv_write_header() , mxf_parse_structural_metadata() , read_frame_internal() , rtp_write_header() , srt_write_header() , and transcode_init() .

Returns
a positive value if s is open (i.e. avcodec_open2() was called on it with no corresponding avcodec_close() ), 0 otherwise.

Definition at line 3379 of file utils.c .

Referenced by avcodec_close() , avcodec_copy_context() , avcodec_open2() , ff_mp4_read_dec_config_descr() , mpegts_find_stream_type() , mpegts_set_stream_info() , and try_decode_frame() .

Returns
a non-zero number if codec is an encoder, zero otherwise

Definition at line 205 of file utils.c .

Referenced by avcodec_close() , avcodec_find_encoder_by_name() , avcodec_open2() , ff_jpeg2000_init_component() , find_encdec() , next_codec_for_id() , and print_codec() .

Returns
a non-zero number if codec is a decoder, zero otherwise

Definition at line 210 of file utils.c .

Referenced by avcodec_find_decoder_by_name() , avcodec_open2() , find_encdec() , and next_codec_for_id() .

Returns
descriptor for given codec ID or NULL if no descriptor exists.

Definition at line 2619 of file codec_desc.c .

Referenced by avcodec_get_name() , avcodec_open2() , is_intra_only() , and show_help_muxer() .

Returns
next descriptor or NULL after the last descriptor

Definition at line 2629 of file codec_desc.c .

Referenced by avcodec_descriptor_get_by_name() , and get_codecs_sorted() .

Returns
codec descriptor with the given name or NULL if no such descriptor exists.

Definition at line 2638 of file codec_desc.c .

Referenced by find_codec_or_die() , and show_help_codec() .