1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Hendrik Leppkes 2013-03-15 20:44:57 +01:00 committed by Michael Niedermayer
parent 8d84e90c9b
commit d8dccf69ff
2 changed files with 6 additions and 6 deletions

View File

@ -117,7 +117,7 @@ int av_buffersink_get_frame(AVFilterContext *ctx, AVFrame *frame)
return av_buffersink_get_frame_flags(ctx, frame, 0); return av_buffersink_get_frame_flags(ctx, frame, 0);
} }
int av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags) int attribute_align_arg av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags)
{ {
BufferSinkContext *buf = ctx->priv; BufferSinkContext *buf = ctx->priv;
AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *inlink = ctx->inputs[0];
@ -169,7 +169,7 @@ 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; BufferSinkContext *s = ctx->priv;
AVFilterLink *link = ctx->inputs[0]; AVFilterLink *link = ctx->inputs[0];
@ -264,7 +264,7 @@ static void compat_free_buffer(AVFilterBuffer *buf)
av_free(buf); av_free(buf);
} }
static int compat_read(AVFilterContext *ctx, AVFilterBufferRef **pbuf, int nb_samples, int flags) static int attribute_align_arg compat_read(AVFilterContext *ctx, AVFilterBufferRef **pbuf, int nb_samples, int flags)
{ {
AVFilterBufferRef *buf; AVFilterBufferRef *buf;
AVFrame *frame; AVFrame *frame;
@ -348,7 +348,7 @@ AVRational av_buffersink_get_frame_rate(AVFilterContext *ctx)
return ctx->inputs[0]->frame_rate; return ctx->inputs[0]->frame_rate;
} }
int av_buffersink_poll_frame(AVFilterContext *ctx) int attribute_align_arg av_buffersink_poll_frame(AVFilterContext *ctx)
{ {
BufferSinkContext *buf = ctx->priv; BufferSinkContext *buf = ctx->priv;
AVFilterLink *inlink = ctx->inputs[0]; AVFilterLink *inlink = ctx->inputs[0];

View File

@ -113,8 +113,8 @@ int av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags
return ret; return ret;
} }
static int av_buffersrc_add_frame_internal(AVFilterContext *ctx, static int attribute_align_arg av_buffersrc_add_frame_internal(AVFilterContext *ctx,
AVFrame *frame, int flags) AVFrame *frame, int flags)
{ {
BufferSourceContext *s = ctx->priv; BufferSourceContext *s = ctx->priv;
AVFrame *copy; AVFrame *copy;