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