Commit 61ecd7f1 authored by Alex Converse's avatar Alex Converse
Browse files

Add VP9 support to the set maps example.

Change-Id: I8c3be3ed4d6bbc5fa3042a2d5637407d4d56afee
parent b528d492
...@@ -140,13 +140,13 @@ EXAMPLES-$(CONFIG_ERROR_CONCEALMENT) += decode_with_partial_drops.c ...@@ -140,13 +140,13 @@ EXAMPLES-$(CONFIG_ERROR_CONCEALMENT) += decode_with_partial_drops.c
endif endif
decode_with_partial_drops.GUID = 61C2D026-5754-46AC-916F-1343ECC5537E decode_with_partial_drops.GUID = 61C2D026-5754-46AC-916F-1343ECC5537E
decode_with_partial_drops.DESCRIPTION = Drops parts of frames while decoding decode_with_partial_drops.DESCRIPTION = Drops parts of frames while decoding
EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8_set_maps.c EXAMPLES-$(CONFIG_ENCODERS) += set_maps.c
vp8_set_maps.SRCS += ivfenc.h ivfenc.c set_maps.SRCS += ivfenc.h ivfenc.c
vp8_set_maps.SRCS += tools_common.h tools_common.c set_maps.SRCS += tools_common.h tools_common.c
vp8_set_maps.SRCS += video_common.h set_maps.SRCS += video_common.h
vp8_set_maps.SRCS += video_writer.h video_writer.c set_maps.SRCS += video_writer.h video_writer.c
vp8_set_maps.GUID = ECB2D24D-98B8-4015-A465-A4AF3DCC145F set_maps.GUID = ECB2D24D-98B8-4015-A465-A4AF3DCC145F
vp8_set_maps.DESCRIPTION = VP8 set active and ROI maps set_maps.DESCRIPTION = Set active and ROI maps
EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8cx_set_ref.c EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8cx_set_ref.c
vp8cx_set_ref.SRCS += ivfenc.h ivfenc.c vp8cx_set_ref.SRCS += ivfenc.h ivfenc.c
vp8cx_set_ref.SRCS += tools_common.h tools_common.c vp8cx_set_ref.SRCS += tools_common.h tools_common.c
......
...@@ -56,7 +56,8 @@ ...@@ -56,7 +56,8 @@
static const char *exec_name; static const char *exec_name;
void usage_exit() { void usage_exit() {
fprintf(stderr, "Usage: %s <width> <height> <infile> <outfile>\n", exec_name); fprintf(stderr, "Usage: %s <codec> <width> <height> <infile> <outfile>\n",
exec_name);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -165,16 +166,16 @@ int main(int argc, char **argv) { ...@@ -165,16 +166,16 @@ int main(int argc, char **argv) {
exec_name = argv[0]; exec_name = argv[0];
if (argc != 5) if (argc != 6)
die("Invalid number of arguments"); 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) if (!encoder)
die("Unsupported codec."); die("Unsupported codec.");
info.codec_fourcc = encoder->fourcc; info.codec_fourcc = encoder->fourcc;
info.frame_width = strtol(argv[1], NULL, 0); info.frame_width = strtol(argv[2], NULL, 0);
info.frame_height = strtol(argv[2], NULL, 0); info.frame_height = strtol(argv[3], NULL, 0);
info.time_base.numerator = 1; info.time_base.numerator = 1;
info.time_base.denominator = fps; info.time_base.denominator = fps;
...@@ -202,13 +203,14 @@ int main(int argc, char **argv) { ...@@ -202,13 +203,14 @@ int main(int argc, char **argv) {
cfg.g_timebase.den = info.time_base.denominator; cfg.g_timebase.den = info.time_base.denominator;
cfg.rc_target_bitrate = (unsigned int)(bits_per_pixel_per_frame * cfg.g_w * cfg.rc_target_bitrate = (unsigned int)(bits_per_pixel_per_frame * cfg.g_w *
cfg.g_h * fps / 1000); 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) 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"))) if (!(infile = fopen(argv[4], "rb")))
die("Failed to open %s for reading.", argv[3]); die("Failed to open %s for reading.", argv[4]);
if (vpx_codec_enc_init(&codec, encoder->interface(), &cfg, 0)) if (vpx_codec_enc_init(&codec, encoder->interface(), &cfg, 0))
die_codec(&codec, "Failed to initialize encoder"); die_codec(&codec, "Failed to initialize encoder");
...@@ -216,7 +218,7 @@ int main(int argc, char **argv) { ...@@ -216,7 +218,7 @@ int main(int argc, char **argv) {
while (vpx_img_read(&raw, infile)) { while (vpx_img_read(&raw, infile)) {
++frame_count; ++frame_count;
if (frame_count == 22) { if (frame_count == 22 && encoder->fourcc == VP8_FOURCC) {
set_roi_map(&cfg, &codec); set_roi_map(&cfg, &codec);
} else if (frame_count == 33) { } else if (frame_count == 33) {
set_active_map(&cfg, &codec); set_active_map(&cfg, &codec);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment