FFmpeg
Data Structures | Macros | Functions | Variables
svq3.c File Reference
#include <inttypes.h>
#include "libavutil/attributes.h"
#include "libavutil/crc.h"
#include "libavutil/mem_internal.h"
#include "codec_internal.h"
#include "decode.h"
#include "avcodec.h"
#include "mpegutils.h"
#include "h264data.h"
#include "h264dsp.h"
#include "h264pred.h"
#include "h264_parse.h"
#include "golomb.h"
#include "hpeldsp.h"
#include "mathops.h"
#include "rectangle.h"
#include "tpeldsp.h"
#include "videodsp.h"

Go to the source code of this file.

Data Structures

struct  SVQ3Frame
 
struct  SVQ3Context
 

Macros

#define FULLPEL_MODE   1
 
#define HALFPEL_MODE   2
 
#define THIRDPEL_MODE   3
 
#define PREDICT_MODE   4
 
#define stride   16
 

Functions

static void svq3_luma_dc_dequant_idct_c (int16_t *output, int16_t *input, int qp)
 
static void svq3_add_idct_c (uint8_t *dst, int16_t *block, int stride, int qp, int dc)
 
static int svq3_decode_block (GetBitContext *gb, int16_t *block, int index, const int type)
 
static av_always_inline int svq3_fetch_diagonal_mv (const SVQ3Context *s, const int16_t **C, int i, int list, int part_width)
 
static av_always_inline void svq3_pred_motion (const SVQ3Context *s, int n, int part_width, int list, int ref, int *const mx, int *const my)
 Get the predicted MV. More...
 
static void svq3_mc_dir_part (SVQ3Context *s, int x, int y, int width, int height, int mx, int my, int dxy, int thirdpel, int dir, int avg)
 
static int svq3_mc_dir (SVQ3Context *s, int size, int mode, int dir, int avg)
 
static av_always_inline void hl_decode_mb_idct_luma (SVQ3Context *s, int mb_type, const int *block_offset, int linesize, uint8_t *dest_y)
 
static av_always_inline void hl_decode_mb_predict_luma (SVQ3Context *s, int mb_type, const int *block_offset, int linesize, uint8_t *dest_y)
 
static void hl_decode_mb (SVQ3Context *s)
 
static int svq3_decode_mb (SVQ3Context *s, unsigned int mb_type)
 
static int svq3_decode_slice_header (AVCodecContext *avctx)
 
static void init_dequant4_coeff_table (SVQ3Context *s)
 
static av_cold int svq3_decode_init (AVCodecContext *avctx)
 
static void free_picture (SVQ3Frame *pic)
 
static int get_buffer (AVCodecContext *avctx, SVQ3Frame *pic)
 
static int svq3_decode_frame (AVCodecContext *avctx, AVFrame *rframe, int *got_frame, AVPacket *avpkt)
 
static av_cold int svq3_decode_end (AVCodecContext *avctx)
 

Variables

static const uint8_t svq3_scan [16]
 
static const uint8_t luma_dc_zigzag_scan [16]
 
static const uint8_t svq3_pred_0 [25][2]
 
static const int8_t svq3_pred_1 [6][6][5]
 
struct {
   uint8_t   run
 
   uint8_t   level
 
svq3_dct_tables [2][16]
 
static const uint32_t svq3_dequant_coeff [32]
 
const FFCodec ff_svq3_decoder
 

Detailed Description

svq3 decoder.

Definition in file svq3.c.

Macro Definition Documentation

◆ FULLPEL_MODE

#define FULLPEL_MODE   1

Definition at line 147 of file svq3.c.

◆ HALFPEL_MODE

#define HALFPEL_MODE   2

Definition at line 148 of file svq3.c.

◆ THIRDPEL_MODE

#define THIRDPEL_MODE   3

Definition at line 149 of file svq3.c.

◆ PREDICT_MODE

#define PREDICT_MODE   4

Definition at line 150 of file svq3.c.

◆ stride

#define stride   16

Function Documentation

◆ svq3_luma_dc_dequant_idct_c()

static void svq3_luma_dc_dequant_idct_c ( int16_t *  output,
int16_t *  input,
int  qp 
)
static

Definition at line 219 of file svq3.c.

Referenced by hl_decode_mb_predict_luma().

◆ svq3_add_idct_c()

static void svq3_add_idct_c ( uint8_t *  dst,
int16_t *  block,
int  stride,
int  qp,
int  dc 
)
static

Definition at line 254 of file svq3.c.

Referenced by hl_decode_mb(), hl_decode_mb_idct_luma(), and hl_decode_mb_predict_luma().

◆ svq3_decode_block()

static int svq3_decode_block ( GetBitContext gb,
int16_t *  block,
int  index,
const int  type 
)
inlinestatic

Definition at line 294 of file svq3.c.

Referenced by svq3_decode_mb().

◆ svq3_fetch_diagonal_mv()

static av_always_inline int svq3_fetch_diagonal_mv ( const SVQ3Context s,
const int16_t **  C,
int  i,
int  list,
int  part_width 
)
static

Definition at line 354 of file svq3.c.

Referenced by svq3_pred_motion().

◆ svq3_pred_motion()

static av_always_inline void svq3_pred_motion ( const SVQ3Context s,
int  n,
int  part_width,
int  list,
int  ref,
int *const  mx,
int *const  my 
)
static

Get the predicted MV.

Parameters
nthe block index
part_widththe width of the partition (4, 8,16) -> (1, 2, 4)
mxthe x component of the predicted motion vector
mythe y component of the predicted motion vector

Definition at line 375 of file svq3.c.

Referenced by svq3_mc_dir().

◆ svq3_mc_dir_part()

static void svq3_mc_dir_part ( SVQ3Context s,
int  x,
int  y,
int  width,
int  height,
int  mx,
int  my,
int  dxy,
int  thirdpel,
int  dir,
int  avg 
)
inlinestatic

Definition at line 424 of file svq3.c.

Referenced by svq3_decode_mb(), and svq3_mc_dir().

◆ svq3_mc_dir()

static int svq3_mc_dir ( SVQ3Context s,
int  size,
int  mode,
int  dir,
int  avg 
)
inlinestatic

Definition at line 499 of file svq3.c.

Referenced by svq3_decode_mb().

◆ hl_decode_mb_idct_luma()

static av_always_inline void hl_decode_mb_idct_luma ( SVQ3Context s,
int  mb_type,
const int block_offset,
int  linesize,
uint8_t *  dest_y 
)
static

Definition at line 612 of file svq3.c.

Referenced by hl_decode_mb().

◆ hl_decode_mb_predict_luma()

static av_always_inline void hl_decode_mb_predict_luma ( SVQ3Context s,
int  mb_type,
const int block_offset,
int  linesize,
uint8_t *  dest_y 
)
static

Definition at line 627 of file svq3.c.

Referenced by hl_decode_mb().

◆ hl_decode_mb()

static void hl_decode_mb ( SVQ3Context s)
static

Definition at line 661 of file svq3.c.

Referenced by svq3_decode_frame().

◆ svq3_decode_mb()

static int svq3_decode_mb ( SVQ3Context s,
unsigned int  mb_type 
)
static

Definition at line 709 of file svq3.c.

Referenced by svq3_decode_frame().

◆ svq3_decode_slice_header()

static int svq3_decode_slice_header ( AVCodecContext avctx)
static

Definition at line 1007 of file svq3.c.

Referenced by svq3_decode_frame().

◆ init_dequant4_coeff_table()

static void init_dequant4_coeff_table ( SVQ3Context s)
static

Definition at line 1102 of file svq3.c.

Referenced by svq3_decode_init().

◆ svq3_decode_init()

static av_cold int svq3_decode_init ( AVCodecContext avctx)
static

Definition at line 1116 of file svq3.c.

◆ free_picture()

static void free_picture ( SVQ3Frame pic)
static

Definition at line 1317 of file svq3.c.

Referenced by get_buffer(), and svq3_decode_end().

◆ get_buffer()

static int get_buffer ( AVCodecContext avctx,
SVQ3Frame pic 
)
static

Definition at line 1328 of file svq3.c.

Referenced by svq3_decode_frame().

◆ svq3_decode_frame()

static int svq3_decode_frame ( AVCodecContext avctx,
AVFrame rframe,
int got_frame,
AVPacket avpkt 
)
static

Definition at line 1373 of file svq3.c.

◆ svq3_decode_end()

static av_cold int svq3_decode_end ( AVCodecContext avctx)
static

Definition at line 1577 of file svq3.c.

Variable Documentation

◆ svq3_scan

const uint8_t svq3_scan[16]
static
Initial value:
= {
0 + 0 * 4, 1 + 0 * 4, 2 + 0 * 4, 2 + 1 * 4,
2 + 2 * 4, 3 + 0 * 4, 3 + 1 * 4, 3 + 2 * 4,
0 + 1 * 4, 0 + 2 * 4, 1 + 1 * 4, 1 + 2 * 4,
0 + 3 * 4, 1 + 3 * 4, 2 + 3 * 4, 3 + 3 * 4,
}

Definition at line 161 of file svq3.c.

Referenced by svq3_decode_block().

◆ luma_dc_zigzag_scan

const uint8_t luma_dc_zigzag_scan[16]
static
Initial value:
= {
0 * 16 + 0 * 64, 1 * 16 + 0 * 64, 2 * 16 + 0 * 64, 0 * 16 + 2 * 64,
3 * 16 + 0 * 64, 0 * 16 + 1 * 64, 1 * 16 + 1 * 64, 2 * 16 + 1 * 64,
1 * 16 + 2 * 64, 2 * 16 + 2 * 64, 3 * 16 + 2 * 64, 0 * 16 + 3 * 64,
3 * 16 + 1 * 64, 1 * 16 + 3 * 64, 2 * 16 + 3 * 64, 3 * 16 + 3 * 64,
}

Definition at line 168 of file svq3.c.

Referenced by svq3_decode_block().

◆ svq3_pred_0

const uint8_t svq3_pred_0[25][2]
static
Initial value:
= {
{ 0, 0 },
{ 1, 0 }, { 0, 1 },
{ 0, 2 }, { 1, 1 }, { 2, 0 },
{ 3, 0 }, { 2, 1 }, { 1, 2 }, { 0, 3 },
{ 0, 4 }, { 1, 3 }, { 2, 2 }, { 3, 1 }, { 4, 0 },
{ 4, 1 }, { 3, 2 }, { 2, 3 }, { 1, 4 },
{ 2, 4 }, { 3, 3 }, { 4, 2 },
{ 4, 3 }, { 3, 4 },
{ 4, 4 }
}

Definition at line 175 of file svq3.c.

Referenced by svq3_decode_mb().

◆ svq3_pred_1

const int8_t svq3_pred_1[6][6][5]
static
Initial value:
= {
{ { 2, -1, -1, -1, -1 }, { 2, 1, -1, -1, -1 }, { 1, 2, -1, -1, -1 },
{ 2, 1, -1, -1, -1 }, { 1, 2, -1, -1, -1 }, { 1, 2, -1, -1, -1 } },
{ { 0, 2, -1, -1, -1 }, { 0, 2, 1, 4, 3 }, { 0, 1, 2, 4, 3 },
{ 0, 2, 1, 4, 3 }, { 2, 0, 1, 3, 4 }, { 0, 4, 2, 1, 3 } },
{ { 2, 0, -1, -1, -1 }, { 2, 1, 0, 4, 3 }, { 1, 2, 4, 0, 3 },
{ 2, 1, 0, 4, 3 }, { 2, 1, 4, 3, 0 }, { 1, 2, 4, 0, 3 } },
{ { 2, 0, -1, -1, -1 }, { 2, 0, 1, 4, 3 }, { 1, 2, 0, 4, 3 },
{ 2, 1, 0, 4, 3 }, { 2, 1, 3, 4, 0 }, { 2, 4, 1, 0, 3 } },
{ { 0, 2, -1, -1, -1 }, { 0, 2, 1, 3, 4 }, { 1, 2, 3, 0, 4 },
{ 2, 0, 1, 3, 4 }, { 2, 1, 3, 0, 4 }, { 2, 0, 4, 3, 1 } },
{ { 0, 2, -1, -1, -1 }, { 0, 2, 4, 1, 3 }, { 1, 4, 2, 0, 3 },
{ 4, 2, 0, 1, 3 }, { 2, 0, 1, 4, 3 }, { 4, 2, 1, 0, 3 } },
}

Definition at line 187 of file svq3.c.

Referenced by svq3_decode_mb().

◆ run

uint8_t run

Definition at line 203 of file svq3.c.

Referenced by add_coefficients(), bink_decode_plane(), binkb_decode_plane(), bit8x8_c(), cfhd_decode(), cfhd_encode_init(), cfhd_init_vlc(), dct_quantize_refine(), dct_quantize_trellis_c(), dct_single_coeff_elimination(), decode_ac_coeffs(), decode_alpha_block(), decode_block(), decode_block_intra(), decode_block_progressive(), decode_block_refinement(), decode_coeffs(), decode_dct_block(), decode_frame(), decode_group3_1d_line(), decode_group3_2d_line(), decode_residual_block(), decode_rle(), decode_rtv1(), decode_run_i(), decode_run_p(), decompress(), decompress_i(), decompress_i3(), decompress_p(), decompress_p3(), dnxhd_decode_dct_block(), dnxhd_init_vlc(), dv_decode_ac(), dv_init_static(), dv_rl2vlc(), dv_rl2vlc_size(), dxv_decompress_dxt5(), encode_acs(), encode_alpha_plane(), encode_alpha_slice_data(), encode_block(), encode_line(), encode_subband_c0run(), epic_decode_run_length(), epic_decode_tile(), epic_predict_from_NW_NE(), estimate_acs(), estimate_alpha_plane(), extract_line(), ff_flv2_encode_ac_esc(), ff_init_2d_vlc_rl(), ff_mjpeg_encode_coef(), ff_mpeg1_decode_block_intra(), ff_mpeg1_init_uni_ac_vlc(), ff_msmpeg4_decode_block(), ff_msmpeg4_encode_block(), ff_rl_init(), ff_rl_init_level_run(), ff_rl_init_vlc(), ff_wmv2_decode_picture_header(), find_best_tables(), fix_coding_method_array(), get_rl_index(), get_size_of_code(), h261_decode_block(), h261_encode_block(), h263_decode_block(), h263_encode_block(), hdcd_process(), hdcd_process_stereo(), hdr_decode_frame(), hqx_get_ac(), huf_decode(), init_quantized_coeffs_elem0(), init_uni_ac_vlc(), init_uni_h261_rl_tab(), init_uni_h263_rl_tab(), init_uni_mpeg4_rl_tab(), ivi_decode_coded_blocks(), loco_get_rice(), ls_encode_line(), ls_encode_run(), main(), mdec_decode_block_intra(), mpeg1_decode_block_inter(), mpeg2_decode_block_intra(), mpeg2_decode_block_non_intra(), mpeg4_decode_block(), mpeg4_decode_studio_block(), mpeg4_encode_block(), mpeg4_get_block_length(), msmpeg4_encode_init_static(), on2avc_decode_band_types(), pcx_rle_decode(), picmemset(), picmemset_8bpp(), process_subpacket_9(), put_alpha_run(), put_line(), qoi_decode_frame(), qoi_encode_frame(), qpeg_decode_intra(), rd8x8_c(), read_block_types(), read_run_encoding(), record_block(), rle_compress(), rle_uncompress(), sunrast_decode_frame(), sunrast_image_write_image(), svq3_decode_block(), synthfilt_build_sb_samples(), task_run_stage(), unpack(), unpack_coeffs(), vc1_decode_ac_coeff(), vp6_parse_coeff(), vp6_parse_coeff_huffman(), x8_decode_intra_mb(), and x8_get_ac_rlf().

◆ level

uint8_t level

Definition at line 204 of file svq3.c.

Referenced by add_coefficients(), add_wave(), add_wave0(), adpcm_decode_frame(), ansi_fputs(), append_left_ext(), ass_log(), asv1_put_level(), asv2_put_level(), av_hex_dump_log(), av_log(), av_log_default_callback(), av_log_format_line(), av_log_format_line2(), av_log_set_level(), av_pkt_dump_log2(), av_vlog(), bit8x8_c(), calc_sum_next(), calculate_visual_weight(), cfhd_decode(), cfhd_init_vlc(), check_written(), clip_coeffs(), clip_with_log(), coeff_sign_flag_ts_decode(), colored_fputs(), common_uninit(), compute_gammaval709(), config_enc_params(), count_hq_slice(), count_warnings(), dash_init(), dct_quantize_refine(), dct_quantize_TMPL(), dct_quantize_trellis_c(), dct_single_coeff_elimination(), dct_unquantize_h263_inter_c(), dct_unquantize_h263_intra_armv5te(), dct_unquantize_h263_intra_c(), dct_unquantize_mpeg1_inter_c(), dct_unquantize_mpeg1_intra_c(), dct_unquantize_mpeg2_inter_c(), dct_unquantize_mpeg2_intra_bitexact(), dct_unquantize_mpeg2_intra_c(), decide_ac_pred(), decode_ac_coeffs(), decode_alpha_block(), decode_block(), decode_block_intra(), decode_block_progressive(), decode_coeffs(), decode_component(), decode_dct_block(), decode_frame(), decode_gain_control(), decode_hq_slice(), decode_i_block(), decode_inter_block(), decode_inter_blocks(), decode_intra_block(), decode_intra_blocks(), decode_lowdelay_slice(), decode_q_branch(), decode_qlogs(), decode_residual(), decode_residual_block(), denoise_dct_c(), dequant_and_decompand(), dirac_unpack_idwt_params(), discard_left_ext(), dnxhd_10bit_dct_quantize(), dnxhd_10bit_dct_quantize_444(), dnxhd_calc_ac_bits(), dnxhd_decode_dct_block(), dnxhd_init_vlc(), dnxhd_unquantize_c(), dump_enc_cfg(), dv100_quantize(), dv_decode_ac(), dv_init_static(), dv_set_class_number_sd(), dvdvideo_libdvdnav_log(), dvdvideo_libdvdread_log(), dwt_plane(), ebml_read_master(), encode_acs(), encode_block(), encode_frame(), encode_hq_slice(), encode_q_branch(), encode_q_branch2(), encode_qlogs(), encode_quant_matrix(), estimate_acs(), eval_expr(), ff_av1_guess_level(), ff_dct_quantize_c(), ff_dct_unquantize_h263_intra_mmi(), ff_flv2_encode_ac_esc(), ff_h263_encode_mb(), ff_h264_guess_level(), ff_h265_guess_level(), ff_init_2d_vlc_rl(), ff_isom_get_vpcc_features(), ff_libopenh264_trace_callback(), ff_log_net_error(), ff_mpeg1_decode_block_intra(), ff_mpeg1_init_uni_ac_vlc(), ff_mpeg4_decode_picture_header(), ff_mpeg4_pred_dc(), ff_msmpeg4_decode_block(), ff_msmpeg4_encode_block(), ff_rl_init(), ff_rl_init_level_run(), ff_rl_init_vlc(), ff_snow_common_end(), ff_snow_common_init_after_header(), ff_snow_reset_contexts(), ff_spatial_dwt(), ff_spatial_idwt_buffered_init(), ff_spatial_idwt_buffered_slice(), ff_spatial_idwt_slice2(), ff_vdpau_common_init(), ff_vk_h264_level_to_av(), ff_vk_h265_level_to_av(), ff_wma_run_level_decode(), filter_channel(), filter_frame(), find_best_tables(), flac_encode_init(), format_line(), forward(), framesync_sync_level_update(), get_block_rate(), get_level_str(), get_local_sum(), get_local_sum_ts(), get_qp_y(), get_rl_index(), get_size_of_code(), guess_palette(), h261_decode_block(), h261_encode_block(), h263_dct_unquantize_msa(), h263_decode_block(), h263_encode_block(), handle_invoke_error(), hardthresh_c(), hex_log(), imc_decode_level_coefficients(), imc_decode_level_coefficients_raw(), init_coef_vlc(), init_h263_dc_for_msmpeg4(), init_planes(), init_quant_matrix(), init_quantized_coeffs_elem0(), init_uni_ac_vlc(), init_uni_dc_tab(), init_uni_h261_rl_tab(), init_uni_h263_rl_tab(), init_uni_mpeg4_rl_tab(), intlist_read(), inverse(), log_callback(), log_callback_report(), log_cb(), log_int_value(), log_value(), logcat_callback(), main(), max_left_zeros_inverse(), mdec_decode_block_intra(), mediumthresh_c(), mov_write_dvc1_structs(), mpeg1_decode_block_inter(), mpeg2_decode_block_intra(), mpeg2_decode_block_non_intra(), mpeg4_decode_block(), mpeg4_decode_dc(), mpeg4_decode_profile_level(), mpeg4_encode_block(), mpeg4_encode_dc(), mpeg4_get_block_length(), mpeg4_get_dc_length(), msmpeg4_decode_dc(), msmpeg4_encode_dc(), msmpeg4_encode_init_static(), nb_coefs(), nvenc_print_driver_requirement(), openmpt_logfunc(), opt_loglevel(), parameter_block_obu(), parse_avs2_seq_header(), pkt_dump_internal(), pl_av_log(), print_all_libs_info(), print_buildconf(), print_ctl_info(), print_program_info(), print_section(), process_subpacket_9(), qdm2_fft_generate_tone(), qdm2_fft_tone_synthesizer(), quant_band_template(), QUANT_FN(), ratecontrol_1pass(), rd8x8_c(), read_code(), read_run_encoding(), reallocate_inputs(), reallocate_outputs(), rtmp_log(), rtmp_open(), search_for_change_points(), set_blocks(), softthresh_c(), spatial_compose_daub97i_dy_TMPL(), spatial_compose_dd137i_dy_TMPL(), spatial_compose_dd97i_dy_TMPL(), spatial_compose_dirac53i_dy_TMPL(), spatial_compose_fidelity_TMPL(), spatial_compose_haari_dy_TMPL(), spatial_idwt_init(), spatial_idwt_init_TMPL(), spatial_idwt_slice(), subband_coeffs(), svq1_decode_block_intra(), svq1_decode_block_non_intra(), svq1_encode_plane(), svq3_decode_block(), tgq_dconly(), udp_set_multicast_sources(), uninit(), vaapi_encode_av1_init_sequence_params(), vaapi_encode_h264_init_sequence_params(), vaapi_encode_h265_init_sequence_params(), vaapi_encode_remove_refs(), vc1_decode_ac_coeff(), vc1_probe(), vc2_encode_init(), vdpau_av1_init(), vdpau_h264_init(), vdpau_hevc_init(), vdpau_vp9_init(), w_c(), write_codec_attr(), X264_init(), X264_log(), x8_decode_intra_mb(), x8_get_ac_rlf(), x8_get_dc_rlf(), and XAVS_log().

◆ svq3_dct_tables

const { ... } svq3_dct_tables[2][16]
Initial value:
= {
{ { 0, 0 }, { 0, 1 }, { 1, 1 }, { 2, 1 }, { 0, 2 }, { 3, 1 }, { 4, 1 }, { 5, 1 },
{ 0, 3 }, { 1, 2 }, { 2, 2 }, { 6, 1 }, { 7, 1 }, { 8, 1 }, { 9, 1 }, { 0, 4 } },
{ { 0, 0 }, { 0, 1 }, { 1, 1 }, { 0, 2 }, { 2, 1 }, { 0, 3 }, { 0, 4 }, { 0, 5 },
{ 3, 1 }, { 4, 1 }, { 1, 2 }, { 1, 3 }, { 0, 6 }, { 0, 7 }, { 0, 8 }, { 0, 9 } }
}

Referenced by svq3_decode_block().

◆ svq3_dequant_coeff

const uint32_t svq3_dequant_coeff[32]
static
Initial value:
= {
3881, 4351, 4890, 5481, 6154, 6914, 7761, 8718,
9781, 10987, 12339, 13828, 15523, 17435, 19561, 21873,
24552, 27656, 30847, 34870, 38807, 43747, 49103, 54683,
61694, 68745, 77615, 89113, 100253, 109366, 126635, 141533
}

Definition at line 212 of file svq3.c.

Referenced by svq3_add_idct_c(), and svq3_luma_dc_dequant_idct_c().

◆ ff_svq3_decoder

const FFCodec ff_svq3_decoder
Initial value:
= {
.p.name = "svq3",
CODEC_LONG_NAME("Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(SVQ3Context),
.close = svq3_decode_end,
.p.capabilities = AV_CODEC_CAP_DRAW_HORIZ_BAND |
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
}

Definition at line 1593 of file svq3.c.

FF_CODEC_CAP_INIT_CLEANUP
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
Definition: codec_internal.h:42
FF_CODEC_DECODE_CB
#define FF_CODEC_DECODE_CB(func)
Definition: codec_internal.h:287
AV_CODEC_ID_SVQ3
@ AV_CODEC_ID_SVQ3
Definition: codec_id.h:75
CODEC_LONG_NAME
#define CODEC_LONG_NAME(str)
Definition: codec_internal.h:272
SVQ3Context
Definition: svq3.c:82
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:365
AV_CODEC_CAP_DR1
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition: codec.h:52
svq3_decode_frame
static int svq3_decode_frame(AVCodecContext *avctx, AVFrame *rframe, int *got_frame, AVPacket *avpkt)
Definition: svq3.c:1373
AV_CODEC_CAP_DELAY
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: codec.h:76
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
svq3_decode_end
static av_cold int svq3_decode_end(AVCodecContext *avctx)
Definition: svq3.c:1577
AV_CODEC_CAP_DRAW_HORIZ_BAND
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
Definition: codec.h:44
svq3_decode_init
static av_cold int svq3_decode_init(AVCodecContext *avctx)
Definition: svq3.c:1116