vsrc_mptestsrc.c File Reference

MP test source, ported from MPlayer libmpcodecs/vf_test.c. More...

#include "libavutil/avstring.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
#include "internal.h"
#include "formats.h"
#include "video.h"
Include dependency graph for vsrc_mptestsrc.c:

Go to the source code of this file.

Data Structures

struct  MPTestContext
 

Macros

#define WIDTH   512
 
#define HEIGHT   512
 
#define OFFSET(x)   offsetof(MPTestContext, x)
 
#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
 

Typedefs

typedef struct MPTestContext MPTestContext
 

Enumerations

enum  test_type {
  TEST_DC_LUMA, TEST_DC_CHROMA, TEST_FREQ_LUMA, TEST_FREQ_CHROMA,
  TEST_AMP_LUMA, TEST_AMP_CHROMA, TEST_CBP, TEST_MV,
  TEST_RING1, TEST_RING2, TEST_ALL, TEST_NB
}
 

Functions

 AVFILTER_DEFINE_CLASS (mptestsrc)
 
static void init_idct (void)
 
static void idct (uint8_t *dst, int dst_linesize, int src[64])
 
static void draw_dc (uint8_t *dst, int dst_linesize, int color, int w, int h)
 
static void draw_basis (uint8_t *dst, int dst_linesize, int amp, int freq, int dc)
 
static void draw_cbp (uint8_t *dst[3], int dst_linesize[3], int cbp, int amp, int dc)
 
static void dc_test (uint8_t *dst, int dst_linesize, int w, int h, int off)
 
static void freq_test (uint8_t *dst, int dst_linesize, int off)
 
static void amp_test (uint8_t *dst, int dst_linesize, int off)
 
static void cbp_test (uint8_t *dst[3], int dst_linesize[3], int off)
 
static void mv_test (uint8_t *dst, int dst_linesize, int off)
 
static void ring1_test (uint8_t *dst, int dst_linesize, int off)
 
static void ring2_test (uint8_t *dst, int dst_linesize, int off)
 
static av_cold int init (AVFilterContext *ctx)
 
static int config_props (AVFilterLink *outlink)
 
static int query_formats (AVFilterContext *ctx)
 
static int request_frame (AVFilterLink *outlink)
 

Variables

static const AVOption mptestsrc_options []
 
static double c [64]
 
static const AVFilterPad mptestsrc_outputs []
 
AVFilter avfilter_vsrc_mptestsrc
 

Detailed Description

MP test source, ported from MPlayer libmpcodecs/vf_test.c.

Definition in file vsrc_mptestsrc.c.

Macro Definition Documentation

Definition at line 63 of file vsrc_mptestsrc.c.

#define HEIGHT   512

Definition at line 36 of file vsrc_mptestsrc.c.

Referenced by config_props(), and request_frame().

#define OFFSET (   x)    offsetof(MPTestContext, x)

Definition at line 62 of file vsrc_mptestsrc.c.

#define WIDTH   512

Definition at line 35 of file vsrc_mptestsrc.c.

Referenced by config_props(), and request_frame().

Typedef Documentation

typedef struct MPTestContext MPTestContext

Enumeration Type Documentation

enum test_type
Enumerator
TEST_DC_LUMA 
TEST_DC_CHROMA 
TEST_FREQ_LUMA 
TEST_FREQ_CHROMA 
TEST_AMP_LUMA 
TEST_AMP_CHROMA 
TEST_CBP 
TEST_MV 
TEST_RING1 
TEST_RING2 
TEST_ALL 
TEST_NB 

Definition at line 38 of file vsrc_mptestsrc.c.

Function Documentation

static void amp_test ( uint8_t dst,
int  dst_linesize,
int  off 
)
static

Definition at line 185 of file vsrc_mptestsrc.c.

Referenced by request_frame().

AVFILTER_DEFINE_CLASS ( mptestsrc  )
static void cbp_test ( uint8_t dst[3],
int  dst_linesize[3],
int  off 
)
static

Definition at line 197 of file vsrc_mptestsrc.c.

Referenced by request_frame().

static int config_props ( AVFilterLink outlink)
static

Definition at line 274 of file vsrc_mptestsrc.c.

static void dc_test ( uint8_t dst,
int  dst_linesize,
int  w,
int  h,
int  off 
)
static

Definition at line 160 of file vsrc_mptestsrc.c.

Referenced by request_frame().

static void draw_basis ( uint8_t dst,
int  dst_linesize,
int  amp,
int  freq,
int  dc 
)
static

Definition at line 139 of file vsrc_mptestsrc.c.

Referenced by amp_test(), draw_cbp(), and freq_test().

static void draw_cbp ( uint8_t dst[3],
int  dst_linesize[3],
int  cbp,
int  amp,
int  dc 
)
static

Definition at line 150 of file vsrc_mptestsrc.c.

Referenced by cbp_test().

static void draw_dc ( uint8_t dst,
int  dst_linesize,
int  color,
int  w,
int  h 
)
static

Definition at line 130 of file vsrc_mptestsrc.c.

Referenced by dc_test(), and ring1_test().

static void freq_test ( uint8_t dst,
int  dst_linesize,
int  off 
)
static

Definition at line 173 of file vsrc_mptestsrc.c.

Referenced by request_frame().

static void idct ( uint8_t dst,
int  dst_linesize,
int  src[64] 
)
static

Definition at line 102 of file vsrc_mptestsrc.c.

Referenced by draw_basis().

static av_cold int init ( AVFilterContext ctx)
static

Definition at line 257 of file vsrc_mptestsrc.c.

static void init_idct ( void  )
static

Definition at line 90 of file vsrc_mptestsrc.c.

Referenced by init().

static void mv_test ( uint8_t dst,
int  dst_linesize,
int  off 
)
static

Definition at line 214 of file vsrc_mptestsrc.c.

Referenced by request_frame().

static int query_formats ( AVFilterContext ctx)
static

Definition at line 290 of file vsrc_mptestsrc.c.

static int request_frame ( AVFilterLink outlink)
static

Definition at line 300 of file vsrc_mptestsrc.c.

static void ring1_test ( uint8_t dst,
int  dst_linesize,
int  off 
)
static

Definition at line 226 of file vsrc_mptestsrc.c.

Referenced by request_frame().

static void ring2_test ( uint8_t dst,
int  dst_linesize,
int  off 
)
static

Definition at line 238 of file vsrc_mptestsrc.c.

Referenced by request_frame().

Variable Documentation

AVFilter avfilter_vsrc_mptestsrc
Initial value:
= {
.name = "mptestsrc",
.description = NULL_IF_CONFIG_SMALL("Generate various test pattern."),
.priv_size = sizeof(MPTestContext),
.init = init,
.priv_class = &mptestsrc_class,
}
static const AVFilterPad outputs[]
Definition: af_ashowinfo.c:117
static av_cold int init(AVFilterContext *ctx)
struct MPTestContext MPTestContext
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static const AVFilterPad mptestsrc_outputs[]
NULL
Definition: eval.c:55
static int query_formats(AVFilterContext *ctx)
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several inputs

Definition at line 354 of file vsrc_mptestsrc.c.

double c[64]
static

Definition at line 88 of file vsrc_mptestsrc.c.

Referenced by a64multi_close_encoder(), a64multi_encode_frame(), a64multi_init_encoder(), add_stream(), addCode(), adpcm_decode_frame(), adpcm_decode_init(), adpcm_encode_frame(), adpcm_swf_decode(), adx_decode_flush(), adx_decode_frame(), adx_decode_init(), adx_encode_frame(), adx_encode_header(), adx_encode_init(), adx_read_header(), adx_read_packet(), afc_read_header(), afc_read_packet(), ape_tag_read_field(), apply_channel_coupling(), apply_intensity_stereo(), arith_get_bits(), arith_init(), ass_split(), asym_quant(), audio_decode_example(), audio_encode_example(), av_compare_mod(), av_crc_init(), av_find_nearest_q_idx(), av_get_bits_per_pixel(), av_get_frame_filename(), av_get_padded_bits_per_pixel(), av_get_token(), av_hmac_alloc(), av_lzo1x_decode(), av_opt_child_next(), av_opt_find2(), av_opt_query_ranges(), av_parse_ratio(), av_read_image_line(), av_rescale_q_rnd(), av_rescale_rnd(), av_small_strptime(), av_timecode_init_from_string(), av_tolower(), av_toupper(), av_write_image_line(), avcodec_thread_execute(), avcodec_thread_execute2(), avpriv_dv_init_demux(), avresample_set_compensation(), bidir_refine(), bktr_init(), blur_power(), bmv_read_close(), bmv_read_header(), bmv_read_packet(), body(), bs_get_v(), caca_write_header(), caca_write_packet(), caca_write_trailer(), cache_close(), cache_open(), cache_read(), cache_seek(), calc_lowcomp1(), cdxl_decode_end(), cdxl_decode_frame(), cdxl_decode_init(), check_bidir_mv(), cmp_direct_inline(), cmp_inline(), codec_child_class_next(), codec_reinit(), config_props(), config_video_output(), convert_timestamp(), copy4h(), copy_samples(), create(), create_vorbis_context(), crypto_close(), crypto_open2(), crypto_read(), date_get_num(), dc1394_read_common(), dca_downmix(), dca_init_vlcs(), dct_sad8x8_c(), decode_0(), decode_block_coeffs_internal(), decode_blocks(), decode_blocks_ind(), decode_bytes(), decode_cce(), decode_cdlms(), decode_coeffs(), decode_end(), decode_flush(), decode_frame(), decode_frame_header(), decode_hybrid(), decode_init(), decode_line(), decode_mb_mode(), decode_mclms(), decode_mvs(), decode_region_inter(), decode_region_intra(), decode_residues(), decode_scale_factors(), decode_slice_header(), decode_spectrum_and_dequant(), decode_subband_internal(), decode_subframe(), decode_subframe_fixed(), decode_tilehdr(), decode_tonal_components(), deInterlaceBlendLinear(), deInterlaceMedian(), dering(), diamond_search(), diff_pixels_mvi(), diff_planes(), dirac_get_arith_int(), direct_search(), do_tls_poll(), doVertDefFilter(), doVertLowPass(), draw_mandelbrot(), dv_init_mux(), dv_read_close(), dv_read_header(), dv_read_packet(), dv_read_seek(), dv_read_timecode(), dv_write_pack(), dxa_read_header(), dxa_read_packet(), encode_end(), encode_frame(), encode_init(), encode_init_ls(), encode_line(), encode_picture(), encode_plane(), encode_q_branch(), encode_residual_fixed(), encode_slice_header(), epzs_motion_search2(), epzs_motion_search4(), epzs_motion_search_internal(), estimate_best_b_count(), expand_filename_template(), ff_add_png_paeth_prediction(), ff_adx_calculate_coeffs(), ff_asf_get_packet(), ff_ass_split_override_codes(), ff_audio_resample_init(), ff_big_add(), ff_big_div(), ff_big_mul(), ff_celp_lp_synthesis_filterf(), ff_check_pixfmt_descriptors(), ff_command_queue_pop(), ff_ctz_c(), ff_dct_calc_I_c(), ff_dct_calc_II_c(), ff_dct_calc_III_c(), ff_dither_alloc(), ff_dither_free(), ff_draw_init(), ff_dv_init_dynamic_tables(), ff_epzs_motion_search(), ff_estimate_b_frame_motion(), ff_estimate_motion_b(), ff_estimate_p_frame_motion(), ff_fix_long_mvs(), ff_fix_long_p_mvs(), ff_float_interleave_c(), ff_frame_thread_encoder_free(), ff_frame_thread_encoder_init(), ff_get_cpu_flags_x86(), ff_get_line(), ff_h263_pred_acdc(), ff_h263_pred_dc(), ff_h264_chroma_dc_dequant_idct(), ff_h264_decode_mb_cabac(), ff_hex_to_data(), ff_iir_filter_init_coeffs(), ff_init_cabac_states(), ff_init_me(), ff_lzw_decode(), ff_lzw_encode(), ff_mov_iso639_to_lang(), ff_mp4_read_descr_len(), ff_mpeg4_pred_dc(), ff_msmpeg4_coded_block_pred(), ff_msmpeg4_pred_dc(), ff_mss12_decode_init(), ff_pca(), ff_pre_estimate_p_frame_motion(), ff_print_debug_info2(), ff_printGUID(), ff_pullup_alloc_context(), ff_rac_terminate(), ff_sqrt(), ff_subtitles_read_chunk(), ff_thread_video_encode_frame(), ff_urldecode(), ff_vc1_decode_blocks(), ffio_wfourcc(), fft_ref(), file_check(), file_get_handle(), file_read(), file_write(), fill24(), fill_picture_rgb(), fill_samples(), filter_frame(), find_rtp_session(), flac_lpc_16_c(), flac_lpc_encode_c(), flac_parse_init(), float_interleave(), float_interleave_noscale(), float_to_int16_interleave_c(), floor_encode(), free_section(), full_search(), funny_diamond_search(), g722_decode_frame(), g722_decode_init(), g722_encode_close(), g722_encode_frame(), g722_encode_init(), g726_reset(), gen_image(), generate_noise(), get16(), get8(), get_delay(), get_exponent_dynamic(), get_limits(), get_line(), get_match_score(), get_mb_score(), get_pts(), get_quants(), get_shift(), get_sockaddr(), get_string(), get_token(), getopt(), getutime(), global_mv(), grab_read_close(), gsm_read_header(), gxf_init_timecode(), gxf_parse_mpeg_frame(), h263_get_modb(), h263_mv4_search(), h264_frame_start(), h264_slice_header_init(), h_block_filter(), hex_dump_internal(), hex_search(), hls_close(), hls_read_header(), hls_read_packet(), hls_read_seek(), hls_start(), horizX1Filter(), hpel_motion_search(), http_server(), ico_write_packet(), idct(), ini_escape_str(), init(), init_idct(), init_interlaced_ref(), init_pullup(), init_video(), initFilter(), initPv(), interlaced_search(), interpol(), interpolate(), interpolate_isp(), ir2_decode_plane(), ir2_decode_plane_inter(), ism_flush(), ism_free(), ism_write_header(), ism_write_packet(), ism_write_trailer(), jacosub_to_ass(), l2s_dia_search(), lcg_seek(), lex_char(), lex_name(), lex_space(), lex_wsword(), libopenjpeg_copy_to_packed16(), libopenjpeg_copy_to_packed8(), licomb_y(), ljpeg_decode_rgb_scan(), ljpeg_decode_yuv_scan(), loco_predict(), lpc_apply_welch_window_c(), lzw_get_code(), main(), make_sin_table(), md5_close(), md5_finish(), md5_open(), md5_write(), microdvd_decode_frame(), microdvd_probe(), microdvd_read_header(), mid_pred(), mix_core(), mjpeg_decode_scan(), mjpeg_decode_scan_progressive_ac(), mkv_write_attachments(), mkv_write_chapters(), mov_create_chapter_track(), mov_parse_mpeg2_frame(), mov_read_mac_string(), mov_write_chpl_tag(), movie_config_output_props(), movie_query_formats(), mp3_parse_vbr_tags(), mp3_write_audio_packet(), mp3_write_xing(), mpc7_decode_close(), mpc7_decode_flush(), mpc7_decode_frame(), mpc7_decode_init(), mpc8_decode_flush(), mpc8_decode_frame(), mpc8_decode_init(), mpc8_parse_seektable(), mpc8_read_header(), mpc8_read_packet(), mpc_read_close(), mpc_read_header(), mpc_read_packet(), mpc_read_seek(), mpegps_read_pes_header(), mpegts_resync(), mpl2_probe(), mss1_decode_frame(), mss1_decode_init(), mss3_decode_end(), mss3_decode_frame(), mss3_decode_init(), mss4_decode_end(), mss4_decode_frame(), mss4_decode_init(), mszh_decomp(), mul_poly(), multiswap_dec(), multiswap_enc(), mxf_parse_mpeg2_frame(), mxf_write_essence_container_refs(), new_connection(), nsse16_c(), nsse8_c(), ogg_read_page(), oggvorbis_encode_frame(), open_audio(), open_video(), opt_map(), opt_target(), paf_vid_close(), paf_vid_decode(), paf_vid_init(), paint_mouse_pointer(), parse_forced_key_frames(), parse_segment_info(), parse_term(), parse_timecode(), pcm_decode_frame(), pcm_encode_frame(), pjs_probe(), pnm_decode_frame(), pnm_encode_frame(), pnm_get(), poll_frame(), postProcess(), pp_free_context(), pp_get_context(), pp_postprocess(), pred16x16_vertical(), process_subpacket_11(), ps_tableinit(), put_image(), pxr24_uncompress(), qcp_read_header(), qcp_read_packet(), qdm2_fft_generate_tone(), qdm2_fft_tone_synthesizer(), qmf_init(), qpel_motion_search(), quantize_and_encode_band_cost_template(), quantize_mantissas_blk_ch(), query_formats(), read_data(), read_extra_header(), read_frame_data(), read_header(), read_time(), read_ts(), read_var_block_data(), read_yesno(), realtext_read_header(), recheck_discard_flags(), ref_to_update(), render_charset(), request_frame(), resample_init(), resample_one(), resampleCubic(), revert_channel_correlation(), rtmp_http_send_cmd(), rtmp_open(), rtmp_write(), rtp_new_connection(), sab_diamond_search(), sad_hpel_motion_search(), sami_read_header(), seqvideo_decode(), set_options(), sha1_transform(), sha256_transform(), show_codec_opts(), siff_read_header(), siff_read_packet(), small_diamond_search(), srt_stack_push(), srt_style_apply(), sub_png_paeth_prediction(), subviewer_decode_frame(), subviewer_probe(), swri_resample(), sws_alloc_context(), sws_getContext(), sws_init_swScale(), sym_quant(), synth_filter_float(), tempNoiseReducer(), thread_free(), thread_init(), tiff_unpack_strip(), timed_line(), tls_close(), tls_open(), tls_read(), tls_write(), tmv_decode_frame(), truespeech_decode_frame(), truespeech_decode_init(), tscc2_decode_end(), tscc2_decode_frame(), tscc2_decode_init(), tta_read_header(), tta_read_packet(), tta_read_seek(), umh_search(), update_lf_deltas(), update_refs(), utvideo_encode_close(), utvideo_encode_frame(), utvideo_encode_init(), v_block_filter(), var_diamond_search(), vc1_coded_block_pred(), vc1_h_overlap_c(), vc1_h_s_overlap_c(), vc1_i_pred_dc(), vc1_pred_dc(), vc1_v_overlap_c(), vc1_v_s_overlap_c(), vertX1Filter(), vf_open(), video_audio_display(), video_decode_example(), video_encode_example(), vivo_get_packet_header(), vivo_probe(), vp56_parse_mb_type(), vp56_parse_mb_type_models(), vp5_parse_coeff(), vp5_parse_coeff_models(), vp5_parse_header(), vp5_parse_vector_adjustment(), vp5_parse_vector_models(), vp6_parse_coeff(), vp6_parse_coeff_models(), vp6_parse_header(), vp6_parse_vector_adjustment(), vp6_parse_vector_models(), vp8_decode_mb_row_no_filter(), vplayer_probe(), vqf_read_header(), vqf_read_packet(), vqf_read_seek(), wavesynth_decode(), wavesynth_synth_sample(), wmapro_window(), worker(), write_audio_frame(), write_extradata(), write_header(), write_manifest(), write_video_frame(), wv_get_value(), x8_get_dc_rlf(), x8_get_prediction(), x8_setup_spatial_compensation(), xface_decode_frame(), yuv2bgr24_1(), yuv2bgr24_2(), yuv2bgr24_X(), yuv2bgr24_X_ar(), yuv2rgb32_1(), yuv2rgb32_2(), yuv2rgb32_X(), yuv2rgb32_X_ar(), yuv2rgb555_1(), yuv2rgb555_2(), yuv2rgb555_X(), yuv2rgb555_X_ar(), yuv2rgb565_1(), yuv2rgb565_2(), yuv2rgb565_X(), yuv2rgb565_X_ar(), yuv2rgb_full_1_c_template(), yuv2yuyv422_1(), yuv2yuyv422_2(), yuv2yuyv422_X(), yuv2yuyv422_X_ar(), yuv420_bgr32(), yuv420_rgb15(), yuv420_rgb16(), yuv420_rgb32(), and zmbv_decode_xor_16().

const AVOption mptestsrc_options[]
static
Initial value:
= {
{ "rate", "set video rate", OFFSET(frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, 0, FLAGS },
{ "r", "set video rate", OFFSET(frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, 0, FLAGS },
{ "duration", "set video duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = -1}, -1, INT64_MAX, FLAGS },
{ "d", "set video duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = -1}, -1, INT64_MAX, FLAGS },
{ "test", "set test to perform", OFFSET(test), AV_OPT_TYPE_INT, {.i64=TEST_ALL}, 0, INT_MAX, FLAGS, "test" },
{ "t", "set test to perform", OFFSET(test), AV_OPT_TYPE_INT, {.i64=TEST_ALL}, 0, INT_MAX, FLAGS, "test" },
{ "dc_luma", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_DC_LUMA}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "dc_chroma", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_DC_CHROMA}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "freq_luma", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_FREQ_LUMA}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "freq_chroma", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_FREQ_CHROMA}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "amp_luma", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_AMP_LUMA}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "amp_chroma", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_AMP_CHROMA}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "cbp", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_CBP}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "mv", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_MV}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "ring1", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_RING1}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "ring2", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_RING2}, INT_MIN, INT_MAX, FLAGS, "test" },
{ "all", "", 0, AV_OPT_TYPE_CONST, {.i64=TEST_ALL}, INT_MIN, INT_MAX, FLAGS, "test" },
{ NULL },
}
Definition: test.py:1
static int64_t duration
Definition: ffplay.c:294
NULL
Definition: eval.c:55
#define OFFSET(x)
offset must point to AVRational
Definition: opt.h:233
#define FLAGS

Definition at line 64 of file vsrc_mptestsrc.c.

const AVFilterPad mptestsrc_outputs[]
static
Initial value:
= {
{
.name = "default",
.request_frame = request_frame,
.config_props = config_props,
},
{ NULL }
}
static int config_props(AVFilterLink *outlink)
static int request_frame(AVFilterLink *outlink)
NULL
Definition: eval.c:55

Definition at line 344 of file vsrc_mptestsrc.c.