[libav-devel] [PATCH 3/3] x86: hpeldsp: Move avg_pixels8_x2_mmx() out of hpeldsp_rnd_template.c
The function is only instantiated once, so there is no point in keeping it in a template file. --- Now places the function in a hpeldsp-specific file. libavcodec/x86/Makefile |3 +- libavcodec/x86/dsputil_mmx.h |3 ++ libavcodec/x86/hpeldsp_init.c |3 +- libavcodec/x86/hpeldsp_mmx.c | 52 + libavcodec/x86/hpeldsp_rnd_template.c | 22 -- 5 files changed, 58 insertions(+), 25 deletions(-) create mode 100644 libavcodec/x86/hpeldsp_mmx.c diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile index f3dbb4c..da4798f 100644 --- a/libavcodec/x86/Makefile +++ b/libavcodec/x86/Makefile @@ -40,7 +40,8 @@ MMX-OBJS-$(CONFIG_DSPUTIL) += x86/dsputil_mmx.o \ MMX-OBJS-$(CONFIG_ENCODERS)+= x86/dsputilenc_mmx.o \ x86/motion_est.o -MMX-OBJS-$(CONFIG_HPELDSP) += x86/fpel_mmx.o +MMX-OBJS-$(CONFIG_HPELDSP) += x86/fpel_mmx.o\ + x86/hpeldsp_mmx.o MMX-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_mmx.o YASM-OBJS-$(CONFIG_AAC_DECODER)+= x86/sbrdsp.o diff --git a/libavcodec/x86/dsputil_mmx.h b/libavcodec/x86/dsputil_mmx.h index 98d7900..5fe7366 100644 --- a/libavcodec/x86/dsputil_mmx.h +++ b/libavcodec/x86/dsputil_mmx.h @@ -173,6 +173,9 @@ void ff_avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, void ff_put_pixels16_sse2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h); +void ff_avg_pixels8_x2_mmx(uint8_t *block, const uint8_t *pixels, + ptrdiff_t line_size, int h); + void ff_put_rv40_qpel8_mc33_mmx(uint8_t *block, uint8_t *pixels, ptrdiff_t stride); void ff_put_rv40_qpel16_mc33_mmx(uint8_t *block, uint8_t *pixels, ptrdiff_t stride); void ff_avg_rv40_qpel8_mc33_mmx(uint8_t *block, uint8_t *pixels, ptrdiff_t stride); diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c index e79f343..bcfa715 100644 --- a/libavcodec/x86/hpeldsp_init.c +++ b/libavcodec/x86/hpeldsp_init.c @@ -75,6 +75,7 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h); #define avg_pixels8_mmx ff_avg_pixels8_mmx +#define avg_pixels8_x2_mmx ff_avg_pixels8_x2_mmx #define avg_pixels16_mmxff_avg_pixels16_mmx #define put_pixels8_mmx ff_put_pixels8_mmx #define put_pixels16_mmxff_put_pixels16_mmx @@ -86,7 +87,6 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, /***/ /* MMX no rounding */ -#define NO_RND 1 #define DEF(x, y) x ## _no_rnd_ ## y ## _mmx #define SET_RND MOVQ_WONE #define PAVGBP(a, b, c, d, e, f)PAVGBP_MMX_NO_RND(a, b, c, d, e, f) @@ -99,7 +99,6 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, #undef SET_RND #undef PAVGBP #undef PAVGB -#undef NO_RND /***/ /* MMX rounding */ diff --git a/libavcodec/x86/hpeldsp_mmx.c b/libavcodec/x86/hpeldsp_mmx.c new file mode 100644 index 000..36d4dcc --- /dev/null +++ b/libavcodec/x86/hpeldsp_mmx.c @@ -0,0 +1,52 @@ +/* + * MMX-optimized avg/put pixel routines + * + * Copyright (c) 2001 Fabrice Bellard + * + * This file is part of Libav. + * + * Libav 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. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#include "config.h" +#include "dsputil_mmx.h" + +#if HAVE_MMX_INLINE + +void ff_avg_pixels8_x2_mmx(uint8_t *block, const uint8_t *pixels, + ptrdiff_t line_size, int h) +{ +MOVQ_BFE(mm6); +JUMPALIGN(); +do { +__asm__ volatile( +"movq %1, %%mm0\n\t" +"movq 1%1, %%mm1 \n\t" +"movq %0, %%mm3\n\t" +PAVGB_MMX(%%mm0, %%mm1, %%mm2, %%mm6) +PAVGB_MMX(%%mm3, %%mm2, %%mm0, %%mm6) +"movq %%mm0, %0\n\t" +:"+m"(*block) +:"m"(*pixels) +:"memory"); +pixels += line_size; +block += line_size; +} while (--h); +} + +#endif /* HAVE_MMX_INLINE */ diff --git a/libavcodec/x86/hpeldsp_rnd_te
[libav-devel] [PATCH 1/3] x86: More specific ifdefs for dsputil/hpeldsp init functions
--- libavcodec/x86/dsputil_mmx.c | 16 libavcodec/x86/hpeldsp_init.c | 16 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/libavcodec/x86/dsputil_mmx.c b/libavcodec/x86/dsputil_mmx.c index 6e2686d..679f272 100644 --- a/libavcodec/x86/dsputil_mmx.c +++ b/libavcodec/x86/dsputil_mmx.c @@ -1119,7 +1119,7 @@ void ff_vector_clip_int32_sse4(int32_t *dst, const int32_t *src, static av_cold void dsputil_init_mmx(DSPContext *c, AVCodecContext *avctx, int mm_flags) { -#if HAVE_INLINE_ASM +#if HAVE_MMX_INLINE const int high_bit_depth = avctx->bits_per_raw_sample > 8; c->put_pixels_clamped= ff_put_pixels_clamped_mmx; @@ -1150,22 +1150,22 @@ static av_cold void dsputil_init_mmx(DSPContext *c, AVCodecContext *avctx, c->gmc = gmc_mmx; c->add_bytes = add_bytes_mmx; -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_MMX_INLINE */ -#if HAVE_YASM +#if HAVE_MMX_EXTERNAL if (CONFIG_H263_DECODER || CONFIG_H263_ENCODER) { c->h263_v_loop_filter = ff_h263_v_loop_filter_mmx; c->h263_h_loop_filter = ff_h263_h_loop_filter_mmx; } c->vector_clip_int32 = ff_vector_clip_int32_mmx; -#endif /* HAVE_YASM */ +#endif /* HAVE_MMX_EXTERNAL */ } static av_cold void dsputil_init_mmxext(DSPContext *c, AVCodecContext *avctx, int mm_flags) { -#if HAVE_INLINE_ASM +#if HAVE_MMXEXT_INLINE const int high_bit_depth = avctx->bits_per_raw_sample > 8; if (!high_bit_depth && avctx->idct_algo == FF_IDCT_XVIDMMX) { @@ -1173,7 +1173,7 @@ static av_cold void dsputil_init_mmxext(DSPContext *c, AVCodecContext *avctx, c->idct_add = ff_idct_xvid_mmxext_add; c->idct = ff_idct_xvid_mmxext; } -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_MMXEXT_INLINE */ #if HAVE_MMXEXT_EXTERNAL SET_QPEL_FUNCS(avg_qpel,0, 16, mmxext, ); @@ -1202,7 +1202,7 @@ static av_cold void dsputil_init_mmxext(DSPContext *c, AVCodecContext *avctx, static av_cold void dsputil_init_sse(DSPContext *c, AVCodecContext *avctx, int mm_flags) { -#if HAVE_INLINE_ASM +#if HAVE_SSE_INLINE const int high_bit_depth = avctx->bits_per_raw_sample > 8; if (!high_bit_depth) { @@ -1214,7 +1214,7 @@ static av_cold void dsputil_init_sse(DSPContext *c, AVCodecContext *avctx, } c->vector_clipf = vector_clipf_sse; -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_SSE_INLINE */ } static av_cold void dsputil_init_sse2(DSPContext *c, AVCodecContext *avctx, diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c index d573d05..e79f343 100644 --- a/libavcodec/x86/hpeldsp_init.c +++ b/libavcodec/x86/hpeldsp_init.c @@ -150,7 +150,7 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, static void hpeldsp_init_mmx(HpelDSPContext *c, int flags, int mm_flags) { -#if HAVE_INLINE_ASM +#if HAVE_MMX_INLINE SET_HPEL_FUNCS(put,[0], 16, mmx); SET_HPEL_FUNCS(put_no_rnd, [0], 16, mmx); SET_HPEL_FUNCS(avg,[0], 16, mmx); @@ -158,12 +158,12 @@ static void hpeldsp_init_mmx(HpelDSPContext *c, int flags, int mm_flags) SET_HPEL_FUNCS(put,[1], 8, mmx); SET_HPEL_FUNCS(put_no_rnd, [1], 8, mmx); SET_HPEL_FUNCS(avg,[1], 8, mmx); -#endif /* HAVE_INLINE_ASM */ +#endif /* HAVE_MMX_INLINE */ } static void hpeldsp_init_mmxext(HpelDSPContext *c, int flags, int mm_flags) { -#if HAVE_YASM +#if HAVE_MMXEXT_EXTERNAL c->put_pixels_tab[0][1] = ff_put_pixels16_x2_mmxext; c->put_pixels_tab[0][2] = put_pixels16_y2_mmxext; @@ -192,12 +192,12 @@ static void hpeldsp_init_mmxext(HpelDSPContext *c, int flags, int mm_flags) c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_mmxext; c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_mmxext; } -#endif /* HAVE_YASM */ +#endif /* HAVE_MMXEXT_EXTERNAL */ } static void hpeldsp_init_3dnow(HpelDSPContext *c, int flags, int mm_flags) { -#if HAVE_YASM +#if HAVE_AMD3DNOW_EXTERNAL c->put_pixels_tab[0][1] = ff_put_pixels16_x2_3dnow; c->put_pixels_tab[0][2] = put_pixels16_y2_3dnow; @@ -226,19 +226,19 @@ static void hpeldsp_init_3dnow(HpelDSPContext *c, int flags, int mm_flags) c->put_no_rnd_pixels_tab[1][1] = ff_put_no_rnd_pixels8_x2_exact_3dnow; c->put_no_rnd_pixels_tab[1][2] = ff_put_no_rnd_pixels8_y2_exact_3dnow; } -#endif /* HAVE_YASM */ +#endif /* HAVE_AMD3DNOW_EXTERNAL */ } static void hpeldsp_init_sse2(HpelDSPContext *c, int flags, int mm_flags) { -#if HAVE_YASM +#if HAVE_SSE2_EXTERNAL if (!(mm_flags & AV_CPU_FLAG_SSE2SLOW)) { // these functions are slower than mmx on AMD, but faster on Intel c->put_pixels_tab[0][0]= ff_put_pixels16_sse2; c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_sse2; c->avg_pixels_tab[0][0]= ff_avg_pixel
[libav-devel] [PATCH 2/3] x86: hpeldsp: Only compile MMX hpeldsp code if MMX is enabled
--- libavcodec/x86/Makefile |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile index 30b8eff..f3dbb4c 100644 --- a/libavcodec/x86/Makefile +++ b/libavcodec/x86/Makefile @@ -10,8 +10,7 @@ OBJS-$(CONFIG_H264CHROMA) += x86/h264chroma_init.o OBJS-$(CONFIG_H264DSP) += x86/h264dsp_init.o OBJS-$(CONFIG_H264PRED)+= x86/h264_intrapred_init.o OBJS-$(CONFIG_H264QPEL)+= x86/h264_qpel.o -OBJS-$(CONFIG_HPELDSP) += x86/fpel_mmx.o\ - x86/hpeldsp_init.o +OBJS-$(CONFIG_HPELDSP) += x86/hpeldsp_init.o OBJS-$(CONFIG_LPC) += x86/lpc.o OBJS-$(CONFIG_MLP_DECODER) += x86/mlpdsp.o OBJS-$(CONFIG_MPEGAUDIODSP)+= x86/mpegaudiodsp.o @@ -41,6 +40,7 @@ MMX-OBJS-$(CONFIG_DSPUTIL) += x86/dsputil_mmx.o \ MMX-OBJS-$(CONFIG_ENCODERS)+= x86/dsputilenc_mmx.o \ x86/motion_est.o +MMX-OBJS-$(CONFIG_HPELDSP) += x86/fpel_mmx.o MMX-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_mmx.o YASM-OBJS-$(CONFIG_AAC_DECODER)+= x86/sbrdsp.o -- 1.7.9.5 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] x86: hpeldsp: Move avg_pixels8_x2_mmx() out of hpeldsp_rnd_template.c
On Sun, 5 May 2013, Diego Biurrun wrote: The function is only instantiated once, so there is no point in keeping it in a template file. --- libavcodec/x86/dsputil_mmx.h |3 +++ libavcodec/x86/fpel_mmx.c | 21 + libavcodec/x86/hpeldsp_init.c |3 +-- libavcodec/x86/hpeldsp_rnd_template.c | 22 -- 4 files changed, 25 insertions(+), 24 deletions(-) Doesn't this make the function be built and included anywhere where fpel_mmx is included (e.g. in a build with dsputil enabled but not hpeldsp)? Wouldn't it make more sense to keep it in a hpeldsp file, if that's the only place where it's used? // Martin ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 2/2] bgmc: Do not mark ff_bgmc_decode_init() as av_cold
On Sun, 5 May 2013, Diego Biurrun wrote: The function is possibly called once per block. --- libavcodec/bgmc.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/bgmc.c b/libavcodec/bgmc.c index c0ebcac..c7f732e 100644 --- a/libavcodec/bgmc.c +++ b/libavcodec/bgmc.c @@ -485,8 +485,8 @@ av_cold void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) /** Initialize decoding and reads the first value */ -av_cold void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, - unsigned int *l, unsigned int *v) +void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, + unsigned int *l, unsigned int *v) { *h = TOP_VALUE; *l = 0; -- 1.7.9.5 Ok // Martin ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 1/2] avcodec: Add av_cold attributes to end functions missing them
On Sun, 5 May 2013, Diego Biurrun wrote: --- Drops two inappropriate av_cold markings noticed by Martin. libavcodec/avfft.c |8 libavcodec/bgmc.c|2 +- libavcodec/dnxhdenc.c|2 +- libavcodec/libxvid_rc.c |3 ++- libavcodec/mpeg12dec.c |3 ++- libavcodec/roqvideoenc.c |2 +- libavcodec/svq3.c|4 +++- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c index 8ef5797..513f57e 100644 --- a/libavcodec/avfft.c +++ b/libavcodec/avfft.c @@ -45,7 +45,7 @@ void av_fft_calc(FFTContext *s, FFTComplex *z) s->fft_calc(s, z); } -void av_fft_end(FFTContext *s) +av_cold void av_fft_end(FFTContext *s) { if (s) { ff_fft_end(s); @@ -80,7 +80,7 @@ void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) s->mdct_calc(s, output, input); } -void av_mdct_end(FFTContext *s) +av_cold void av_mdct_end(FFTContext *s) { if (s) { ff_mdct_end(s); @@ -107,7 +107,7 @@ void av_rdft_calc(RDFTContext *s, FFTSample *data) s->rdft_calc(s, data); } -void av_rdft_end(RDFTContext *s) +av_cold void av_rdft_end(RDFTContext *s) { if (s) { ff_rdft_end(s); @@ -134,7 +134,7 @@ void av_dct_calc(DCTContext *s, FFTSample *data) s->dct_calc(s, data); } -void av_dct_end(DCTContext *s) +av_cold void av_dct_end(DCTContext *s) { if (s) { ff_dct_end(s); diff --git a/libavcodec/bgmc.c b/libavcodec/bgmc.c index b8f4bee..c0ebcac 100644 --- a/libavcodec/bgmc.c +++ b/libavcodec/bgmc.c @@ -477,7 +477,7 @@ av_cold int ff_bgmc_init(AVCodecContext *avctx, /** Release the lookup table arrays */ -void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) +av_cold void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) { av_freep(cf_lut); av_freep(cf_lut_status); diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index 5b59e64..920fa45 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -990,7 +990,7 @@ static int dnxhd_encode_picture(AVCodecContext *avctx, AVPacket *pkt, return 0; } -static int dnxhd_encode_end(AVCodecContext *avctx) +static av_cold int dnxhd_encode_end(AVCodecContext *avctx) { DNXHDEncContext *ctx = avctx->priv_data; int max_level = 1<<(ctx->cid_table->bit_depth+2); diff --git a/libavcodec/libxvid_rc.c b/libavcodec/libxvid_rc.c index 9c45804..9084d33 100644 --- a/libavcodec/libxvid_rc.c +++ b/libavcodec/libxvid_rc.c @@ -170,7 +170,8 @@ float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run){ return xvid_plg_data.quant * FF_QP2LAMBDA; } -void ff_xvid_rate_control_uninit(MpegEncContext *s){ +av_cold void ff_xvid_rate_control_uninit(MpegEncContext *s) +{ xvid_plg_destroy_t xvid_plg_destroy; xvid_plugin_2pass2(s->rc_context.non_lavc_opaque, XVID_PLG_DESTROY, &xvid_plg_destroy, NULL); diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 3bf20c6..16c8523 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -26,6 +26,7 @@ */ //#define DEBUG +#include "libavutil/attributes.h" #include "libavutil/internal.h" #include "internal.h" #include "avcodec.h" @@ -2355,7 +2356,7 @@ static void flush(AVCodecContext *avctx) ff_mpeg_flush(avctx); } -static int mpeg_decode_end(AVCodecContext *avctx) +static av_cold int mpeg_decode_end(AVCodecContext *avctx) { Mpeg1Context *s = avctx->priv_data; diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c index db95282..650db67 100644 --- a/libavcodec/roqvideoenc.c +++ b/libavcodec/roqvideoenc.c @@ -937,7 +937,7 @@ static void roq_encode_video(RoqContext *enc) enc->framesSinceKeyframe++; } -static int roq_encode_end(AVCodecContext *avctx) +static av_cold int roq_encode_end(AVCodecContext *avctx) { RoqContext *enc = avctx->priv_data; diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 1ecc1b2..6455821 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -39,6 +39,8 @@ * correctly decodes this file: * http://samples.libav.org/V-codecs/SVQ3/Vertical400kbit.sorenson3.mov */ + +#include "libavutil/attributes.h" #include "internal.h" #include "avcodec.h" #include "mpegvideo.h" @@ -1281,7 +1283,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data, return buf_size; } -static int svq3_decode_end(AVCodecContext *avctx) +static av_cold int svq3_decode_end(AVCodecContext *avctx) { SVQ3Context *s = avctx->priv_data; H264Context *h = &s->h; -- 1.7.9.5 Ok // Martin ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH] x86: hpeldsp: Move avg_pixels8_x2_mmx() out of hpeldsp_rnd_template.c
The function is only instantiated once, so there is no point in keeping it in a template file. --- libavcodec/x86/dsputil_mmx.h |3 +++ libavcodec/x86/fpel_mmx.c | 21 + libavcodec/x86/hpeldsp_init.c |3 +-- libavcodec/x86/hpeldsp_rnd_template.c | 22 -- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/libavcodec/x86/dsputil_mmx.h b/libavcodec/x86/dsputil_mmx.h index 98d7900..5fe7366 100644 --- a/libavcodec/x86/dsputil_mmx.h +++ b/libavcodec/x86/dsputil_mmx.h @@ -173,6 +173,9 @@ void ff_avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, void ff_put_pixels16_sse2(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h); +void ff_avg_pixels8_x2_mmx(uint8_t *block, const uint8_t *pixels, + ptrdiff_t line_size, int h); + void ff_put_rv40_qpel8_mc33_mmx(uint8_t *block, uint8_t *pixels, ptrdiff_t stride); void ff_put_rv40_qpel16_mc33_mmx(uint8_t *block, uint8_t *pixels, ptrdiff_t stride); void ff_avg_rv40_qpel8_mc33_mmx(uint8_t *block, uint8_t *pixels, ptrdiff_t stride); diff --git a/libavcodec/x86/fpel_mmx.c b/libavcodec/x86/fpel_mmx.c index 1df5a94..c83b1d6 100644 --- a/libavcodec/x86/fpel_mmx.c +++ b/libavcodec/x86/fpel_mmx.c @@ -50,6 +50,27 @@ void ff_avg_pixels8_mmx(uint8_t *block, const uint8_t *pixels, while (--h); } +void ff_avg_pixels8_x2_mmx(uint8_t *block, const uint8_t *pixels, + ptrdiff_t line_size, int h) +{ +MOVQ_BFE(mm6); +JUMPALIGN(); +do { +__asm__ volatile( +"movq %1, %%mm0\n\t" +"movq 1%1, %%mm1 \n\t" +"movq %0, %%mm3\n\t" +PAVGB_MMX(%%mm0, %%mm1, %%mm2, %%mm6) +PAVGB_MMX(%%mm3, %%mm2, %%mm0, %%mm6) +"movq %%mm0, %0\n\t" +:"+m"(*block) +:"m"(*pixels) +:"memory"); +pixels += line_size; +block += line_size; +} while (--h); +} + void ff_avg_pixels16_mmx(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) { diff --git a/libavcodec/x86/hpeldsp_init.c b/libavcodec/x86/hpeldsp_init.c index d573d05..60c7942 100644 --- a/libavcodec/x86/hpeldsp_init.c +++ b/libavcodec/x86/hpeldsp_init.c @@ -75,6 +75,7 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h); #define avg_pixels8_mmx ff_avg_pixels8_mmx +#define avg_pixels8_x2_mmx ff_avg_pixels8_x2_mmx #define avg_pixels16_mmxff_avg_pixels16_mmx #define put_pixels8_mmx ff_put_pixels8_mmx #define put_pixels16_mmxff_put_pixels16_mmx @@ -86,7 +87,6 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, /***/ /* MMX no rounding */ -#define NO_RND 1 #define DEF(x, y) x ## _no_rnd_ ## y ## _mmx #define SET_RND MOVQ_WONE #define PAVGBP(a, b, c, d, e, f)PAVGBP_MMX_NO_RND(a, b, c, d, e, f) @@ -99,7 +99,6 @@ void ff_avg_pixels8_xy2_3dnow(uint8_t *block, const uint8_t *pixels, #undef SET_RND #undef PAVGBP #undef PAVGB -#undef NO_RND /***/ /* MMX rounding */ diff --git a/libavcodec/x86/hpeldsp_rnd_template.c b/libavcodec/x86/hpeldsp_rnd_template.c index 458311c..4976caa 100644 --- a/libavcodec/x86/hpeldsp_rnd_template.c +++ b/libavcodec/x86/hpeldsp_rnd_template.c @@ -134,28 +134,6 @@ static void DEF(put, pixels8_y2)(uint8_t *block, const uint8_t *pixels, ptrdiff_ :REG_a, "memory"); } -#ifndef NO_RND -static void DEF(avg, pixels8_x2)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) -{ -MOVQ_BFE(mm6); -JUMPALIGN(); -do { -__asm__ volatile( -"movq %1, %%mm0\n\t" -"movq 1%1, %%mm1 \n\t" -"movq %0, %%mm3\n\t" -PAVGB(%%mm0, %%mm1, %%mm2, %%mm6) -OP_AVG(%%mm3, %%mm2, %%mm0, %%mm6) -"movq %%mm0, %0\n\t" -:"+m"(*block) -:"m"(*pixels) -:"memory"); -pixels += line_size; -block += line_size; -} while (--h); -} -#endif // NO_RND - static void DEF(avg, pixels16_x2)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) { MOVQ_BFE(mm6); -- 1.7.9.5 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH 1/2] avcodec: Add av_cold attributes to end functions missing them
--- Drops two inappropriate av_cold markings noticed by Martin. libavcodec/avfft.c |8 libavcodec/bgmc.c|2 +- libavcodec/dnxhdenc.c|2 +- libavcodec/libxvid_rc.c |3 ++- libavcodec/mpeg12dec.c |3 ++- libavcodec/roqvideoenc.c |2 +- libavcodec/svq3.c|4 +++- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c index 8ef5797..513f57e 100644 --- a/libavcodec/avfft.c +++ b/libavcodec/avfft.c @@ -45,7 +45,7 @@ void av_fft_calc(FFTContext *s, FFTComplex *z) s->fft_calc(s, z); } -void av_fft_end(FFTContext *s) +av_cold void av_fft_end(FFTContext *s) { if (s) { ff_fft_end(s); @@ -80,7 +80,7 @@ void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) s->mdct_calc(s, output, input); } -void av_mdct_end(FFTContext *s) +av_cold void av_mdct_end(FFTContext *s) { if (s) { ff_mdct_end(s); @@ -107,7 +107,7 @@ void av_rdft_calc(RDFTContext *s, FFTSample *data) s->rdft_calc(s, data); } -void av_rdft_end(RDFTContext *s) +av_cold void av_rdft_end(RDFTContext *s) { if (s) { ff_rdft_end(s); @@ -134,7 +134,7 @@ void av_dct_calc(DCTContext *s, FFTSample *data) s->dct_calc(s, data); } -void av_dct_end(DCTContext *s) +av_cold void av_dct_end(DCTContext *s) { if (s) { ff_dct_end(s); diff --git a/libavcodec/bgmc.c b/libavcodec/bgmc.c index b8f4bee..c0ebcac 100644 --- a/libavcodec/bgmc.c +++ b/libavcodec/bgmc.c @@ -477,7 +477,7 @@ av_cold int ff_bgmc_init(AVCodecContext *avctx, /** Release the lookup table arrays */ -void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) +av_cold void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) { av_freep(cf_lut); av_freep(cf_lut_status); diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index 5b59e64..920fa45 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -990,7 +990,7 @@ static int dnxhd_encode_picture(AVCodecContext *avctx, AVPacket *pkt, return 0; } -static int dnxhd_encode_end(AVCodecContext *avctx) +static av_cold int dnxhd_encode_end(AVCodecContext *avctx) { DNXHDEncContext *ctx = avctx->priv_data; int max_level = 1<<(ctx->cid_table->bit_depth+2); diff --git a/libavcodec/libxvid_rc.c b/libavcodec/libxvid_rc.c index 9c45804..9084d33 100644 --- a/libavcodec/libxvid_rc.c +++ b/libavcodec/libxvid_rc.c @@ -170,7 +170,8 @@ float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run){ return xvid_plg_data.quant * FF_QP2LAMBDA; } -void ff_xvid_rate_control_uninit(MpegEncContext *s){ +av_cold void ff_xvid_rate_control_uninit(MpegEncContext *s) +{ xvid_plg_destroy_t xvid_plg_destroy; xvid_plugin_2pass2(s->rc_context.non_lavc_opaque, XVID_PLG_DESTROY, &xvid_plg_destroy, NULL); diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 3bf20c6..16c8523 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -26,6 +26,7 @@ */ //#define DEBUG +#include "libavutil/attributes.h" #include "libavutil/internal.h" #include "internal.h" #include "avcodec.h" @@ -2355,7 +2356,7 @@ static void flush(AVCodecContext *avctx) ff_mpeg_flush(avctx); } -static int mpeg_decode_end(AVCodecContext *avctx) +static av_cold int mpeg_decode_end(AVCodecContext *avctx) { Mpeg1Context *s = avctx->priv_data; diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c index db95282..650db67 100644 --- a/libavcodec/roqvideoenc.c +++ b/libavcodec/roqvideoenc.c @@ -937,7 +937,7 @@ static void roq_encode_video(RoqContext *enc) enc->framesSinceKeyframe++; } -static int roq_encode_end(AVCodecContext *avctx) +static av_cold int roq_encode_end(AVCodecContext *avctx) { RoqContext *enc = avctx->priv_data; diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 1ecc1b2..6455821 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -39,6 +39,8 @@ * correctly decodes this file: * http://samples.libav.org/V-codecs/SVQ3/Vertical400kbit.sorenson3.mov */ + +#include "libavutil/attributes.h" #include "internal.h" #include "avcodec.h" #include "mpegvideo.h" @@ -1281,7 +1283,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data, return buf_size; } -static int svq3_decode_end(AVCodecContext *avctx) +static av_cold int svq3_decode_end(AVCodecContext *avctx) { SVQ3Context *s = avctx->priv_data; H264Context *h = &s->h; -- 1.7.9.5 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH 2/2] bgmc: Do not mark ff_bgmc_decode_init() as av_cold
The function is possibly called once per block. --- libavcodec/bgmc.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/bgmc.c b/libavcodec/bgmc.c index c0ebcac..c7f732e 100644 --- a/libavcodec/bgmc.c +++ b/libavcodec/bgmc.c @@ -485,8 +485,8 @@ av_cold void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) /** Initialize decoding and reads the first value */ -av_cold void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, - unsigned int *l, unsigned int *v) +void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, + unsigned int *l, unsigned int *v) { *h = TOP_VALUE; *l = 0; -- 1.7.9.5 ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH] Add av_cold attributes to end functions missing them
On Sun, 5 May 2013, Diego Biurrun wrote: --- This is the last av_cold patch. libavcodec/avfft.c |8 libavcodec/bgmc.c|4 ++-- libavcodec/dnxhdenc.c|2 +- libavcodec/libxvid_rc.c |3 ++- libavcodec/mpeg12dec.c |3 ++- libavcodec/roqvideoenc.c |2 +- libavcodec/svq3.c|4 +++- libavformat/mpegenc.c|2 +- 8 files changed, 16 insertions(+), 12 deletions(-) diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c index 8ef5797..513f57e 100644 --- a/libavcodec/avfft.c +++ b/libavcodec/avfft.c @@ -45,7 +45,7 @@ void av_fft_calc(FFTContext *s, FFTComplex *z) s->fft_calc(s, z); } -void av_fft_end(FFTContext *s) +av_cold void av_fft_end(FFTContext *s) { if (s) { ff_fft_end(s); @@ -80,7 +80,7 @@ void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) s->mdct_calc(s, output, input); } -void av_mdct_end(FFTContext *s) +av_cold void av_mdct_end(FFTContext *s) { if (s) { ff_mdct_end(s); @@ -107,7 +107,7 @@ void av_rdft_calc(RDFTContext *s, FFTSample *data) s->rdft_calc(s, data); } -void av_rdft_end(RDFTContext *s) +av_cold void av_rdft_end(RDFTContext *s) { if (s) { ff_rdft_end(s); @@ -134,7 +134,7 @@ void av_dct_calc(DCTContext *s, FFTSample *data) s->dct_calc(s, data); } -void av_dct_end(DCTContext *s) +av_cold void av_dct_end(DCTContext *s) { if (s) { ff_dct_end(s); diff --git a/libavcodec/bgmc.c b/libavcodec/bgmc.c index b8f4bee..3f86224 100644 --- a/libavcodec/bgmc.c +++ b/libavcodec/bgmc.c @@ -477,7 +477,7 @@ av_cold int ff_bgmc_init(AVCodecContext *avctx, /** Release the lookup table arrays */ -void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) +av_cold void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) { av_freep(cf_lut); av_freep(cf_lut_status); @@ -495,7 +495,7 @@ av_cold void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, /** Finish decoding */ -void ff_bgmc_decode_end(GetBitContext *gb) +av_cold void ff_bgmc_decode_end(GetBitContext *gb) { skip_bits_long(gb, -(VALUE_BITS - 2)); } This seems like it's something that's called during decoding (as in possibly once or more per packet), so I don't think that should have av_cold. diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index 5b59e64..920fa45 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -990,7 +990,7 @@ static int dnxhd_encode_picture(AVCodecContext *avctx, AVPacket *pkt, return 0; } -static int dnxhd_encode_end(AVCodecContext *avctx) +static av_cold int dnxhd_encode_end(AVCodecContext *avctx) { DNXHDEncContext *ctx = avctx->priv_data; int max_level = 1<<(ctx->cid_table->bit_depth+2); diff --git a/libavcodec/libxvid_rc.c b/libavcodec/libxvid_rc.c index 9c45804..9084d33 100644 --- a/libavcodec/libxvid_rc.c +++ b/libavcodec/libxvid_rc.c @@ -170,7 +170,8 @@ float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run){ return xvid_plg_data.quant * FF_QP2LAMBDA; } -void ff_xvid_rate_control_uninit(MpegEncContext *s){ +av_cold void ff_xvid_rate_control_uninit(MpegEncContext *s) +{ xvid_plg_destroy_t xvid_plg_destroy; xvid_plugin_2pass2(s->rc_context.non_lavc_opaque, XVID_PLG_DESTROY, &xvid_plg_destroy, NULL); diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 3bf20c6..16c8523 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -26,6 +26,7 @@ */ //#define DEBUG +#include "libavutil/attributes.h" #include "libavutil/internal.h" #include "internal.h" #include "avcodec.h" @@ -2355,7 +2356,7 @@ static void flush(AVCodecContext *avctx) ff_mpeg_flush(avctx); } -static int mpeg_decode_end(AVCodecContext *avctx) +static av_cold int mpeg_decode_end(AVCodecContext *avctx) { Mpeg1Context *s = avctx->priv_data; diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c index db95282..650db67 100644 --- a/libavcodec/roqvideoenc.c +++ b/libavcodec/roqvideoenc.c @@ -937,7 +937,7 @@ static void roq_encode_video(RoqContext *enc) enc->framesSinceKeyframe++; } -static int roq_encode_end(AVCodecContext *avctx) +static av_cold int roq_encode_end(AVCodecContext *avctx) { RoqContext *enc = avctx->priv_data; diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 1ecc1b2..6455821 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -39,6 +39,8 @@ * correctly decodes this file: * http://samples.libav.org/V-codecs/SVQ3/Vertical400kbit.sorenson3.mov */ + +#include "libavutil/attributes.h" #include "internal.h" #include "avcodec.h" #include "mpegvideo.h" @@ -1281,7 +1283,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data, return buf_size; } -static int svq3_decode_end(AVCodecContext *avctx) +static av_cold int svq3_decode_end(AVCodecContext *avctx) { SVQ3Context *s = avctx->priv_data; H264Context *h = &s->h; diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index 85a12d6..c85e484 100644 --- a/libavformat/mpegenc.c +++ b
Re: [libav-devel] [PATCH 3/3] FATE: use a less ambiguous end time for filter-trim-time test
On May 5, 2013, at 5:22 PM, Anton Khirnov wrote: > > On Sun, 5 May 2013 16:49:00 +0200, "Tim W." wrote: >> On May 5, 2013, at 8:01 AM, Anton Khirnov wrote: >> >>> 0.1 seconds at 25 fps is exactly 2.5 frames, which may be rounded either >>> to 2 or 3 on different platforms. >> >> .09 is still exactly 4.5 frames at 50 fps, which is not as common as 25 but >> not completely uncommon either… >> > > The point is that in this specific test the input is (or defaults to) 25 fps. Oh, OK. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
[libav-devel] [PATCH] Add av_cold attributes to end functions missing them
--- This is the last av_cold patch. libavcodec/avfft.c |8 libavcodec/bgmc.c|4 ++-- libavcodec/dnxhdenc.c|2 +- libavcodec/libxvid_rc.c |3 ++- libavcodec/mpeg12dec.c |3 ++- libavcodec/roqvideoenc.c |2 +- libavcodec/svq3.c|4 +++- libavformat/mpegenc.c|2 +- 8 files changed, 16 insertions(+), 12 deletions(-) diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c index 8ef5797..513f57e 100644 --- a/libavcodec/avfft.c +++ b/libavcodec/avfft.c @@ -45,7 +45,7 @@ void av_fft_calc(FFTContext *s, FFTComplex *z) s->fft_calc(s, z); } -void av_fft_end(FFTContext *s) +av_cold void av_fft_end(FFTContext *s) { if (s) { ff_fft_end(s); @@ -80,7 +80,7 @@ void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) s->mdct_calc(s, output, input); } -void av_mdct_end(FFTContext *s) +av_cold void av_mdct_end(FFTContext *s) { if (s) { ff_mdct_end(s); @@ -107,7 +107,7 @@ void av_rdft_calc(RDFTContext *s, FFTSample *data) s->rdft_calc(s, data); } -void av_rdft_end(RDFTContext *s) +av_cold void av_rdft_end(RDFTContext *s) { if (s) { ff_rdft_end(s); @@ -134,7 +134,7 @@ void av_dct_calc(DCTContext *s, FFTSample *data) s->dct_calc(s, data); } -void av_dct_end(DCTContext *s) +av_cold void av_dct_end(DCTContext *s) { if (s) { ff_dct_end(s); diff --git a/libavcodec/bgmc.c b/libavcodec/bgmc.c index b8f4bee..3f86224 100644 --- a/libavcodec/bgmc.c +++ b/libavcodec/bgmc.c @@ -477,7 +477,7 @@ av_cold int ff_bgmc_init(AVCodecContext *avctx, /** Release the lookup table arrays */ -void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) +av_cold void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status) { av_freep(cf_lut); av_freep(cf_lut_status); @@ -495,7 +495,7 @@ av_cold void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, /** Finish decoding */ -void ff_bgmc_decode_end(GetBitContext *gb) +av_cold void ff_bgmc_decode_end(GetBitContext *gb) { skip_bits_long(gb, -(VALUE_BITS - 2)); } diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index 5b59e64..920fa45 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -990,7 +990,7 @@ static int dnxhd_encode_picture(AVCodecContext *avctx, AVPacket *pkt, return 0; } -static int dnxhd_encode_end(AVCodecContext *avctx) +static av_cold int dnxhd_encode_end(AVCodecContext *avctx) { DNXHDEncContext *ctx = avctx->priv_data; int max_level = 1<<(ctx->cid_table->bit_depth+2); diff --git a/libavcodec/libxvid_rc.c b/libavcodec/libxvid_rc.c index 9c45804..9084d33 100644 --- a/libavcodec/libxvid_rc.c +++ b/libavcodec/libxvid_rc.c @@ -170,7 +170,8 @@ float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run){ return xvid_plg_data.quant * FF_QP2LAMBDA; } -void ff_xvid_rate_control_uninit(MpegEncContext *s){ +av_cold void ff_xvid_rate_control_uninit(MpegEncContext *s) +{ xvid_plg_destroy_t xvid_plg_destroy; xvid_plugin_2pass2(s->rc_context.non_lavc_opaque, XVID_PLG_DESTROY, &xvid_plg_destroy, NULL); diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 3bf20c6..16c8523 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -26,6 +26,7 @@ */ //#define DEBUG +#include "libavutil/attributes.h" #include "libavutil/internal.h" #include "internal.h" #include "avcodec.h" @@ -2355,7 +2356,7 @@ static void flush(AVCodecContext *avctx) ff_mpeg_flush(avctx); } -static int mpeg_decode_end(AVCodecContext *avctx) +static av_cold int mpeg_decode_end(AVCodecContext *avctx) { Mpeg1Context *s = avctx->priv_data; diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c index db95282..650db67 100644 --- a/libavcodec/roqvideoenc.c +++ b/libavcodec/roqvideoenc.c @@ -937,7 +937,7 @@ static void roq_encode_video(RoqContext *enc) enc->framesSinceKeyframe++; } -static int roq_encode_end(AVCodecContext *avctx) +static av_cold int roq_encode_end(AVCodecContext *avctx) { RoqContext *enc = avctx->priv_data; diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 1ecc1b2..6455821 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -39,6 +39,8 @@ * correctly decodes this file: * http://samples.libav.org/V-codecs/SVQ3/Vertical400kbit.sorenson3.mov */ + +#include "libavutil/attributes.h" #include "internal.h" #include "avcodec.h" #include "mpegvideo.h" @@ -1281,7 +1283,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data, return buf_size; } -static int svq3_decode_end(AVCodecContext *avctx) +static av_cold int svq3_decode_end(AVCodecContext *avctx) { SVQ3Context *s = avctx->priv_data; H264Context *h = &s->h; diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index 85a12d6..c85e484 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -1041,7 +1041,7 @@ retry: return 1; } -static int mpeg_mux_write_packet(AVFo
Re: [libav-devel] [PATCH 5/6] avformat: Add av_cold attributes to init functions missing them
On Thu, May 02, 2013 at 10:20:01AM +0200, Diego Biurrun wrote: > --- > libavformat/g723_1.c |3 ++- > libavformat/mpegenc.c |3 ++- > libavformat/rtpdec_g726.c |4 +++- > libavformat/rtpdec_h263.c |4 +++- > libavformat/rtpdec_h263_rfc2190.c |3 ++- > libavformat/rtpdec_h264.c |4 +++- > libavformat/rtpdec_mpeg12.c |5 +++-- > libavformat/rtpdec_mpeg4.c|4 +++- > libavformat/rtpdec_mpegts.c |4 +++- > libavformat/rtpdec_xiph.c |5 +++-- > 10 files changed, 27 insertions(+), 12 deletions(-) OKed by Martin on IRC. Diego ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 3/3] FATE: use a less ambiguous end time for filter-trim-time test
On Sun, 5 May 2013 16:49:00 +0200, "Tim W." wrote: > On May 5, 2013, at 8:01 AM, Anton Khirnov wrote: > > > 0.1 seconds at 25 fps is exactly 2.5 frames, which may be rounded either > > to 2 or 3 on different platforms. > > .09 is still exactly 4.5 frames at 50 fps, which is not as common as 25 but > not completely uncommon either… > The point is that in this specific test the input is (or defaults to) 25 fps. -- Anton Khirnov ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 3/3] FATE: use a less ambiguous end time for filter-trim-time test
On May 5, 2013, at 8:01 AM, Anton Khirnov wrote: > 0.1 seconds at 25 fps is exactly 2.5 frames, which may be rounded either > to 2 or 3 on different platforms. .09 is still exactly 4.5 frames at 50 fps, which is not as common as 25 but not completely uncommon either… Tim ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 3/3] FATE: use a less ambiguous end time for filter-trim-time test
On 05/05/2013 08:01 AM, Anton Khirnov wrote: > 0.1 seconds at 25 fps is exactly 2.5 frames, which may be rounded either > to 2 or 3 on different platforms. > --- > tests/fate/filter-video.mak |2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Ok. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 2/3] configure: add dependencies to lavfi .pc file
On 05/05/2013 08:01 AM, Anton Khirnov wrote: > The scale filter depends on sws, resample on lavr, and movie on lavf and > lavc. > > Fixes Bug 502. We might use Bug-Id: 502, not that we are using/leveraging it yet but would be easier on gitweb. Patch itself ok. lu ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 1/3] configure: make avconv select (a)trim filters
On 05/05/2013 08:01 AM, Anton Khirnov wrote: > They are now used for -ss/-t > --- > configure |4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Ok. ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel