mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avisynth: Fix setting stream timebase
Stream timebase should be set using avpriv_set_pts_info, otherwise avctx->pkt_timebase is not correct, leading to A/V desync. Signed-off-by: Marton Balint <cus@passwd.hu> Reviewed-by: Stephen Hutchinson <qyot27@gmail.com> Signed-off-by: Diego Biurrun <diego@biurrun.de>
This commit is contained in:
parent
481ff3cf01
commit
bcefafa226
@ -237,13 +237,12 @@ static int avisynth_create_stream_video(AVFormatContext *s, AVStream *st)
|
|||||||
st->codecpar->width = avs->vi->width;
|
st->codecpar->width = avs->vi->width;
|
||||||
st->codecpar->height = avs->vi->height;
|
st->codecpar->height = avs->vi->height;
|
||||||
|
|
||||||
st->time_base = (AVRational) { avs->vi->fps_denominator,
|
|
||||||
avs->vi->fps_numerator };
|
|
||||||
st->avg_frame_rate = (AVRational) { avs->vi->fps_numerator,
|
st->avg_frame_rate = (AVRational) { avs->vi->fps_numerator,
|
||||||
avs->vi->fps_denominator };
|
avs->vi->fps_denominator };
|
||||||
st->start_time = 0;
|
st->start_time = 0;
|
||||||
st->duration = avs->vi->num_frames;
|
st->duration = avs->vi->num_frames;
|
||||||
st->nb_frames = avs->vi->num_frames;
|
st->nb_frames = avs->vi->num_frames;
|
||||||
|
avpriv_set_pts_info(st, 32, avs->vi->fps_denominator, avs->vi->fps_numerator);
|
||||||
|
|
||||||
switch (avs->vi->pixel_type) {
|
switch (avs->vi->pixel_type) {
|
||||||
#ifdef USING_AVISYNTH
|
#ifdef USING_AVISYNTH
|
||||||
@ -311,9 +310,8 @@ static int avisynth_create_stream_audio(AVFormatContext *s, AVStream *st)
|
|||||||
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
|
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
|
||||||
st->codecpar->sample_rate = avs->vi->audio_samples_per_second;
|
st->codecpar->sample_rate = avs->vi->audio_samples_per_second;
|
||||||
st->codecpar->channels = avs->vi->nchannels;
|
st->codecpar->channels = avs->vi->nchannels;
|
||||||
st->time_base = (AVRational) { 1,
|
|
||||||
avs->vi->audio_samples_per_second };
|
|
||||||
st->duration = avs->vi->num_audio_samples;
|
st->duration = avs->vi->num_audio_samples;
|
||||||
|
avpriv_set_pts_info(st, 64, 1, avs->vi->audio_samples_per_second);
|
||||||
|
|
||||||
switch (avs->vi->sample_type) {
|
switch (avs->vi->sample_type) {
|
||||||
case AVS_SAMPLE_INT8:
|
case AVS_SAMPLE_INT8:
|
||||||
|
Loading…
Reference in New Issue
Block a user