FFmpeg
|
Macros | |
#define | DECLARE_ALIGNED(n, t, v) t __attribute__ ((aligned (n))) v |
#define | DECLARE_ASM_CONST(n, t, v) static const t av_used __attribute__ ((aligned (n))) v |
#define | av_malloc_attrib __attribute__((__malloc__)) |
#define | av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) |
Functions | |
void * | av_malloc (size_t size) av_malloc_attrib 1(1) |
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if available on the CPU). | |
static void * | av_malloc_array (size_t nmemb, size_t size) |
void * | av_realloc (void *ptr, size_t size) 1(2) |
Allocate or reallocate a block of memory. | |
void * | av_realloc_f (void *ptr, size_t nelem, size_t elsize) |
Allocate or reallocate a block of memory. | |
int | av_reallocp (void *ptr, size_t size) |
Allocate or reallocate a block of memory. | |
void * | av_realloc_array (void *ptr, size_t nmemb, size_t size) |
int | av_reallocp_array (void *ptr, size_t nmemb, size_t size) |
void | av_free (void *ptr) |
Free a memory block which has been allocated with av_malloc(z)() or av_realloc(). | |
void * | av_mallocz (size_t size) av_malloc_attrib 1(1) |
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if available on the CPU) and zero all the bytes of the block. | |
void * | av_calloc (size_t nmemb, size_t size) av_malloc_attrib |
Allocate a block of nmemb * size bytes with alignment suitable for all memory accesses (including vectors if available on the CPU) and zero all the bytes of the block. | |
static void * | av_mallocz_array (size_t nmemb, size_t size) |
char * | av_strdup (const char *s) av_malloc_attrib |
Duplicate the string s. | |
char * | av_strndup (const char *s, size_t len) av_malloc_attrib |
Duplicate a substring of the string s. | |
void * | av_memdup (const void *p, size_t size) |
Duplicate the buffer p. | |
void | av_freep (void *ptr) |
Free a memory block which has been allocated with av_malloc(z)() or av_realloc() and set the pointer pointing to it to NULL. | |
void | av_dynarray_add (void *tab_ptr, int *nb_ptr, void *elem) |
Add an element to a dynamic array. | |
int | av_dynarray_add_nofree (void *tab_ptr, int *nb_ptr, void *elem) |
Add an element to a dynamic array. | |
void * | av_dynarray2_add (void **tab_ptr, int *nb_ptr, size_t elem_size, const uint8_t *elem_data) |
Add an element of size elem_size to a dynamic array. | |
static int | av_size_mult (size_t a, size_t b, size_t *r) |
Multiply two size_t values checking for overflow. | |
void | av_max_alloc (size_t max) |
Set the maximum size that may me allocated in one block. | |
void | av_memcpy_backptr (uint8_t *dst, int back, int cnt) |
deliberately overlapping memcpy implementation | |
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. | |
Definition at line 53 of file mem.h.
Referenced by dering_altivec(), dering_TMPL(), doVertDefFilter_altivec(), doVertDefFilter_TMPL(), doVertLowPass_altivec(), encode_slice_plane(), ff_atrac3p_generate_tones(), ff_atrac3p_ipqf(), ff_h264_filter_mb(), ff_prores_idct_wrap(), ff_yuv2rgb_init_tables_ppc(), filter(), filter_mb_dir(), intra_predict(), postProcess_TMPL(), pred_pskip_motion(), and vertClassify_altivec().
#define av_alloc_size | ( | ... | ) | __attribute__((alloc_size(__VA_ARGS__))) |
void* av_malloc | ( | size_t | size | ) |
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if available on the CPU).
size | Size in bytes for the memory block to be allocated. |
|
inlinestatic |
Allocate or reallocate a block of memory.
If ptr is NULL and size > 0, allocate a new block. If size is zero, free the memory block pointed to by ptr.
ptr | Pointer to a memory block already allocated with av_realloc() or NULL. |
size | Size in bytes of the memory block to be allocated or reallocated. |
Definition at line 143 of file mem.c.
Referenced by add_file(), add_serial_pair(), append_extradata(), av_bprint_alloc(), av_bprint_finalize(), av_buffer_realloc(), av_dict_set(), av_fast_realloc(), av_frame_new_side_data(), av_packet_new_side_data(), av_packet_pack_dictionary(), av_realloc_array(), av_realloc_f(), av_reallocp(), av_strdup(), av_strndup(), avfilter_graph_alloc_filter(), concat_open(), decode_frame(), decode_header(), draw_text(), ff_h264_parse_sprop_parameter_sets(), ff_img_read_header(), ff_rtmp_packet_create(), ff_vs_init(), fixup_vorbis_headers(), handle_file(), huf_build_dec_table(), load_textfile(), main(), match_streams(), matroska_decode_buffer(), matroska_deliver_packet(), matroska_parse_wavpack(), mov_read_trun(), nut_read_header(), ogg_new_stream(), parse_adaptation_sets(), probe_codec(), qt_rtp_parse_packet(), and xmlescape().
Allocate or reallocate a block of memory.
This function does the same thing as av_realloc, except:
int av_reallocp | ( | void * | ptr, |
size_t | size | ||
) |
Allocate or reallocate a block of memory.
If *ptr is NULL and size > 0, allocate a new block. If size is zero, free the memory block pointed to by ptr.
ptr | Pointer to a pointer to a memory block already allocated with av_realloc(), or pointer to a pointer to NULL. The pointer is updated on success, or freed on failure. |
size | Size in bytes for the memory block to be allocated or reallocated |
Definition at line 185 of file mem.c.
Referenced by add_fragment(), add_segment(), add_tracked_method(), alloc_and_copy(), append_flv_data(), asfrtp_parse_packet(), av_probe_input_buffer2(), av_vdpau_bind_context(), avi_read_header(), bmv_read_packet(), concat_open(), concatenate_packet(), decode_frame(), dyn_buf_write(), ffm_append_recommended_configuration(), fixup_vorbis_headers(), flashsv_decode_frame(), g2m_load_cursor(), get_tcp_server_response(), h264_extradata_to_annexb(), handle_metadata(), jpg_decode_data(), libschroedinger_encode_frame(), mov_realloc_extradata(), parse_icy(), qt_rtp_parse_packet(), queue_frames(), rdt_parse_sdp_line(), realloc_buffer(), rtmp_http_write(), rtmp_open(), rtmp_write(), smacker_read_packet(), tgv_decode_inter(), and theora_header().
Definition at line 206 of file mem.c.
Referenced by ass_split_section(), audio_resample(), avformat_new_stream(), decode_nal_units(), ebml_parse_elem(), ff_alsa_extend_reorder_buf(), ff_ass_add_rect(), ff_insert_pad(), ff_mkv_stereo3d_conv(), ff_program_add_stream_index(), ff_rtmp_check_alloc_array(), ff_stream_new_side_data(), filter_frame(), grow_array(), handle_file(), handler(), mkv_add_cuepoint(), mkv_add_seekhead_entry(), mov_read_header(), mxf_add_metadata_set(), mxf_read_partition_pack(), new_video_stream(), parse_nal_units(), read_tfra(), realloc_section_array(), reconfigure_at_keyframe(), sample_queue_push(), transcode_init(), vc1_decode_frame(), and xan_decode_frame().
int av_reallocp_array | ( | void * | ptr, |
size_t | nmemb, | ||
size_t | size | ||
) |
Definition at line 213 of file mem.c.
Referenced by add_fragment(), add_pat_entry(), allocate_buffers(), ff_hevc_extract_rbsp(), ff_mov_write_packet(), filter_frame(), gxf_write_map_packet(), gxf_write_packet(), hvcc_array_add_nal_unit(), mov_add_tfra_entries(), mov_build_index(), mov_read_trex(), mov_read_trun(), mxf_write_packet(), mxf_write_partition(), new_audio_stream(), nut_write_packet(), ogg_restore(), parse_strk(), tgv_decode_inter(), tm2_read_stream(), update_context_from_user(), update_index(), and vp56_size_changed().
Free a memory block which has been allocated with av_malloc(z)() or av_realloc().
ptr | Pointer to the memory block which should be freed. |
void* av_mallocz | ( | size_t | size | ) |
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if available on the CPU) and zero all the bytes of the block.
size | Size in bytes for the memory block to be allocated. |
Definition at line 250 of file mem.c.
Referenced by a64multi_encode_init(), aac_adtstoasc_filter(), aac_decode_frame(), aac_encode_init(), add_av_stream1(), add_codec(), add_fragment(), add_input_streams(), add_pes_stream(), add_segment(), add_to_pktbuf(), add_to_queue(), aiff_write_packet(), alac_encode_init(), alloc_scratch_buffers(), allocate_buffers(), allocate_tables(), ape_read_header(), asf_read_stream_properties(), atrac3_decode_init(), av_abuffersink_params_alloc(), av_aes_alloc(), av_audio_fifo_alloc(), av_audio_resample_init(), av_bitstream_filter_init(), av_buffer_create(), av_buffer_pool_init(), av_buffer_ref(), av_calloc(), av_camellia_alloc(), av_cast5_alloc(), av_dict_set(), av_dump_format(), av_expr_parse(), av_fft_init(), av_frame_alloc(), av_frame_new_side_data(), av_hash_alloc(), av_hmac_alloc(), av_mallocz_array(), av_md5_alloc(), av_murmur3_alloc(), av_new_program(), av_opencl_alloc_external_env(), av_opencl_get_device_list(), av_opt_query_ranges_default(), av_packet_new_side_data(), av_packet_split_side_data(), av_parser_init(), av_resample_init(), av_ripemd_alloc(), av_sha512_alloc(), av_sha_alloc(), av_stereo3d_alloc(), av_thread_message_queue_alloc(), av_tree_node_alloc(), av_twofish_alloc(), av_vdpau_alloc_context(), av_vorbis_parse_init(), avcodec_dct_alloc(), avcodec_get_context_defaults3(), avcodec_open2(), avdevice_capabilities_create(), avdevice_list_devices(), avfilter_get_video_buffer_ref_from_arrays(), avfilter_graph_alloc(), avfilter_graph_queue_command(), avfilter_inout_alloc(), avfilter_link(), avformat_alloc_context(), avformat_alloc_output_context2(), avformat_new_stream(), avformat_open_input(), avi_read_header(), avi_write_header(), avio_alloc_context(), avpriv_ac3_parse_header2(), avpriv_dv_init_demux(), avpriv_float_dsp_alloc(), avpriv_mpegts_parse_open(), avpriv_new_chapter(), avresample_alloc_context(), avui_encode_init(), bfi_decode_init(), callback(), che_configure(), check_field_queue(), compute_mask(), config_output(), configure_filtergraph(), cook_decode_init(), copy_chapters(), dash_write_header(), decode_dvd_subtitles(), decode_frame(), decode_init(), decode_pic(), decode_thread(), DEF_CHOOSE_FORMAT(), dfa_decode_init(), display_end_segment(), doTest(), dss_read_metadata_string(), dv_read_timecode(), dvbsub_parse_display_definition_segment(), dvbsub_parse_page_segment(), dvbsub_parse_region_segment(), dxva2_alloc(), dxva2_create_decoder(), dxva2_get_buffer(), encode_init(), encode_picture_ls(), enqueue_packet(), extract_mpeg4_header(), ff_all_channel_counts(), ff_all_channel_layouts(), ff_all_samplerates(), ff_alloc_input_device_context(), ff_alsa_get_device_list(), ff_ass_add_rect(), ff_ass_split(), ff_audio_data_alloc(), ff_audio_mix_alloc(), ff_audio_resample_init(), ff_avc_write_annexb_extradata(), ff_cavs_init_top_lines(), ff_celt_init(), ff_create_schro_frame(), ff_decklink_read_header(), ff_decklink_write_header(), ff_dither_alloc(), ff_fast_malloc(), ff_fbdev_get_device_list(), ff_filter_alloc(), ff_frame_thread_encoder_init(), ff_frame_thread_init(), ff_graph_thread_init(), ff_h264_decode_picture_parameter_set(), ff_h264_decode_seq_parameter_set(), ff_hevc_decode_nal_pps(), ff_iir_filter_init_state(), ff_imdct15_init(), ff_interleave_add_packet(), ff_intrax8_common_init(), ff_ivi_init_planes(), ff_jpegls_decode_picture(), ff_lpc_init(), ff_lzw_decode_open(), ff_merge_channel_layouts(), ff_nut_add_sp(), ff_parse_mpeg2_descriptor(), ff_pca_init(), ff_psy_preprocess_init(), ff_rate_control_init(), ff_rdt_parse_open(), ff_read_riff_info(), ff_rfps_add_frame(), ff_rm_alloc_rmstream(), ff_rtp_parse_open(), ff_rtsp_setup_output_streams(), ff_schro_queue_push_back(), ff_silk_init(), ff_slice_thread_init(), ff_timefilter_new(), ff_vc1_decode_init_alloc_tables(), ff_vs_init(), ff_wms_parse_sdp_a_line(), ffserver_parse_acl_row(), ffserver_parse_config_feed(), ffserver_parse_config_redirect(), ffserver_parse_config_stream(), ffv1_init_slice_contexts(), fifo_alloc_common(), find_headers_search_validate(), flac_read_header(), flashsv2_encode_init(), flashsv_decode_frame(), flashsv_encode_frame(), flashsv_encode_init(), flv_queue_extradata(), flv_write_header(), g2m_init_buffers(), gen_sub_bitmap(), generate_joint_tables(), get_buffer(), get_buffer2(), get_buffer_internal(), get_device_list(), get_http_header_data(), get_private_data(), get_siz(), get_surface(), gif_encode_init(), gxf_write_header(), h264_slice_header_init(), handle_file(), handler(), hevc_init(), hevc_init_context(), hls_slice_data_wpp(), hnm_decode_init(), hnm_read_header(), http_prepare_data(), iec61883_callback(), init(), init_bundles(), init_er(), init_input_filter(), init_muxer(), lavfi_read_header(), libschroedinger_encode_frame(), link_filter_inouts(), load_glyph(), main(), make_eval_expr(), make_field_queue(), make_point(), matroska_parse_frame(), matroska_parse_laces(), matroska_parse_rm_audio(), matroska_parse_tracks(), matroska_parse_webvtt(), mkv_start_cues(), mkv_start_seekhead(), mmsh_open_internal(), mmsh_read_seek(), mov_read_chapters(), mov_read_covr(), mov_read_dref(), mov_read_trak(), mov_read_udta_string(), mov_read_uuid(), mov_rewrite_dvd_sub_extradata(), mov_text_encode_init(), mov_write_dvc1_structs(), mpeg_mux_init(), mpeg_mux_write_packet(), mpegts_add_service(), mpegts_open_filter(), mpegts_write_header(), mss2_decode_init(), mxf_handle_missing_index_segment(), mxf_read_local_tags(), mxf_timestamp_to_str(), mxf_uid_to_str(), mxf_umid_to_str(), mxf_write_header(), mxpeg_decode_mxm(), new_connection(), new_output_stream(), new_playlist(), new_rendition(), new_stream(), new_variant(), new_video_stream(), nsv_parse_NSVf_header(), nsv_parse_NSVs_header(), nvenc_encode_init(), ogg_buffer_page(), ogg_build_flac_headers(), ogg_build_opus_headers(), ogg_build_speex_headers(), ogg_save(), ogg_write_header(), ogg_write_vorbiscomment(), opaque_list_push(), open_input_file(), open_output_file(), opt_channel_layout(), opt_filter_complex(), opt_filter_complex_script(), opus_header(), paf_video_init(), parse_dynamic_acl(), parse_fmtp_config(), parse_inputs(), parse_keyframes_index(), parse_primary(), parse_sws_flags(), parse_vtrk(), pic_arrays_init(), pool_alloc_buffer(), pp_get_context(), prepare_sdp_description(), process_output_surface(), psy_3gpp_init(), pthread_cond_init(), pthread_create(), pulse_add_detected_device(), put_main_header(), qsv_decode_init(), qt_rtp_parse_packet(), qtrle_encode_init(), rdt_parse_b64buf(), read_apic(), read_gab2_sub(), read_geobtag(), read_header(), read_priv(), read_tfra(), reallocAlign(), resample_init(), rl2_decode_init(), rtp_new_av_stream(), rtp_new_connection(), rtp_parse_addr_list(), rv34_decoder_alloc(), sap_write_header(), segment_end(), set_encoder_id(), set_segment_filename(), setup_hwaccel(), smacker_decode_header_tree(), smka_decode_frame(), sp5x_decode_frame(), speex_header(), Stagefright_close(), Stagefright_decode_frame(), Stagefright_init(), stream_open(), svc_encode_init(), svq1_encode_init(), svq1_encode_plane(), svq3_decode_init(), swr_alloc(), swri_realloc_audio(), swri_rematrix_init(), swri_rematrix_init_x86(), sws_alloc_context(), tgv_decode_frame(), theora_header(), transcode_init(), update_block_buffers(), update_dimensions(), url_alloc_for_protocol(), url_open_dyn_buf_internal(), utvideo_encode_init(), v4l2_get_device_list(), vc1_decode_frame(), vc1_decode_init(), vda_init(), vda_old_h264_end_frame(), vdpau_alloc(), videostream_cb(), vorbis_header(), vorbis_parse_setup_hdr_codebooks(), vorbis_parse_setup_hdr_floors(), vorbis_parse_setup_hdr_mappings(), vorbis_parse_setup_hdr_modes(), vorbis_parse_setup_hdr_residues(), vp6_decode_init(), vqa_decode_init(), wmv2_encode_init(), worker(), write_frame(), write_packet(), writer_open(), wtvfile_open_sector(), wv_alloc_frame_context(), and xwma_read_header().
void* av_calloc | ( | size_t | nmemb, |
size_t | size | ||
) |
Allocate a block of nmemb * size bytes with alignment suitable for all memory accesses (including vectors if available on the CPU) and zero all the bytes of the block.
The allocation will fail if nmemb * size is greater than or equal to INT_MAX.
nmemb | |
size |
Definition at line 258 of file mem.c.
Referenced by alloc_metrics(), av_samples_alloc_array_and_samples(), config_audio_output(), config_input(), config_output(), config_props(), config_video_output(), connect_ports(), decode_init(), decode_main_header(), encode_dvd_subtitles(), ff_avfilter_graph_config_pointers(), ff_pca_init(), get_codecs_sorted(), get_histogram(), init(), init_pattern_from_file(), interpolate(), main(), movie_common_init(), mxf_compute_ptses_fake_index(), mxf_get_sorted_table_segments(), mxf_read_index_entry_array(), mxf_read_primer_pack(), mxf_read_strong_ref_array(), nut_write_header(), open_slave(), resample_init(), set_enable_expr(), swri_rematrix_init(), tm2_build_huff_table(), and wavesynth_parse_extradata().
|
inlinestatic |
Definition at line 228 of file mem.h.
Referenced by a64multi_encode_init(), aac_encode_init(), alloc_sequence_buffers(), allocate_buffers(), allocate_tables(), atrac3_decode_init(), atrac3p_decode_init(), audio_get_buffer(), av_audio_fifo_alloc(), av_frame_ref(), av_resample_init(), avcodec_fill_audio_frame(), channelmap_filter_frame(), check_stream_max_drift(), cng_decode_init(), compute_mask(), config_output(), copy_separable_masks(), decode_entropy_coded_image(), decode_init(), decode_init_thread_copy(), decode_lowdelay(), decode_picture_header(), dejudder_init(), display_end_segment(), encode_init(), ff_alloc_entries(), ff_cavs_init_top_lines(), ff_filter_alloc(), ff_frame_thread_init(), ff_h264_alloc_tables(), ff_ivi_init_planes(), ff_ivi_init_tiles(), ff_jpeg2000_init_component(), ff_jpeg2000_tag_tree_init(), ff_mjpeg_decode_sof(), ff_opus_parse_extradata(), ff_png_zalloc(), ff_psy_init(), ff_psy_preprocess_init(), ff_slice_buffer_init(), ff_slice_thread_init(), ff_snow_alloc_blocks(), ff_snow_common_init_after_header(), ffserver_parse_config_feed(), frame_alloc(), g2m_init_buffers(), g722_encode_init(), get_audio_buffer(), get_buffer(), get_device_list(), get_siz(), hds_write_header(), http_prepare_data(), http_server(), huf_uncompress(), ico_write_header(), init(), init_parse_context(), init_pattern_from_string(), init_tiles(), ism_write_header(), ivi_init_tiles(), join_config_output(), join_init(), join_request_frame(), libopus_encode_init(), mkv_write_header(), mov_write_header(), mp_decode_init(), mxf_compute_index_tables(), opus_decode_init(), pic_arrays_init(), psy_3gpp_init(), qtrle_encode_init(), read_huffman_code_normal(), read_shape_from_file(), read_tfra(), ready_codebook(), ready_residue(), roq_encode_init(), rtp_new_av_stream(), rtsp_read_header(), sap_write_header(), setup_find_stream_info_opts(), smacker_decode_header_tree(), swri_rematrix_init_x86(), thread_init_internal(), tiff_decode_tag(), vorbis_parse_id_hdr(), vorbis_parse_setup_hdr_codebooks(), vorbis_parse_setup_hdr_floors(), vorbis_parse_setup_hdr_mappings(), and XAVS_init().
char* av_strdup | ( | const char * | s | ) |
Duplicate the string s.
s | string to be duplicated |
Definition at line 265 of file mem.c.
Referenced by add_av_stream(), add_codec(), add_input_streams(), add_tracked_method(), av_dict_get_string(), av_dict_set(), av_opt_copy(), av_opt_get(), av_tempfile(), avfilter_graph_parse(), avfilter_graph_queue_command(), avfilter_init_str(), avformat_match_stream_specifier(), caca_write_header(), choose_pix_fmts(), cine_read_header(), configure_filtergraph(), decimate_init(), dump_stream_format(), ebml_parse_nest(), ff_alsa_get_device_list(), ff_copy_whitelists(), ff_fbdev_get_device_list(), ff_filter_alloc(), ff_http_do_new_request(), ff_http_match_no_proxy(), ff_img_read_header(), ff_mpv_encode_init(), ffm2_read_header(), ffm_read_header(), ffserver_parse_config_feed(), ffserver_parse_config_stream(), fieldmatch_init(), frei0r_init(), geq_init(), get_cookies(), get_geokey_val(), get_ost_filters(), grab_read_header(), hls_delete_old_segments(), hls_write_header(), http_open(), icecast_open(), init(), init_filter(), init_filters(), join_init(), lavfi_read_header(), main(), microdvd_read_header(), mkv_write_simpletag(), movie_common_init(), mpegts_add_service(), mtv_read_header(), new_audio_stream(), new_output_stream(), new_video_stream(), open_output_file(), opengl_write_header(), opt_filter_complex(), opt_map(), opt_sdp_file(), opt_vstats_file(), parse_bsfs(), parse_channel_expressions(), parse_device_name(), parse_fmtp(), parse_frames(), parse_location(), parse_playlist(), parse_psfile(), parse_read_interval(), parse_read_intervals(), parse_source_list(), parse_times(), parse_video_var(), process_line(), pulse_add_detected_device(), pulse_server_info_cb(), read_header(), read_ttag(), realtext_read_header(), sami_paragraph_to_ass(), sap_read_header(), sdl_write_header(), seg_write_header(), set_enable_expr(), set_expr(), set_options(), set_string(), show_help(), split_init(), Stagefright_init(), v4l2_get_device_list(), write_option(), x11grab_read_header(), X264_init(), xcbgrab_read_header(), and xv_write_header().
char* av_strndup | ( | const char * | s, |
size_t | len | ||
) |
Duplicate a substring of the string s.
s | string to be duplicated |
len | the maximum length of the resulting string (not counting the terminating byte). |
Definition at line 277 of file mem.c.
Referenced by avformat_match_stream_specifier().
Duplicate the buffer p.
p | buffer to be duplicated |
Definition at line 297 of file mem.c.
Referenced by av_opt_copy(), clone_filter_formats(), init_thread_copy(), and set_aes_arg().
Free a memory block which has been allocated with av_malloc(z)() or av_realloc() and set the pointer pointing to it to NULL.
ptr | Pointer to the pointer to the memory block which should be freed. |
Add an element to a dynamic array.
The array to grow is supposed to be an array of pointers to structures, and the element to add must be a pointer to an already allocated structure.
The array is reallocated when its size reaches powers of 2. Therefore, the amortized cost of adding an element is constant.
In case of success, the pointer to the array is updated in order to point to the new grown array, and the number pointed to by nb_ptr is incremented. In case of failure, the array is freed, *tab_ptr is set to NULL and *nb_ptr is set to 0.
tab_ptr | pointer to the array to grow |
nb_ptr | pointer to the number of elements in the array |
elem | element to add |
Add an element to a dynamic array.
Function has the same functionality as av_dynarray_add(), but it doesn't free memory on fails. It returns error code instead and leave current buffer untouched.
tab_ptr | pointer to the array to grow |
nb_ptr | pointer to the number of elements in the array |
elem | element to add |
Definition at line 308 of file mem.c.
Referenced by ff_alsa_get_device_list(), ff_fbdev_get_device_list(), mpegts_add_service(), pulse_add_detected_device(), and v4l2_get_device_list().
void* av_dynarray2_add | ( | void ** | tab_ptr, |
int * | nb_ptr, | ||
size_t | elem_size, | ||
const uint8_t * | elem_data | ||
) |
Add an element of size elem_size to a dynamic array.
The array is reallocated when its number of elements reaches powers of 2. Therefore, the amortized cost of adding an element is constant.
In case of success, the pointer to the array is updated in order to point to the new grown array, and the number pointed to by nb_ptr is incremented. In case of failure, the array is freed, *tab_ptr is set to NULL and *nb_ptr is set to 0.
tab_ptr | pointer to the array to grow |
nb_ptr | pointer to the number of elements in the array |
elem_size | size in bytes of the elements in the array |
elem_data | pointer to the data of the element to add. If NULL, the space of the new added element is not filled. |
Definition at line 336 of file mem.c.
Referenced by color_get(), and color_inc().
|
inlinestatic |
Multiply two size_t values checking for overflow.
Definition at line 337 of file mem.h.
Referenced by av_realloc_f(), config_output(), and ogg_new_stream().
void av_max_alloc | ( | size_t | max | ) |
Set the maximum size that may me allocated in one block.
Definition at line 71 of file mem.c.
Referenced by opt_max_alloc().
deliberately overlapping memcpy implementation
dst | destination buffer |
back | how many bytes back we start (the initial size of the overlapping window), must be > 0 |
cnt | number of bytes to copy, must be >= 0 |
cnt > back is valid, this will copy the bytes we just copied, thus creating a repeating pattern with a period length of back.
Definition at line 428 of file mem.c.
Referenced by copy_backptr(), decode_dsw1(), decode_frame(), decode_tsw1(), mszh_decomp(), residual_interp(), synth_block_fcb_acb(), unpack(), and xan_unpack().
Reallocate the given block if it is not large enough, otherwise do nothing.
Definition at line 478 of file mem.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(), intercept_id3(), mxg_update_cache(), read_frame(), shorten_decode_frame(), spdif_header_eac3(), vda_h264_decode_slice(), and vda_old_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.
ptr | pointer to pointer to already allocated buffer, overwritten with pointer to new buffer |
size | size of the buffer *ptr points to |
min_size | minimum size of *ptr buffer after returning, *ptr will be NULL and *size 0 if an error occurred. |
Definition at line 513 of file mem.c.
Referenced by allocate_buffers(), ape_decode_frame(), audio_decode_frame(), codec_reinit(), dca_decode_frame(), decode_8(), decode_frame(), ff_hevc_extract_rbsp(), ff_mpeg_update_thread_context(), fic_decode_frame(), find_motion(), gif_decode_frame(), gif_read_image(), id3v2_parse(), lag_decode_frame(), ljpeg_decode_rgb_scan(), opus_decode_subpacket(), pmp_packet(), reconfigure_at_keyframe(), spdif_header_dts4(), spdif_write_packet(), tak_decode_frame(), truemotion1_decode_header(), truemotion1_decode_init(), update_md5_sum(), and verify_md5().