Mathematical utilities for working with timestamp and time base.
Rounding methods.
| Enumerator | |
|---|---|
| AV_ROUND_ZERO | Round toward zero. |
| AV_ROUND_INF | Round away from zero. |
| AV_ROUND_DOWN | Round toward -infinity. |
| AV_ROUND_UP | Round toward +infinity. |
| AV_ROUND_NEAR_INF | Round to nearest and halfway cases away from zero. |
| AV_ROUND_PASS_MINMAX | Flag telling rescaling functions to pass Unlike other values of the enumeration AVRounding, this value is a bitmask that must be used in conjunction with another value of the enumeration through a bitwise OR, in order to set behavior for normal cases. // Rescaling 3:
// Calculating 3 * 1 / 2
// 3 / 2 is rounded up to 2
// => 2
// Rescaling AV_NOPTS_VALUE:
// AV_NOPTS_VALUE == INT64_MIN
// AV_NOPTS_VALUE is passed through
// => AV_NOPTS_VALUE
|
| AV_ROUND_ZERO | |
| AV_ROUND_INF | |
| AV_ROUND_DOWN | |
| AV_ROUND_UP | |
| AV_ROUND_NEAR_INF | |
| AV_ROUND_PASS_MINMAX | |
Definition at line 130 of file mathematics.h.
Compute the greatest common divisor of two integer operands.
Definition at line 37 of file mathematics.c.
Referenced by audio_samplerate_update(), av_gcd_q(), av_reduce(), avcodec_string(), config_output(), decode_main_header(), eval_expr(), ff_h263_decode_picture_header(), ff_mpv_encode_init(), ff_parse_specific_params(), ff_put_wav_header(), ff_rfps_add_frame(), ff_tx_decompose_length(), ff_tx_gen_compound_mapping(), main(), mpsub_read_header(), rtp_send_samples(), and xvid_correct_framerate().
Rescale a 64-bit integer with rounding to nearest.
The operation is mathematically equivalent to a * b / c, but writing that directly can overflow.
This function is equivalent to av_rescale_rnd() with AV_ROUND_NEAR_INF.
Definition at line 129 of file mathematics.c.
Referenced by aconfig_props(), activate(), amv_init(), aribcaption_trans_ass_subtitle(), asf_build_simple_index(), asf_read_simple_index(), audio_read_packet(), av_dict_set_fxp(), av_dump_format(), av_q2intfloat(), avi_read_header(), avpriv_update_cur_dts(), calculate_bitrate(), calculate_display_rect(), check_stream_max_drift(), compute_dar(), compute_display_area(), compute_pkt_fields(), compute_texture_rect(), config_comm_output(), config_filter(), config_input(), config_output(), config_props(), create_stream(), dash_read_packet(), dc1394_read_common(), dca_parse(), dxa_read_header(), enable_pcr_generation_for_stream(), encode_init(), estimate_timings_from_bit_rate(), ff_decklink_read_header(), ff_gen_search(), ff_interleave_add_packet(), ff_pcm_read_seek(), ff_rtp_check_and_send_back_rr(), ff_scale_adjust_dimensions(), ff_vorbiscomment_write(), filter(), filter_frame(), finalize_packet(), flv_write_packet(), generate_intervals(), get_aiff_header(), get_delay(), get_edit_list_entry(), get_lin_h(), get_lin_h2(), get_pcr(), get_pts(), get_pts_range(), get_vcd_padding_size(), h264_parse(), imf_seek(), interpolate(), libaribb24_handle_regions(), mcc_read_header(), mkv_write_info(), mkv_write_track_video(), mov_build_index(), mov_find_next_sample(), mov_flush_fragment(), mov_read_header(), mov_read_sidx(), mov_read_timecode_track(), mov_write_moov_tag(), mov_write_tapt_tag(), mov_write_tkhd_tag(), mov_write_tmcd_tag(), mp3_parse_info_tag(), mp3_parse_vbr_tags(), mp3_seek(), mp3_update_xing(), mpeg_mux_write_packet(), mpegts_init(), mpegts_write_packet_internal(), mpegts_write_pes(), mxf_read_seek(), nsv_parse_NSVs_header(), opengl_compute_display_area(), opus_header(), output_frame(), output_packet(), pad_opencl_config_output(), postProcess_TMPL(), process_subtitle(), process_work_frame(), pulse_write_header(), push_frame(), r3d_read_reda(), read_header(), read_packet(), read_xing_toc(), readrate_sleep(), request_frame(), rescale_mastering_chroma(), rescale_mastering_luma(), rescale_rational(), rm_read_header(), sbg_read_header(), sds_read_header(), seek_frame_internal(), select_pcr_streams(), sga_audio_packet(), sga_read_header(), sin32(), truncpasses(), ts_to_samples(), ttml_get_extent(), ttml_get_origin(), update_wrap_reference(), vc2_encode_frame(), video_frame(), vivo_read_header(), vqf_read_seek(), write_parameter_block(), xv_write_header(), and xwma_read_header().
Rescale a 64-bit integer with specified rounding.
The operation is mathematically equivalent to a * b / c, but writing that directly can overflow, and does not support different rounding methods. If the result is not representable then INT64_MIN is returned.
Definition at line 58 of file mathematics.c.
Referenced by aa_read_seek(), aom_init(), argo_brp_read_header(), argo_brp_read_packet(), audio_frame(), av_compare_ts(), av_image_check_sar(), av_nearer_q(), av_rescale(), av_rescale_q_rnd(), av_rescale_rnd(), avformat_seek_file(), calc_max_seg_no(), compute_pkt_fields(), config_input(), dash_read_seek(), dv_write_pack(), enable_pcr_generation_for_stream(), estimate_timings_from_pts(), ff_nut_reset_ts(), ff_pcm_read_seek(), get_out_samples(), gxf_compare_field_nb(), gxf_write_media_preamble(), handle_file(), hls_read_packet(), hls_read_seek(), main(), mov_write_edts_tag(), mov_write_mvhd_tag(), mov_write_tkhd_tag(), mxf_init(), nut_write_packet(), offset(), rtmp_read_seek(), svs_read_header(), video_frame(), vpx_init(), vqf_read_seek(), and write_time().
Rescale a 64-bit integer by 2 rational numbers.
The operation is mathematically equivalent to a * bq / cq.
This function is equivalent to av_rescale_q_rnd() with AV_ROUND_NEAR_INF.
Definition at line 142 of file mathematics.c.
Referenced by activate(), adjust_frame_pts_to_encoder_tb(), amv_write_trailer(), aom_encode(), aribcaption_decode(), asf_write_markers(), audio_frame(), audio_samplerate_update(), audio_ts_process(), av_add_stable(), av_packet_rescale_ts(), av_rescale_delta(), avcodec_decode_subtitle2(), avf_read_packet(), avformat_find_stream_info(), avformat_seek_file(), avi_read_packet(), avi_read_seek(), avi_write_header(), avisynth_read_packet_audio(), avisynth_read_seek(), caca_write_header(), check_stream_max_drift(), compand_delay(), compand_drain(), compare_ts_with_wrapdetect(), compute_chapters_end(), concat_read_packet(), config_input(), config_output(), config_props_output(), copy_chapters(), correct_input_start_times(), create_stream(), cuvid_decode_packet(), cuvid_output_frame(), dash_flush(), dash_write_packet(), dash_write_trailer(), ddagrab_config_props(), dec_enc(), decode(), decode_fctl_chunk(), decode_frame(), decode_syncpoint(), decoder_decode_frame(), discard_samples(), display_frame(), do_morpho(), do_subtitle_out(), draw_spatial(), dvdvideo_chapters_setup_preindex(), dvdvideo_chapters_setup_simple(), dvvideo_decode_frame(), encode_write_frame(), ff_af_queue_add(), ff_configure_buffers_for_index(), ff_filter_frame(), ff_framequeue_skip_samples(), ff_framesync_dualinput_get(), ff_get_muxer_ts_offset(), ff_interleave_packet_per_dts(), ff_mediacodec_dec_send(), ff_qsv_encode(), ff_qsvvpp_filter_frame(), ff_rescale_interval(), ff_samples_to_time_base(), ff_vorbiscomment_write(), fg_output_frame(), fg_output_step(), fifo_thread_attempt_recovery(), fill_all_stream_timings(), fill_timing_for_id3_timestamped_stream(), filter_callback(), filter_frame(), find_and_decode_index(), frame_end(), framesync_inject_frame(), get_frag_time(), get_next_nb_samples(), get_pkt_pts(), get_subtitle_pkt(), guess_pkt_duration(), guess_status_pts(), handle_avoid_negative_ts(), handle_input(), handle_mdcv(), hls_read_packet(), imf_read_packet(), init(), init_convert_timestamp(), interleave_compare_dts(), ism_flush(), ist_dts_update(), kmsgrab_read_header(), libaribb24_decode(), libjxl_receive_frame(), main(), mediacodec_receive(), mediacodec_send(), mediacodec_wrap_hw_buffer(), mediacodec_wrap_sw_buffer(), mf_from_mf_time(), mf_to_mf_time(), mkv_write_block(), mkv_write_chapters(), mkv_write_packet(), mkv_write_track(), mov_create_chapter_track(), mov_create_timecode_track(), mov_get_skip_samples(), mov_preroll_write_stbl_atoms(), mov_read_dops(), mov_read_seek(), mov_read_sidx(), mov_write_chpl_tag(), mov_write_prft_tag(), mov_write_single_packet(), movie_common_init(), mp3_parse_info_tag(), mp3_parse_vbr_tags(), mpeg4_decode_header(), mpegts_write_packet_internal(), mux_fixup_ts(), mxf_compute_sample_count(), mxf_edit_unit_absolute_offset(), mxf_parse_physical_source_package(), mxf_parse_structural_metadata(), mxf_read_seek(), mxf_set_audio_pts(), mxf_set_current_edit_unit(), next_duration(), ni_prepare_read(), nut_write_packet(), of_stream_init(), of_streamcopy(), offset_audio(), ogg_buffer_data(), ogg_compare_granule(), ogg_write_packet_internal(), omx_encode_frame(), output_frame(), overflow_heartbeat(), parse_forced_key_frames(), plot_freqs(), plot_spectrum_column(), process_frame(), process_work_frame(), pulse_write_packet(), push_frame(), push_samples(), query_frame(), r3d_read_rdvo(), r3d_seek(), rawvideo_read_header(), read_header(), read_interval_packets(), receive_samples(), request_frame(), rescale_pts(), rl2_read_seek(), rtcp_send_sr(), rtp_mpegts_write_packet(), rtp_parse_one_packet(), rtp_set_prft(), rtsp_read_play(), rtsp_read_seek(), save_subtitle_set(), sbg_read_seek2(), seek_chapter(), seek_subtitle(), seek_to_start(), seg_write_packet(), select_frame(), send_frame(), send_silence(), send_to_mux(), ser_read_header(), source_request_frame(), sq_send(), sub2video_heartbeat(), sub2video_update(), submit_frame(), tb_update(), teletext_decode_frame(), testsrc_vulkan_activate(), transcode_subtitles(), try_push_frame(), ts_discontinuity_detect(), ts_discontinuity_process(), ts_fixup(), ts_str(), update(), update_initial_timestamps(), update_link_current_pts(), update_pts(), update_stream_timings(), update_time(), update_timestamps(), v4l2_get_pts(), v4l2_set_pts(), video_duration_estimate(), video_frame(), viv_read_packet(), viv_read_seek(), vpx_encode(), webm_chunk_write_packet(), write_audio_frame(), write_chapter(), write_manifest(), write_packet(), xfade_activate(), and xfade_opencl_config_output().
Rescale a 64-bit integer by 2 rational numbers with specified rounding.
The operation is mathematically equivalent to a * bq / cq.
Definition at line 134 of file mathematics.c.
Referenced by audio_ts_process(), av_rescale_delta(), av_rescale_q(), config_props(), decode_packet(), ff_interleave_add_packet(), ff_rescale_interval(), handle_avoid_negative_ts(), handle_input(), init(), lavfi_read_packet(), parse_packet(), read_frame(), rv10_write_header(), send_eof(), ts_discontinuity_detect(), update_eof_pts(), update_stream_timings(), and write_packet_header().
Compare two timestamps each in its own time base.
ts_a is before ts_bts_a is after ts_bint64_t range when represented in the other's timebase. Definition at line 147 of file mathematics.c.
Referenced by chapter_start_cmp(), check_recording_time(), dash_write_packet(), demux_flush(), ff_rtp_send_aac(), ff_rtp_send_amr(), ff_rtp_send_xiph(), filter_frame(), finish_stream(), forced_kf_apply(), get_audio_frame(), get_video_frame(), handle_avoid_negative_ts(), hds_write_packet(), hls_write_packet(), interleave_compare_dts(), ism_write_packet(), main(), mux_frames(), nut_write_packet(), overflow_heartbeat(), packet_after_outpoint(), queue_head_update(), receive_for_stream(), rtp_send_ilbc(), seek_chapter(), seek_to_start(), seg_write_packet(), stream_update_ts(), and ts_fixup().
Compare the remainders of two integer operands divided by a common divisor.
In other words, compare the least significant log2(mod) bits of integers a and b.
a % mod < b % moda % mod > b % moda % mod == b % mod Definition at line 160 of file mathematics.c.
Referenced by av_read_frame(), and compare_ts_with_wrapdetect().
Rescale a timestamp while preserving known durations.
This function is designed to be called per audio packet to scale the input timestamp to a different time base. Compared to a simple av_rescale_q() call, this function is robust against possible inconsistent frame durations.
The last parameter is a state variable that must be preserved for all subsequent calls for the same stream. For the first call, *last should be initialized to AV_NOPTS_VALUE.
in_tb and out_tb fs_tb, acting as a state variable out_tbDefinition at line 168 of file mathematics.c.
Referenced by audio_ts_process(), and mux_fixup_ts().
Add a value to a timestamp.
This function guarantees that when the same value is repeatly added that no accumulation of rounding errors occurs.
inc Definition at line 191 of file mathematics.c.
Referenced by compute_pkt_fields(), and main().
0th order modified bessel function of the first kind.
Algorithm taken from the Boost project, source: https://searchcode.com/codesearch/view/14918379/ Use, modification and distribution are subject to the Boost Software License, Version 1.0 (see notice below). Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:
The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Definition at line 257 of file mathematics.c.
Referenced by build_filter(), generate_window_func(), kbd_window_init(), and make_lpf().