lavfi: let gcc realign the stack on public graph driving functions

The functions which actually drive the filter graph by pushing
frames through it need to ensure an aligned stack for SIMD functions.

This fixes a crash in YADIF filter when using a mingw build in a MSVC
application.

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Hendrik Leppkes 2013-03-15 20:44:57 +01:00 committed by Martin Storsjö
parent c0c2b96c13
commit 20c86571cc
2 changed files with 8 additions and 4 deletions

View File

@ -58,7 +58,8 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
return 0;
}
int av_buffersink_get_frame(AVFilterContext *ctx, AVFrame *frame)
int attribute_align_arg av_buffersink_get_frame(AVFilterContext *ctx,
AVFrame *frame)
{
BufferSinkContext *s = ctx->priv;
AVFilterLink *link = ctx->inputs[0];
@ -98,7 +99,8 @@ static int read_from_fifo(AVFilterContext *ctx, AVFrame *frame,
}
int av_buffersink_get_samples(AVFilterContext *ctx, AVFrame *frame, int nb_samples)
int attribute_align_arg av_buffersink_get_samples(AVFilterContext *ctx,
AVFrame *frame, int nb_samples)
{
BufferSinkContext *s = ctx->priv;
AVFilterLink *link = ctx->inputs[0];
@ -144,7 +146,8 @@ static void compat_free_buffer(AVFilterBuffer *buf)
av_free(buf);
}
static int compat_read(AVFilterContext *ctx, AVFilterBufferRef **pbuf, int nb_samples)
static int attribute_align_arg compat_read(AVFilterContext *ctx,
AVFilterBufferRef **pbuf, int nb_samples)
{
AVFilterBufferRef *buf;
AVFrame *frame;

View File

@ -88,7 +88,8 @@ int av_buffersrc_write_frame(AVFilterContext *ctx, const AVFrame *frame)
return ret;
}
int av_buffersrc_add_frame(AVFilterContext *ctx, AVFrame *frame)
int attribute_align_arg av_buffersrc_add_frame(AVFilterContext *ctx,
AVFrame *frame)
{
BufferSourceContext *s = ctx->priv;
AVFrame *copy;