* commit 'd8c772de53d29afb1bada88afa859fce8489c668': nutdec: Always return a value from nut_read_timestamp() configure: Make warnings from -Wreturn-type fatal errors x86: ABS2: port to cpuflags vdpau: Remove av_unused attribute from function declaration h264: fix ff_generate_sliding_window_mmcos() prototype. Conflicts: configure libavformat/nutdec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n1.2
| @@ -4101,6 +4101,7 @@ elif enabled gcc; then | |||||
| check_optflags -fno-tree-vectorize | check_optflags -fno-tree-vectorize | ||||
| check_cflags -Werror=implicit-function-declaration | check_cflags -Werror=implicit-function-declaration | ||||
| check_cflags -Werror=missing-prototypes | check_cflags -Werror=missing-prototypes | ||||
| check_cflags -Werror=return-type | |||||
| check_cflags -Werror=vla | check_cflags -Werror=vla | ||||
| elif enabled llvm_gcc; then | elif enabled llvm_gcc; then | ||||
| check_cflags -mllvm -stack-alignment=16 | check_cflags -mllvm -stack-alignment=16 | ||||
| @@ -4109,6 +4110,7 @@ elif enabled clang; then | |||||
| check_cflags -Qunused-arguments | check_cflags -Qunused-arguments | ||||
| check_cflags -Werror=implicit-function-declaration | check_cflags -Werror=implicit-function-declaration | ||||
| check_cflags -Werror=missing-prototypes | check_cflags -Werror=missing-prototypes | ||||
| check_cflags -Werror=return-type | |||||
| elif enabled armcc; then | elif enabled armcc; then | ||||
| # 2523: use of inline assembler is deprecated | # 2523: use of inline assembler is deprecated | ||||
| add_cflags -W${armcc_opt},--diag_suppress=2523 | add_cflags -W${armcc_opt},--diag_suppress=2523 | ||||
| @@ -2980,7 +2980,9 @@ static int decode_slice_header(H264Context *h, H264Context *h0) | |||||
| s->current_picture_ptr->frame_num = h->prev_frame_num; | s->current_picture_ptr->frame_num = h->prev_frame_num; | ||||
| ff_thread_report_progress(&s->current_picture_ptr->f, INT_MAX, 0); | ff_thread_report_progress(&s->current_picture_ptr->f, INT_MAX, 0); | ||||
| ff_thread_report_progress(&s->current_picture_ptr->f, INT_MAX, 1); | ff_thread_report_progress(&s->current_picture_ptr->f, INT_MAX, 1); | ||||
| ff_generate_sliding_window_mmcos(h, 1); | |||||
| if ((ret = ff_generate_sliding_window_mmcos(h, 1)) < 0 && | |||||
| s->avctx->err_recognition & AV_EF_EXPLODE) | |||||
| return ret; | |||||
| if (ff_h264_execute_ref_pic_marking(h, h->mmco, h->mmco_index) < 0 && | if (ff_h264_execute_ref_pic_marking(h, h->mmco, h->mmco_index) < 0 && | ||||
| (s->avctx->err_recognition & AV_EF_EXPLODE)) | (s->avctx->err_recognition & AV_EF_EXPLODE)) | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| @@ -672,7 +672,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count); | |||||
| int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb, | int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb, | ||||
| int first_slice); | int first_slice); | ||||
| void ff_generate_sliding_window_mmcos(H264Context *h, int first_slice); | |||||
| int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice); | |||||
| /** | /** | ||||
| * Check if the top & left blocks are available if needed & change the | * Check if the top & left blocks are available if needed & change the | ||||
| @@ -492,7 +492,7 @@ static int check_opcodes(MMCO *mmco1, MMCO *mmco2, int n_mmcos) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| void ff_generate_sliding_window_mmcos(H264Context *h, int first_slice) | |||||
| int ff_generate_sliding_window_mmcos(H264Context *h, int first_slice) | |||||
| { | { | ||||
| MpegEncContext * const s = &h->s; | MpegEncContext * const s = &h->s; | ||||
| MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp; | MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp; | ||||
| @@ -523,6 +523,7 @@ void ff_generate_sliding_window_mmcos(H264Context *h, int first_slice) | |||||
| mmco_index, h->mmco_index, i); | mmco_index, h->mmco_index, i); | ||||
| return AVERROR_INVALIDDATA; | return AVERROR_INVALIDDATA; | ||||
| } | } | ||||
| return 0; | |||||
| } | } | ||||
| int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){ | int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count){ | ||||
| @@ -696,7 +697,7 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb, | |||||
| int first_slice) | int first_slice) | ||||
| { | { | ||||
| MpegEncContext * const s = &h->s; | MpegEncContext * const s = &h->s; | ||||
| int i; | |||||
| int i, ret; | |||||
| MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp; | MMCO mmco_temp[MAX_MMCO_COUNT], *mmco = first_slice ? h->mmco : mmco_temp; | ||||
| int mmco_index = 0; | int mmco_index = 0; | ||||
| @@ -753,8 +754,11 @@ int ff_h264_decode_ref_pic_marking(H264Context *h, GetBitContext *gb, | |||||
| } | } | ||||
| mmco_index = i; | mmco_index = i; | ||||
| } else { | } else { | ||||
| if (first_slice) | |||||
| ff_generate_sliding_window_mmcos(h, first_slice); | |||||
| if (first_slice) { | |||||
| ret = ff_generate_sliding_window_mmcos(h, first_slice); | |||||
| if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE) | |||||
| return ret; | |||||
| } | |||||
| mmco_index = -1; | mmco_index = -1; | ||||
| } | } | ||||
| } | } | ||||
| @@ -34,8 +34,7 @@ static inline uintptr_t ff_vdpau_get_surface_id(Picture *pic) | |||||
| } | } | ||||
| int ff_vdpau_common_start_frame(AVCodecContext *avctx, | int ff_vdpau_common_start_frame(AVCodecContext *avctx, | ||||
| av_unused const uint8_t *buffer, | |||||
| av_unused uint32_t size); | |||||
| const uint8_t *buffer, uint32_t size); | |||||
| int ff_vdpau_common_end_frame(AVCodecContext *avctx); | int ff_vdpau_common_end_frame(AVCodecContext *avctx); | ||||
| int ff_vdpau_add_buffer(AVCodecContext *avctx, | int ff_vdpau_add_buffer(AVCodecContext *avctx, | ||||
| const uint8_t *buf, uint32_t buf_size); | const uint8_t *buf, uint32_t buf_size); | ||||
| @@ -151,15 +151,12 @@ cglobal ac3_max_msb_abs_int16, 2,2,5, src, len | |||||
| %endmacro | %endmacro | ||||
| INIT_MMX mmx | INIT_MMX mmx | ||||
| %define ABS2 ABS2_MMX | |||||
| AC3_MAX_MSB_ABS_INT16 or_abs | AC3_MAX_MSB_ABS_INT16 or_abs | ||||
| INIT_MMX mmxext | INIT_MMX mmxext | ||||
| %define ABS2 ABS2_MMXEXT | |||||
| AC3_MAX_MSB_ABS_INT16 min_max | AC3_MAX_MSB_ABS_INT16 min_max | ||||
| INIT_XMM sse2 | INIT_XMM sse2 | ||||
| AC3_MAX_MSB_ABS_INT16 min_max | AC3_MAX_MSB_ABS_INT16 min_max | ||||
| INIT_XMM ssse3 | INIT_XMM ssse3 | ||||
| %define ABS2 ABS2_SSSE3 | |||||
| AC3_MAX_MSB_ABS_INT16 or_abs | AC3_MAX_MSB_ABS_INT16 or_abs | ||||
| ;----------------------------------------------------------------------------- | ;----------------------------------------------------------------------------- | ||||
| @@ -263,7 +263,6 @@ INIT_MMX mmxext | |||||
| HADAMARD8_DIFF | HADAMARD8_DIFF | ||||
| INIT_XMM sse2 | INIT_XMM sse2 | ||||
| %define ABS2 ABS2_MMXEXT | |||||
| %if ARCH_X86_64 | %if ARCH_X86_64 | ||||
| %define ABS_SUM_8x8 ABS_SUM_8x8_64 | %define ABS_SUM_8x8 ABS_SUM_8x8_64 | ||||
| %else | %else | ||||
| @@ -272,7 +271,6 @@ INIT_XMM sse2 | |||||
| HADAMARD8_DIFF 10 | HADAMARD8_DIFF 10 | ||||
| INIT_XMM ssse3 | INIT_XMM ssse3 | ||||
| %define ABS2 ABS2_SSSE3 | |||||
| %define ABS_SUM_8x8 ABS_SUM_8x8_64 | %define ABS_SUM_8x8 ABS_SUM_8x8_64 | ||||
| HADAMARD8_DIFF 9 | HADAMARD8_DIFF 9 | ||||
| @@ -187,7 +187,18 @@ | |||||
| %endif | %endif | ||||
| %endmacro | %endmacro | ||||
| %macro ABS2_MMX 4 ; a, b, tmp0, tmp1 | |||||
| %macro ABS2 4 | |||||
| %if cpuflag(ssse3) | |||||
| pabsw %1, %1 | |||||
| pabsw %2, %2 | |||||
| %elif cpuflag(mmxext) ; a, b, tmp0, tmp1 | |||||
| pxor %3, %3 | |||||
| pxor %4, %4 | |||||
| psubw %3, %1 | |||||
| psubw %4, %2 | |||||
| pmaxsw %1, %3 | |||||
| pmaxsw %2, %4 | |||||
| %else ; a, b, tmp0, tmp1 | |||||
| pxor %3, %3 | pxor %3, %3 | ||||
| pxor %4, %4 | pxor %4, %4 | ||||
| pcmpgtw %3, %1 | pcmpgtw %3, %1 | ||||
| @@ -196,20 +207,7 @@ | |||||
| pxor %2, %4 | pxor %2, %4 | ||||
| psubw %1, %3 | psubw %1, %3 | ||||
| psubw %2, %4 | psubw %2, %4 | ||||
| %endmacro | |||||
| %macro ABS2_MMXEXT 4 ; a, b, tmp0, tmp1 | |||||
| pxor %3, %3 | |||||
| pxor %4, %4 | |||||
| psubw %3, %1 | |||||
| psubw %4, %2 | |||||
| pmaxsw %1, %3 | |||||
| pmaxsw %2, %4 | |||||
| %endmacro | |||||
| %macro ABS2_SSSE3 4 | |||||
| pabsw %1, %1 | |||||
| pabsw %2, %2 | |||||
| %endif | |||||
| %endmacro | %endmacro | ||||
| %macro ABSB_MMX 2 | %macro ABSB_MMX 2 | ||||
| @@ -252,7 +250,6 @@ | |||||
| ABS2 %3, %4, %5, %6 | ABS2 %3, %4, %5, %6 | ||||
| %endmacro | %endmacro | ||||
| %define ABS2 ABS2_MMX | |||||
| %define ABSB ABSB_MMX | %define ABSB ABSB_MMX | ||||
| %define ABSB2 ABSB2_MMX | %define ABSB2 ABSB2_MMX | ||||