[FFmpeg-cvslog] avfilter: remove obsolete FF_API_ACONVERT_FILTER cruft
ffmpeg | branch: master | James Almer | Sun Sep 14 22:46:18 2014 -0300| [d1c49bcae9b7fd41df5c6804ac7f6a5c271a7c2e] | committer: Paul B Mahol avfilter: remove obsolete FF_API_ACONVERT_FILTER cruft Signed-off-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d1c49bcae9b7fd41df5c6804ac7f6a5c271a7c2e --- configure |2 - libavfilter/Makefile |1 - libavfilter/af_aconvert.c | 196 - libavfilter/allfilters.c |3 - libavfilter/version.h |3 - 5 files changed, 205 deletions(-) diff --git a/configure b/configure index 392cbb1..110a3fd 100755 --- a/configure +++ b/configure @@ -2532,7 +2532,6 @@ unix_protocol_deps="sys_un_h" unix_protocol_select="network" # filters -aconvert_filter_deps="swresample" amovie_filter_deps="avcodec avformat" aresample_filter_deps="swresample" ass_filter_deps="libass" @@ -5300,7 +5299,6 @@ done enabled zlib && add_cppflags -DZLIB_CONST # conditional library dependencies, in linking order -enabled aconvert_filter && prepend avfilter_deps "swresample" enabled amovie_filter && prepend avfilter_deps "avformat avcodec" enabled aresample_filter&& prepend avfilter_deps "swresample" enabled asyncts_filter && prepend avfilter_deps "avresample" diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 3241b76..6d868e7 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -29,7 +29,6 @@ OBJS = allfilters.o \ OBJS-$(CONFIG_AVCODEC) += avcodec.o -OBJS-$(CONFIG_ACONVERT_FILTER) += af_aconvert.o OBJS-$(CONFIG_ADELAY_FILTER) += af_adelay.o OBJS-$(CONFIG_AECHO_FILTER) += af_aecho.o OBJS-$(CONFIG_AEVAL_FILTER) += aeval.o diff --git a/libavfilter/af_aconvert.c b/libavfilter/af_aconvert.c deleted file mode 100644 index 19095cb..000 --- a/libavfilter/af_aconvert.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (c) 2010 S.N. Hemanth Meenakshisundaram - * Copyright (c) 2011 Stefano Sabatini - * Copyright (c) 2011 Mina Nagy Zaki - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * sample format and channel layout conversion audio filter - */ - -#include "libavutil/channel_layout.h" -#include "libavutil/opt.h" -#include "libswresample/swresample.h" -#include "avfilter.h" -#include "audio.h" -#include "internal.h" - -typedef struct { -const AVClass *class; -enum AVSampleFormat out_sample_fmt; -int64_t out_chlayout; -struct SwrContext *swr; -char *format_str; -char *channel_layout_str; -} AConvertContext; - -#define OFFSET(x) offsetof(AConvertContext, x) -#define A AV_OPT_FLAG_AUDIO_PARAM -#define F AV_OPT_FLAG_FILTERING_PARAM -static const AVOption aconvert_options[] = { -{ "sample_fmt", "", OFFSET(format_str), AV_OPT_TYPE_STRING, .flags = A|F }, -{ "channel_layout", "", OFFSET(channel_layout_str), AV_OPT_TYPE_STRING, .flags = A|F }, -{ NULL } -}; - -AVFILTER_DEFINE_CLASS(aconvert); - -static av_cold int init(AVFilterContext *ctx) -{ -AConvertContext *aconvert = ctx->priv; -int ret = 0; - -av_log(ctx, AV_LOG_WARNING, "This filter is deprecated, use aformat instead\n"); - -aconvert->out_sample_fmt = AV_SAMPLE_FMT_NONE; -aconvert->out_chlayout= 0; - -if (aconvert->format_str && strcmp(aconvert->format_str, "auto") && -(ret = ff_parse_sample_format(&aconvert->out_sample_fmt, aconvert->format_str, ctx)) < 0) -return ret; -if (aconvert->channel_layout_str && strcmp(aconvert->channel_layout_str, "auto")) -return ff_parse_channel_layout(&aconvert->out_chlayout, NULL, aconvert->channel_layout_str, ctx); -return ret; -} - -static av_cold void uninit(AVFilterContext *ctx) -{ -AConvertContext *aconvert = ctx->priv; -swr_free(&aconvert->swr); -} - -static int query_formats(AVFilterContext *ctx) -{ -AVFilterFormats *formats = NULL; -AConvertContext *aconvert = ctx->priv; -AVFilterLink *inlink = ctx->inputs[0]; -AVFilterLink *outlink = ctx->outputs[0]; -AVFilterChannelLayouts *layouts; - -ff_formats_ref(ff_all_f
[FFmpeg-cvslog] doc/filters: remove aconvert
ffmpeg | branch: master | Paul B Mahol | Wed Sep 17 07:55:56 2014 +| [f1a8943ddd15223483cd342a322d02d97e2116c2] | committer: Paul B Mahol doc/filters: remove aconvert Signed-off-by: Paul B Mahol > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f1a8943ddd15223483cd342a322d02d97e2116c2 --- doc/filters.texi | 35 --- 1 file changed, 35 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 02bb34e..9632838 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -309,41 +309,6 @@ build. Below is a description of the currently available audio filters. -@section aconvert - -Convert the input audio format to the specified formats. - -@emph{This filter is deprecated. Use @ref{aformat} instead.} - -The filter accepts a string of the form: -"@var{sample_format}:@var{channel_layout}". - -@var{sample_format} specifies the sample format, and can be a string or the -corresponding numeric value defined in @file{libavutil/samplefmt.h}. Use 'p' -suffix for a planar sample format. - -@var{channel_layout} specifies the channel layout, and can be a string -or the corresponding number value defined in @file{libavutil/channel_layout.h}. - -The special parameter "auto", signifies that the filter will -automatically select the output format depending on the output filter. - -@subsection Examples - -@itemize -@item -Convert input to float, planar, stereo: -@example -aconvert=fltp:stereo -@end example - -@item -Convert input to unsigned 8-bit, automatically select out channel layout: -@example -aconvert=u8:auto -@end example -@end itemize - @section adelay Delay one or more audio channels. ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] x86/me_cmp: port mmxext and sse2 sad functions to yasm
ffmpeg | branch: master | James Almer | Tue Sep 16 21:41:47 2014 -0300| [0456d169c469a79e305813d14c873fe698c8c572] | committer: Michael Niedermayer x86/me_cmp: port mmxext and sse2 sad functions to yasm Also add a missing c->pix_abs[0][0] initialization, and sse2 versions of sad16_x2, sad16_y2 and sad16_xy2 (%15 to %20 faster than mmxext). Since the _xy2 versions are not bitexact, they are accordingly marked as approximate. Signed-off-by: James Almer Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0456d169c469a79e305813d14c873fe698c8c572 --- libavcodec/x86/me_cmp.asm| 330 ++ libavcodec/x86/me_cmp_init.c | 203 +++--- 2 files changed, 379 insertions(+), 154 deletions(-) diff --git a/libavcodec/x86/me_cmp.asm b/libavcodec/x86/me_cmp.asm index b0741f3..27176f4 100644 --- a/libavcodec/x86/me_cmp.asm +++ b/libavcodec/x86/me_cmp.asm @@ -23,6 +23,10 @@ %include "libavutil/x86/x86util.asm" +SECTION_RODATA + +cextern pb_1 + SECTION .text %macro DIFF_PIXELS_1 4 @@ -465,3 +469,329 @@ cglobal hf_noise%1, 3,3,0, pix1, lsize, h INIT_MMX mmx HF_NOISE 8 HF_NOISE 16 + +;--- +;int ff_sad_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); +;--- +INIT_MMX mmxext +cglobal sad8, 4, 4, 0, v, pix1, pix2, stride +movu m2, [pix2q] +movu m1, [pix2q+strideq] +psadbwm2, [pix1q] +psadbwm1, [pix1q+strideq] +paddw m2, m1 + +%rep 3 +leapix1q, [pix1q+strideq*2] +leapix2q, [pix2q+strideq*2] +movu m0, [pix2q] +movu m1, [pix2q+strideq] +psadbwm0, [pix1q] +psadbwm1, [pix1q+strideq] +paddw m2, m0 +paddw m2, m1 +%endrep +movd eax, m2 +RET + +%macro SAD16 0 +cglobal sad16, 5, 5, 3, v, pix1, pix2, stride, h +pxor m2, m2 + +align 16 +.loop +movu m0, [pix2q] +movu m1, [pix2q+strideq] +psadbwm0, [pix1q] +psadbwm1, [pix1q+strideq] +paddw m2, m0 +paddw m2, m1 +%if mmsize == 8 +movu m0, [pix2q+8] +movu m1, [pix2q+strideq+8] +psadbwm0, [pix1q+8] +psadbwm1, [pix1q+strideq+8] +paddw m2, m0 +paddw m2, m1 +%endif +leapix1q, [pix1q+strideq*2] +leapix2q, [pix2q+strideq*2] +sub hd, 2 +jg .loop +%if mmsize == 16 +movhlps m0, m2 +paddw m2, m0 +%endif +movd eax, m2 +RET +%endmacro + +INIT_MMX mmxext +SAD16 +INIT_XMM sse2 +SAD16 + +;-- +;int ff_sad_x2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); +;-- +INIT_MMX mmxext +cglobal sad8_x2, 4, 4, 0, v, pix1, pix2, stride +movu m0, [pix2q] +movu m2, [pix2q+strideq] +pavgb m0, [pix2q+1] +pavgb m2, [pix2q+strideq+1] +psadbwm0, [pix1q] +psadbwm2, [pix1q+strideq] +paddw m0, m2 + +%rep 3 +leapix1q, [pix1q+2*strideq] +leapix2q, [pix2q+2*strideq] +movu m1, [pix2q] +movu m2, [pix2q+strideq] +pavgb m1, [pix2q+1] +pavgb m2, [pix2q+strideq+1] +psadbwm1, [pix1q] +psadbwm2, [pix1q+strideq] +paddw m0, m1 +paddw m0, m2 +%endrep +movd eax, m0 +RET + +%macro SAD16_X2 0 +cglobal sad16_x2, 5, 5, 5, v, pix1, pix2, stride, h +pxor m0, m0 + +align 16 +.loop: +movu m1, [pix2q] +movu m2, [pix2q+strideq] +%if mmsize == 16 +movu m3, [pix2q+1] +movu m4, [pix2q+strideq+1] +pavgb m1, m3 +pavgb m2, m4 +%else +pavgb m1, [pix2q+1] +pavgb m2, [pix2q+strideq+1] +%endif +psadbwm1, [pix1q] +psadbwm2, [pix1q+strideq] +paddw m0, m1 +paddw m0, m2 +%if mmsize == 8 +movu m1, [pix2q+8] +movu m2, [pix2q+strideq+8] +pavgb m1, [pix2q+9] +pavgb m2, [pix2q+strideq+9] +psadbwm1, [pix1q+8] +psadbwm2, [pix1q+strideq+8] +paddw m0, m1 +paddw m0, m2 +%endif +leapix1q, [pix1q+2*strideq] +leapix2q, [pix2q+2*strideq] +sub hd, 2 +jg .loop +%if mmsize == 16 +movhlps m1, m0 +paddw m0, m1 +%endif +movd eax, m0 +RET +%endmacro + +INIT_MMX mmxext +SAD16_X2 +INIT_XMM sse2 +SAD16_X2 + +;-- +;int ff_sad_y2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); +;-- +INIT_MMX mmxext +cglobal sad8_y2, 4, 4, 0, v, pix1, pix2, s
Re: [FFmpeg-cvslog] x86/me_cmp: port mmxext and sse2 sad functions to yasm
On Wed, Sep 17, 2014 at 11:41:32AM +0200, James Almer wrote: > ffmpeg | branch: master | James Almer | Tue Sep 16 > 21:41:47 2014 -0300| [0456d169c469a79e305813d14c873fe698c8c572] | committer: > Michael Niedermayer > > x86/me_cmp: port mmxext and sse2 sad functions to yasm > > Also add a missing c->pix_abs[0][0] initialization, and sse2 versions of > sad16_x2, sad16_y2 and sad16_xy2 (%15 to %20 faster than mmxext). > Since the _xy2 versions are not bitexact, they are accordingly marked as > approximate. > > Signed-off-by: James Almer > Signed-off-by: Michael Niedermayer > > > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0456d169c469a79e305813d14c873fe698c8c572 > --- > > libavcodec/x86/me_cmp.asm| 330 > ++ > libavcodec/x86/me_cmp_init.c | 203 +++--- > 2 files changed, 379 insertions(+), 154 deletions(-) > > diff --git a/libavcodec/x86/me_cmp.asm b/libavcodec/x86/me_cmp.asm > index b0741f3..27176f4 100644 > --- a/libavcodec/x86/me_cmp.asm > +++ b/libavcodec/x86/me_cmp.asm > @@ -23,6 +23,10 @@ > > %include "libavutil/x86/x86util.asm" > > +SECTION_RODATA > + > +cextern pb_1 > + > SECTION .text > > %macro DIFF_PIXELS_1 4 > @@ -465,3 +469,329 @@ cglobal hf_noise%1, 3,3,0, pix1, lsize, h > INIT_MMX mmx > HF_NOISE 8 > HF_NOISE 16 > + > +;--- > +;int ff_sad_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int > stride, int h); > +;--- > +INIT_MMX mmxext > +cglobal sad8, 4, 4, 0, v, pix1, pix2, stride > +movu m2, [pix2q] > +movu m1, [pix2q+strideq] > +psadbwm2, [pix1q] > +psadbwm1, [pix1q+strideq] > +paddw m2, m1 > + > +%rep 3 > +leapix1q, [pix1q+strideq*2] > +leapix2q, [pix2q+strideq*2] > +movu m0, [pix2q] > +movu m1, [pix2q+strideq] > +psadbwm0, [pix1q] > +psadbwm1, [pix1q+strideq] > +paddw m2, m0 > +paddw m2, m1 > +%endrep > +movd eax, m2 > +RET > + Sorry to notice that now but... what happened to the h parameter? [...] -- Clément B. pgpiZr8_jELFd.pgp Description: PGP signature ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
Re: [FFmpeg-cvslog] [FFmpeg-devel] x86/me_cmp: port mmxext and sse2 sad functions to yasm
On Wed, Sep 17, 2014 at 01:18:12PM +0200, Clément Bœsch wrote: > On Wed, Sep 17, 2014 at 11:41:32AM +0200, James Almer wrote: > > ffmpeg | branch: master | James Almer | Tue Sep 16 > > 21:41:47 2014 -0300| [0456d169c469a79e305813d14c873fe698c8c572] | > > committer: Michael Niedermayer > > > > x86/me_cmp: port mmxext and sse2 sad functions to yasm > > > > Also add a missing c->pix_abs[0][0] initialization, and sse2 versions of > > sad16_x2, sad16_y2 and sad16_xy2 (%15 to %20 faster than mmxext). > > Since the _xy2 versions are not bitexact, they are accordingly marked as > > approximate. > > > > Signed-off-by: James Almer > > Signed-off-by: Michael Niedermayer > > > > > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0456d169c469a79e305813d14c873fe698c8c572 > > --- > > > > libavcodec/x86/me_cmp.asm| 330 > > ++ > > libavcodec/x86/me_cmp_init.c | 203 +++--- > > 2 files changed, 379 insertions(+), 154 deletions(-) > > > > diff --git a/libavcodec/x86/me_cmp.asm b/libavcodec/x86/me_cmp.asm > > index b0741f3..27176f4 100644 > > --- a/libavcodec/x86/me_cmp.asm > > +++ b/libavcodec/x86/me_cmp.asm > > @@ -23,6 +23,10 @@ > > > > %include "libavutil/x86/x86util.asm" > > > > +SECTION_RODATA > > + > > +cextern pb_1 > > + > > SECTION .text > > > > %macro DIFF_PIXELS_1 4 > > @@ -465,3 +469,329 @@ cglobal hf_noise%1, 3,3,0, pix1, lsize, h > > INIT_MMX mmx > > HF_NOISE 8 > > HF_NOISE 16 > > + > > +;--- > > +;int ff_sad_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int > > stride, int h); > > +;--- > > +INIT_MMX mmxext > > +cglobal sad8, 4, 4, 0, v, pix1, pix2, stride > > +movu m2, [pix2q] > > +movu m1, [pix2q+strideq] > > +psadbwm2, [pix1q] > > +psadbwm1, [pix1q+strideq] > > +paddw m2, m1 > > + > > +%rep 3 > > +leapix1q, [pix1q+strideq*2] > > +leapix2q, [pix2q+strideq*2] > > +movu m0, [pix2q] > > +movu m1, [pix2q+strideq] > > +psadbwm0, [pix1q] > > +psadbwm1, [pix1q+strideq] > > +paddw m2, m0 > > +paddw m2, m1 > > +%endrep > > +movd eax, m2 > > +RET > > + > > Sorry to notice that now but... what happened to the h parameter? i had missed that when reviewing fixed [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB it is not once nor twice but times without number that the same ideas make their appearance in the world. -- Aristotle signature.asc Description: Digital signature ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/x86/me_cmp: fix sad8xh
ffmpeg | branch: master | Michael Niedermayer | Wed Sep 17 13:37:34 2014 +0200| [85f2c0124d898473d8f5bf8223206b7df486dad8] | committer: Michael Niedermayer avcodec/x86/me_cmp: fix sad8xh This adds back support for 8x4 and 8x16 it does not support 8x2, i think nothing uses that Found-by: ubitux Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=85f2c0124d898473d8f5bf8223206b7df486dad8 --- libavcodec/x86/me_cmp.asm | 36 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/libavcodec/x86/me_cmp.asm b/libavcodec/x86/me_cmp.asm index 27176f4..ef591f5 100644 --- a/libavcodec/x86/me_cmp.asm +++ b/libavcodec/x86/me_cmp.asm @@ -474,14 +474,15 @@ HF_NOISE 16 ;int ff_sad_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); ;--- INIT_MMX mmxext -cglobal sad8, 4, 4, 0, v, pix1, pix2, stride +cglobal sad8, 5, 5, 0, v, pix1, pix2, stride, h movu m2, [pix2q] movu m1, [pix2q+strideq] psadbwm2, [pix1q] psadbwm1, [pix1q+strideq] paddw m2, m1 +sub hd, 2 -%rep 3 +.loop: leapix1q, [pix1q+strideq*2] leapix2q, [pix2q+strideq*2] movu m0, [pix2q] @@ -490,7 +491,9 @@ cglobal sad8, 4, 4, 0, v, pix1, pix2, stride psadbwm1, [pix1q+strideq] paddw m2, m0 paddw m2, m1 -%endrep +sub hd, 2 +jne .loop + movd eax, m2 RET @@ -535,7 +538,7 @@ SAD16 ;int ff_sad_x2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); ;-- INIT_MMX mmxext -cglobal sad8_x2, 4, 4, 0, v, pix1, pix2, stride +cglobal sad8_x2, 5, 5, 0, v, pix1, pix2, stride, h movu m0, [pix2q] movu m2, [pix2q+strideq] pavgb m0, [pix2q+1] @@ -543,8 +546,9 @@ cglobal sad8_x2, 4, 4, 0, v, pix1, pix2, stride psadbwm0, [pix1q] psadbwm2, [pix1q+strideq] paddw m0, m2 +sub hd, 2 -%rep 3 +.loop: leapix1q, [pix1q+2*strideq] leapix2q, [pix2q+2*strideq] movu m1, [pix2q] @@ -555,7 +559,9 @@ cglobal sad8_x2, 4, 4, 0, v, pix1, pix2, stride psadbwm2, [pix1q+strideq] paddw m0, m1 paddw m0, m2 -%endrep +sub hd, 2 +jne .loop + movd eax, m0 RET @@ -611,7 +617,7 @@ SAD16_X2 ;int ff_sad_y2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); ;-- INIT_MMX mmxext -cglobal sad8_y2, 4, 4, 0, v, pix1, pix2, stride +cglobal sad8_y2, 5, 5, 0, v, pix1, pix2, stride, h movu m1, [pix2q] movu m0, [pix2q+strideq] movu m3, [pix2q+2*strideq] @@ -622,8 +628,9 @@ cglobal sad8_y2, 4, 4, 0, v, pix1, pix2, stride psadbwm0, [pix1q+strideq] paddw m0, m1 mova m1, m3 +sub hd, 2 -%rep 3 +.loop: leapix1q, [pix1q+2*strideq] leapix2q, [pix2q+2*strideq] movu m2, [pix2q] @@ -635,7 +642,9 @@ cglobal sad8_y2, 4, 4, 0, v, pix1, pix2, stride paddw m0, m1 paddw m0, m2 mova m1, m3 -%endrep +sub hd, 2 +jne .loop + movd eax, m0 RET @@ -691,7 +700,7 @@ SAD16_Y2 ;int ff_sad_approx_xy2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); ;--- INIT_MMX mmxext -cglobal sad8_approx_xy2, 4, 4, 0, v, pix1, pix2, stride +cglobal sad8_approx_xy2, 5, 5, 0, v, pix1, pix2, stride, h pxor m0, m0 mova m4, [pb_1] movu m1, [pix2q] @@ -708,8 +717,9 @@ cglobal sad8_approx_xy2, 4, 4, 0, v, pix1, pix2, stride psadbwm0, [pix1q+strideq] paddw m0, m1 mova m1, m3 +sub hd, 2 -%rep 3 +.loop: leapix1q, [pix1q+2*strideq] leapix2q, [pix2q+2*strideq] movu m2, [pix2q] @@ -724,7 +734,9 @@ cglobal sad8_approx_xy2, 4, 4, 0, v, pix1, pix2, stride paddw m0, m1 paddw m0, m2 mova m1, m3 -%endrep +sub hd, 2 +jne .loop + movd eax, m0 RET ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] cmdutils: Print a more sensible message in show_filters() w/o libavfilter
ffmpeg | branch: master | Diego Biurrun | Tue Sep 2 23:25:33 2014 +0200| [2dd09ebf5597fd5e4a573bee9cccf21ae821f286] | committer: Diego Biurrun cmdutils: Print a more sensible message in show_filters() w/o libavfilter Also avoid an unused variable warning for compilers w/o av_unused support. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2dd09ebf5597fd5e4a573bee9cccf21ae821f286 --- cmdutils.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index 202b288..96b40f3 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -1161,12 +1161,14 @@ int show_protocols(void *optctx, const char *opt, const char *arg) int show_filters(void *optctx, const char *opt, const char *arg) { -const AVFilter av_unused(*filter) = NULL; +#if CONFIG_AVFILTER +const AVFilter *filter = NULL; printf("Filters:\n"); -#if CONFIG_AVFILTER while ((filter = avfilter_next(filter))) printf("%-16s %s\n", filter->name, filter->description); +#else +printf("No filters available: libavfilter disabled\n"); #endif return 0; } ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '2dd09ebf5597fd5e4a573bee9cccf21ae821f286'
ffmpeg | branch: master | Michael Niedermayer | Wed Sep 17 19:59:10 2014 +0200| [9ac08d93b2aad6c34987ab68e55bce002c162423] | committer: Michael Niedermayer Merge commit '2dd09ebf5597fd5e4a573bee9cccf21ae821f286' * commit '2dd09ebf5597fd5e4a573bee9cccf21ae821f286': cmdutils: Print a more sensible message in show_filters() w/o libavfilter Conflicts: cmdutils.c Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ac08d93b2aad6c34987ab68e55bce002c162423 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avfilter: remove obsolete FF_API_FILL_FRAME cruft
ffmpeg | branch: master | James Almer | Sun Sep 14 21:31:12 2014 -0300| [fffc9a077d39e4776665f10129c33bfbf1a86c29] | committer: James Almer avfilter: remove obsolete FF_API_FILL_FRAME cruft Reviewed-by: Paul B Mahol Signed-off-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fffc9a077d39e4776665f10129c33bfbf1a86c29 --- libavfilter/avcodec.c | 20 libavfilter/avcodec.h | 41 - libavfilter/version.h |3 --- 3 files changed, 64 deletions(-) diff --git a/libavfilter/avcodec.c b/libavfilter/avcodec.c index ba11a25..e0d9015 100644 --- a/libavfilter/avcodec.c +++ b/libavfilter/avcodec.c @@ -135,23 +135,3 @@ int avfilter_copy_buf_props(AVFrame *dst, const AVFilterBufferRef *src) return 0; } #endif - -#if FF_API_FILL_FRAME -int avfilter_fill_frame_from_audio_buffer_ref(AVFrame *frame, - const AVFilterBufferRef *samplesref) -{ -return avfilter_copy_buf_props(frame, samplesref); -} - -int avfilter_fill_frame_from_video_buffer_ref(AVFrame *frame, - const AVFilterBufferRef *picref) -{ -return avfilter_copy_buf_props(frame, picref); -} - -int avfilter_fill_frame_from_buffer_ref(AVFrame *frame, -const AVFilterBufferRef *ref) -{ -return avfilter_copy_buf_props(frame, ref); -} -#endif diff --git a/libavfilter/avcodec.h b/libavfilter/avcodec.h index 8bbdad2..d3d0e20 100644 --- a/libavfilter/avcodec.h +++ b/libavfilter/avcodec.h @@ -66,45 +66,4 @@ AVFilterBufferRef *avfilter_get_buffer_ref_from_frame(enum AVMediaType type, int perms); #endif -#if FF_API_FILL_FRAME -/** - * Fill an AVFrame with the information stored in samplesref. - * - * @param frame an already allocated AVFrame - * @param samplesref an audio buffer reference - * @return >= 0 in case of success, a negative AVERROR code in case of - * failure - * @deprecated Use avfilter_copy_buf_props() instead. - */ -attribute_deprecated -int avfilter_fill_frame_from_audio_buffer_ref(AVFrame *frame, - const AVFilterBufferRef *samplesref); - -/** - * Fill an AVFrame with the information stored in picref. - * - * @param frame an already allocated AVFrame - * @param picref a video buffer reference - * @return >= 0 in case of success, a negative AVERROR code in case of - * failure - * @deprecated Use avfilter_copy_buf_props() instead. - */ -attribute_deprecated -int avfilter_fill_frame_from_video_buffer_ref(AVFrame *frame, - const AVFilterBufferRef *picref); - -/** - * Fill an AVFrame with information stored in ref. - * - * @param frame an already allocated AVFrame - * @param ref a video or audio buffer reference - * @return >= 0 in case of success, a negative AVERROR code in case of - * failure - * @deprecated Use avfilter_copy_buf_props() instead. - */ -attribute_deprecated -int avfilter_fill_frame_from_buffer_ref(AVFrame *frame, -const AVFilterBufferRef *ref); -#endif - #endif /* AVFILTER_AVCODEC_H */ diff --git a/libavfilter/version.h b/libavfilter/version.h index 7be5eeb..a251cb1 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -55,9 +55,6 @@ #ifndef FF_API_FOO_COUNT #define FF_API_FOO_COUNT(LIBAVFILTER_VERSION_MAJOR < 6) #endif -#ifndef FF_API_FILL_FRAME -#define FF_API_FILL_FRAME (LIBAVFILTER_VERSION_MAJOR < 5) -#endif #ifndef FF_API_AVFILTERBUFFER #define FF_API_AVFILTERBUFFER (LIBAVFILTER_VERSION_MAJOR < 6) #endif ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '44caf99ecae7bc1b907fab849ecaa72dd340ba2e'
ffmpeg | branch: master | Michael Niedermayer | Wed Sep 17 20:09:09 2014 +0200| [a4cefc25ed832118a6fde6b604649b9d5f430a9e] | committer: Michael Niedermayer Merge commit '44caf99ecae7bc1b907fab849ecaa72dd340ba2e' * commit '44caf99ecae7bc1b907fab849ecaa72dd340ba2e': fate: Add tests for RealAudio 1.0 (14.4) and RealAudio 2.0 (with 28.8) Conflicts: tests/fate/real.mak Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a4cefc25ed832118a6fde6b604649b9d5f430a9e --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: disable fate-ra4-288, the code uses floats and does not produce the same results on different platforms
ffmpeg | branch: master | Michael Niedermayer | Wed Sep 17 20:25:22 2014 +0200| [43633c5388d3237a492ba9614fc276c283c4e21a] | committer: Michael Niedermayer fate: disable fate-ra4-288, the code uses floats and does not produce the same results on different platforms Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=43633c5388d3237a492ba9614fc276c283c4e21a --- tests/fate/real.mak |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/fate/real.mak b/tests/fate/real.mak index 1dcd443..26d5776 100644 --- a/tests/fate/real.mak +++ b/tests/fate/real.mak @@ -1,8 +1,8 @@ FATE_REALAUDIO-$(call DEMDEC, RM, RA_144) += fate-ra3-144 fate-ra3-144: CMD = framecrc -i $(TARGET_SAMPLES)/realaudio/ra3.ra -FATE_REALAUDIO-$(call DEMDEC, RM, RA_288) += fate-ra4-288 -fate-ra4-288: CMD = framecrc -i $(TARGET_SAMPLES)/realaudio/ra4-288.ra +#FATE_REALAUDIO-$(call DEMDEC, RM, RA_288) += fate-ra4-288 +#fate-ra4-288: CMD = framecrc -i $(TARGET_SAMPLES)/realaudio/ra4-288.ra FATE_REALMEDIA_AUDIO-$(call DEMDEC, RM, RA_144) += fate-ra-144 fate-ra-144: CMD = md5 -i $(TARGET_SAMPLES)/real/ra3_in_rm_file.rm -f s16le ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] fate: Add tests for RealAudio 1.0 (14.4) and RealAudio 2.0 (with 28.8)
ffmpeg | branch: master | Katerina Barone-Adesi | Mon Jul 21 23:28:42 2014 +0200| [44caf99ecae7bc1b907fab849ecaa72dd340ba2e] | committer: Diego Biurrun fate: Add tests for RealAudio 1.0 (14.4) and RealAudio 2.0 (with 28.8) Signed-off-by: Diego Biurrun > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=44caf99ecae7bc1b907fab849ecaa72dd340ba2e --- tests/fate/real.mak| 10 ++- tests/ref/fate/ra3-144 | 51 + tests/ref/fate/ra4-288 | 73 3 files changed, 133 insertions(+), 1 deletion(-) diff --git a/tests/fate/real.mak b/tests/fate/real.mak index 612f771..2ad974c 100644 --- a/tests/fate/real.mak +++ b/tests/fate/real.mak @@ -1,3 +1,9 @@ +FATE_REALAUDIO-$(call DEMDEC, RM, RA_144) += fate-ra3-144 +fate-ra3-144: CMD = framecrc -i $(TARGET_SAMPLES)/realaudio/ra3.ra + +FATE_REALAUDIO-$(call DEMDEC, RM, RA_288) += fate-ra4-288 +fate-ra4-288: CMD = framecrc -i $(TARGET_SAMPLES)/realaudio/ra4-288.ra + FATE_REALMEDIA_AUDIO-$(call DEMDEC, RM, RA_144) += fate-ra-144 fate-ra-144: CMD = md5 -i $(TARGET_SAMPLES)/real/ra3_in_rm_file.rm -f s16le @@ -39,8 +45,10 @@ $(FATE_SIPR): CMP = oneoff FATE_REALMEDIA_AUDIO-$(call DEMDEC, RM, SIPR) += $(FATE_SIPR) fate-sipr: $(FATE_SIPR) +fate-realaudio: $(FATE_REALAUDIO-yes) fate-realmedia-audio: $(FATE_REALMEDIA_AUDIO-yes) fate-realmedia-video: $(FATE_REALMEDIA_VIDEO-yes) fate-realmedia: fate-realmedia-audio fate-realmedia-video +fate-real: fate-realaudio fate-realmedia -FATE_SAMPLES_AVCONV += $(FATE_REALMEDIA_AUDIO-yes) $(FATE_REALMEDIA_VIDEO-yes) +FATE_SAMPLES_AVCONV += $(FATE_REALAUDIO-yes) $(FATE_REALMEDIA_AUDIO-yes) $(FATE_REALMEDIA_VIDEO-yes) diff --git a/tests/ref/fate/ra3-144 b/tests/ref/fate/ra3-144 new file mode 100644 index 000..40bcaed --- /dev/null +++ b/tests/ref/fate/ra3-144 @@ -0,0 +1,51 @@ +#tb 0: 1/8000 +0, 0, 0, 160, 320, 0x +0,160,160, 160, 320, 0x4cfd5d74 +0,320,320, 160, 320, 0xbb60fa3d +0,480,480, 160, 320, 0x4d75097c +0,640,640, 160, 320, 0x59cbd3b4 +0,800,800, 160, 320, 0x0bcddb40 +0,960,960, 160, 320, 0x3d8ec98a +0, 1120, 1120, 160, 320, 0x3612b700 +0, 1280, 1280, 160, 320, 0x23cfb9b6 +0, 1440, 1440, 160, 320, 0xd339c9a5 +0, 1600, 1600, 160, 320, 0xffb6b7c9 +0, 1760, 1760, 160, 320, 0x8730ac48 +0, 1920, 1920, 160, 320, 0x1568b279 +0, 2080, 2080, 160, 320, 0xf2229fda +0, 2240, 2240, 160, 320, 0x91c0adbf +0, 2400, 2400, 160, 320, 0xe261a238 +0, 2560, 2560, 160, 320, 0x5c0d97c6 +0, 2720, 2720, 160, 320, 0x32d492de +0, 2880, 2880, 160, 320, 0x46a3af81 +0, 3040, 3040, 160, 320, 0xf8deaa2e +0, 3200, 3200, 160, 320, 0x48649866 +0, 3360, 3360, 160, 320, 0x4cb2a03e +0, 3520, 3520, 160, 320, 0x55e9a3d7 +0, 3680, 3680, 160, 320, 0xc60d9cf8 +0, 3840, 3840, 160, 320, 0x969098b8 +0, 4000, 4000, 160, 320, 0xe00b9f43 +0, 4160, 4160, 160, 320, 0x85c6af06 +0, 4320, 4320, 160, 320, 0x2037a849 +0, 4480, 4480, 160, 320, 0xd8e09379 +0, 4640, 4640, 160, 320, 0x5df69e34 +0, 4800, 4800, 160, 320, 0x95869c06 +0, 4960, 4960, 160, 320, 0x651c95a7 +0, 5120, 5120, 160, 320, 0xd433a2f4 +0, 5280, 5280, 160, 320, 0xc6c1a0e2 +0, 5440, 5440, 160, 320, 0x6cad9e61 +0, 5600, 5600, 160, 320, 0x57f5ab36 +0, 5760, 5760, 160, 320, 0x11fd9788 +0, 5920, 5920, 160, 320, 0x805db795 +0, 6080, 6080, 160, 320, 0xb306a36b +0, 6240, 6240, 160, 320, 0xa34d9933 +0, 6400, 6400, 160, 320, 0xbc24a23c +0, 6560, 6560, 160, 320, 0x6639a03c +0, 6720, 6720, 160, 320, 0x4f20ab13 +0, 6880, 6880, 160, 320, 0xe30ca2bb +0, 7040, 7040, 160, 320, 0x51e5ac4f +0, 7200, 7200, 160, 320, 0x2a369ff4 +0, 7360, 7360, 160, 320, 0xfbffaa78 +0, 7520, 7520, 160, 320, 0xf117a04f +0, 7680, 7680, 160, 320, 0x36479938 +0, 7840, 7840, 160, 320, 0xd1269299 diff --git a/tests/ref/fate/ra4-288 b/tests/ref/fate/ra4-288 new file mode 100644 index 000..6c0bde0 --- /dev/null +++ b/tests/ref/fate/ra4-288
[FFmpeg-cvslog] Merge commit 'c5560e72d0bb69f8a1ac9536570398f84388f396'
ffmpeg | branch: master | Michael Niedermayer | Wed Sep 17 20:38:56 2014 +0200| [8c71de762b84df7520f04818f98d6d70dbb063f2] | committer: Michael Niedermayer Merge commit 'c5560e72d0bb69f8a1ac9536570398f84388f396' * commit 'c5560e72d0bb69f8a1ac9536570398f84388f396': apetag: Fix APE tag size check Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8c71de762b84df7520f04818f98d6d70dbb063f2 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] apetag: Fix APE tag size check
ffmpeg | branch: master | Katerina Barone-Adesi | Tue Sep 16 01:40:24 2014 +0200| [c5560e72d0bb69f8a1ac9536570398f84388f396] | committer: Diego Biurrun apetag: Fix APE tag size check The size variable is (correctly) unsigned, but is passed to several functions which take signed parameters, such as avio_read, sometimes after having numbers added to it. So ensure that size remains within the bounds that these functions can handle. CC: libav-sta...@libav.org Signed-off-by: Diego Biurrun > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c5560e72d0bb69f8a1ac9536570398f84388f396 --- libavformat/apetag.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/apetag.c b/libavformat/apetag.c index 22884ef..bd8d0ed 100644 --- a/libavformat/apetag.c +++ b/libavformat/apetag.c @@ -57,8 +57,10 @@ static int ape_tag_read_field(AVFormatContext *s) av_log(s, AV_LOG_WARNING, "Invalid APE tag key '%s'.\n", key); return -1; } -if (size >= UINT_MAX) -return -1; +if (size > INT32_MAX - FF_INPUT_BUFFER_PADDING_SIZE) { +av_log(s, AV_LOG_ERROR, "APE tag size too large.\n"); +return AVERROR_INVALIDDATA; +} if (flags & APE_TAG_FLAG_IS_BINARY) { uint8_t filename[1024]; enum AVCodecID id; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/x86/vp9lpf: Always include x86util.asm
ffmpeg | branch: master | Michael Niedermayer | Wed Sep 17 23:36:53 2014 +0200| [41d82b85ab0ee8bb2931c1f783e30c38c2fb5206] | committer: Michael Niedermayer avcodec/x86/vp9lpf: Always include x86util.asm Fixes executable stack Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=41d82b85ab0ee8bb2931c1f783e30c38c2fb5206 --- libavcodec/x86/vp9lpf.asm |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/x86/vp9lpf.asm b/libavcodec/x86/vp9lpf.asm index cb57a25..416f08f 100644 --- a/libavcodec/x86/vp9lpf.asm +++ b/libavcodec/x86/vp9lpf.asm @@ -20,10 +20,10 @@ ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;** -%if ARCH_X86_64 - %include "libavutil/x86/x86util.asm" +%if ARCH_X86_64 + SECTION_RODATA cextern pb_3 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] swscale/x86: do not expect registers to be preserved across inline ASM blocks
ffmpeg | branch: master | Vitor Sessak | Wed Sep 17 21:10:16 2014 +0200| [55d11d277bf52b0c7f88f45f1d3fd336fa8c431f] | committer: Michael Niedermayer swscale/x86: do not expect registers to be preserved across inline ASM blocks Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=55d11d277bf52b0c7f88f45f1d3fd336fa8c431f --- libswscale/x86/swscale.c | 83 -- 1 file changed, 44 insertions(+), 39 deletions(-) diff --git a/libswscale/x86/swscale.c b/libswscale/x86/swscale.c index c4c0e28..8ce87b3 100644 --- a/libswscale/x86/swscale.c +++ b/libswscale/x86/swscale.c @@ -205,36 +205,20 @@ static void yuv2yuvX_sse3(const int16_t *filter, int filterSize, yuv2yuvX_mmxext(filter, filterSize, src, dest, dstW, dither, offset); return; } -if (offset) { -__asm__ volatile("movq (%0), %%xmm3\n\t" - "movdqa%%xmm3, %%xmm4\n\t" - "psrlq $24, %%xmm3\n\t" - "psllq $40, %%xmm4\n\t" - "por %%xmm4, %%xmm3\n\t" - :: "r"(dither) - ); -} else { -__asm__ volatile("movq (%0), %%xmm3\n\t" - :: "r"(dither) - ); -} filterSize--; -__asm__ volatile( -"pxor %%xmm0, %%xmm0\n\t" -"punpcklbw %%xmm0, %%xmm3\n\t" -"movd %0, %%xmm1\n\t" -"punpcklwd %%xmm1, %%xmm1\n\t" -"punpckldq %%xmm1, %%xmm1\n\t" -"punpcklqdq %%xmm1, %%xmm1\n\t" -"psllw $3, %%xmm1\n\t" -"paddw %%xmm1, %%xmm3\n\t" -"psraw $4, %%xmm3\n\t" -::"m"(filterSize) - ); -__asm__ volatile( -"movdqa%%xmm3, %%xmm4\n\t" -"movdqa%%xmm3, %%xmm7\n\t" -"movl %3, %%ecx\n\t" +#define MAIN_FUNCTION \ +"pxor %%xmm0, %%xmm0 \n\t" \ +"punpcklbw %%xmm0, %%xmm3 \n\t" \ +"movd %4, %%xmm1 \n\t" \ +"punpcklwd %%xmm1, %%xmm1 \n\t" \ +"punpckldq %%xmm1, %%xmm1 \n\t" \ +"punpcklqdq %%xmm1, %%xmm1 \n\t" \ +"psllw $3, %%xmm1 \n\t" \ +"paddw %%xmm1, %%xmm3 \n\t" \ +"psraw $4, %%xmm3 \n\t" \ +"movdqa %%xmm3, %%xmm4 \n\t" \ +"movdqa %%xmm3, %%xmm7 \n\t" \ +"movl %3, %%ecx \n\t" \ "mov %0, %%"REG_d" \n\t"\ "mov(%%"REG_d"), %%"REG_S" \n\t"\ ".p2align 4 \n\t" /* FIXME Unroll? */\ @@ -252,20 +236,41 @@ static void yuv2yuvX_sse3(const int16_t *filter, int filterSize, " jnz1b \n\t"\ "psraw $3, %%xmm3 \n\t"\ "psraw $3, %%xmm4 \n\t"\ -"packuswb %%xmm4, %%xmm3 \n\t" -"movntdq %%xmm3, (%1, %%"REG_c")\n\t" +"packuswb %%xmm4, %%xmm3 \n\t"\ +"movntdq %%xmm3, (%1, %%"REG_c")\n\t"\ "add $16, %%"REG_c" \n\t"\ "cmp %2, %%"REG_c" \n\t"\ -"movdqa%%xmm7, %%xmm3\n\t" -"movdqa%%xmm7, %%xmm4\n\t" +"movdqa %%xmm7, %%xmm3\n\t" \ +"movdqa %%xmm7, %%xmm4\n\t" \ "mov %0, %%"REG_d" \n\t"\ "mov(%%"REG_d"), %%"REG_S" \n\t"\ -"jb 1b \n\t"\ -:: "g" (filter), - "r" (dest-offset), "g" ((x86_reg)(dstW+offset)), "m" (offset) -: XMM_CLOBBERS("%xmm0" , "%xmm1" , "%xmm2" , "%xmm3" , "%xmm4" , "%xmm5" , "%xmm7" ,) - "%"REG_d, "%"REG_S, "%"REG_c -); +"jb 1b \n\t" + +if (offset) { +__asm__ volatile( +"movq %5, %%xmm3 \n\t" +"movdqa%%xmm3, %%xmm4 \n\t" +"psrlq$24, %%xmm3 \n\t" +"psllq$40, %%xmm4 \n\t" +"por %%xmm4, %%xmm3 \n\t" +MAIN_FUNCTION + :: "g" (filter), + "r" (dest-offset), "g" ((x86_reg)(dstW+offset)), "m" (offset), + "m"(filterSize), "m"(((uint64_t *) dither)[0]) + : XMM_CLOBBERS("%xmm0" , "%xmm1" , "%xmm2" , "%xmm3" , "%xmm4" , "%xmm5" , "%xmm7" ,) +"%"REG_d, "%"REG_S, "%"REG_c + ); +} else { +__asm__ volatile( +"movq %5, %%xmm3 \n\t" +MAIN_FUNCTION + :: "g" (filter), + "r" (dest-offset), "g" ((
[FFmpeg-cvslog] vf_deshake: rename Transform.vector to Transform.vec to avoid compiler confusion
ffmpeg | branch: master | Andreas Cadhalpun | Thu Sep 18 00:08:05 2014 +0200| [739f179dd6a21f3fcbd3d23d3d14cde9bb587ead] | committer: Michael Niedermayer vf_deshake: rename Transform.vector to Transform.vec to avoid compiler confusion The token 'vector' is a keyword in the Vector/SIMD Multimedia Extension data types and thus should not be used as a variable name. This fixes building on powerpc/ppc64el. Signed-off-by: Andreas Cadhalpun Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=739f179dd6a21f3fcbd3d23d3d14cde9bb587ead --- libavfilter/deshake.h|2 +- libavfilter/vf_deshake.c | 50 +++--- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/libavfilter/deshake.h b/libavfilter/deshake.h index 62e81c3..becd6c2 100644 --- a/libavfilter/deshake.h +++ b/libavfilter/deshake.h @@ -48,7 +48,7 @@ typedef struct { } MotionVector; typedef struct { -MotionVector vector; ///< Motion vector +MotionVector vec; ///< Motion vector double angle; ///< Angle of rotation double zoom; ///< Zoom percentage } Transform; diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c index ccc263b..b5d5457 100644 --- a/libavfilter/vf_deshake.c +++ b/libavfilter/vf_deshake.c @@ -294,8 +294,8 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2, for (x = 0; x < deshake->rx * 2 + 1; x++) { //av_log(NULL, AV_LOG_ERROR, "%5d ", deshake->counts[x][y]); if (deshake->counts[x][y] > count_max_value) { -t->vector.x = x - deshake->rx; -t->vector.y = y - deshake->ry; +t->vec.x = x - deshake->rx; +t->vec.y = y - deshake->ry; count_max_value = deshake->counts[x][y]; } } @@ -304,12 +304,12 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2, p_x = (center_x - width / 2.0); p_y = (center_y - height / 2.0); -t->vector.x += (cos(t->angle)-1)*p_x - sin(t->angle)*p_y; -t->vector.y += sin(t->angle)*p_x + (cos(t->angle)-1)*p_y; +t->vec.x += (cos(t->angle)-1)*p_x - sin(t->angle)*p_y; +t->vec.y += sin(t->angle)*p_x + (cos(t->angle)-1)*p_y; // Clamp max shift & rotation? -t->vector.x = av_clipf(t->vector.x, -deshake->rx * 2, deshake->rx * 2); -t->vector.y = av_clipf(t->vector.y, -deshake->ry * 2, deshake->ry * 2); +t->vec.x = av_clipf(t->vec.x, -deshake->rx * 2, deshake->rx * 2); +t->vec.y = av_clipf(t->vec.y, -deshake->ry * 2, deshake->ry * 2); t->angle = av_clipf(t->angle, -0.1, 0.1); //av_log(NULL, AV_LOG_ERROR, "%d x %d\n", avg->x, avg->y); @@ -407,8 +407,8 @@ static int config_props(AVFilterLink *link) DeshakeContext *deshake = link->dst->priv; deshake->ref = NULL; -deshake->last.vector.x = 0; -deshake->last.vector.y = 0; +deshake->last.vec.x = 0; +deshake->last.vec.y = 0; deshake->last.angle = 0; deshake->last.zoom = 0; @@ -476,57 +476,57 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) // Copy transform so we can output it later to compare to the smoothed value -orig.vector.x = t.vector.x; -orig.vector.y = t.vector.y; +orig.vec.x = t.vec.x; +orig.vec.y = t.vec.y; orig.angle = t.angle; orig.zoom = t.zoom; // Generate a one-sided moving exponential average -deshake->avg.vector.x = alpha * t.vector.x + (1.0 - alpha) * deshake->avg.vector.x; -deshake->avg.vector.y = alpha * t.vector.y + (1.0 - alpha) * deshake->avg.vector.y; +deshake->avg.vec.x = alpha * t.vec.x + (1.0 - alpha) * deshake->avg.vec.x; +deshake->avg.vec.y = alpha * t.vec.y + (1.0 - alpha) * deshake->avg.vec.y; deshake->avg.angle = alpha * t.angle + (1.0 - alpha) * deshake->avg.angle; deshake->avg.zoom = alpha * t.zoom + (1.0 - alpha) * deshake->avg.zoom; // Remove the average from the current motion to detect the motion that // is not on purpose, just as jitter from bumping the camera -t.vector.x -= deshake->avg.vector.x; -t.vector.y -= deshake->avg.vector.y; +t.vec.x -= deshake->avg.vec.x; +t.vec.y -= deshake->avg.vec.y; t.angle -= deshake->avg.angle; t.zoom -= deshake->avg.zoom; // Invert the motion to undo it -t.vector.x *= -1; -t.vector.y *= -1; +t.vec.x *= -1; +t.vec.y *= -1; t.angle *= -1; // Write statistics to file if (deshake->fp) { -snprintf(tmp, 256, "%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f\n", orig.vector.x, deshake->avg.vector.x, t.vector.x, orig.vector.y, deshake->avg.vector.y, t.vector.y, orig.angle, deshake->avg.angle, t.angle, orig.zoom, deshake->avg.zoom, t.zoom); +snprintf(tmp, 256, "%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f\n", orig.vec.x, deshake->avg.vec.x, t.vec.x, orig.vec.y, deshake->avg.vec.y, t.vec.y, orig.a
[FFmpeg-cvslog] apetag: Fix APE tag size check
ffmpeg | branch: release/2.4 | Katerina Barone-Adesi | Tue Sep 16 01:40:24 2014 +0200| [b45ab61b24a8f2aeafdd4451491b1b30b7875ee5] | committer: Diego Biurrun apetag: Fix APE tag size check The size variable is (correctly) unsigned, but is passed to several functions which take signed parameters, such as avio_read, sometimes after having numbers added to it. So ensure that size remains within the bounds that these functions can handle. (cherry picked from commit c5560e72d0bb69f8a1ac9536570398f84388f396) Signed-off-by: Diego Biurrun > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b45ab61b24a8f2aeafdd4451491b1b30b7875ee5 --- libavformat/apetag.c |6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/apetag.c b/libavformat/apetag.c index 22884ef..bd8d0ed 100644 --- a/libavformat/apetag.c +++ b/libavformat/apetag.c @@ -57,8 +57,10 @@ static int ape_tag_read_field(AVFormatContext *s) av_log(s, AV_LOG_WARNING, "Invalid APE tag key '%s'.\n", key); return -1; } -if (size >= UINT_MAX) -return -1; +if (size > INT32_MAX - FF_INPUT_BUFFER_PADDING_SIZE) { +av_log(s, AV_LOG_ERROR, "APE tag size too large.\n"); +return AVERROR_INVALIDDATA; +} if (flags & APE_TAG_FLAG_IS_BINARY) { uint8_t filename[1024]; enum AVCodecID id; ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit 'b45ab61b24a8f2aeafdd4451491b1b30b7875ee5' into release/2.4
ffmpeg | branch: release/2.4 | Michael Niedermayer | Thu Sep 18 01:04:20 2014 +0200| [ab02548c8a71adc8f049b7630ca7602dc85be062] | committer: Michael Niedermayer Merge commit 'b45ab61b24a8f2aeafdd4451491b1b30b7875ee5' into release/2.4 * commit 'b45ab61b24a8f2aeafdd4451491b1b30b7875ee5': apetag: Fix APE tag size check Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ab02548c8a71adc8f049b7630ca7602dc85be062 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] vf_deshake: rename Transform.vector to Transform.vec to avoid compiler confusion
ffmpeg | branch: release/2.4 | Andreas Cadhalpun | Thu Sep 18 00:08:05 2014 +0200| [dc4e34a2f05917deae2c6e68783dba089da5eb8d] | committer: Michael Niedermayer vf_deshake: rename Transform.vector to Transform.vec to avoid compiler confusion The token 'vector' is a keyword in the Vector/SIMD Multimedia Extension data types and thus should not be used as a variable name. This fixes building on powerpc/ppc64el. Signed-off-by: Andreas Cadhalpun Signed-off-by: Michael Niedermayer (cherry picked from commit 739f179dd6a21f3fcbd3d23d3d14cde9bb587ead) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dc4e34a2f05917deae2c6e68783dba089da5eb8d --- libavfilter/deshake.h|2 +- libavfilter/vf_deshake.c | 50 +++--- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/libavfilter/deshake.h b/libavfilter/deshake.h index 62e81c3..becd6c2 100644 --- a/libavfilter/deshake.h +++ b/libavfilter/deshake.h @@ -48,7 +48,7 @@ typedef struct { } MotionVector; typedef struct { -MotionVector vector; ///< Motion vector +MotionVector vec; ///< Motion vector double angle; ///< Angle of rotation double zoom; ///< Zoom percentage } Transform; diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c index ccc263b..b5d5457 100644 --- a/libavfilter/vf_deshake.c +++ b/libavfilter/vf_deshake.c @@ -294,8 +294,8 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2, for (x = 0; x < deshake->rx * 2 + 1; x++) { //av_log(NULL, AV_LOG_ERROR, "%5d ", deshake->counts[x][y]); if (deshake->counts[x][y] > count_max_value) { -t->vector.x = x - deshake->rx; -t->vector.y = y - deshake->ry; +t->vec.x = x - deshake->rx; +t->vec.y = y - deshake->ry; count_max_value = deshake->counts[x][y]; } } @@ -304,12 +304,12 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2, p_x = (center_x - width / 2.0); p_y = (center_y - height / 2.0); -t->vector.x += (cos(t->angle)-1)*p_x - sin(t->angle)*p_y; -t->vector.y += sin(t->angle)*p_x + (cos(t->angle)-1)*p_y; +t->vec.x += (cos(t->angle)-1)*p_x - sin(t->angle)*p_y; +t->vec.y += sin(t->angle)*p_x + (cos(t->angle)-1)*p_y; // Clamp max shift & rotation? -t->vector.x = av_clipf(t->vector.x, -deshake->rx * 2, deshake->rx * 2); -t->vector.y = av_clipf(t->vector.y, -deshake->ry * 2, deshake->ry * 2); +t->vec.x = av_clipf(t->vec.x, -deshake->rx * 2, deshake->rx * 2); +t->vec.y = av_clipf(t->vec.y, -deshake->ry * 2, deshake->ry * 2); t->angle = av_clipf(t->angle, -0.1, 0.1); //av_log(NULL, AV_LOG_ERROR, "%d x %d\n", avg->x, avg->y); @@ -407,8 +407,8 @@ static int config_props(AVFilterLink *link) DeshakeContext *deshake = link->dst->priv; deshake->ref = NULL; -deshake->last.vector.x = 0; -deshake->last.vector.y = 0; +deshake->last.vec.x = 0; +deshake->last.vec.y = 0; deshake->last.angle = 0; deshake->last.zoom = 0; @@ -476,57 +476,57 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) // Copy transform so we can output it later to compare to the smoothed value -orig.vector.x = t.vector.x; -orig.vector.y = t.vector.y; +orig.vec.x = t.vec.x; +orig.vec.y = t.vec.y; orig.angle = t.angle; orig.zoom = t.zoom; // Generate a one-sided moving exponential average -deshake->avg.vector.x = alpha * t.vector.x + (1.0 - alpha) * deshake->avg.vector.x; -deshake->avg.vector.y = alpha * t.vector.y + (1.0 - alpha) * deshake->avg.vector.y; +deshake->avg.vec.x = alpha * t.vec.x + (1.0 - alpha) * deshake->avg.vec.x; +deshake->avg.vec.y = alpha * t.vec.y + (1.0 - alpha) * deshake->avg.vec.y; deshake->avg.angle = alpha * t.angle + (1.0 - alpha) * deshake->avg.angle; deshake->avg.zoom = alpha * t.zoom + (1.0 - alpha) * deshake->avg.zoom; // Remove the average from the current motion to detect the motion that // is not on purpose, just as jitter from bumping the camera -t.vector.x -= deshake->avg.vector.x; -t.vector.y -= deshake->avg.vector.y; +t.vec.x -= deshake->avg.vec.x; +t.vec.y -= deshake->avg.vec.y; t.angle -= deshake->avg.angle; t.zoom -= deshake->avg.zoom; // Invert the motion to undo it -t.vector.x *= -1; -t.vector.y *= -1; +t.vec.x *= -1; +t.vec.y *= -1; t.angle *= -1; // Write statistics to file if (deshake->fp) { -snprintf(tmp, 256, "%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f\n", orig.vector.x, deshake->avg.vector.x, t.vector.x, orig.vector.y, deshake->avg.vector.y, t.vector.y, orig.angle, deshake->avg.angle, t.angle, orig.zoom, deshake->avg.zoom, t.zoom); +snprintf(tmp, 256, "%f, %f, %f, %f, %f, %f, %f, %f
[FFmpeg-cvslog] avcodec/x86/vp9lpf: Always include x86util.asm
ffmpeg | branch: release/2.4 | Michael Niedermayer | Wed Sep 17 23:36:53 2014 +0200| [d694ab846cf194862d5a0aa70217849b248c26ab] | committer: Michael Niedermayer avcodec/x86/vp9lpf: Always include x86util.asm Fixes executable stack Signed-off-by: Michael Niedermayer (cherry picked from commit 41d82b85ab0ee8bb2931c1f783e30c38c2fb5206) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d694ab846cf194862d5a0aa70217849b248c26ab --- libavcodec/x86/vp9lpf.asm |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/x86/vp9lpf.asm b/libavcodec/x86/vp9lpf.asm index cb57a25..416f08f 100644 --- a/libavcodec/x86/vp9lpf.asm +++ b/libavcodec/x86/vp9lpf.asm @@ -20,10 +20,10 @@ ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;** -%if ARCH_X86_64 - %include "libavutil/x86/x86util.asm" +%if ARCH_X86_64 + SECTION_RODATA cextern pb_3 ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] configure: Use the right variables in check_host_cpp
ffmpeg | branch: master | Jörg Krause | Thu Sep 11 13:55:48 2014 +0200| [3f2c70355ab722bc9f741bd3ed8224c7cfb62379] | committer: Martin Storsjö configure: Use the right variables in check_host_cpp HOSTCPPFLAGS and HOSTCFLAGS are only set in config.mak. Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f2c70355ab722bc9f741bd3ed8224c7cfb62379 --- configure |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index a7b3c55..59dd453 100755 --- a/configure +++ b/configure @@ -1067,7 +1067,7 @@ check_host_cpp(){ log check_host_cpp "$@" cat > $TMPC log_file $TMPC -check_cmd $host_cc $HOSTCPPFLAGS $HOSTCFLAGS "$@" $(hostcc_e $TMPO) $TMPC +check_cmd $host_cc $host_cppflags $host_cflags "$@" $(hostcc_e $TMPO) $TMPC } check_host_cppflags(){ ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '3f2c70355ab722bc9f741bd3ed8224c7cfb62379'
ffmpeg | branch: master | Michael Niedermayer | Thu Sep 18 01:41:43 2014 +0200| [343643fdca4f438020e6a035cb9660ed772e7c88] | committer: Michael Niedermayer Merge commit '3f2c70355ab722bc9f741bd3ed8224c7cfb62379' * commit '3f2c70355ab722bc9f741bd3ed8224c7cfb62379': configure: Use the right variables in check_host_cpp See: 453944cc77b9ea27c74011eb7c0e20c887b321cf Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=343643fdca4f438020e6a035cb9660ed772e7c88 --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] Merge commit '2bb2c2bd75e5f4b28a945511cda77e0a1a44c758'
ffmpeg | branch: master | Michael Niedermayer | Thu Sep 18 02:10:55 2014 +0200| [986f63d17fa14e757fd11b4b50acac563bd1bb9d] | committer: Michael Niedermayer Merge commit '2bb2c2bd75e5f4b28a945511cda77e0a1a44c758' * commit '2bb2c2bd75e5f4b28a945511cda77e0a1a44c758': rtpenc_chain: Pass the initial time_base hint on to the chained muxer See: [FFmpeg-devel] [PATCH] avformat/rtpenc_chain: Set timebase Merged-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=986f63d17fa14e757fd11b4b50acac563bd1bb9d --- ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] rtpenc_chain: Pass the initial time_base hint on to the chained muxer
ffmpeg | branch: master | Martin Storsjö | Wed Sep 17 12:03:18 2014 +0300| [2bb2c2bd75e5f4b28a945511cda77e0a1a44c758] | committer: Martin Storsjö rtpenc_chain: Pass the initial time_base hint on to the chained muxer In practice this hint is ignored - the rtp muxer always overwrites the stream time base without taking the hint into account. But as a general practice this is the correct way to pass a time base hint on to a chained muxer. This avoids warnings about using the codec time base as hint being deprecated. Signed-off-by: Martin Storsjö > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2bb2c2bd75e5f4b28a945511cda77e0a1a44c758 --- libavformat/rtpenc_chain.c |1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/rtpenc_chain.c b/libavformat/rtpenc_chain.c index 10c4020..773a7db 100644 --- a/libavformat/rtpenc_chain.c +++ b/libavformat/rtpenc_chain.c @@ -73,6 +73,7 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s, rtpctx->start_time_realtime = s->start_time_realtime; avcodec_copy_context(rtpctx->streams[0]->codec, st->codec); +rtpctx->streams[0]->time_base = st->time_base; if (handle) { ret = ffio_fdopen(&rtpctx->pb, handle); ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] x86/me_cmp: combine sad functions into a single macro
ffmpeg | branch: master | James Almer | Wed Sep 17 21:45:38 2014 -0300| [77f9a81ccaadb34f309dc8922e8939442e4e81aa] | committer: James Almer x86/me_cmp: combine sad functions into a single macro No point in having the sad8 functions separate now that the loop is no longer unrolled. Reviewed-by: Michael Niedermayer Signed-off-by: James Almer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=77f9a81ccaadb34f309dc8922e8939442e4e81aa --- libavcodec/x86/me_cmp.asm | 221 +++-- 1 file changed, 93 insertions(+), 128 deletions(-) diff --git a/libavcodec/x86/me_cmp.asm b/libavcodec/x86/me_cmp.asm index ef591f5..b657642 100644 --- a/libavcodec/x86/me_cmp.asm +++ b/libavcodec/x86/me_cmp.asm @@ -473,43 +473,35 @@ HF_NOISE 16 ;--- ;int ff_sad_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); ;--- -INIT_MMX mmxext -cglobal sad8, 5, 5, 0, v, pix1, pix2, stride, h +;%1 = 8/16 +%macro SAD 1 +cglobal sad%1, 5, 5, 3, v, pix1, pix2, stride, h movu m2, [pix2q] movu m1, [pix2q+strideq] psadbwm2, [pix1q] psadbwm1, [pix1q+strideq] paddw m2, m1 -sub hd, 2 - -.loop: -leapix1q, [pix1q+strideq*2] -leapix2q, [pix2q+strideq*2] -movu m0, [pix2q] -movu m1, [pix2q+strideq] -psadbwm0, [pix1q] -psadbwm1, [pix1q+strideq] +%if %1 != mmsize +movu m0, [pix2q+8] +movu m1, [pix2q+strideq+8] +psadbwm0, [pix1q+8] +psadbwm1, [pix1q+strideq+8] paddw m2, m0 paddw m2, m1 +%endif sub hd, 2 -jne .loop - -movd eax, m2 -RET - -%macro SAD16 0 -cglobal sad16, 5, 5, 3, v, pix1, pix2, stride, h -pxor m2, m2 align 16 -.loop +.loop: +leapix1q, [pix1q+strideq*2] +leapix2q, [pix2q+strideq*2] movu m0, [pix2q] movu m1, [pix2q+strideq] psadbwm0, [pix1q] psadbwm1, [pix1q+strideq] paddw m2, m0 paddw m2, m1 -%if mmsize == 8 +%if %1 != mmsize movu m0, [pix2q+8] movu m1, [pix2q+strideq+8] psadbwm0, [pix1q+8] @@ -517,8 +509,6 @@ align 16 paddw m2, m0 paddw m2, m1 %endif -leapix1q, [pix1q+strideq*2] -leapix2q, [pix2q+strideq*2] sub hd, 2 jg .loop %if mmsize == 16 @@ -530,47 +520,47 @@ align 16 %endmacro INIT_MMX mmxext -SAD16 +SAD 8 +SAD 16 INIT_XMM sse2 -SAD16 +SAD 16 ;-- ;int ff_sad_x2_(MpegEncContext *v, uint8_t *pix1, uint8_t *pix2, int stride, int h); ;-- -INIT_MMX mmxext -cglobal sad8_x2, 5, 5, 0, v, pix1, pix2, stride, h +;%1 = 8/16 +%macro SAD_X2 1 +cglobal sad%1_x2, 5, 5, 5, v, pix1, pix2, stride, h movu m0, [pix2q] movu m2, [pix2q+strideq] +%if mmsize == 16 +movu m3, [pix2q+1] +movu m4, [pix2q+strideq+1] +pavgb m0, m3 +pavgb m2, m4 +%else pavgb m0, [pix2q+1] pavgb m2, [pix2q+strideq+1] +%endif psadbwm0, [pix1q] psadbwm2, [pix1q+strideq] paddw m0, m2 -sub hd, 2 - -.loop: -leapix1q, [pix1q+2*strideq] -leapix2q, [pix2q+2*strideq] -movu m1, [pix2q] -movu m2, [pix2q+strideq] -pavgb m1, [pix2q+1] -pavgb m2, [pix2q+strideq+1] -psadbwm1, [pix1q] -psadbwm2, [pix1q+strideq] +%if %1 != mmsize +movu m1, [pix2q+8] +movu m2, [pix2q+strideq+8] +pavgb m1, [pix2q+9] +pavgb m2, [pix2q+strideq+9] +psadbwm1, [pix1q+8] +psadbwm2, [pix1q+strideq+8] paddw m0, m1 paddw m0, m2 +%endif sub hd, 2 -jne .loop - -movd eax, m0 -RET - -%macro SAD16_X2 0 -cglobal sad16_x2, 5, 5, 5, v, pix1, pix2, stride, h -pxor m0, m0 align 16 .loop: +leapix1q, [pix1q+2*strideq] +leapix2q, [pix2q+2*strideq] movu m1, [pix2q] movu m2, [pix2q+strideq] %if mmsize == 16 @@ -586,7 +576,7 @@ align 16 psadbwm2, [pix1q+strideq] paddw m0, m1 paddw m0, m2 -%if mmsize == 8 +%if %1 != mmsize movu m1, [pix2q+8] movu m2, [pix2q+strideq+8] pavgb m1, [pix2q+9] @@ -596,8 +586,6 @@ align 16 paddw m0, m1 paddw m0, m2 %endif -leapix1q, [pix1q+2*strideq] -leapix2q, [pix2q+2*strideq] sub hd, 2 jg .loop %if mmsize == 16 @@ -609,56 +597,45 @@ align 16 %endmacro INIT_MMX mmxext -SAD16_X2 +SAD_X2 8 +SAD_X2 16 INIT_XMM sse2 -SAD16_X2 +SAD_X2 16 ;---
Re: [FFmpeg-cvslog] avcodec/x86/vp9lpf: Always include x86util.asm
On 18.09.2014, at 01:40, g...@videolan.org (Michael Niedermayer) wrote: > ffmpeg | branch: release/2.4 | Michael Niedermayer | Wed > Sep 17 23:36:53 2014 +0200| [d694ab846cf194862d5a0aa70217849b248c26ab] | > committer: Michael Niedermayer > > avcodec/x86/vp9lpf: Always include x86util.asm > > Fixes executable stack What does "fixes" mean? Are we not using -Wl,noexecstack? Leaving the compiler a choice in it does seem risky to me. ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
Re: [FFmpeg-cvslog] avcodec/x86/vp9lpf: Always include x86util.asm
On Thu, Sep 18, 2014 at 07:53:03AM +0200, Reimar Döffinger wrote: > On 18.09.2014, at 01:40, g...@videolan.org (Michael Niedermayer) wrote: > > ffmpeg | branch: release/2.4 | Michael Niedermayer | Wed > > Sep 17 23:36:53 2014 +0200| [d694ab846cf194862d5a0aa70217849b248c26ab] | > > committer: Michael Niedermayer > > > > avcodec/x86/vp9lpf: Always include x86util.asm > > > > Fixes executable stack > > What does "fixes" mean? According to https://lintian.debian.org/tags/shlib-with-executable-stack.html "Executable stack is usually an error as it is only needed if the code contains GCC trampolines or similar constructs which uses code on the stack. One possible source for false positives are object files built from assembler files which don't define a proper .note.GNU-stack section." I'd say this is exactly what happened here > Are we not using -Wl,noexecstack? > Leaving the compiler a choice in it does seem risky to me. -- Clément B. pgpnozI8NtLrc.pgp Description: PGP signature ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog