Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: source/libvpx/vp9/encoder/vp9_encoder.c

Issue 484923003: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_encoder.h ('k') | source/libvpx/vp9/encoder/vp9_firstpass.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 vpx_internal_error(&cm->error, VPX_CODEC_MEM_ERROR, 482 vpx_internal_error(&cm->error, VPX_CODEC_MEM_ERROR,
483 "Failed to reallocate alt_ref_buffer"); 483 "Failed to reallocate alt_ref_buffer");
484 } 484 }
485 } 485 }
486 486
487 void vp9_new_framerate(VP9_COMP *cpi, double framerate) { 487 void vp9_new_framerate(VP9_COMP *cpi, double framerate) {
488 cpi->framerate = framerate < 0.1 ? 30 : framerate; 488 cpi->framerate = framerate < 0.1 ? 30 : framerate;
489 vp9_rc_update_framerate(cpi); 489 vp9_rc_update_framerate(cpi);
490 } 490 }
491 491
492 int64_t vp9_rescale(int64_t val, int64_t num, int denom) {
493 int64_t llnum = num;
494 int64_t llden = denom;
495 int64_t llval = val;
496
497 return (llval * llnum / llden);
498 }
499
500 static void set_tile_limits(VP9_COMP *cpi) { 492 static void set_tile_limits(VP9_COMP *cpi) {
501 VP9_COMMON *const cm = &cpi->common; 493 VP9_COMMON *const cm = &cpi->common;
502 494
503 int min_log2_tile_cols, max_log2_tile_cols; 495 int min_log2_tile_cols, max_log2_tile_cols;
504 vp9_get_tile_n_bits(cm->mi_cols, &min_log2_tile_cols, &max_log2_tile_cols); 496 vp9_get_tile_n_bits(cm->mi_cols, &min_log2_tile_cols, &max_log2_tile_cols);
505 497
506 cm->log2_tile_cols = clamp(cpi->oxcf.tile_columns, 498 cm->log2_tile_cols = clamp(cpi->oxcf.tile_columns,
507 min_log2_tile_cols, max_log2_tile_cols); 499 min_log2_tile_cols, max_log2_tile_cols);
508 cm->log2_tile_rows = cpi->oxcf.tile_rows; 500 cm->log2_tile_rows = cpi->oxcf.tile_rows;
509 } 501 }
(...skipping 16 matching lines...) Expand all
526 518
527 cm->width = oxcf->width; 519 cm->width = oxcf->width;
528 cm->height = oxcf->height; 520 cm->height = oxcf->height;
529 vp9_alloc_compressor_data(cpi); 521 vp9_alloc_compressor_data(cpi);
530 522
531 // Spatial scalability. 523 // Spatial scalability.
532 cpi->svc.number_spatial_layers = oxcf->ss_number_layers; 524 cpi->svc.number_spatial_layers = oxcf->ss_number_layers;
533 // Temporal scalability. 525 // Temporal scalability.
534 cpi->svc.number_temporal_layers = oxcf->ts_number_layers; 526 cpi->svc.number_temporal_layers = oxcf->ts_number_layers;
535 527
536 if ((cpi->svc.number_temporal_layers > 1 && 528 if ((cpi->svc.number_temporal_layers > 1 && cpi->oxcf.rc_mode == VPX_CBR) ||
537 cpi->oxcf.rc_mode == VPX_CBR) || 529 (cpi->svc.number_spatial_layers > 1 && cpi->oxcf.pass == 2)) {
538 (cpi->svc.number_spatial_layers > 1 &&
539 cpi->oxcf.mode == TWO_PASS_SECOND_BEST)) {
540 vp9_init_layer_context(cpi); 530 vp9_init_layer_context(cpi);
541 } 531 }
542 532
543 // change includes all joint functionality 533 // change includes all joint functionality
544 vp9_change_config(cpi, oxcf); 534 vp9_change_config(cpi, oxcf);
545 535
546 cpi->static_mb_pct = 0; 536 cpi->static_mb_pct = 0;
547 cpi->ref_frame_flags = 0; 537 cpi->ref_frame_flags = 0;
548 538
549 init_buffer_indices(cpi); 539 init_buffer_indices(cpi);
550 540
551 set_tile_limits(cpi); 541 set_tile_limits(cpi);
552 } 542 }
553 543
544 static void set_rc_buffer_sizes(RATE_CONTROL *rc,
545 const VP9EncoderConfig *oxcf) {
546 const int64_t bandwidth = oxcf->target_bandwidth;
547 const int64_t starting = oxcf->starting_buffer_level_ms;
548 const int64_t optimal = oxcf->optimal_buffer_level_ms;
549 const int64_t maximum = oxcf->maximum_buffer_size_ms;
550
551 rc->starting_buffer_level = starting * bandwidth / 1000;
552 rc->optimal_buffer_level = (optimal == 0) ? bandwidth / 8
553 : optimal * bandwidth / 1000;
554 rc->maximum_buffer_size = (maximum == 0) ? bandwidth / 8
555 : maximum * bandwidth / 1000;
556 }
557
554 void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) { 558 void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
555 VP9_COMMON *const cm = &cpi->common; 559 VP9_COMMON *const cm = &cpi->common;
556 RATE_CONTROL *const rc = &cpi->rc; 560 RATE_CONTROL *const rc = &cpi->rc;
557 561
558 if (cm->profile != oxcf->profile) 562 if (cm->profile != oxcf->profile)
559 cm->profile = oxcf->profile; 563 cm->profile = oxcf->profile;
560 cm->bit_depth = oxcf->bit_depth; 564 cm->bit_depth = oxcf->bit_depth;
561 565
562 if (cm->profile <= PROFILE_1) 566 if (cm->profile <= PROFILE_1)
563 assert(cm->bit_depth == BITS_8); 567 assert(cm->bit_depth == BITS_8);
(...skipping 13 matching lines...) Expand all
577 vp9_set_high_precision_mv(cpi, 0); 581 vp9_set_high_precision_mv(cpi, 0);
578 582
579 { 583 {
580 int i; 584 int i;
581 585
582 for (i = 0; i < MAX_SEGMENTS; i++) 586 for (i = 0; i < MAX_SEGMENTS; i++)
583 cpi->segment_encode_breakout[i] = cpi->oxcf.encode_breakout; 587 cpi->segment_encode_breakout[i] = cpi->oxcf.encode_breakout;
584 } 588 }
585 cpi->encode_breakout = cpi->oxcf.encode_breakout; 589 cpi->encode_breakout = cpi->oxcf.encode_breakout;
586 590
587 // local file playback mode == really big buffer 591 set_rc_buffer_sizes(rc, &cpi->oxcf);
588 if (cpi->oxcf.rc_mode == VPX_VBR) {
589 cpi->oxcf.starting_buffer_level_ms = 60000;
590 cpi->oxcf.optimal_buffer_level_ms = 60000;
591 cpi->oxcf.maximum_buffer_size_ms = 240000;
592 }
593 592
594 rc->starting_buffer_level = vp9_rescale(cpi->oxcf.starting_buffer_level_ms,
595 cpi->oxcf.target_bandwidth, 1000);
596
597 // Set or reset optimal and maximum buffer levels.
598 if (cpi->oxcf.optimal_buffer_level_ms == 0)
599 rc->optimal_buffer_level = cpi->oxcf.target_bandwidth / 8;
600 else
601 rc->optimal_buffer_level = vp9_rescale(cpi->oxcf.optimal_buffer_level_ms,
602 cpi->oxcf.target_bandwidth, 1000);
603
604 if (cpi->oxcf.maximum_buffer_size_ms == 0)
605 rc->maximum_buffer_size = cpi->oxcf.target_bandwidth / 8;
606 else
607 rc->maximum_buffer_size = vp9_rescale(cpi->oxcf.maximum_buffer_size_ms,
608 cpi->oxcf.target_bandwidth, 1000);
609 // Under a configuration change, where maximum_buffer_size may change, 593 // Under a configuration change, where maximum_buffer_size may change,
610 // keep buffer level clipped to the maximum allowed buffer size. 594 // keep buffer level clipped to the maximum allowed buffer size.
611 rc->bits_off_target = MIN(rc->bits_off_target, rc->maximum_buffer_size); 595 rc->bits_off_target = MIN(rc->bits_off_target, rc->maximum_buffer_size);
612 rc->buffer_level = MIN(rc->buffer_level, rc->maximum_buffer_size); 596 rc->buffer_level = MIN(rc->buffer_level, rc->maximum_buffer_size);
613 597
614 // Set up frame rate and related parameters rate control values. 598 // Set up frame rate and related parameters rate control values.
615 vp9_new_framerate(cpi, cpi->framerate); 599 vp9_new_framerate(cpi, cpi->framerate);
616 600
617 // Set absolute upper and lower quality limits 601 // Set absolute upper and lower quality limits
618 rc->worst_quality = cpi->oxcf.worst_allowed_q; 602 rc->worst_quality = cpi->oxcf.worst_allowed_q;
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 cm->error.setjmp = 1; 708 cm->error.setjmp = 1;
725 709
726 vp9_rtcd(); 710 vp9_rtcd();
727 711
728 cpi->use_svc = 0; 712 cpi->use_svc = 0;
729 713
730 init_config(cpi, oxcf); 714 init_config(cpi, oxcf);
731 vp9_rc_init(&cpi->oxcf, oxcf->pass, &cpi->rc); 715 vp9_rc_init(&cpi->oxcf, oxcf->pass, &cpi->rc);
732 716
733 cm->current_video_frame = 0; 717 cm->current_video_frame = 0;
734
735 cpi->gold_is_last = 0;
736 cpi->alt_is_last = 0;
737 cpi->gold_is_alt = 0;
738
739 cpi->skippable_frame = 0; 718 cpi->skippable_frame = 0;
740 719
741 // Create the encoder segmentation map and set all entries to 0 720 // Create the encoder segmentation map and set all entries to 0
742 CHECK_MEM_ERROR(cm, cpi->segmentation_map, 721 CHECK_MEM_ERROR(cm, cpi->segmentation_map,
743 vpx_calloc(cm->mi_rows * cm->mi_cols, 1)); 722 vpx_calloc(cm->mi_rows * cm->mi_cols, 1));
744 723
745 // Create a complexity map used for rd adjustment 724 // Create a complexity map used for rd adjustment
746 CHECK_MEM_ERROR(cm, cpi->complexity_map, 725 CHECK_MEM_ERROR(cm, cpi->complexity_map,
747 vpx_calloc(cm->mi_rows * cm->mi_cols, 1)); 726 vpx_calloc(cm->mi_rows * cm->mi_cols, 1));
748 727
(...skipping 1160 matching lines...) Expand 10 before | Expand all | Expand 10 after
1909 if (loop) { 1888 if (loop) {
1910 loop_count++; 1889 loop_count++;
1911 1890
1912 #if CONFIG_INTERNAL_STATS 1891 #if CONFIG_INTERNAL_STATS
1913 cpi->tot_recode_hits++; 1892 cpi->tot_recode_hits++;
1914 #endif 1893 #endif
1915 } 1894 }
1916 } while (loop); 1895 } while (loop);
1917 } 1896 }
1918 1897
1919 static void get_ref_frame_flags(VP9_COMP *cpi) { 1898 static int get_ref_frame_flags(const VP9_COMP *cpi) {
1920 if (cpi->refresh_last_frame & cpi->refresh_golden_frame) 1899 const int *const map = cpi->common.ref_frame_map;
1921 cpi->gold_is_last = 1; 1900 const int gold_is_last = map[cpi->gld_fb_idx] == map[cpi->lst_fb_idx];
1922 else if (cpi->refresh_last_frame ^ cpi->refresh_golden_frame) 1901 const int alt_is_last = map[cpi->alt_fb_idx] == map[cpi->lst_fb_idx];
1923 cpi->gold_is_last = 0; 1902 const int gold_is_alt = map[cpi->gld_fb_idx] == map[cpi->alt_fb_idx];
1903 int flags = VP9_ALT_FLAG | VP9_GOLD_FLAG | VP9_LAST_FLAG;
1924 1904
1925 if (cpi->refresh_last_frame & cpi->refresh_alt_ref_frame) 1905 if (gold_is_last)
1926 cpi->alt_is_last = 1; 1906 flags &= ~VP9_GOLD_FLAG;
1927 else if (cpi->refresh_last_frame ^ cpi->refresh_alt_ref_frame)
1928 cpi->alt_is_last = 0;
1929
1930 if (cpi->refresh_alt_ref_frame & cpi->refresh_golden_frame)
1931 cpi->gold_is_alt = 1;
1932 else if (cpi->refresh_alt_ref_frame ^ cpi->refresh_golden_frame)
1933 cpi->gold_is_alt = 0;
1934
1935 cpi->ref_frame_flags = VP9_ALT_FLAG | VP9_GOLD_FLAG | VP9_LAST_FLAG;
1936
1937 if (cpi->gold_is_last)
1938 cpi->ref_frame_flags &= ~VP9_GOLD_FLAG;
1939 1907
1940 if (cpi->rc.frames_till_gf_update_due == INT_MAX && 1908 if (cpi->rc.frames_till_gf_update_due == INT_MAX &&
1941 !is_spatial_svc(cpi)) 1909 !is_spatial_svc(cpi))
1942 cpi->ref_frame_flags &= ~VP9_GOLD_FLAG; 1910 flags &= ~VP9_GOLD_FLAG;
1943 1911
1944 if (cpi->alt_is_last) 1912 if (alt_is_last)
1945 cpi->ref_frame_flags &= ~VP9_ALT_FLAG; 1913 flags &= ~VP9_ALT_FLAG;
1946 1914
1947 if (cpi->gold_is_alt) 1915 if (gold_is_alt)
1948 cpi->ref_frame_flags &= ~VP9_ALT_FLAG; 1916 flags &= ~VP9_ALT_FLAG;
1917
1918 return flags;
1949 } 1919 }
1950 1920
1951 static void set_ext_overrides(VP9_COMP *cpi) { 1921 static void set_ext_overrides(VP9_COMP *cpi) {
1952 // Overrides the defaults with the externally supplied values with 1922 // Overrides the defaults with the externally supplied values with
1953 // vp9_update_reference() and vp9_update_entropy() calls 1923 // vp9_update_reference() and vp9_update_entropy() calls
1954 // Note: The overrides are valid only for the next frame passed 1924 // Note: The overrides are valid only for the next frame passed
1955 // to encode_frame_to_data_rate() function 1925 // to encode_frame_to_data_rate() function
1956 if (cpi->ext_refresh_frame_context_pending) { 1926 if (cpi->ext_refresh_frame_context_pending) {
1957 cpi->common.refresh_frame_context = cpi->ext_refresh_frame_context; 1927 cpi->common.refresh_frame_context = cpi->ext_refresh_frame_context;
1958 cpi->ext_refresh_frame_context_pending = 0; 1928 cpi->ext_refresh_frame_context_pending = 0;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2007 arf_sign_bias = cpi->rc.source_alt_ref_active && 1977 arf_sign_bias = cpi->rc.source_alt_ref_active &&
2008 (!cpi->refresh_alt_ref_frame || 1978 (!cpi->refresh_alt_ref_frame ||
2009 (gf_group->rf_level[gf_group->index] == GF_ARF_LOW)); 1979 (gf_group->rf_level[gf_group->index] == GF_ARF_LOW));
2010 } else { 1980 } else {
2011 arf_sign_bias = 1981 arf_sign_bias =
2012 (cpi->rc.source_alt_ref_active && !cpi->refresh_alt_ref_frame); 1982 (cpi->rc.source_alt_ref_active && !cpi->refresh_alt_ref_frame);
2013 } 1983 }
2014 cm->ref_frame_sign_bias[ALTREF_FRAME] = arf_sign_bias; 1984 cm->ref_frame_sign_bias[ALTREF_FRAME] = arf_sign_bias;
2015 } 1985 }
2016 1986
1987 static void set_mv_search_params(VP9_COMP *cpi) {
1988 const VP9_COMMON *const cm = &cpi->common;
1989 const unsigned int max_mv_def = MIN(cm->width, cm->height);
1990
1991 // Default based on max resolution.
1992 cpi->mv_step_param = vp9_init_search_range(max_mv_def);
1993
1994 if (cpi->sf.mv.auto_mv_step_size) {
1995 if (frame_is_intra_only(cm)) {
1996 // Initialize max_mv_magnitude for use in the first INTER frame
1997 // after a key/intra-only frame.
1998 cpi->max_mv_magnitude = max_mv_def;
1999 } else {
2000 if (cm->show_frame)
2001 // Allow mv_steps to correspond to twice the max mv magnitude found
2002 // in the previous frame, capped by the default max_mv_magnitude based
2003 // on resolution.
2004 cpi->mv_step_param =
2005 vp9_init_search_range(MIN(max_mv_def, 2 * cpi->max_mv_magnitude));
2006 cpi->max_mv_magnitude = 0;
2007 }
2008 }
2009 }
2010
2017 static void encode_frame_to_data_rate(VP9_COMP *cpi, 2011 static void encode_frame_to_data_rate(VP9_COMP *cpi,
2018 size_t *size, 2012 size_t *size,
2019 uint8_t *dest, 2013 uint8_t *dest,
2020 unsigned int *frame_flags) { 2014 unsigned int *frame_flags) {
2021 VP9_COMMON *const cm = &cpi->common; 2015 VP9_COMMON *const cm = &cpi->common;
2016 struct segmentation *const seg = &cm->seg;
2022 TX_SIZE t; 2017 TX_SIZE t;
2023 int q; 2018 int q;
2024 int top_index; 2019 int top_index;
2025 int bottom_index; 2020 int bottom_index;
2026 2021
2027 const SPEED_FEATURES *const sf = &cpi->sf;
2028 const unsigned int max_mv_def = MIN(cm->width, cm->height);
2029 struct segmentation *const seg = &cm->seg;
2030 set_ext_overrides(cpi); 2022 set_ext_overrides(cpi);
2031 2023
2032 cpi->Source = vp9_scale_if_required(cm, cpi->un_scaled_source, 2024 cpi->Source = vp9_scale_if_required(cm, cpi->un_scaled_source,
2033 &cpi->scaled_source); 2025 &cpi->scaled_source);
2034 2026
2035 if (cpi->unscaled_last_source != NULL) 2027 if (cpi->unscaled_last_source != NULL)
2036 cpi->Last_Source = vp9_scale_if_required(cm, cpi->unscaled_last_source, 2028 cpi->Last_Source = vp9_scale_if_required(cm, cpi->unscaled_last_source,
2037 &cpi->scaled_last_source); 2029 &cpi->scaled_last_source);
2038 2030
2039 vp9_scale_references(cpi); 2031 vp9_scale_references(cpi);
2040 2032
2041 vp9_clear_system_state(); 2033 vp9_clear_system_state();
2042 2034
2043 // Enable or disable mode based tweaking of the zbin. 2035 // Enable or disable mode based tweaking of the zbin.
2044 // For 2 pass only used where GF/ARF prediction quality 2036 // For 2 pass only used where GF/ARF prediction quality
2045 // is above a threshold. 2037 // is above a threshold.
2046 cpi->zbin_mode_boost = 0; 2038 cpi->zbin_mode_boost = 0;
2047 cpi->zbin_mode_boost_enabled = 0; 2039 cpi->zbin_mode_boost_enabled = 0;
2048 2040
2049 // Set the arf sign bias for this frame. 2041 // Set the arf sign bias for this frame.
2050 set_arf_sign_bias(cpi); 2042 set_arf_sign_bias(cpi);
2051 2043
2052 // Set default state for segment based loop filter update flags. 2044 // Set default state for segment based loop filter update flags.
2053 cm->lf.mode_ref_delta_update = 0; 2045 cm->lf.mode_ref_delta_update = 0;
2054 2046
2055 // Initialize cpi->mv_step_param to default based on max resolution. 2047 set_mv_search_params(cpi);
2056 cpi->mv_step_param = vp9_init_search_range(max_mv_def);
2057 // Initialize cpi->max_mv_magnitude and cpi->mv_step_param if appropriate.
2058 if (sf->mv.auto_mv_step_size) {
2059 if (frame_is_intra_only(cm)) {
2060 // Initialize max_mv_magnitude for use in the first INTER frame
2061 // after a key/intra-only frame.
2062 cpi->max_mv_magnitude = max_mv_def;
2063 } else {
2064 if (cm->show_frame)
2065 // Allow mv_steps to correspond to twice the max mv magnitude found
2066 // in the previous frame, capped by the default max_mv_magnitude based
2067 // on resolution.
2068 cpi->mv_step_param = vp9_init_search_range(MIN(max_mv_def, 2 *
2069 cpi->max_mv_magnitude));
2070 cpi->max_mv_magnitude = 0;
2071 }
2072 }
2073 2048
2074 // Set various flags etc to special state if it is a key frame. 2049 // Set various flags etc to special state if it is a key frame.
2075 if (frame_is_intra_only(cm)) { 2050 if (frame_is_intra_only(cm)) {
2076 // Reset the loop filter deltas and segmentation map. 2051 // Reset the loop filter deltas and segmentation map.
2077 vp9_reset_segment_features(&cm->seg); 2052 vp9_reset_segment_features(&cm->seg);
2078 2053
2079 // If segmentation is enabled force a map update for key frames. 2054 // If segmentation is enabled force a map update for key frames.
2080 if (seg->enabled) { 2055 if (seg->enabled) {
2081 seg->update_map = 1; 2056 seg->update_map = 1;
2082 seg->update_data = 1; 2057 seg->update_data = 1;
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
2240 if (cpi->refresh_golden_frame == 1) 2215 if (cpi->refresh_golden_frame == 1)
2241 cpi->frame_flags |= FRAMEFLAGS_GOLDEN; 2216 cpi->frame_flags |= FRAMEFLAGS_GOLDEN;
2242 else 2217 else
2243 cpi->frame_flags &= ~FRAMEFLAGS_GOLDEN; 2218 cpi->frame_flags &= ~FRAMEFLAGS_GOLDEN;
2244 2219
2245 if (cpi->refresh_alt_ref_frame == 1) 2220 if (cpi->refresh_alt_ref_frame == 1)
2246 cpi->frame_flags |= FRAMEFLAGS_ALTREF; 2221 cpi->frame_flags |= FRAMEFLAGS_ALTREF;
2247 else 2222 else
2248 cpi->frame_flags &= ~FRAMEFLAGS_ALTREF; 2223 cpi->frame_flags &= ~FRAMEFLAGS_ALTREF;
2249 2224
2250 get_ref_frame_flags(cpi); 2225 cpi->ref_frame_flags = get_ref_frame_flags(cpi);
2251 2226
2252 cm->last_frame_type = cm->frame_type; 2227 cm->last_frame_type = cm->frame_type;
2253 vp9_rc_postencode_update(cpi, *size); 2228 vp9_rc_postencode_update(cpi, *size);
2254 2229
2255 #if 0 2230 #if 0
2256 output_frame_level_debug_stats(cpi); 2231 output_frame_level_debug_stats(cpi);
2257 #endif 2232 #endif
2258 2233
2259 if (cm->frame_type == KEY_FRAME) { 2234 if (cm->frame_type == KEY_FRAME) {
2260 // Tell the caller that the frame was coded as a key frame 2235 // Tell the caller that the frame was coded as a key frame
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after
2966 if (flags & VP8_EFLAG_NO_UPD_ARF) 2941 if (flags & VP8_EFLAG_NO_UPD_ARF)
2967 upd ^= VP9_ALT_FLAG; 2942 upd ^= VP9_ALT_FLAG;
2968 2943
2969 vp9_update_reference(cpi, upd); 2944 vp9_update_reference(cpi, upd);
2970 } 2945 }
2971 2946
2972 if (flags & VP8_EFLAG_NO_UPD_ENTROPY) { 2947 if (flags & VP8_EFLAG_NO_UPD_ENTROPY) {
2973 vp9_update_entropy(cpi, 0); 2948 vp9_update_entropy(cpi, 0);
2974 } 2949 }
2975 } 2950 }
OLDNEW
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_encoder.h ('k') | source/libvpx/vp9/encoder/vp9_firstpass.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698