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

Side by Side Diff: source/libvpx/vpx/vp8cx.h

Issue 1029663003: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « source/libvpx/vp9/vp9_cx_iface.c ('k') | source/libvpx/vpx/vpx_codec.h » ('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 #ifndef VPX_VP8CX_H_ 10 #ifndef VPX_VP8CX_H_
11 #define VPX_VP8CX_H_ 11 #define VPX_VP8CX_H_
12 12
13 /*!\defgroup vp8_encoder WebM VP8/VP9 Encoder 13 /*!\defgroup vp8_encoder WebM VP8/VP9 Encoder
14 * \ingroup vp8 14 * \ingroup vp8
15 * 15 *
16 * @{ 16 * @{
17 */ 17 */
18 #include "./vp8.h" 18 #include "./vp8.h"
19 #include "vpx/vpx_encoder.h"
19 20
20 /*!\file 21 /*!\file
21 * \brief Provides definitions for using VP8 or VP9 encoder algorithm within the 22 * \brief Provides definitions for using VP8 or VP9 encoder algorithm within the
22 * vpx Codec Interface. 23 * vpx Codec Interface.
23 */ 24 */
24 25
25 #ifdef __cplusplus 26 #ifdef __cplusplus
26 extern "C" { 27 extern "C" {
27 #endif 28 #endif
28 29
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 441
441 /*!\brief Codec control function to turn on/off SVC in encoder. 442 /*!\brief Codec control function to turn on/off SVC in encoder.
442 * \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not 443 * \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not
443 * support SVC in its current encoding mode 444 * support SVC in its current encoding mode
444 * 0: off, 1: on 445 * 0: off, 1: on
445 * 446 *
446 * Supported in codecs: VP9 447 * Supported in codecs: VP9
447 */ 448 */
448 VP9E_SET_SVC, 449 VP9E_SET_SVC,
449 450
451 #if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
450 /*!\brief Codec control function to set parameters for SVC. 452 /*!\brief Codec control function to set parameters for SVC.
451 * \note Parameters contain min_q, max_q, scaling factor for each of the 453 * \note Parameters contain min_q, max_q, scaling factor for each of the
452 * SVC layers. 454 * SVC layers.
453 * 455 *
454 * Supported in codecs: VP9 456 * Supported in codecs: VP9
455 */ 457 */
456 VP9E_SET_SVC_PARAMETERS, 458 VP9E_SET_SVC_PARAMETERS,
459 #endif
457 460
458 /*!\brief Codec control function to set svc layer for spatial and temporal. 461 /*!\brief Codec control function to set svc layer for spatial and temporal.
459 * \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial 462 * \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial
460 * layer and 0..#vpx_codec_enc_cfg::ts_number_layers for 463 * layer and 0..#vpx_codec_enc_cfg::ts_number_layers for
461 * temporal layer. 464 * temporal layer.
462 * 465 *
463 * Supported in codecs: VP9 466 * Supported in codecs: VP9
464 */ 467 */
465 VP9E_SET_SVC_LAYER_ID, 468 VP9E_SET_SVC_LAYER_ID,
466 469
467 /*!\brief Codec control function to set content type. 470 /*!\brief Codec control function to set content type.
468 * \note Valid parameter range: 471 * \note Valid parameter range:
469 * VP9E_CONTENT_DEFAULT = Regular video content (Default) 472 * VP9E_CONTENT_DEFAULT = Regular video content (Default)
470 * VP9E_CONTENT_SCREEN = Screen capture content 473 * VP9E_CONTENT_SCREEN = Screen capture content
471 * 474 *
472 * Supported in codecs: VP9 475 * Supported in codecs: VP9
473 */ 476 */
474 VP9E_SET_TUNE_CONTENT, 477 VP9E_SET_TUNE_CONTENT,
475 478
479 #if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
476 /*!\brief Codec control function to get svc layer ID. 480 /*!\brief Codec control function to get svc layer ID.
477 * \note The layer ID returned is for the data packet from the registered 481 * \note The layer ID returned is for the data packet from the registered
478 * callback function. 482 * callback function.
479 * 483 *
480 * Supported in codecs: VP9 484 * Supported in codecs: VP9
481 */ 485 */
482 VP9E_GET_SVC_LAYER_ID, 486 VP9E_GET_SVC_LAYER_ID,
483 487
484 /*!\brief Codec control function to register callback to get per layer packet. 488 /*!\brief Codec control function to register callback to get per layer packet.
485 * \note Parameter for this control function is a structure with a callback 489 * \note Parameter for this control function is a structure with a callback
486 * function and a pointer to private data used by the callback. 490 * function and a pointer to private data used by the callback.
487 * 491 *
488 * Supported in codecs: VP9 492 * Supported in codecs: VP9
489 */ 493 */
490 VP9E_REGISTER_CX_CALLBACK, 494 VP9E_REGISTER_CX_CALLBACK,
495 #endif
491 496
492 /*!\brief Codec control function to set color space info. 497 /*!\brief Codec control function to set color space info.
493 * \note Valid ranges: 0..7, default is "UNKNOWN". 498 * \note Valid ranges: 0..7, default is "UNKNOWN".
494 * 0 = UNKNOWN, 499 * 0 = UNKNOWN,
495 * 1 = BT_601 500 * 1 = BT_601
496 * 2 = BT_709 501 * 2 = BT_709
497 * 3 = SMPTE_170 502 * 3 = SMPTE_170
498 * 4 = SMPTE_240 503 * 4 = SMPTE_240
499 * 5 = BT_2020 504 * 5 = BT_2020
500 * 6 = RESERVED 505 * 6 = RESERVED
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 /*!\brief VP8 model tuning parameters 589 /*!\brief VP8 model tuning parameters
585 * 590 *
586 * Changes the encoder to tune for certain types of input material. 591 * Changes the encoder to tune for certain types of input material.
587 * 592 *
588 */ 593 */
589 typedef enum { 594 typedef enum {
590 VP8_TUNE_PSNR, 595 VP8_TUNE_PSNR,
591 VP8_TUNE_SSIM 596 VP8_TUNE_SSIM
592 } vp8e_tuning; 597 } vp8e_tuning;
593 598
599 #if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
594 /*!\brief vp9 svc layer parameters 600 /*!\brief vp9 svc layer parameters
595 * 601 *
596 * This defines the spatial and temporal layer id numbers for svc encoding. 602 * This defines the spatial and temporal layer id numbers for svc encoding.
597 * This is used with the #VP9E_SET_SVC_LAYER_ID control to set the spatial and 603 * This is used with the #VP9E_SET_SVC_LAYER_ID control to set the spatial and
598 * temporal layer id for the current frame. 604 * temporal layer id for the current frame.
599 * 605 *
600 */ 606 */
601 typedef struct vpx_svc_layer_id { 607 typedef struct vpx_svc_layer_id {
602 int spatial_layer_id; /**< Spatial layer id number. */ 608 int spatial_layer_id; /**< Spatial layer id number. */
603 int temporal_layer_id; /**< Temporal layer id number. */ 609 int temporal_layer_id; /**< Temporal layer id number. */
604 } vpx_svc_layer_id_t; 610 } vpx_svc_layer_id_t;
611 #else
612 /*!\brief vp9 svc layer parameters
613 *
614 * This defines the temporal layer id numbers for svc encoding.
615 * This is used with the #VP9E_SET_SVC_LAYER_ID control to set the
616 * temporal layer id for the current frame.
617 *
618 */
619 typedef struct vpx_svc_layer_id {
620 int temporal_layer_id; /**< Temporal layer id number. */
621 } vpx_svc_layer_id_t;
622 #endif
605 623
606 /*!\brief VP8 encoder control function parameter type 624 /*!\brief VP8 encoder control function parameter type
607 * 625 *
608 * Defines the data types that VP8E control functions take. Note that 626 * Defines the data types that VP8E control functions take. Note that
609 * additional common controls are defined in vp8.h 627 * additional common controls are defined in vp8.h
610 * 628 *
611 */ 629 */
612 630
613 631
614 /* These controls have been deprecated in favor of the flags parameter to 632 /* These controls have been deprecated in favor of the flags parameter to
615 * vpx_codec_encode(). See the definition of VP8_EFLAG_* above. 633 * vpx_codec_encode(). See the definition of VP8_EFLAG_* above.
616 */ 634 */
617 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_ENTROPY, int) 635 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_ENTROPY, int)
618 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_REFERENCE, int) 636 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_REFERENCE, int)
619 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_USE_REFERENCE, int) 637 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_USE_REFERENCE, int)
620 638
621 VPX_CTRL_USE_TYPE(VP8E_SET_FRAME_FLAGS, int) 639 VPX_CTRL_USE_TYPE(VP8E_SET_FRAME_FLAGS, int)
622 VPX_CTRL_USE_TYPE(VP8E_SET_TEMPORAL_LAYER_ID, int) 640 VPX_CTRL_USE_TYPE(VP8E_SET_TEMPORAL_LAYER_ID, int)
623 VPX_CTRL_USE_TYPE(VP8E_SET_ROI_MAP, vpx_roi_map_t *) 641 VPX_CTRL_USE_TYPE(VP8E_SET_ROI_MAP, vpx_roi_map_t *)
624 VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *) 642 VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *)
625 VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *) 643 VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *)
626 644
627 VPX_CTRL_USE_TYPE(VP9E_SET_SVC, int) 645 VPX_CTRL_USE_TYPE(VP9E_SET_SVC, int)
646 #if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
628 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_PARAMETERS, void *) 647 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_PARAMETERS, void *)
629 VPX_CTRL_USE_TYPE(VP9E_REGISTER_CX_CALLBACK, void *) 648 VPX_CTRL_USE_TYPE(VP9E_REGISTER_CX_CALLBACK, void *)
649 #endif
630 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_LAYER_ID, vpx_svc_layer_id_t *) 650 VPX_CTRL_USE_TYPE(VP9E_SET_SVC_LAYER_ID, vpx_svc_layer_id_t *)
631 651
632 VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int) 652 VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
633 VPX_CTRL_USE_TYPE(VP8E_SET_ENABLEAUTOALTREF, unsigned int) 653 VPX_CTRL_USE_TYPE(VP8E_SET_ENABLEAUTOALTREF, unsigned int)
634 VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int) 654 VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int)
635 VPX_CTRL_USE_TYPE(VP8E_SET_SHARPNESS, unsigned int) 655 VPX_CTRL_USE_TYPE(VP8E_SET_SHARPNESS, unsigned int)
636 VPX_CTRL_USE_TYPE(VP8E_SET_STATIC_THRESHOLD, unsigned int) 656 VPX_CTRL_USE_TYPE(VP8E_SET_STATIC_THRESHOLD, unsigned int)
637 VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, int) /* vp8e_token_partitions */ 657 VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, int) /* vp8e_token_partitions */
638 658
639 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int) 659 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int)
640 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH, unsigned int) 660 VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH, unsigned int)
641 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_ARNR_TYPE, unsigned int) 661 VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_SET_ARNR_TYPE, unsigned int)
642 VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, int) /* vp8e_tuning */ 662 VPX_CTRL_USE_TYPE(VP8E_SET_TUNING, int) /* vp8e_tuning */
643 VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL, unsigned int) 663 VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL, unsigned int)
644 664
645 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_COLUMNS, int) 665 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_COLUMNS, int)
646 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int) 666 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int)
647 667
648 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *) 668 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *)
649 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *) 669 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *)
670 #if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION)
650 VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *) 671 VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *)
672 #endif
651 673
652 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int) 674 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int)
653 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int) 675 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int)
654 676
655 VPX_CTRL_USE_TYPE(VP8E_SET_SCREEN_CONTENT_MODE, unsigned int) 677 VPX_CTRL_USE_TYPE(VP8E_SET_SCREEN_CONTENT_MODE, unsigned int)
656 678
657 VPX_CTRL_USE_TYPE(VP9E_SET_GF_CBR_BOOST_PCT, unsigned int) 679 VPX_CTRL_USE_TYPE(VP9E_SET_GF_CBR_BOOST_PCT, unsigned int)
658 680
659 VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int) 681 VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int)
660 682
661 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int) 683 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int)
662 684
663 VPX_CTRL_USE_TYPE(VP9E_SET_AQ_MODE, unsigned int) 685 VPX_CTRL_USE_TYPE(VP9E_SET_AQ_MODE, unsigned int)
664 686
665 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PERIODIC_BOOST, unsigned int) 687 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PERIODIC_BOOST, unsigned int)
666 688
667 VPX_CTRL_USE_TYPE(VP9E_SET_NOISE_SENSITIVITY, unsigned int) 689 VPX_CTRL_USE_TYPE(VP9E_SET_NOISE_SENSITIVITY, unsigned int)
668 690
669 VPX_CTRL_USE_TYPE(VP9E_SET_TUNE_CONTENT, int) /* vp9e_tune_content */ 691 VPX_CTRL_USE_TYPE(VP9E_SET_TUNE_CONTENT, int) /* vp9e_tune_content */
670 692
671 VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_SPACE, int) 693 VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_SPACE, int)
672 /*! @} - end defgroup vp8_encoder */ 694 /*! @} - end defgroup vp8_encoder */
673 #ifdef __cplusplus 695 #ifdef __cplusplus
674 } // extern "C" 696 } // extern "C"
675 #endif 697 #endif
676 698
677 #endif // VPX_VP8CX_H_ 699 #endif // VPX_VP8CX_H_
OLDNEW
« no previous file with comments | « source/libvpx/vp9/vp9_cx_iface.c ('k') | source/libvpx/vpx/vpx_codec.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698