view divx4_vbr.h @ 18708:9e2b300db17b

Change free_sh_audio() to take demuxer and stream id as parameters (same as new_sh_audio()) instead of sh_audio_t *, use those to remove the pointer from demuxer->a_streams[] before freeing it. Some demuxers use free_sh_audio() to undo the creation of an already-allocated audio stream in case of error. These uses were unsafe since free_sh_audio() freed the data structure but left the pointer in demuxer->a_streams[], leading to double free later in free_demuxer() (and perhaps use of the freed stream before that, I didn't check).
author uau
date Wed, 14 Jun 2006 14:05:59 +0000
parents f580a7755ac5
children
line wrap: on
line source


// methods from class VbrControl

	void VbrControl_init_1pass_vbr(int quality, int crispness);
	int VbrControl_init_2pass_vbr_encoding(const char* filename, int bitrate, double framerate, int crispness, int quality);
	int VbrControl_init_2pass_vbr_analysis(const char* filename, int quality);

	void VbrControl_update_1pass_vbr(void);
	void VbrControl_update_2pass_vbr_encoding(int motion_bits, int texture_bits, int total_bits);
	void VbrControl_update_2pass_vbr_analysis(int is_key_frame, int motion_bits, int texture_bits, int total_bits, int quant);

	int VbrControl_get_quant(void);
	void VbrControl_set_quant(float q);
	int VbrControl_get_intra(void);
	short VbrControl_get_drop(void);
	void VbrControl_close(void);