summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild/make/configure.sh12
-rw-r--r--examples/decoder_tmpl.txt4
-rw-r--r--examples/encoder_tmpl.c4
-rw-r--r--examples/encoder_tmpl.txt4
-rw-r--r--libs.mk18
-rw-r--r--vp8/common/onyx.h12
-rw-r--r--vp8/common/onyxd.h11
-rw-r--r--vp8/common/postproc.c2
-rw-r--r--vp8/decoder/onyxd_if.c16
-rw-r--r--vp8/encoder/encodeframe.c6
-rw-r--r--vp8/encoder/firstpass.c3
-rw-r--r--vp8/encoder/onyx_if.c116
-rw-r--r--vp8/encoder/onyx_int.h5
-rw-r--r--vp8/encoder/ratectrl.c18
-rw-r--r--vp8/encoder/rdopt.h12
-rw-r--r--vp8/vp8_cx_iface.c12
-rw-r--r--vp8_multi_resolution_encoder.c8
-rw-r--r--vp8_scalable_patterns.c9
-rw-r--r--vpxdec.c2
-rw-r--r--vpxenc.c16
20 files changed, 128 insertions, 162 deletions
diff --git a/build/make/configure.sh b/build/make/configure.sh
index f8d69aed1..575a394ff 100755
--- a/build/make/configure.sh
+++ b/build/make/configure.sh
@@ -1008,7 +1008,7 @@ process_common_toolchain() {
tune_cflags="-march="
;;
esac
- ;;
+ ;;
gcc*)
add_cflags -m${bits}
add_ldflags -m${bits}
@@ -1017,7 +1017,13 @@ process_common_toolchain() {
setup_gnu_toolchain
#for 32 bit x86 builds, -O3 did not turn on this flag
enabled optimizations && check_add_cflags -fomit-frame-pointer
- ;;
+ ;;
+ vs*)
+ # When building with Microsoft Visual Studio the assembler is
+ # invoked directly. Checking at configure time is unnecessary.
+ # Skip the check by setting AS arbitrarily
+ AS=msvs
+ ;;
esac
case "${AS}" in
@@ -1026,7 +1032,7 @@ process_common_toolchain() {
which yasm >/dev/null 2>&1 && AS=yasm
[ "${AS}" = auto -o -z "${AS}" ] \
&& die "Neither yasm nor nasm have been found"
- ;;
+ ;;
esac
log_echo " using $AS"
[ "${AS##*/}" = nasm ] && add_asflags -Ox
diff --git a/examples/decoder_tmpl.txt b/examples/decoder_tmpl.txt
index 92a2c3013..e652a635b 100644
--- a/examples/decoder_tmpl.txt
+++ b/examples/decoder_tmpl.txt
@@ -48,8 +48,8 @@ for(plane=0; plane < 3; plane++) {
unsigned char *buf =img->planes[plane];
for(y=0; y < (plane ? (img->d_h + 1) >> 1 : img->d_h); y++) {
- if(fwrite(buf, 1, (plane ? (img->d_w + 1) >> 1 : img->d_w),
- outfile));
+ (void) fwrite(buf, 1, (plane ? (img->d_w + 1) >> 1 : img->d_w),
+ outfile);
buf += img->stride[plane];
}
}
diff --git a/examples/encoder_tmpl.c b/examples/encoder_tmpl.c
index cc70b0081..e2b65ecb6 100644
--- a/examples/encoder_tmpl.c
+++ b/examples/encoder_tmpl.c
@@ -85,7 +85,7 @@ static void write_ivf_file_header(FILE *outfile,
mem_put_le32(header+24, frame_cnt); /* length */
mem_put_le32(header+28, 0); /* unused */
- if(fwrite(header, 1, 32, outfile));
+ (void) fwrite(header, 1, 32, outfile);
}
@@ -103,7 +103,7 @@ static void write_ivf_frame_header(FILE *outfile,
mem_put_le32(header+4, pts&0xFFFFFFFF);
mem_put_le32(header+8, pts >> 32);
- if(fwrite(header, 1, 12, outfile));
+ (void) fwrite(header, 1, 12, outfile);
}
int main(int argc, char **argv) {
diff --git a/examples/encoder_tmpl.txt b/examples/encoder_tmpl.txt
index 00420713a..39aa22152 100644
--- a/examples/encoder_tmpl.txt
+++ b/examples/encoder_tmpl.txt
@@ -61,8 +61,8 @@ if(vpx_codec_encode(&codec, frame_avail? &raw : NULL, frame_cnt,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PROCESS_FRAME
case VPX_CODEC_CX_FRAME_PKT:
write_ivf_frame_header(outfile, pkt);
- if(fwrite(pkt->data.frame.buf, 1, pkt->data.frame.sz,
- outfile));
+ (void) fwrite(pkt->data.frame.buf, 1, pkt->data.frame.sz,
+ outfile);
break;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PROCESS_FRAME
diff --git a/libs.mk b/libs.mk
index fbeef9061..486987159 100644
--- a/libs.mk
+++ b/libs.mk
@@ -285,38 +285,44 @@ OFFSET_PATTERN:='^[a-zA-Z0-9_]* EQU'
ifeq ($(filter icc gcc,$(TGT_CC)), $(TGT_CC))
$(BUILD_PFX)asm_com_offsets.asm: $(BUILD_PFX)$(VP8_PREFIX)common/asm_com_offsets.c.S
- LC_ALL=C grep $(OFFSET_PATTERN) $< | tr -d '$$\#' $(ADS2GAS) > $@
+ @echo " [CREATE] $@"
+ $(qexec)LC_ALL=C grep $(OFFSET_PATTERN) $< | tr -d '$$\#' $(ADS2GAS) > $@
$(BUILD_PFX)$(VP8_PREFIX)common/asm_com_offsets.c.S: $(VP8_PREFIX)common/asm_com_offsets.c
CLEAN-OBJS += $(BUILD_PFX)asm_com_offsets.asm $(BUILD_PFX)$(VP8_PREFIX)common/asm_com_offsets.c.S
$(BUILD_PFX)asm_enc_offsets.asm: $(BUILD_PFX)$(VP8_PREFIX)encoder/asm_enc_offsets.c.S
- LC_ALL=C grep $(OFFSET_PATTERN) $< | tr -d '$$\#' $(ADS2GAS) > $@
+ @echo " [CREATE] $@"
+ $(qexec)LC_ALL=C grep $(OFFSET_PATTERN) $< | tr -d '$$\#' $(ADS2GAS) > $@
$(BUILD_PFX)$(VP8_PREFIX)encoder/asm_enc_offsets.c.S: $(VP8_PREFIX)encoder/asm_enc_offsets.c
CLEAN-OBJS += $(BUILD_PFX)asm_enc_offsets.asm $(BUILD_PFX)$(VP8_PREFIX)encoder/asm_enc_offsets.c.S
$(BUILD_PFX)asm_dec_offsets.asm: $(BUILD_PFX)$(VP8_PREFIX)decoder/asm_dec_offsets.c.S
- LC_ALL=C grep $(OFFSET_PATTERN) $< | tr -d '$$\#' $(ADS2GAS) > $@
+ @echo " [CREATE] $@"
+ $(qexec)LC_ALL=C grep $(OFFSET_PATTERN) $< | tr -d '$$\#' $(ADS2GAS) > $@
$(BUILD_PFX)$(VP8_PREFIX)decoder/asm_dec_offsets.c.S: $(VP8_PREFIX)decoder/asm_dec_offsets.c
CLEAN-OBJS += $(BUILD_PFX)asm_dec_offsets.asm $(BUILD_PFX)$(VP8_PREFIX)decoder/asm_dec_offsets.c.S
else
ifeq ($(filter rvct,$(TGT_CC)), $(TGT_CC))
asm_com_offsets.asm: obj_int_extract
asm_com_offsets.asm: $(VP8_PREFIX)common/asm_com_offsets.c.o
- ./obj_int_extract rvds $< $(ADS2GAS) > $@
+ @echo " [CREATE] $@"
+ $(qexec)./obj_int_extract rvds $< $(ADS2GAS) > $@
OBJS-yes += $(VP8_PREFIX)common/asm_com_offsets.c.o
CLEAN-OBJS += asm_com_offsets.asm
$(filter %$(ASM).o,$(OBJS-yes)): $(BUILD_PFX)asm_com_offsets.asm
asm_enc_offsets.asm: obj_int_extract
asm_enc_offsets.asm: $(VP8_PREFIX)encoder/asm_enc_offsets.c.o
- ./obj_int_extract rvds $< $(ADS2GAS) > $@
+ @echo " [CREATE] $@"
+ $(qexec)./obj_int_extract rvds $< $(ADS2GAS) > $@
OBJS-yes += $(VP8_PREFIX)encoder/asm_enc_offsets.c.o
CLEAN-OBJS += asm_enc_offsets.asm
$(filter %$(ASM).o,$(OBJS-yes)): $(BUILD_PFX)asm_enc_offsets.asm
asm_dec_offsets.asm: obj_int_extract
asm_dec_offsets.asm: $(VP8_PREFIX)decoder/asm_dec_offsets.c.o
- ./obj_int_extract rvds $< $(ADS2GAS) > $@
+ @echo " [CREATE] $@"
+ $(qexec)./obj_int_extract rvds $< $(ADS2GAS) > $@
OBJS-yes += $(VP8_PREFIX)decoder/asm_dec_offsets.c.o
CLEAN-OBJS += asm_dec_offsets.asm
$(filter %$(ASM).o,$(OBJS-yes)): $(BUILD_PFX)asm_dec_offsets.asm
diff --git a/vp8/common/onyx.h b/vp8/common/onyx.h
index 2c8188a63..67cb77c51 100644
--- a/vp8/common/onyx.h
+++ b/vp8/common/onyx.h
@@ -39,14 +39,6 @@ extern "C"
typedef enum
{
- VP8_LAST_FLAG = 1,
- VP8_GOLD_FLAG = 2,
- VP8_ALT_FLAG = 4
- } VP8_REFFRAME;
-
-
- typedef enum
- {
USAGE_STREAM_FROM_SERVER = 0x0,
USAGE_LOCAL_FILE_PLAYBACK = 0x1,
USAGE_CONSTRAINED_QUALITY = 0x2
@@ -244,8 +236,8 @@ extern "C"
int vp8_use_as_reference(struct VP8_COMP* comp, int ref_frame_flags);
int vp8_update_reference(struct VP8_COMP* comp, int ref_frame_flags);
- int vp8_get_reference(struct VP8_COMP* comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
- int vp8_set_reference(struct VP8_COMP* comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
+ int vp8_get_reference(struct VP8_COMP* comp, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd);
+ int vp8_set_reference(struct VP8_COMP* comp, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd);
int vp8_update_entropy(struct VP8_COMP* comp, int update);
int vp8_set_roimap(struct VP8_COMP* comp, unsigned char *map, unsigned int rows, unsigned int cols, int delta_q[4], int delta_lf[4], unsigned int threshold[4]);
int vp8_set_active_map(struct VP8_COMP* comp, unsigned char *map, unsigned int rows, unsigned int cols);
diff --git a/vp8/common/onyxd.h b/vp8/common/onyxd.h
index 35a8b6e55..60af1cc4f 100644
--- a/vp8/common/onyxd.h
+++ b/vp8/common/onyxd.h
@@ -22,6 +22,7 @@ extern "C"
#include "ppflags.h"
#include "vpx_ports/mem.h"
#include "vpx/vpx_codec.h"
+#include "vpx/vp8.h"
struct VP8D_COMP;
@@ -35,12 +36,6 @@ extern "C"
int error_concealment;
int input_fragments;
} VP8D_CONFIG;
- typedef enum
- {
- VP8_LAST_FLAG = 1,
- VP8_GOLD_FLAG = 2,
- VP8_ALT_FLAG = 4
- } VP8_REFFRAME;
typedef enum
{
@@ -56,8 +51,8 @@ extern "C"
int vp8dx_receive_compressed_data(struct VP8D_COMP* comp, unsigned long size, const unsigned char *dest, int64_t time_stamp);
int vp8dx_get_raw_frame(struct VP8D_COMP* comp, YV12_BUFFER_CONFIG *sd, int64_t *time_stamp, int64_t *time_end_stamp, vp8_ppflags_t *flags);
- vpx_codec_err_t vp8dx_get_reference(struct VP8D_COMP* comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
- vpx_codec_err_t vp8dx_set_reference(struct VP8D_COMP* comp, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd);
+ vpx_codec_err_t vp8dx_get_reference(struct VP8D_COMP* comp, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd);
+ vpx_codec_err_t vp8dx_set_reference(struct VP8D_COMP* comp, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd);
struct VP8D_COMP* vp8dx_create_decompressor(VP8D_CONFIG *oxcf);
diff --git a/vp8/common/postproc.c b/vp8/common/postproc.c
index ccf6ad7dd..a94ae0006 100644
--- a/vp8/common/postproc.c
+++ b/vp8/common/postproc.c
@@ -441,7 +441,7 @@ static void fillrd(struct postproc_state *state, int q, int a)
}
- for (next = next; next < 256; next++)
+ for (; next < 256; next++)
char_dist[next] = 0;
}
diff --git a/vp8/decoder/onyxd_if.c b/vp8/decoder/onyxd_if.c
index e9d1a560f..1c67e71d7 100644
--- a/vp8/decoder/onyxd_if.c
+++ b/vp8/decoder/onyxd_if.c
@@ -125,16 +125,16 @@ void vp8dx_remove_decompressor(VP8D_COMP *pbi)
}
-vpx_codec_err_t vp8dx_get_reference(VP8D_COMP *pbi, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd)
+vpx_codec_err_t vp8dx_get_reference(VP8D_COMP *pbi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
{
VP8_COMMON *cm = &pbi->common;
int ref_fb_idx;
- if (ref_frame_flag == VP8_LAST_FLAG)
+ if (ref_frame_flag == VP8_LAST_FRAME)
ref_fb_idx = cm->lst_fb_idx;
- else if (ref_frame_flag == VP8_GOLD_FLAG)
+ else if (ref_frame_flag == VP8_GOLD_FRAME)
ref_fb_idx = cm->gld_fb_idx;
- else if (ref_frame_flag == VP8_ALT_FLAG)
+ else if (ref_frame_flag == VP8_ALTR_FRAME)
ref_fb_idx = cm->alt_fb_idx;
else{
vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
@@ -156,17 +156,17 @@ vpx_codec_err_t vp8dx_get_reference(VP8D_COMP *pbi, VP8_REFFRAME ref_frame_flag,
}
-vpx_codec_err_t vp8dx_set_reference(VP8D_COMP *pbi, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd)
+vpx_codec_err_t vp8dx_set_reference(VP8D_COMP *pbi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
{
VP8_COMMON *cm = &pbi->common;
int *ref_fb_ptr = NULL;
int free_fb;
- if (ref_frame_flag == VP8_LAST_FLAG)
+ if (ref_frame_flag == VP8_LAST_FRAME)
ref_fb_ptr = &cm->lst_fb_idx;
- else if (ref_frame_flag == VP8_GOLD_FLAG)
+ else if (ref_frame_flag == VP8_GOLD_FRAME)
ref_fb_ptr = &cm->gld_fb_idx;
- else if (ref_frame_flag == VP8_ALT_FLAG)
+ else if (ref_frame_flag == VP8_ALTR_FRAME)
ref_fb_ptr = &cm->alt_fb_idx;
else{
vpx_internal_error(&pbi->common.error, VPX_CODEC_ERROR,
diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index 2cef01e4f..dce37a7ee 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -644,15 +644,15 @@ static void init_encode_frame_mb_context(VP8_COMP *cpi)
sizeof(ENTROPY_CONTEXT_PLANES) * cm->mb_cols);
// Special case treatment when GF and ARF are not sensible options for reference
- if (cpi->ref_frame_flags == VP8_LAST_FLAG)
+ if (cpi->ref_frame_flags == VP8_LAST_FRAME)
vp8_calc_ref_frame_costs(x->ref_frame_cost,
cpi->prob_intra_coded,255,128);
else if ((cpi->oxcf.number_of_layers > 1) &&
- (cpi->ref_frame_flags == VP8_GOLD_FLAG))
+ (cpi->ref_frame_flags == VP8_GOLD_FRAME))
vp8_calc_ref_frame_costs(x->ref_frame_cost,
cpi->prob_intra_coded,1,255);
else if ((cpi->oxcf.number_of_layers > 1) &&
- (cpi->ref_frame_flags == VP8_ALT_FLAG))
+ (cpi->ref_frame_flags == VP8_ALTR_FRAME))
vp8_calc_ref_frame_costs(x->ref_frame_cost,
cpi->prob_intra_coded,1,1);
else
diff --git a/vp8/encoder/firstpass.c b/vp8/encoder/firstpass.c
index 8de1a6a6f..36483d606 100644
--- a/vp8/encoder/firstpass.c
+++ b/vp8/encoder/firstpass.c
@@ -853,7 +853,8 @@ skip_motion_search:
else
recon_file = fopen(filename, "ab");
- if(fwrite(lst_yv12->buffer_alloc, lst_yv12->frame_size, 1, recon_file));
+ (void) fwrite(lst_yv12->buffer_alloc, lst_yv12->frame_size, 1,
+ recon_file);
fclose(recon_file);
}
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c
index df1663792..fa8fea0d9 100644
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -703,11 +703,11 @@ void vp8_set_speed_features(VP8_COMP *cpi)
/* Count enabled references */
ref_frames = 1;
- if (cpi->ref_frame_flags & VP8_LAST_FLAG)
+ if (cpi->ref_frame_flags & VP8_LAST_FRAME)
ref_frames++;
- if (cpi->ref_frame_flags & VP8_GOLD_FLAG)
+ if (cpi->ref_frame_flags & VP8_GOLD_FRAME)
ref_frames++;
- if (cpi->ref_frame_flags & VP8_ALT_FLAG)
+ if (cpi->ref_frame_flags & VP8_ALTR_FRAME)
ref_frames++;
/* Convert speed to continuous range, with clamping */
@@ -1514,7 +1514,7 @@ void vp8_change_config(VP8_COMP *cpi, VP8_CONFIG *oxcf)
cpi->baseline_gf_interval =
cpi->oxcf.alt_freq ? cpi->oxcf.alt_freq : DEFAULT_GF_INTERVAL;
- cpi->ref_frame_flags = VP8_ALT_FLAG | VP8_GOLD_FLAG | VP8_LAST_FLAG;
+ cpi->ref_frame_flags = VP8_ALTR_FRAME | VP8_GOLD_FRAME | VP8_LAST_FRAME;
//cpi->use_golden_frame_only = 0;
//cpi->use_last_frame_only = 0;
@@ -1650,6 +1650,7 @@ void vp8_change_config(VP8_COMP *cpi, VP8_CONFIG *oxcf)
cm->yv12_fb[cm->lst_fb_idx].y_height ||
cm->yv12_fb[cm->lst_fb_idx].y_width == 0)
{
+ dealloc_raw_frame_buffers(cpi);
alloc_raw_frame_buffers(cpi);
vp8_alloc_compressor_data(cpi);
}
@@ -1889,9 +1890,6 @@ struct VP8_COMP* vp8_create_compressor(VP8_CONFIG *oxcf)
cpi->total_byte_count = 0;
cpi->drop_frame = 0;
- cpi->drop_count = 0;
- cpi->max_drop_count = 0;
- cpi->max_consec_dropped_frames = 4;
cpi->rate_correction_factor = 1.0;
cpi->key_frame_rate_correction_factor = 1.0;
@@ -2486,28 +2484,28 @@ int vp8_update_reference(VP8_COMP *cpi, int ref_frame_flags)
cpi->common.refresh_alt_ref_frame = 0;
cpi->common.refresh_last_frame = 0;
- if (ref_frame_flags & VP8_LAST_FLAG)
+ if (ref_frame_flags & VP8_LAST_FRAME)
cpi->common.refresh_last_frame = 1;
- if (ref_frame_flags & VP8_GOLD_FLAG)
+ if (ref_frame_flags & VP8_GOLD_FRAME)
cpi->common.refresh_golden_frame = 1;
- if (ref_frame_flags & VP8_ALT_FLAG)
+ if (ref_frame_flags & VP8_ALTR_FRAME)
cpi->common.refresh_alt_ref_frame = 1;
return 0;
}
-int vp8_get_reference(VP8_COMP *cpi, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd)
+int vp8_get_reference(VP8_COMP *cpi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
{
VP8_COMMON *cm = &cpi->common;
int ref_fb_idx;
- if (ref_frame_flag == VP8_LAST_FLAG)
+ if (ref_frame_flag == VP8_LAST_FRAME)
ref_fb_idx = cm->lst_fb_idx;
- else if (ref_frame_flag == VP8_GOLD_FLAG)
+ else if (ref_frame_flag == VP8_GOLD_FRAME)
ref_fb_idx = cm->gld_fb_idx;
- else if (ref_frame_flag == VP8_ALT_FLAG)
+ else if (ref_frame_flag == VP8_ALTR_FRAME)
ref_fb_idx = cm->alt_fb_idx;
else
return -1;
@@ -2516,17 +2514,17 @@ int vp8_get_reference(VP8_COMP *cpi, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CO
return 0;
}
-int vp8_set_reference(VP8_COMP *cpi, VP8_REFFRAME ref_frame_flag, YV12_BUFFER_CONFIG *sd)
+int vp8_set_reference(VP8_COMP *cpi, enum vpx_ref_frame_type ref_frame_flag, YV12_BUFFER_CONFIG *sd)
{
VP8_COMMON *cm = &cpi->common;
int ref_fb_idx;
- if (ref_frame_flag == VP8_LAST_FLAG)
+ if (ref_frame_flag == VP8_LAST_FRAME)
ref_fb_idx = cm->lst_fb_idx;
- else if (ref_frame_flag == VP8_GOLD_FLAG)
+ else if (ref_frame_flag == VP8_GOLD_FRAME)
ref_fb_idx = cm->gld_fb_idx;
- else if (ref_frame_flag == VP8_ALT_FLAG)
+ else if (ref_frame_flag == VP8_ALTR_FRAME)
ref_fb_idx = cm->alt_fb_idx;
else
return -1;
@@ -2615,7 +2613,7 @@ static void scale_and_extend_source(YV12_BUFFER_CONFIG *sd, VP8_COMP *cpi)
}
-static void resize_key_frame(VP8_COMP *cpi)
+static int resize_key_frame(VP8_COMP *cpi)
{
#if CONFIG_SPATIAL_RESAMPLING
VP8_COMMON *cm = &cpi->common;
@@ -2656,10 +2654,12 @@ static void resize_key_frame(VP8_COMP *cpi)
cm->Height = new_height;
vp8_alloc_compressor_data(cpi);
scale_and_extend_source(cpi->un_scaled_source, cpi);
+ return 1;
}
}
#endif
+ return 0;
}
@@ -3033,10 +3033,10 @@ static void update_reference_frames(VP8_COMMON *cm)
if (cm->frame_type == KEY_FRAME)
{
- yv12_fb[cm->new_fb_idx].flags |= VP8_GOLD_FLAG | VP8_ALT_FLAG ;
+ yv12_fb[cm->new_fb_idx].flags |= VP8_GOLD_FRAME | VP8_ALTR_FRAME ;
- yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FLAG;
- yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALT_FLAG;
+ yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FRAME;
+ yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALTR_FRAME;
cm->alt_fb_idx = cm->gld_fb_idx = cm->new_fb_idx;
}
@@ -3046,8 +3046,8 @@ static void update_reference_frames(VP8_COMMON *cm)
{
assert(!cm->copy_buffer_to_arf);
- cm->yv12_fb[cm->new_fb_idx].flags |= VP8_ALT_FLAG;
- cm->yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALT_FLAG;
+ cm->yv12_fb[cm->new_fb_idx].flags |= VP8_ALTR_FRAME;
+ cm->yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALTR_FRAME;
cm->alt_fb_idx = cm->new_fb_idx;
}
else if (cm->copy_buffer_to_arf)
@@ -3058,8 +3058,8 @@ static void update_reference_frames(VP8_COMMON *cm)
{
if(cm->alt_fb_idx != cm->lst_fb_idx)
{
- yv12_fb[cm->lst_fb_idx].flags |= VP8_ALT_FLAG;
- yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALT_FLAG;
+ yv12_fb[cm->lst_fb_idx].flags |= VP8_ALTR_FRAME;
+ yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALTR_FRAME;
cm->alt_fb_idx = cm->lst_fb_idx;
}
}
@@ -3067,8 +3067,8 @@ static void update_reference_frames(VP8_COMMON *cm)
{
if(cm->alt_fb_idx != cm->gld_fb_idx)
{
- yv12_fb[cm->gld_fb_idx].flags |= VP8_ALT_FLAG;
- yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALT_FLAG;
+ yv12_fb[cm->gld_fb_idx].flags |= VP8_ALTR_FRAME;
+ yv12_fb[cm->alt_fb_idx].flags &= ~VP8_ALTR_FRAME;
cm->alt_fb_idx = cm->gld_fb_idx;
}
}
@@ -3078,8 +3078,8 @@ static void update_reference_frames(VP8_COMMON *cm)
{
assert(!cm->copy_buffer_to_gf);
- cm->yv12_fb[cm->new_fb_idx].flags |= VP8_GOLD_FLAG;
- cm->yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FLAG;
+ cm->yv12_fb[cm->new_fb_idx].flags |= VP8_GOLD_FRAME;
+ cm->yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FRAME;
cm->gld_fb_idx = cm->new_fb_idx;
}
else if (cm->copy_buffer_to_gf)
@@ -3090,8 +3090,8 @@ static void update_reference_frames(VP8_COMMON *cm)
{
if(cm->gld_fb_idx != cm->lst_fb_idx)
{
- yv12_fb[cm->lst_fb_idx].flags |= VP8_GOLD_FLAG;
- yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FLAG;
+ yv12_fb[cm->lst_fb_idx].flags |= VP8_GOLD_FRAME;
+ yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FRAME;
cm->gld_fb_idx = cm->lst_fb_idx;
}
}
@@ -3099,8 +3099,8 @@ static void update_reference_frames(VP8_COMMON *cm)
{
if(cm->alt_fb_idx != cm->gld_fb_idx)
{
- yv12_fb[cm->alt_fb_idx].flags |= VP8_GOLD_FLAG;
- yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FLAG;
+ yv12_fb[cm->alt_fb_idx].flags |= VP8_GOLD_FRAME;
+ yv12_fb[cm->gld_fb_idx].flags &= ~VP8_GOLD_FRAME;
cm->gld_fb_idx = cm->alt_fb_idx;
}
}
@@ -3109,8 +3109,8 @@ static void update_reference_frames(VP8_COMMON *cm)
if (cm->refresh_last_frame)
{
- cm->yv12_fb[cm->new_fb_idx].flags |= VP8_LAST_FLAG;
- cm->yv12_fb[cm->lst_fb_idx].flags &= ~VP8_LAST_FLAG;
+ cm->yv12_fb[cm->new_fb_idx].flags |= VP8_LAST_FRAME;
+ cm->yv12_fb[cm->lst_fb_idx].flags &= ~VP8_LAST_FRAME;
cm->lst_fb_idx = cm->new_fb_idx;
}
}
@@ -3815,7 +3815,17 @@ static void encode_frame_to_data_rate
if (cm->frame_type == KEY_FRAME)
{
- resize_key_frame(cpi);
+ if(resize_key_frame(cpi))
+ {
+ /* If the frame size has changed, need to reset Q, quantizer,
+ * and background refresh.
+ */
+ Q = vp8_regulate_q(cpi, cpi->this_frame_target);
+ if (cpi->cyclic_refresh_mode_enabled && (cpi->current_layer==0))
+ cyclic_background_refresh(cpi, Q, 0);
+ vp8_set_quantizer(cpi, Q);
+ }
+
vp8_setup_key_frame(cpi);
}
@@ -4313,30 +4323,6 @@ static void encode_frame_to_data_rate
}
}
-#if 0
-
- // If the frame was massively oversize and we are below optimal buffer level drop next frame
- if ((cpi->drop_frames_allowed) &&
- (cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) &&
- (cpi->buffer_level < cpi->oxcf.drop_frames_water_mark * cpi->oxcf.optimal_buffer_level / 100) &&
- (cpi->projected_frame_size > (4 * cpi->this_frame_target)))
- {
- cpi->drop_frame = 1;
- }
-
-#endif
-
- // Set the count for maximum consecutive dropped frames based upon the ratio of
- // this frame size to the target average per frame bandwidth.
- // (cpi->av_per_frame_bandwidth > 0) is just a sanity check to prevent / 0.
- if (cpi->drop_frames_allowed && (cpi->av_per_frame_bandwidth > 0))
- {
- cpi->max_drop_count = cpi->projected_frame_size / cpi->av_per_frame_bandwidth;
-
- if (cpi->max_drop_count > cpi->max_consec_dropped_frames)
- cpi->max_drop_count = cpi->max_consec_dropped_frames;
- }
-
// Update the buffer level variable.
// Non-viewable frames are a special case and are treated as pure overhead.
if ( !cm->show_frame )
@@ -4527,16 +4513,16 @@ static void encode_frame_to_data_rate
else if (cm->refresh_alt_ref_frame ^ cm->refresh_golden_frame) // 1 refreshed but not the other
cpi->gold_is_alt = 0;
- cpi->ref_frame_flags = VP8_ALT_FLAG | VP8_GOLD_FLAG | VP8_LAST_FLAG;
+ cpi->ref_frame_flags = VP8_ALTR_FRAME | VP8_GOLD_FRAME | VP8_LAST_FRAME;
if (cpi->gold_is_last)
- cpi->ref_frame_flags &= ~VP8_GOLD_FLAG;
+ cpi->ref_frame_flags &= ~VP8_GOLD_FRAME;
if (cpi->alt_is_last)
- cpi->ref_frame_flags &= ~VP8_ALT_FLAG;
+ cpi->ref_frame_flags &= ~VP8_ALTR_FRAME;
if (cpi->gold_is_alt)
- cpi->ref_frame_flags &= ~VP8_ALT_FLAG;
+ cpi->ref_frame_flags &= ~VP8_ALTR_FRAME;
if (!cpi->oxcf.error_resilient_mode)
diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h
index cf70231c4..3b202c941 100644
--- a/vp8/encoder/onyx_int.h
+++ b/vp8/encoder/onyx_int.h
@@ -25,6 +25,7 @@
#include "vp8/common/threading.h"
#include "vpx_ports/mem.h"
#include "vpx/internal/vpx_codec_internal.h"
+#include "vpx/vp8.h"
#include "mcomp.h"
#include "vp8/common/findnearmv.h"
#include "lookahead.h"
@@ -435,10 +436,6 @@ typedef struct VP8_COMP
int drop_frames_allowed; // Are we permitted to drop frames?
int drop_frame; // Drop this frame?
- int drop_count; // How many frames have we dropped?
- int max_drop_count; // How many frames should we drop?
- int max_consec_dropped_frames; // Limit number of consecutive frames that can be dropped.
-
int ymode_count [VP8_YMODES]; /* intra MB type cts this frame */
int uv_mode_count[VP8_UV_MODES]; /* intra MB type cts this frame */
diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c
index 04fd2d05b..f6baf4c7e 100644
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -966,7 +966,7 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
// In unbufferd mode (eg vide conferencing) the descision to
// code or drop a frame is made outside the codec in response to real
// world comms or buffer considerations.
- if (cpi->drop_frames_allowed && cpi->buffered_mode &&
+ if (cpi->drop_frames_allowed &&
(cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) &&
((cpi->common.frame_type != KEY_FRAME))) //|| !cpi->oxcf.allow_spatial_resampling) )
{
@@ -984,28 +984,13 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
//vpx_log("Decoder: Drop frame due to bandwidth: %d \n",cpi->buffer_level, cpi->av_per_frame_bandwidth);
cpi->drop_frame = 1;
- }
-
-#if 0
- // Check for other drop frame crtieria (Note 2 pass cbr uses decimation on whole KF sections)
- else if ((cpi->buffer_level < cpi->oxcf.drop_frames_water_mark * cpi->oxcf.optimal_buffer_level / 100) &&
- (cpi->drop_count < cpi->max_drop_count) && (cpi->pass == 0))
- {
- cpi->drop_frame = 1;
- }
-#endif
-
- if (cpi->drop_frame)
- {
// Update the buffer level variable.
cpi->bits_off_target += cpi->av_per_frame_bandwidth;
if (cpi->bits_off_target > cpi->oxcf.maximum_buffer_size)
cpi->bits_off_target = cpi->oxcf.maximum_buffer_size;
cpi->buffer_level = cpi->bits_off_target;
}
- else
- cpi->drop_count = 0;
}
// Adjust target frame size for Golden Frames:
@@ -1554,7 +1539,6 @@ int vp8_pick_frame_size(VP8_COMP *cpi)
if (cpi->drop_frame)
{
cpi->drop_frame = 0;
- cpi->drop_count++;
return 0;
}
}
diff --git a/vp8/encoder/rdopt.h b/vp8/encoder/rdopt.h
index db939f96c..bbcb59f67 100644
--- a/vp8/encoder/rdopt.h
+++ b/vp8/encoder/rdopt.h
@@ -86,15 +86,15 @@ static void get_predictor_pointers(const VP8_COMP *cpi,
unsigned int recon_yoffset,
unsigned int recon_uvoffset)
{
- if (cpi->ref_frame_flags & VP8_LAST_FLAG)
+ if (cpi->ref_frame_flags & VP8_LAST_FRAME)
get_plane_pointers(&cpi->common.yv12_fb[cpi->common.lst_fb_idx],
plane[LAST_FRAME], recon_yoffset, recon_uvoffset);
- if (cpi->ref_frame_flags & VP8_GOLD_FLAG)
+ if (cpi->ref_frame_flags & VP8_GOLD_FRAME)
get_plane_pointers(&cpi->common.yv12_fb[cpi->common.gld_fb_idx],
plane[GOLDEN_FRAME], recon_yoffset, recon_uvoffset);
- if (cpi->ref_frame_flags & VP8_ALT_FLAG)
+ if (cpi->ref_frame_flags & VP8_ALTR_FRAME)
get_plane_pointers(&cpi->common.yv12_fb[cpi->common.alt_fb_idx],
plane[ALTREF_FRAME], recon_yoffset, recon_uvoffset);
}
@@ -106,11 +106,11 @@ static void get_reference_search_order(const VP8_COMP *cpi,
int i=0;
ref_frame_map[i++] = INTRA_FRAME;
- if (cpi->ref_frame_flags & VP8_LAST_FLAG)
+ if (cpi->ref_frame_flags & VP8_LAST_FRAME)
ref_frame_map[i++] = LAST_FRAME;
- if (cpi->ref_frame_flags & VP8_GOLD_FLAG)
+ if (cpi->ref_frame_flags & VP8_GOLD_FRAME)
ref_frame_map[i++] = GOLDEN_FRAME;
- if (cpi->ref_frame_flags & VP8_ALT_FLAG)
+ if (cpi->ref_frame_flags & VP8_ALTR_FRAME)
ref_frame_map[i++] = ALTREF_FRAME;
for(; i<4; i++)
ref_frame_map[i] = -1;
diff --git a/vp8/vp8_cx_iface.c b/vp8/vp8_cx_iface.c
index ca06648fb..472db6e37 100644
--- a/vp8/vp8_cx_iface.c
+++ b/vp8/vp8_cx_iface.c
@@ -771,13 +771,13 @@ static vpx_codec_err_t vp8e_encode(vpx_codec_alg_priv_t *ctx,
int ref = 7;
if (flags & VP8_EFLAG_NO_REF_LAST)
- ref ^= VP8_LAST_FLAG;
+ ref ^= VP8_LAST_FRAME;
if (flags & VP8_EFLAG_NO_REF_GF)
- ref ^= VP8_GOLD_FLAG;
+ ref ^= VP8_GOLD_FRAME;
if (flags & VP8_EFLAG_NO_REF_ARF)
- ref ^= VP8_ALT_FLAG;
+ ref ^= VP8_ALTR_FRAME;
vp8_use_as_reference(ctx->cpi, ref);
}
@@ -789,13 +789,13 @@ static vpx_codec_err_t vp8e_encode(vpx_codec_alg_priv_t *ctx,
int upd = 7;
if (flags & VP8_EFLAG_NO_UPD_LAST)
- upd ^= VP8_LAST_FLAG;
+ upd ^= VP8_LAST_FRAME;
if (flags & VP8_EFLAG_NO_UPD_GF)
- upd ^= VP8_GOLD_FLAG;
+ upd ^= VP8_GOLD_FRAME;
if (flags & VP8_EFLAG_NO_UPD_ARF)
- upd ^= VP8_ALT_FLAG;
+ upd ^= VP8_ALTR_FRAME;
vp8_update_reference(ctx->cpi, upd);
}
diff --git a/vp8_multi_resolution_encoder.c b/vp8_multi_resolution_encoder.c
index 81e71375d..497d8f7e1 100644
--- a/vp8_multi_resolution_encoder.c
+++ b/vp8_multi_resolution_encoder.c
@@ -164,7 +164,7 @@ static void write_ivf_file_header(FILE *outfile,
mem_put_le32(header+24, frame_cnt); /* length */
mem_put_le32(header+28, 0); /* unused */
- if(fwrite(header, 1, 32, outfile));
+ (void) fwrite(header, 1, 32, outfile);
}
static void write_ivf_frame_header(FILE *outfile,
@@ -181,7 +181,7 @@ static void write_ivf_frame_header(FILE *outfile,
mem_put_le32(header+4, pts&0xFFFFFFFF);
mem_put_le32(header+8, pts >> 32);
- if(fwrite(header, 1, 12, outfile));
+ (void) fwrite(header, 1, 12, outfile);
}
int main(int argc, char **argv)
@@ -410,8 +410,8 @@ int main(int argc, char **argv)
switch(pkt[i]->kind) {
case VPX_CODEC_CX_FRAME_PKT:
write_ivf_frame_header(outfile[i], pkt[i]);
- if(fwrite(pkt[i]->data.frame.buf, 1, pkt[i]->data.frame.sz,
- outfile[i]));
+ (void) fwrite(pkt[i]->data.frame.buf, 1,
+ pkt[i]->data.frame.sz, outfile[i]);
break;
case VPX_CODEC_PSNR_PKT:
if (show_psnr)
diff --git a/vp8_scalable_patterns.c b/vp8_scalable_patterns.c
index 8d151ddb7..bd884141d 100644
--- a/vp8_scalable_patterns.c
+++ b/vp8_scalable_patterns.c
@@ -93,7 +93,7 @@ static void write_ivf_file_header(FILE *outfile,
mem_put_le32(header+24, frame_cnt); /* length */
mem_put_le32(header+28, 0); /* unused */
- if(fwrite(header, 1, 32, outfile));
+ (void) fwrite(header, 1, 32, outfile);
}
@@ -111,7 +111,7 @@ static void write_ivf_frame_header(FILE *outfile,
mem_put_le32(header+4, pts&0xFFFFFFFF);
mem_put_le32(header+8, pts >> 32);
- if(fwrite(header, 1, 12, outfile));
+ (void) fwrite(header, 1, 12, outfile);
}
static int mode_to_num_layers[9] = {2, 2, 3, 3, 3, 3, 5, 2, 3};
@@ -530,8 +530,8 @@ int main(int argc, char **argv) {
i<cfg.ts_number_layers; i++)
{
write_ivf_frame_header(outfile[i], pkt);
- if (fwrite(pkt->data.frame.buf, 1, pkt->data.frame.sz,
- outfile[i]));
+ (void) fwrite(pkt->data.frame.buf, 1, pkt->data.frame.sz,
+ outfile[i]);
frames_in_layer[i]++;
}
break;
@@ -562,4 +562,3 @@ int main(int argc, char **argv) {
return EXIT_SUCCESS;
}
-
diff --git a/vpxdec.c b/vpxdec.c
index 4482f3dc7..67e99a8ee 100644
--- a/vpxdec.c
+++ b/vpxdec.c
@@ -356,7 +356,7 @@ void out_put(void *out, const uint8_t *buf, unsigned int len, int do_md5)
}
else
{
- if(fwrite(buf, 1, len, out));
+ (void) fwrite(buf, 1, len, out);
}
}
diff --git a/vpxenc.c b/vpxenc.c
index b9aa8e170..a86e23756 100644
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -245,7 +245,7 @@ void stats_write(stats_io_t *stats, const void *pkt, size_t len)
{
if (stats->file)
{
- if(fwrite(pkt, 1, len, stats->file));
+ (void) fwrite(pkt, 1, len, stats->file);
}
else
{
@@ -338,7 +338,7 @@ static int read_frame(struct input_state *input, vpx_image_t *img)
* write_ivf_frame_header() for documentation on the frame header
* layout.
*/
- if(fread(junk, 1, IVF_FRAME_HDR_SZ, f));
+ (void) fread(junk, 1, IVF_FRAME_HDR_SZ, f);
}
for (plane = 0; plane < 3; plane++)
@@ -468,7 +468,7 @@ static void write_ivf_file_header(FILE *outfile,
mem_put_le32(header + 24, frame_cnt); /* length */
mem_put_le32(header + 28, 0); /* unused */
- if(fwrite(header, 1, 32, outfile));
+ (void) fwrite(header, 1, 32, outfile);
}
@@ -486,14 +486,14 @@ static void write_ivf_frame_header(FILE *outfile,
mem_put_le32(header + 4, pts & 0xFFFFFFFF);
mem_put_le32(header + 8, pts >> 32);
- if(fwrite(header, 1, 12, outfile));
+ (void) fwrite(header, 1, 12, outfile);
}
static void write_ivf_frame_size(FILE *outfile, size_t size)
{
char header[4];
mem_put_le32(header, size);
- fwrite(header, 1, 4, outfile);
+ (void) fwrite(header, 1, 4, outfile);
}
@@ -541,7 +541,7 @@ struct EbmlGlobal
void Ebml_Write(EbmlGlobal *glob, const void *buffer_in, unsigned long len)
{
- if(fwrite(buffer_in, 1, len, glob->stream));
+ (void) fwrite(buffer_in, 1, len, glob->stream);
}
#define WRITE_BUFFER(s) \
@@ -2259,8 +2259,8 @@ static void get_cx_data(struct stream_state *stream,
}
}
- fwrite(pkt->data.frame.buf, 1,
- pkt->data.frame.sz, stream->file);
+ (void) fwrite(pkt->data.frame.buf, 1, pkt->data.frame.sz,
+ stream->file);
}
stream->nbytes += pkt->data.raw.sz;
break;