*****************************************************************************/
#include <stdlib.h>
#include <string.h>
-#include <math.h>
#include <vlc/vlc.h>
#include <vlc/input.h>
if( p_sys->f_fps > 0 )
{
- if( id->p_encoder->fmt_out.i_codec == VLC_FOURCC( 'm', 'p', 'g', 'v' ) ||
- id->p_encoder->fmt_out.i_codec == VLC_FOURCC( 'm', 'p', '1', 'v' ) ||
- id->p_encoder->fmt_out.i_codec == VLC_FOURCC( 'm', 'p', '2', 'v' ) )
- { /* ffmpeg mpeg1/2 wants integer, 30 not 29.97, for example */
- p_sys->f_fps = nearbyint(p_sys->f_fps);
- id->p_encoder->fmt_out.video.i_frame_rate = p_sys->f_fps;
- id->p_encoder->fmt_out.video.i_frame_rate_base = 1;
- }
- else
- { /* scale by 1000 so you can get non-integer rates, like 29.97 */
- id->p_encoder->fmt_out.video.i_frame_rate =
- nearbyint(p_sys->f_fps * 1000) ;
- id->p_encoder->fmt_out.video.i_frame_rate_base = 1000;
- }
+ id->p_encoder->fmt_out.video.i_frame_rate =
+ p_sys->f_fps * 1001 + 0.5;
+ id->p_encoder->fmt_out.video.i_frame_rate_base = 1001;
}
}
else if( p_fmt->i_cat == SPU_ES && (p_sys->i_scodec || p_sys->psz_senc) )
id->p_encoder->fmt_out.video.i_frame_rate;
id->p_encoder->fmt_in.video.i_frame_rate_base =
id->p_encoder->fmt_out.video.i_frame_rate_base;
+
date_Init( &id->interpolated_pts,
id->p_encoder->fmt_out.video.i_frame_rate,
id->p_encoder->fmt_out.video.i_frame_rate_base );