[FFmpeg-cvslog] lavfi/vf_scale_vaapi: set output SAR

2018-01-18 Thread Rodger Combs
ffmpeg | branch: master | Rodger Combs  | Fri Jan 12 
19:08:27 2018 -0600| [381a4820c64ba2d1b3ddc3a50147961f1d8c5848] | committer: 
Rodger Combs

lavfi/vf_scale_vaapi: set output SAR

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=381a4820c64ba2d1b3ddc3a50147961f1d8c5848
---

 libavfilter/vf_scale_vaapi.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/libavfilter/vf_scale_vaapi.c b/libavfilter/vf_scale_vaapi.c
index 22e928c098..4bead5aaf4 100644
--- a/libavfilter/vf_scale_vaapi.c
+++ b/libavfilter/vf_scale_vaapi.c
@@ -240,6 +240,11 @@ static int scale_vaapi_config_output(AVFilterLink *outlink)
 goto fail;
 }
 
+if (inlink->sample_aspect_ratio.num)
+outlink->sample_aspect_ratio = av_mul_q((AVRational){outlink->h * 
inlink->w, outlink->w * inlink->h}, inlink->sample_aspect_ratio);
+else
+outlink->sample_aspect_ratio = inlink->sample_aspect_ratio;
+
 av_freep();
 av_hwframe_constraints_free();
 return 0;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] fate: update filter-acrossfade test reference file

2018-01-18 Thread James Almer
ffmpeg | branch: master | James Almer  | Thu Jan 18 19:12:30 
2018 -0300| [fb3fd4d506238c7ef731a2c031c744abb1c54813] | committer: James Almer

fate: update filter-acrossfade test reference file

 durandal_1707: 8088b5d69c broke the acrossfade test
<@durandal_1707> jamrial: there was test?
 durandal_1707: fate-filter-acrossfade
<@durandal_1707> what broke?
 what used to be one frame is now two
<@durandal_1707> ahh, just update test

Signed-off-by: James Almer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fb3fd4d506238c7ef731a2c031c744abb1c54813
---

 tests/ref/fate/filter-acrossfade | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/ref/fate/filter-acrossfade b/tests/ref/fate/filter-acrossfade
index 0567b022e8..8d524c4d2e 100644
--- a/tests/ref/fate/filter-acrossfade
+++ b/tests/ref/fate/filter-acrossfade
@@ -178,7 +178,8 @@
 0, 174968, 174968, 1024, 4096, 0x74ffeeae
 0, 175992, 175992,  408, 1632, 0x28353dae
 0, 176400, 176400,88200,   352800, 0x4fb492af
-0, 264600, 264600, 1912, 7648, 0xf0c93a5a
+0, 264600, 264600,  888, 3552, 0xa5a41b07
+0, 265488, 265488, 1024, 4096, 0xc1c61f53
 0, 266512, 266512, 1024, 4096, 0x35b6d595
 0, 267536, 267536, 1024, 4096, 0xc4481118
 0, 268560, 268560, 1024, 4096, 0x5dc0b58d

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avformat: small AVFormatContext doxy cosmetics

2018-01-18 Thread James Almer
ffmpeg | branch: master | James Almer  | Thu Jan 18 13:00:25 
2018 -0300| [4f6b34f1f803a103f321330bc5f9e4a01f788925] | committer: James Almer

avformat: small AVFormatContext doxy cosmetics

Signed-off-by: James Almer 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4f6b34f1f803a103f321330bc5f9e4a01f788925
---

 libavformat/avformat.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index bfb57d7757..e5740be2b4 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1019,10 +1019,10 @@ typedef struct AVStream {
  *
  */
 
+#define MAX_STD_TIMEBASES (30*12+30+3+6)
 /**
  * Stream information used internally by avformat_find_stream_info()
  */
-#define MAX_STD_TIMEBASES (30*12+30+3+6)
 struct {
 int64_t last_dts;
 int64_t duration_gcd;
@@ -1859,7 +1859,7 @@ typedef struct AVFormatContext {
  */
 char *protocol_whitelist;
 
-/*
+/**
  * A callback for opening new IO streams.
  *
  * Whenever a muxer or a demuxer needs to open an IO stream (typically from

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] avfilter/af_afade: acrossfade: switch to activate

2018-01-18 Thread Paul B Mahol
ffmpeg | branch: master | Paul B Mahol  | Thu Jan 18 11:17:03 
2018 +0100| [8088b5d69c51b9329ccbc6d1125cf55c54ff6374] | committer: Paul B Mahol

avfilter/af_afade: acrossfade: switch to activate

Signed-off-by: Paul B Mahol 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8088b5d69c51b9329ccbc6d1125cf55c54ff6374
---

 libavfilter/af_afade.c | 207 -
 1 file changed, 83 insertions(+), 124 deletions(-)

diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index 4d0b31eac7..285b5b6557 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -23,10 +23,14 @@
  * fade audio filter
  */
 
+#define FF_INTERNAL_FIELDS 1
+#include "framequeue.h"
+
 #include "libavutil/audio_fifo.h"
 #include "libavutil/opt.h"
 #include "audio.h"
 #include "avfilter.h"
+#include "filters.h"
 #include "internal.h"
 
 typedef struct AudioFadeContext {
@@ -39,6 +43,7 @@ typedef struct AudioFadeContext {
 int64_t start_time;
 int overlap;
 int cf0_eof;
+int prev_size;
 int crossfade_is_over;
 AVAudioFifo *fifo[2];
 int64_t pts;
@@ -428,157 +433,127 @@ CROSSFADE(flt, float)
 CROSSFADE(s16, int16_t)
 CROSSFADE(s32, int32_t)
 
-static int acrossfade_filter_frame(AVFilterLink *inlink, AVFrame *in)
+static int activate(AVFilterContext *ctx)
 {
-AVFilterContext *ctx  = inlink->dst;
 AudioFadeContext *s   = ctx->priv;
 AVFilterLink *outlink = ctx->outputs[0];
-AVFrame *out, *cf[2] = { NULL };
-int ret = 0, nb_samples;
+AVFrame *in = NULL, *out, *cf[2] = { NULL };
+int ret = 0, nb_samples, status;
+int64_t pts;
 
 if (s->crossfade_is_over) {
+ret = ff_inlink_consume_frame(ctx->inputs[1], );
+if (ret < 0) {
+return ret;
+} else if (ff_inlink_acknowledge_status(ctx->inputs[1], , 
)) {
+ff_outlink_set_status(ctx->outputs[0], status, pts);
+return 0;
+} else {
+if (ff_outlink_frame_wanted(ctx->outputs[0]) && !in) {
+ff_inlink_request_frame(ctx->inputs[1]);
+return 0;
+}
+}
 in->pts = s->pts;
 s->pts += av_rescale_q(in->nb_samples,
 (AVRational){ 1, outlink->sample_rate }, outlink->time_base);
 return ff_filter_frame(outlink, in);
-} else if (inlink == ctx->inputs[0]) {
-av_audio_fifo_write(s->fifo[0], (void **)in->extended_data, 
in->nb_samples);
+}
 
-nb_samples = av_audio_fifo_size(s->fifo[0]) - s->nb_samples;
+if (ff_framequeue_queued_samples(>inputs[0]->fifo) > s->nb_samples) {
+nb_samples = ff_framequeue_queued_samples(>inputs[0]->fifo) - 
s->nb_samples;
 if (nb_samples > 0) {
-out = ff_get_audio_buffer(outlink, nb_samples);
-if (!out) {
-ret = AVERROR(ENOMEM);
-goto fail;
-}
-av_audio_fifo_read(s->fifo[0], (void **)out->extended_data, 
nb_samples);
-out->pts = s->pts;
-s->pts += av_rescale_q(nb_samples,
-(AVRational){ 1, outlink->sample_rate }, outlink->time_base);
-ret = ff_filter_frame(outlink, out);
-}
-} else if (av_audio_fifo_size(s->fifo[1]) < s->nb_samples) {
-if (!s->overlap && av_audio_fifo_size(s->fifo[0]) > 0) {
-nb_samples = av_audio_fifo_size(s->fifo[0]);
-
-cf[0] = ff_get_audio_buffer(outlink, nb_samples);
-out = ff_get_audio_buffer(outlink, nb_samples);
-if (!out || !cf[0]) {
-ret = AVERROR(ENOMEM);
-goto fail;
+ret = ff_inlink_consume_samples(ctx->inputs[0], nb_samples, 
nb_samples, );
+if (ret < 0) {
+return ret;
 }
-av_audio_fifo_read(s->fifo[0], (void **)cf[0]->extended_data, 
nb_samples);
-
-s->fade_samples(out->extended_data, cf[0]->extended_data, 
nb_samples,
-outlink->channels, -1, nb_samples - 1, nb_samples, 
s->curve);
-out->pts = s->pts;
-s->pts += av_rescale_q(nb_samples,
-(AVRational){ 1, outlink->sample_rate }, outlink->time_base);
-ret = ff_filter_frame(outlink, out);
-if (ret < 0)
-goto fail;
 }
-
-av_audio_fifo_write(s->fifo[1], (void **)in->extended_data, 
in->nb_samples);
-} else if (av_audio_fifo_size(s->fifo[1]) >= s->nb_samples) {
-av_audio_fifo_write(s->fifo[1], (void **)in->extended_data, 
in->nb_samples);
-
+in->pts = s->pts;
+s->pts += av_rescale_q(in->nb_samples,
+(AVRational){ 1, outlink->sample_rate }, outlink->time_base);
+return ff_filter_frame(outlink, in);
+} else if (ff_framequeue_queued_samples(>inputs[1]->fifo) >= 
s->nb_samples) {
 if (s->overlap) {
-cf[0] = ff_get_audio_buffer(outlink, s->nb_samples);
-