mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-12 18:10:13 +01:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: mss3: use standard zigzag table mss3: split DSP functions that are used in MTS2(MSS4) into separate file motion-test: do not use getopt() tcp: add initial timeout limit for incoming connections configure: Change the rdtsc check to a linker check avconv: propagate fatal errors from lavfi. lavfi: add error handling to filter_samples(). fate-run: make avconv() properly deal with multiple inputs. asplit: don't leak the input buffer. af_resample: fix request_frame() behavior. af_asyncts: fix request_frame() behavior. libx264: support aspect ratio switching matroskadec: honor error_recognition when encountering unknown elements. lavr: resampling: add support for s32p, fltp, and dblp internal sample formats lavr: resampling: add filter type and Kaiser window beta to AVOptions lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format lavr: mix: validate internal sample format in ff_audio_mix_init() Conflicts: ffmpeg.c ffplay.c libavcodec/libx264.c libavfilter/audio.c libavfilter/split.c libavformat/tcp.c tests/fate-run.sh Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -107,11 +107,12 @@ static int config_output(AVFilterLink *outlink)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void send_out(AVFilterContext *ctx, int out_id)
|
||||
static int send_out(AVFilterContext *ctx, int out_id)
|
||||
{
|
||||
AStreamSyncContext *as = ctx->priv;
|
||||
struct buf_queue *queue = &as->queue[out_id];
|
||||
AVFilterBufferRef *buf = queue->buf[queue->tail];
|
||||
int ret;
|
||||
|
||||
queue->buf[queue->tail] = NULL;
|
||||
as->var_values[VAR_B1 + out_id]++;
|
||||
@@ -121,11 +122,12 @@ static void send_out(AVFilterContext *ctx, int out_id)
|
||||
av_q2d(ctx->outputs[out_id]->time_base) * buf->pts;
|
||||
as->var_values[VAR_T1 + out_id] += buf->audio->nb_samples /
|
||||
(double)ctx->inputs[out_id]->sample_rate;
|
||||
ff_filter_samples(ctx->outputs[out_id], buf);
|
||||
ret = ff_filter_samples(ctx->outputs[out_id], buf);
|
||||
queue->nb--;
|
||||
queue->tail = (queue->tail + 1) % QUEUE_SIZE;
|
||||
if (as->req[out_id])
|
||||
as->req[out_id]--;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void send_next(AVFilterContext *ctx)
|
||||
@@ -165,7 +167,7 @@ static int request_frame(AVFilterLink *outlink)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
|
||||
static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
|
||||
{
|
||||
AVFilterContext *ctx = inlink->dst;
|
||||
AStreamSyncContext *as = ctx->priv;
|
||||
@@ -175,6 +177,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
|
||||
insamples;
|
||||
as->eof &= ~(1 << id);
|
||||
send_next(ctx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
AVFilter avfilter_af_astreamsync = {
|
||||
|
||||
Reference in New Issue
Block a user