| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  *  Copyright (c) 2014 The WebM project authors. All Rights Reserved. |    2  *  Copyright (c) 2014 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   84       lc->target_bandwidth = oxcf->ss_target_bitrate[layer]; |   84       lc->target_bandwidth = oxcf->ss_target_bitrate[layer]; | 
|   85       lrc->last_q[KEY_FRAME] = oxcf->best_allowed_q; |   85       lrc->last_q[KEY_FRAME] = oxcf->best_allowed_q; | 
|   86       lrc->last_q[INTER_FRAME] = oxcf->best_allowed_q; |   86       lrc->last_q[INTER_FRAME] = oxcf->best_allowed_q; | 
|   87       lrc->avg_frame_qindex[KEY_FRAME] = (oxcf->worst_allowed_q + |   87       lrc->avg_frame_qindex[KEY_FRAME] = (oxcf->worst_allowed_q + | 
|   88                                           oxcf->best_allowed_q) / 2; |   88                                           oxcf->best_allowed_q) / 2; | 
|   89       lrc->avg_frame_qindex[INTER_FRAME] = (oxcf->worst_allowed_q + |   89       lrc->avg_frame_qindex[INTER_FRAME] = (oxcf->worst_allowed_q + | 
|   90                                             oxcf->best_allowed_q) / 2; |   90                                             oxcf->best_allowed_q) / 2; | 
|   91       if (oxcf->ss_enable_auto_arf[layer]) |   91       if (oxcf->ss_enable_auto_arf[layer]) | 
|   92         lc->alt_ref_idx = alt_ref_idx++; |   92         lc->alt_ref_idx = alt_ref_idx++; | 
|   93       else |   93       else | 
|   94         lc->alt_ref_idx = -1; |   94         lc->alt_ref_idx = INVALID_IDX; | 
|   95       lc->gold_ref_idx = -1; |   95       lc->gold_ref_idx = INVALID_IDX; | 
|   96     } |   96     } | 
|   97  |   97  | 
|   98     lrc->buffer_level = oxcf->starting_buffer_level_ms * |   98     lrc->buffer_level = oxcf->starting_buffer_level_ms * | 
|   99                             lc->target_bandwidth / 1000; |   99                             lc->target_bandwidth / 1000; | 
|  100     lrc->bits_off_target = lrc->buffer_level; |  100     lrc->bits_off_target = lrc->buffer_level; | 
|  101   } |  101   } | 
|  102  |  102  | 
|  103   // Still have extra buffer for base layer golden frame |  103   // Still have extra buffer for base layer golden frame | 
|  104   if (!(svc->number_temporal_layers > 1 && cpi->oxcf.rc_mode == VPX_CBR) |  104   if (!(svc->number_temporal_layers > 1 && cpi->oxcf.rc_mode == VPX_CBR) | 
|  105       && alt_ref_idx < REF_FRAMES) |  105       && alt_ref_idx < REF_FRAMES) | 
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  373         cpi->svc.empty_frame_height = (cpi->svc.empty_frame_height + 1) & ~1; |  373         cpi->svc.empty_frame_height = (cpi->svc.empty_frame_height + 1) & ~1; | 
|  374         if (cpi->svc.empty_frame_height < 16) |  374         if (cpi->svc.empty_frame_height < 16) | 
|  375           cpi->svc.empty_frame_height = 16; |  375           cpi->svc.empty_frame_height = 16; | 
|  376  |  376  | 
|  377         width = cpi->svc.empty_frame_width; |  377         width = cpi->svc.empty_frame_width; | 
|  378         height = cpi->svc.empty_frame_height; |  378         height = cpi->svc.empty_frame_height; | 
|  379       } |  379       } | 
|  380     } |  380     } | 
|  381   } |  381   } | 
|  382  |  382  | 
|  383   if (vp9_set_size_literal(cpi, width, height) != 0) |  | 
|  384     return VPX_CODEC_INVALID_PARAM; |  | 
|  385  |  | 
|  386   cpi->oxcf.worst_allowed_q = vp9_quantizer_to_qindex(lc->max_q); |  383   cpi->oxcf.worst_allowed_q = vp9_quantizer_to_qindex(lc->max_q); | 
|  387   cpi->oxcf.best_allowed_q = vp9_quantizer_to_qindex(lc->min_q); |  384   cpi->oxcf.best_allowed_q = vp9_quantizer_to_qindex(lc->min_q); | 
|  388  |  385  | 
|  389   vp9_change_config(cpi, &cpi->oxcf); |  386   vp9_change_config(cpi, &cpi->oxcf); | 
 |  387  | 
 |  388   if (vp9_set_size_literal(cpi, width, height) != 0) | 
 |  389     return VPX_CODEC_INVALID_PARAM; | 
 |  390  | 
|  390   vp9_set_high_precision_mv(cpi, 1); |  391   vp9_set_high_precision_mv(cpi, 1); | 
|  391  |  392  | 
|  392   cpi->alt_ref_source = get_layer_context(cpi)->alt_ref_source; |  393   cpi->alt_ref_source = get_layer_context(cpi)->alt_ref_source; | 
|  393  |  394  | 
|  394   return 0; |  395   return 0; | 
|  395 } |  396 } | 
|  396  |  397  | 
|  397 struct lookahead_entry *vp9_svc_lookahead_pop(VP9_COMP *const cpi, |  398 struct lookahead_entry *vp9_svc_lookahead_pop(VP9_COMP *const cpi, | 
|  398                                               struct lookahead_ctx *ctx, |  399                                               struct lookahead_ctx *ctx, | 
|  399                                               int drain) { |  400                                               int drain) { | 
|  400   struct lookahead_entry *buf = NULL; |  401   struct lookahead_entry *buf = NULL; | 
|  401  |  402  | 
|  402   if (ctx->sz && (drain || ctx->sz == ctx->max_sz - MAX_PRE_FRAMES)) { |  403   if (ctx->sz && (drain || ctx->sz == ctx->max_sz - MAX_PRE_FRAMES)) { | 
|  403     buf = vp9_lookahead_peek(ctx, 0); |  404     buf = vp9_lookahead_peek(ctx, 0); | 
|  404     if (buf != NULL) { |  405     if (buf != NULL) { | 
|  405       // Only remove the buffer when pop the highest layer. |  406       // Only remove the buffer when pop the highest layer. | 
|  406       if (cpi->svc.spatial_layer_id == cpi->svc.number_spatial_layers - 1) { |  407       if (cpi->svc.spatial_layer_id == cpi->svc.number_spatial_layers - 1) { | 
|  407         vp9_lookahead_pop(ctx, drain); |  408         vp9_lookahead_pop(ctx, drain); | 
|  408       } |  409       } | 
|  409     } |  410     } | 
|  410   } |  411   } | 
|  411  |  412  | 
|  412   return buf; |  413   return buf; | 
|  413 } |  414 } | 
|  414 #endif |  415 #endif | 
| OLD | NEW |