Commit bcefafa2 authored by Marton Balint's avatar Marton Balint Committed by Diego Biurrun

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: 's avatarMarton Balint <cus@passwd.hu>
Reviewed-by: 's avatarStephen Hutchinson <qyot27@gmail.com>
Signed-off-by: 's avatarDiego Biurrun <diego@biurrun.de>
parent 481ff3cf
...@@ -237,13 +237,12 @@ static int avisynth_create_stream_video(AVFormatContext *s, AVStream *st) ...@@ -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) ...@@ -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, st->duration = avs->vi->num_audio_samples;
avs->vi->audio_samples_per_second }; avpriv_set_pts_info(st, 64, 1, avs->vi->audio_samples_per_second);
st->duration = avs->vi->num_audio_samples;
switch (avs->vi->sample_type) { switch (avs->vi->sample_type) {
case AVS_SAMPLE_INT8: case AVS_SAMPLE_INT8:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment