| Index: source/libvpx/vp9/encoder/vp9_encoder.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_encoder.c (revision 285372)
|
| +++ source/libvpx/vp9/encoder/vp9_encoder.c (working copy)
|
| @@ -1418,17 +1418,6 @@
|
| src += s->uv_stride;
|
| } while (--h);
|
|
|
| -#if CONFIG_ALPHA
|
| - if (s->alpha_buffer) {
|
| - src = s->alpha_buffer;
|
| - h = s->alpha_height;
|
| - do {
|
| - fwrite(src, s->alpha_width, 1, yuv_rec_file);
|
| - src += s->alpha_stride;
|
| - } while (--h);
|
| - }
|
| -#endif
|
| -
|
| fflush(yuv_rec_file);
|
| }
|
| #endif
|
| @@ -1437,22 +1426,18 @@
|
| YV12_BUFFER_CONFIG *dst) {
|
| // TODO(dkovalev): replace YV12_BUFFER_CONFIG with vpx_image_t
|
| int i;
|
| - const uint8_t *const srcs[4] = {src->y_buffer, src->u_buffer, src->v_buffer,
|
| - src->alpha_buffer};
|
| - const int src_strides[4] = {src->y_stride, src->uv_stride, src->uv_stride,
|
| - src->alpha_stride};
|
| - const int src_widths[4] = {src->y_crop_width, src->uv_crop_width,
|
| - src->uv_crop_width, src->y_crop_width};
|
| - const int src_heights[4] = {src->y_crop_height, src->uv_crop_height,
|
| - src->uv_crop_height, src->y_crop_height};
|
| - uint8_t *const dsts[4] = {dst->y_buffer, dst->u_buffer, dst->v_buffer,
|
| - dst->alpha_buffer};
|
| - const int dst_strides[4] = {dst->y_stride, dst->uv_stride, dst->uv_stride,
|
| - dst->alpha_stride};
|
| - const int dst_widths[4] = {dst->y_crop_width, dst->uv_crop_width,
|
| - dst->uv_crop_width, dst->y_crop_width};
|
| - const int dst_heights[4] = {dst->y_crop_height, dst->uv_crop_height,
|
| - dst->uv_crop_height, dst->y_crop_height};
|
| + const uint8_t *const srcs[3] = {src->y_buffer, src->u_buffer, src->v_buffer};
|
| + const int src_strides[3] = {src->y_stride, src->uv_stride, src->uv_stride};
|
| + const int src_widths[3] = {src->y_crop_width, src->uv_crop_width,
|
| + src->uv_crop_width };
|
| + const int src_heights[3] = {src->y_crop_height, src->uv_crop_height,
|
| + src->uv_crop_height};
|
| + uint8_t *const dsts[3] = {dst->y_buffer, dst->u_buffer, dst->v_buffer};
|
| + const int dst_strides[3] = {dst->y_stride, dst->uv_stride, dst->uv_stride};
|
| + const int dst_widths[3] = {dst->y_crop_width, dst->uv_crop_width,
|
| + dst->uv_crop_width};
|
| + const int dst_heights[3] = {dst->y_crop_height, dst->uv_crop_height,
|
| + dst->uv_crop_height};
|
|
|
| for (i = 0; i < MAX_MB_PLANE; ++i)
|
| vp9_resize_plane(srcs[i], src_heights[i], src_widths[i], src_strides[i],
|
| @@ -1467,14 +1452,10 @@
|
| const int src_h = src->y_crop_height;
|
| const int dst_w = dst->y_crop_width;
|
| const int dst_h = dst->y_crop_height;
|
| - const uint8_t *const srcs[4] = {src->y_buffer, src->u_buffer, src->v_buffer,
|
| - src->alpha_buffer};
|
| - const int src_strides[4] = {src->y_stride, src->uv_stride, src->uv_stride,
|
| - src->alpha_stride};
|
| - uint8_t *const dsts[4] = {dst->y_buffer, dst->u_buffer, dst->v_buffer,
|
| - dst->alpha_buffer};
|
| - const int dst_strides[4] = {dst->y_stride, dst->uv_stride, dst->uv_stride,
|
| - dst->alpha_stride};
|
| + const uint8_t *const srcs[3] = {src->y_buffer, src->u_buffer, src->v_buffer};
|
| + const int src_strides[3] = {src->y_stride, src->uv_stride, src->uv_stride};
|
| + uint8_t *const dsts[3] = {dst->y_buffer, dst->u_buffer, dst->v_buffer};
|
| + const int dst_strides[3] = {dst->y_stride, dst->uv_stride, dst->uv_stride};
|
| const InterpKernel *const kernel = vp9_get_interp_kernel(EIGHTTAP);
|
| int x, y, i;
|
|
|
| @@ -2245,15 +2226,6 @@
|
|
|
| set_speed_features(cpi);
|
|
|
| -#if CONFIG_DENOISING
|
| -#ifdef OUTPUT_YUV_DENOISED
|
| - if (cpi->oxcf.noise_sensitivity > 0) {
|
| - vp9_write_yuv_frame_420(&cpi->denoiser.running_avg_y[INTRA_FRAME],
|
| - yuv_denoised_file);
|
| - }
|
| -#endif
|
| -#endif
|
| -
|
| // Decide q and q bounds.
|
| q = vp9_rc_pick_q_and_bounds(cpi, &bottom_index, &top_index);
|
|
|
| @@ -2269,6 +2241,16 @@
|
| encode_with_recode_loop(cpi, size, dest, q, bottom_index, top_index);
|
| }
|
|
|
| +#if CONFIG_DENOISING
|
| +#ifdef OUTPUT_YUV_DENOISED
|
| + if (cpi->oxcf.noise_sensitivity > 0) {
|
| + vp9_write_yuv_frame_420(&cpi->denoiser.running_avg_y[INTRA_FRAME],
|
| + yuv_denoised_file);
|
| + }
|
| +#endif
|
| +#endif
|
| +
|
| +
|
| // Special case code to reduce pulsing when key frames are forced at a
|
| // fixed interval. Note the reconstruction error if it is the frame before
|
| // the force key frame
|
| @@ -2441,15 +2423,13 @@
|
| int res = 0;
|
| const int subsampling_x = sd->uv_width < sd->y_width;
|
| const int subsampling_y = sd->uv_height < sd->y_height;
|
| - const int is_spatial_svc = cpi->use_svc &&
|
| - (cpi->svc.number_temporal_layers == 1);
|
|
|
| check_initial_width(cpi, subsampling_x, subsampling_y);
|
|
|
| vpx_usec_timer_start(&timer);
|
|
|
| -#ifdef CONFIG_SPATIAL_SVC
|
| - if (is_spatial_svc)
|
| +#if CONFIG_SPATIAL_SVC
|
| + if (cpi->use_svc && cpi->svc.number_temporal_layers == 1)
|
| res = vp9_svc_lookahead_push(cpi, cpi->lookahead, sd, time_stamp, end_time,
|
| frame_flags);
|
| else
|
| @@ -2580,7 +2560,9 @@
|
| return -1;
|
|
|
| if (is_spatial_svc && cpi->pass == 2) {
|
| +#if CONFIG_SPATIAL_SVC
|
| vp9_svc_lookahead_peek(cpi, cpi->lookahead, 0, 1);
|
| +#endif
|
| vp9_restore_layer_context(cpi);
|
| }
|
|
|
| @@ -2603,7 +2585,7 @@
|
| if (arf_src_index) {
|
| assert(arf_src_index <= rc->frames_to_key);
|
|
|
| -#ifdef CONFIG_SPATIAL_SVC
|
| +#if CONFIG_SPATIAL_SVC
|
| if (is_spatial_svc)
|
| cpi->source = vp9_svc_lookahead_peek(cpi, cpi->lookahead,
|
| arf_src_index, 0);
|
| @@ -2613,7 +2595,7 @@
|
| if (cpi->source != NULL) {
|
| cpi->alt_ref_source = cpi->source;
|
|
|
| -#ifdef CONFIG_SPATIAL_SVC
|
| +#if CONFIG_SPATIAL_SVC
|
| if (is_spatial_svc && cpi->svc.spatial_layer_id > 0) {
|
| int i;
|
| // Reference a hidden frame from a lower layer
|
| @@ -2648,7 +2630,7 @@
|
| if (!cpi->source) {
|
| // Get last frame source.
|
| if (cm->current_video_frame > 0) {
|
| -#ifdef CONFIG_SPATIAL_SVC
|
| +#if CONFIG_SPATIAL_SVC
|
| if (is_spatial_svc)
|
| cpi->last_source = vp9_svc_lookahead_peek(cpi, cpi->lookahead, -1, 0);
|
| else
|
| @@ -2659,7 +2641,7 @@
|
| }
|
|
|
| // Read in the source frame.
|
| -#ifdef CONFIG_SPATIAL_SVC
|
| +#if CONFIG_SPATIAL_SVC
|
| if (is_spatial_svc)
|
| cpi->source = vp9_svc_lookahead_pop(cpi, cpi->lookahead, flush);
|
| else
|
| @@ -2703,6 +2685,9 @@
|
| cpi->last_end_time_stamp_seen = cpi->source->ts_start;
|
| }
|
|
|
| + // Clear down mmx registers
|
| + vp9_clear_system_state();
|
| +
|
| // adjust frame rates based on timestamps given
|
| if (cm->show_frame) {
|
| adjust_frame_rate(cpi);
|
| @@ -2717,9 +2702,6 @@
|
| // start with a 0 size frame
|
| *size = 0;
|
|
|
| - // Clear down mmx registers
|
| - vp9_clear_system_state();
|
| -
|
| /* find a free buffer for the new frame, releasing the reference previously
|
| * held.
|
| */
|
|
|