diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-01-13 10:09:26 -0500 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2014-01-17 11:11:08 +0100 |
commit | c9db8694a83647a9d466ffdbbba0b40da79aef1a (patch) | |
tree | be2cc6084f4c2990c633986f116929255f26f8a9 /libavformat | |
parent | 104a97beaffa6348e6fd2c2d07d67c1402322bb3 (diff) | |
download | ffmpeg-c9db8694a83647a9d466ffdbbba0b40da79aef1a.tar.gz |
avisynth: fix setting packet properties
Reviewed-by: Stephen Hutchinson <qyot27@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/avisynth.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c index 10a07401b9..a8d46a2c65 100644 --- a/libavformat/avisynth.c +++ b/libavformat/avisynth.c @@ -423,10 +423,10 @@ static void avisynth_next_stream(AVFormatContext *s, AVStream **st, { AviSynthContext *avs = s->priv_data; - pkt->stream_index = avs->curr_stream++; + avs->curr_stream++; avs->curr_stream %= s->nb_streams; - *st = s->streams[pkt->stream_index]; + *st = s->streams[avs->curr_stream]; if ((*st)->discard == AVDISCARD_ALL) *discard = 1; else @@ -454,10 +454,6 @@ static int avisynth_read_packet_video(AVFormatContext *s, AVPacket *pkt, if (discard) return 0; - pkt->pts = n; - pkt->dts = n; - pkt->duration = 1; - #ifdef USING_AVISYNTH /* Define the bpp values for the new AviSynth 2.6 colorspaces. * Since AvxSynth doesn't have these functions, special-case @@ -485,6 +481,11 @@ static int avisynth_read_packet_video(AVFormatContext *s, AVPacket *pkt, if (av_new_packet(pkt, pkt->size) < 0) return AVERROR(ENOMEM); + pkt->pts = n; + pkt->dts = n; + pkt->duration = 1; + pkt->stream_index = avs->curr_stream; + frame = avs_library.avs_get_frame(avs->clip, n); error = avs_library.avs_clip_get_error(avs->clip); if (error) { @@ -561,10 +562,6 @@ static int avisynth_read_packet_audio(AVFormatContext *s, AVPacket *pkt, if (discard) return 0; - pkt->pts = n; - pkt->dts = n; - pkt->duration = samples; - pkt->size = avs_bytes_per_channel_sample(avs->vi) * samples * avs->vi->nchannels; if (!pkt->size) @@ -573,6 +570,11 @@ static int avisynth_read_packet_audio(AVFormatContext *s, AVPacket *pkt, if (av_new_packet(pkt, pkt->size) < 0) return AVERROR(ENOMEM); + pkt->pts = n; + pkt->dts = n; + pkt->duration = samples; + pkt->stream_index = avs->curr_stream; + avs_library.avs_get_audio(avs->clip, pkt->data, n, samples); error = avs_library.avs_clip_get_error(avs->clip); if (error) { |