| OLD | NEW |
| 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 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 | 450 |
| 451 // Multi-threading | 451 // Multi-threading |
| 452 int num_workers; | 452 int num_workers; |
| 453 VP9Worker *workers; | 453 VP9Worker *workers; |
| 454 struct EncWorkerData *tile_thr_data; | 454 struct EncWorkerData *tile_thr_data; |
| 455 VP9LfSync lf_row_sync; | 455 VP9LfSync lf_row_sync; |
| 456 } VP9_COMP; | 456 } VP9_COMP; |
| 457 | 457 |
| 458 void vp9_initialize_enc(void); | 458 void vp9_initialize_enc(void); |
| 459 | 459 |
| 460 struct VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf); | 460 struct VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf, |
| 461 BufferPool *const pool); |
| 461 void vp9_remove_compressor(VP9_COMP *cpi); | 462 void vp9_remove_compressor(VP9_COMP *cpi); |
| 462 | 463 |
| 463 void vp9_change_config(VP9_COMP *cpi, const VP9EncoderConfig *oxcf); | 464 void vp9_change_config(VP9_COMP *cpi, const VP9EncoderConfig *oxcf); |
| 464 | 465 |
| 465 // receive a frames worth of data. caller can assume that a copy of this | 466 // receive a frames worth of data. caller can assume that a copy of this |
| 466 // frame is made and not just a copy of the pointer.. | 467 // frame is made and not just a copy of the pointer.. |
| 467 int vp9_receive_raw_frame(VP9_COMP *cpi, unsigned int frame_flags, | 468 int vp9_receive_raw_frame(VP9_COMP *cpi, unsigned int frame_flags, |
| 468 YV12_BUFFER_CONFIG *sd, int64_t time_stamp, | 469 YV12_BUFFER_CONFIG *sd, int64_t time_stamp, |
| 469 int64_t end_time_stamp); | 470 int64_t end_time_stamp); |
| 470 | 471 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 return cpi->lst_fb_idx; | 512 return cpi->lst_fb_idx; |
| 512 } else if (ref_frame == GOLDEN_FRAME) { | 513 } else if (ref_frame == GOLDEN_FRAME) { |
| 513 return cpi->gld_fb_idx; | 514 return cpi->gld_fb_idx; |
| 514 } else { | 515 } else { |
| 515 return cpi->alt_fb_idx; | 516 return cpi->alt_fb_idx; |
| 516 } | 517 } |
| 517 } | 518 } |
| 518 | 519 |
| 519 static INLINE YV12_BUFFER_CONFIG *get_ref_frame_buffer( | 520 static INLINE YV12_BUFFER_CONFIG *get_ref_frame_buffer( |
| 520 VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) { | 521 VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) { |
| 521 VP9_COMMON * const cm = &cpi->common; | 522 VP9_COMMON *const cm = &cpi->common; |
| 522 return &cm->frame_bufs[cm->ref_frame_map[get_ref_frame_idx(cpi, ref_frame)]] | 523 BufferPool *const pool = cm->buffer_pool; |
| 524 return &pool->frame_bufs[cm->ref_frame_map[get_ref_frame_idx(cpi, ref_frame)]] |
| 523 .buf; | 525 .buf; |
| 524 } | 526 } |
| 525 | 527 |
| 526 static INLINE int get_token_alloc(int mb_rows, int mb_cols) { | 528 static INLINE int get_token_alloc(int mb_rows, int mb_cols) { |
| 527 // TODO(JBB): double check we can't exceed this token count if we have a | 529 // TODO(JBB): double check we can't exceed this token count if we have a |
| 528 // 32x32 transform crossing a boundary at a multiple of 16. | 530 // 32x32 transform crossing a boundary at a multiple of 16. |
| 529 // mb_rows, cols are in units of 16 pixels. We assume 3 planes all at full | 531 // mb_rows, cols are in units of 16 pixels. We assume 3 planes all at full |
| 530 // resolution. We assume up to 1 token per pixel, and then allow | 532 // resolution. We assume up to 1 token per pixel, and then allow |
| 531 // a head room of 4. | 533 // a head room of 4. |
| 532 return mb_rows * mb_cols * (16 * 16 * 3 + 4); | 534 return mb_rows * mb_cols * (16 * 16 * 3 + 4); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 | 591 |
| 590 static INLINE int *cond_cost_list(const struct VP9_COMP *cpi, int *cost_list) { | 592 static INLINE int *cond_cost_list(const struct VP9_COMP *cpi, int *cost_list) { |
| 591 return cpi->sf.mv.subpel_search_method != SUBPEL_TREE ? cost_list : NULL; | 593 return cpi->sf.mv.subpel_search_method != SUBPEL_TREE ? cost_list : NULL; |
| 592 } | 594 } |
| 593 | 595 |
| 594 #ifdef __cplusplus | 596 #ifdef __cplusplus |
| 595 } // extern "C" | 597 } // extern "C" |
| 596 #endif | 598 #endif |
| 597 | 599 |
| 598 #endif // VP9_ENCODER_VP9_ENCODER_H_ | 600 #endif // VP9_ENCODER_VP9_ENCODER_H_ |
| OLD | NEW |