OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 int speed; | 474 int speed; |
475 int frame_avail; | 475 int frame_avail; |
476 int got_data; | 476 int got_data; |
477 int flags = 0; | 477 int flags = 0; |
478 unsigned int i; | 478 unsigned int i; |
479 int pts = 0; // PTS starts at 0. | 479 int pts = 0; // PTS starts at 0. |
480 int frame_duration = 1; // 1 timebase tick per frame. | 480 int frame_duration = 1; // 1 timebase tick per frame. |
481 int layering_mode = 0; | 481 int layering_mode = 0; |
482 int layer_flags[VPX_TS_MAX_PERIODICITY] = {0}; | 482 int layer_flags[VPX_TS_MAX_PERIODICITY] = {0}; |
483 int flag_periodicity = 1; | 483 int flag_periodicity = 1; |
| 484 #if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION) |
484 vpx_svc_layer_id_t layer_id = {0, 0}; | 485 vpx_svc_layer_id_t layer_id = {0, 0}; |
| 486 #else |
| 487 vpx_svc_layer_id_t layer_id = {0}; |
| 488 #endif |
485 const VpxInterface *encoder = NULL; | 489 const VpxInterface *encoder = NULL; |
486 FILE *infile = NULL; | 490 FILE *infile = NULL; |
487 struct RateControlMetrics rc; | 491 struct RateControlMetrics rc; |
488 int64_t cx_time = 0; | 492 int64_t cx_time = 0; |
489 const int min_args_base = 11; | 493 const int min_args_base = 11; |
490 #if CONFIG_VP9_HIGHBITDEPTH | 494 #if CONFIG_VP9_HIGHBITDEPTH |
491 vpx_bit_depth_t bit_depth = VPX_BITS_8; | 495 vpx_bit_depth_t bit_depth = VPX_BITS_8; |
492 int input_bit_depth = 8; | 496 int input_bit_depth = 8; |
493 const int min_args = min_args_base + 1; | 497 const int min_args = min_args_base + 1; |
494 #else | 498 #else |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
694 const int max_intra_size_pct = 900; | 698 const int max_intra_size_pct = 900; |
695 vpx_codec_control(&codec, VP8E_SET_MAX_INTRA_BITRATE_PCT, | 699 vpx_codec_control(&codec, VP8E_SET_MAX_INTRA_BITRATE_PCT, |
696 max_intra_size_pct); | 700 max_intra_size_pct); |
697 } | 701 } |
698 | 702 |
699 frame_avail = 1; | 703 frame_avail = 1; |
700 while (frame_avail || got_data) { | 704 while (frame_avail || got_data) { |
701 struct vpx_usec_timer timer; | 705 struct vpx_usec_timer timer; |
702 vpx_codec_iter_t iter = NULL; | 706 vpx_codec_iter_t iter = NULL; |
703 const vpx_codec_cx_pkt_t *pkt; | 707 const vpx_codec_cx_pkt_t *pkt; |
| 708 #if VPX_ENCODER_ABI_VERSION > (4 + VPX_CODEC_ABI_VERSION) |
704 // Update the temporal layer_id. No spatial layers in this test. | 709 // Update the temporal layer_id. No spatial layers in this test. |
705 layer_id.spatial_layer_id = 0; | 710 layer_id.spatial_layer_id = 0; |
| 711 #endif |
706 layer_id.temporal_layer_id = | 712 layer_id.temporal_layer_id = |
707 cfg.ts_layer_id[frame_cnt % cfg.ts_periodicity]; | 713 cfg.ts_layer_id[frame_cnt % cfg.ts_periodicity]; |
708 if (strncmp(encoder->name, "vp9", 3) == 0) { | 714 if (strncmp(encoder->name, "vp9", 3) == 0) { |
709 vpx_codec_control(&codec, VP9E_SET_SVC_LAYER_ID, &layer_id); | 715 vpx_codec_control(&codec, VP9E_SET_SVC_LAYER_ID, &layer_id); |
710 } else if (strncmp(encoder->name, "vp8", 3) == 0) { | 716 } else if (strncmp(encoder->name, "vp8", 3) == 0) { |
711 vpx_codec_control(&codec, VP8E_SET_TEMPORAL_LAYER_ID, | 717 vpx_codec_control(&codec, VP8E_SET_TEMPORAL_LAYER_ID, |
712 layer_id.temporal_layer_id); | 718 layer_id.temporal_layer_id); |
713 } | 719 } |
714 flags = layer_flags[frame_cnt % flag_periodicity]; | 720 flags = layer_flags[frame_cnt % flag_periodicity]; |
715 if (layering_mode == 0) | 721 if (layering_mode == 0) |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
795 if (vpx_codec_destroy(&codec)) | 801 if (vpx_codec_destroy(&codec)) |
796 die_codec(&codec, "Failed to destroy codec"); | 802 die_codec(&codec, "Failed to destroy codec"); |
797 | 803 |
798 // Try to rewrite the output file headers with the actual frame count. | 804 // Try to rewrite the output file headers with the actual frame count. |
799 for (i = 0; i < cfg.ts_number_layers; ++i) | 805 for (i = 0; i < cfg.ts_number_layers; ++i) |
800 vpx_video_writer_close(outfile[i]); | 806 vpx_video_writer_close(outfile[i]); |
801 | 807 |
802 vpx_img_free(&raw); | 808 vpx_img_free(&raw); |
803 return EXIT_SUCCESS; | 809 return EXIT_SUCCESS; |
804 } | 810 } |
OLD | NEW |