From 61ecd7f10583f6b68a25d906c2bf8251ed0fdd35 Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Mon, 10 Mar 2014 16:13:49 -0700 Subject: [PATCH] Add VP9 support to the set maps example. Change-Id: I8c3be3ed4d6bbc5fa3042a2d5637407d4d56afee --- examples.mk | 14 +++++++------- examples/{vp8_set_maps.c => set_maps.c} | 22 ++++++++++++---------- 2 files changed, 19 insertions(+), 17 deletions(-) rename examples/{vp8_set_maps.c => set_maps.c} (92%) diff --git a/examples.mk b/examples.mk index 5c6e42d31..7ec1a8ed7 100644 --- a/examples.mk +++ b/examples.mk @@ -140,13 +140,13 @@ EXAMPLES-$(CONFIG_ERROR_CONCEALMENT) += decode_with_partial_drops.c endif decode_with_partial_drops.GUID = 61C2D026-5754-46AC-916F-1343ECC5537E decode_with_partial_drops.DESCRIPTION = Drops parts of frames while decoding -EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8_set_maps.c -vp8_set_maps.SRCS += ivfenc.h ivfenc.c -vp8_set_maps.SRCS += tools_common.h tools_common.c -vp8_set_maps.SRCS += video_common.h -vp8_set_maps.SRCS += video_writer.h video_writer.c -vp8_set_maps.GUID = ECB2D24D-98B8-4015-A465-A4AF3DCC145F -vp8_set_maps.DESCRIPTION = VP8 set active and ROI maps +EXAMPLES-$(CONFIG_ENCODERS) += set_maps.c +set_maps.SRCS += ivfenc.h ivfenc.c +set_maps.SRCS += tools_common.h tools_common.c +set_maps.SRCS += video_common.h +set_maps.SRCS += video_writer.h video_writer.c +set_maps.GUID = ECB2D24D-98B8-4015-A465-A4AF3DCC145F +set_maps.DESCRIPTION = Set active and ROI maps EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8cx_set_ref.c vp8cx_set_ref.SRCS += ivfenc.h ivfenc.c vp8cx_set_ref.SRCS += tools_common.h tools_common.c diff --git a/examples/vp8_set_maps.c b/examples/set_maps.c similarity index 92% rename from examples/vp8_set_maps.c rename to examples/set_maps.c index 8f054eb1a..434383214 100644 --- a/examples/vp8_set_maps.c +++ b/examples/set_maps.c @@ -56,7 +56,8 @@ static const char *exec_name; void usage_exit() { - fprintf(stderr, "Usage: %s \n", exec_name); + fprintf(stderr, "Usage: %s \n", + exec_name); exit(EXIT_FAILURE); } @@ -165,16 +166,16 @@ int main(int argc, char **argv) { exec_name = argv[0]; - if (argc != 5) + if (argc != 6) die("Invalid number of arguments"); - encoder = get_vpx_encoder_by_name("vp8"); // only vp8 for now + encoder = get_vpx_encoder_by_name(argv[1]); if (!encoder) die("Unsupported codec."); info.codec_fourcc = encoder->fourcc; - info.frame_width = strtol(argv[1], NULL, 0); - info.frame_height = strtol(argv[2], NULL, 0); + info.frame_width = strtol(argv[2], NULL, 0); + info.frame_height = strtol(argv[3], NULL, 0); info.time_base.numerator = 1; info.time_base.denominator = fps; @@ -202,13 +203,14 @@ int main(int argc, char **argv) { cfg.g_timebase.den = info.time_base.denominator; cfg.rc_target_bitrate = (unsigned int)(bits_per_pixel_per_frame * cfg.g_w * cfg.g_h * fps / 1000); + cfg.g_lag_in_frames = 0; - writer = vpx_video_writer_open(argv[4], kContainerIVF, &info); + writer = vpx_video_writer_open(argv[5], kContainerIVF, &info); if (!writer) - die("Failed to open %s for writing.", argv[4]); + die("Failed to open %s for writing.", argv[5]); - if (!(infile = fopen(argv[3], "rb"))) - die("Failed to open %s for reading.", argv[3]); + if (!(infile = fopen(argv[4], "rb"))) + die("Failed to open %s for reading.", argv[4]); if (vpx_codec_enc_init(&codec, encoder->interface(), &cfg, 0)) die_codec(&codec, "Failed to initialize encoder"); @@ -216,7 +218,7 @@ int main(int argc, char **argv) { while (vpx_img_read(&raw, infile)) { ++frame_count; - if (frame_count == 22) { + if (frame_count == 22 && encoder->fourcc == VP8_FOURCC) { set_roi_map(&cfg, &codec); } else if (frame_count == 33) { set_active_map(&cfg, &codec); -- 2.40.0