Commit cfc40a6a authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'd8c772de'

* commit 'd8c772de':
  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: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 24d06cb2 d8c772de
...@@ -4101,6 +4101,7 @@ elif enabled gcc; then ...@@ -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 ...@@ -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) ...@@ -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); ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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) if (first_slice) {
ff_generate_sliding_window_mmcos(h, 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) ...@@ -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, const uint8_t *buffer, uint32_t size);
av_unused 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 ...@@ -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 ...@@ -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 ...@@ -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 @@ ...@@ -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 @@ ...@@ -196,20 +207,7 @@
pxor %2, %4 pxor %2, %4
psubw %1, %3 psubw %1, %3
psubw %2, %4 psubw %2, %4
%endmacro %endif
%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
%endmacro %endmacro
%macro ABSB_MMX 2 %macro ABSB_MMX 2
...@@ -252,7 +250,6 @@ ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment