top-level: apply clang-format
Change-Id: Iac1d97d84518649404e32b136b8fdd840723303c
diff --git a/vpxenc.c b/vpxenc.c
index 30d9696..1bc060b 100644
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -51,8 +51,7 @@
#include "./y4minput.h"
/* Swallow warnings about unused results of fread/fwrite */
-static size_t wrap_fread(void *ptr, size_t size, size_t nmemb,
- FILE *stream) {
+static size_t wrap_fread(void *ptr, size_t size, size_t nmemb, FILE *stream) {
return fread(ptr, size, nmemb, stream);
}
#define fread wrap_fread
@@ -63,7 +62,6 @@
}
#define fwrite wrap_fwrite
-
static const char *exec_name;
static void warn_or_exit_on_errorv(vpx_codec_ctx_t *ctx, int fatal,
@@ -74,11 +72,9 @@
vfprintf(stderr, s, ap);
fprintf(stderr, ": %s\n", vpx_codec_error(ctx));
- if (detail)
- fprintf(stderr, " %s\n", detail);
+ if (detail) fprintf(stderr, " %s\n", detail);
- if (fatal)
- exit(EXIT_FAILURE);
+ if (fatal) exit(EXIT_FAILURE);
}
}
@@ -105,8 +101,7 @@
int shortread = 0;
if (input_ctx->file_type == FILE_TYPE_Y4M) {
- if (y4m_input_fetch_frame(y4m, f, img) < 1)
- return 0;
+ if (y4m_input_fetch_frame(y4m, f, img) < 1) return 0;
} else {
shortread = read_yuv_frame(input_ctx, img);
}
@@ -128,252 +123,262 @@
return 0;
}
-static const arg_def_t debugmode = ARG_DEF(
- "D", "debug", 0, "Debug mode (makes output deterministic)");
-static const arg_def_t outputfile = ARG_DEF(
- "o", "output", 1, "Output filename");
-static const arg_def_t use_yv12 = ARG_DEF(
- NULL, "yv12", 0, "Input file is YV12 ");
-static const arg_def_t use_i420 = ARG_DEF(
- NULL, "i420", 0, "Input file is I420 (default)");
-static const arg_def_t use_i422 = ARG_DEF(
- NULL, "i422", 0, "Input file is I422");
-static const arg_def_t use_i444 = ARG_DEF(
- NULL, "i444", 0, "Input file is I444");
-static const arg_def_t use_i440 = ARG_DEF(
- NULL, "i440", 0, "Input file is I440");
-static const arg_def_t codecarg = ARG_DEF(
- NULL, "codec", 1, "Codec to use");
-static const arg_def_t passes = ARG_DEF(
- "p", "passes", 1, "Number of passes (1/2)");
-static const arg_def_t pass_arg = ARG_DEF(
- NULL, "pass", 1, "Pass to execute (1/2)");
-static const arg_def_t fpf_name = ARG_DEF(
- NULL, "fpf", 1, "First pass statistics file name");
+static const arg_def_t debugmode =
+ ARG_DEF("D", "debug", 0, "Debug mode (makes output deterministic)");
+static const arg_def_t outputfile =
+ ARG_DEF("o", "output", 1, "Output filename");
+static const arg_def_t use_yv12 =
+ ARG_DEF(NULL, "yv12", 0, "Input file is YV12 ");
+static const arg_def_t use_i420 =
+ ARG_DEF(NULL, "i420", 0, "Input file is I420 (default)");
+static const arg_def_t use_i422 =
+ ARG_DEF(NULL, "i422", 0, "Input file is I422");
+static const arg_def_t use_i444 =
+ ARG_DEF(NULL, "i444", 0, "Input file is I444");
+static const arg_def_t use_i440 =
+ ARG_DEF(NULL, "i440", 0, "Input file is I440");
+static const arg_def_t codecarg = ARG_DEF(NULL, "codec", 1, "Codec to use");
+static const arg_def_t passes =
+ ARG_DEF("p", "passes", 1, "Number of passes (1/2)");
+static const arg_def_t pass_arg =
+ ARG_DEF(NULL, "pass", 1, "Pass to execute (1/2)");
+static const arg_def_t fpf_name =
+ ARG_DEF(NULL, "fpf", 1, "First pass statistics file name");
#if CONFIG_FP_MB_STATS
-static const arg_def_t fpmbf_name = ARG_DEF(
- NULL, "fpmbf", 1, "First pass block statistics file name");
+static const arg_def_t fpmbf_name =
+ ARG_DEF(NULL, "fpmbf", 1, "First pass block statistics file name");
#endif
-static const arg_def_t limit = ARG_DEF(
- NULL, "limit", 1, "Stop encoding after n input frames");
-static const arg_def_t skip = ARG_DEF(
- NULL, "skip", 1, "Skip the first n input frames");
-static const arg_def_t deadline = ARG_DEF(
- "d", "deadline", 1, "Deadline per frame (usec)");
-static const arg_def_t best_dl = ARG_DEF(
- NULL, "best", 0, "Use Best Quality Deadline");
-static const arg_def_t good_dl = ARG_DEF(
- NULL, "good", 0, "Use Good Quality Deadline");
-static const arg_def_t rt_dl = ARG_DEF(
- NULL, "rt", 0, "Use Realtime Quality Deadline");
-static const arg_def_t quietarg = ARG_DEF(
- "q", "quiet", 0, "Do not print encode progress");
-static const arg_def_t verbosearg = ARG_DEF(
- "v", "verbose", 0, "Show encoder parameters");
-static const arg_def_t psnrarg = ARG_DEF(
- NULL, "psnr", 0, "Show PSNR in status line");
+static const arg_def_t limit =
+ ARG_DEF(NULL, "limit", 1, "Stop encoding after n input frames");
+static const arg_def_t skip =
+ ARG_DEF(NULL, "skip", 1, "Skip the first n input frames");
+static const arg_def_t deadline =
+ ARG_DEF("d", "deadline", 1, "Deadline per frame (usec)");
+static const arg_def_t best_dl =
+ ARG_DEF(NULL, "best", 0, "Use Best Quality Deadline");
+static const arg_def_t good_dl =
+ ARG_DEF(NULL, "good", 0, "Use Good Quality Deadline");
+static const arg_def_t rt_dl =
+ ARG_DEF(NULL, "rt", 0, "Use Realtime Quality Deadline");
+static const arg_def_t quietarg =
+ ARG_DEF("q", "quiet", 0, "Do not print encode progress");
+static const arg_def_t verbosearg =
+ ARG_DEF("v", "verbose", 0, "Show encoder parameters");
+static const arg_def_t psnrarg =
+ ARG_DEF(NULL, "psnr", 0, "Show PSNR in status line");
static const struct arg_enum_list test_decode_enum[] = {
- {"off", TEST_DECODE_OFF},
- {"fatal", TEST_DECODE_FATAL},
- {"warn", TEST_DECODE_WARN},
- {NULL, 0}
+ { "off", TEST_DECODE_OFF },
+ { "fatal", TEST_DECODE_FATAL },
+ { "warn", TEST_DECODE_WARN },
+ { NULL, 0 }
};
static const arg_def_t recontest = ARG_DEF_ENUM(
NULL, "test-decode", 1, "Test encode/decode mismatch", test_decode_enum);
-static const arg_def_t framerate = ARG_DEF(
- NULL, "fps", 1, "Stream frame rate (rate/scale)");
-static const arg_def_t use_webm = ARG_DEF(
- NULL, "webm", 0, "Output WebM (default when WebM IO is enabled)");
-static const arg_def_t use_ivf = ARG_DEF(
- NULL, "ivf", 0, "Output IVF");
-static const arg_def_t out_part = ARG_DEF(
- "P", "output-partitions", 0,
- "Makes encoder output partitions. Requires IVF output!");
-static const arg_def_t q_hist_n = ARG_DEF(
- NULL, "q-hist", 1, "Show quantizer histogram (n-buckets)");
-static const arg_def_t rate_hist_n = ARG_DEF(
- NULL, "rate-hist", 1, "Show rate histogram (n-buckets)");
-static const arg_def_t disable_warnings = ARG_DEF(
- NULL, "disable-warnings", 0,
- "Disable warnings about potentially incorrect encode settings.");
-static const arg_def_t disable_warning_prompt = ARG_DEF(
- "y", "disable-warning-prompt", 0,
- "Display warnings, but do not prompt user to continue.");
+static const arg_def_t framerate =
+ ARG_DEF(NULL, "fps", 1, "Stream frame rate (rate/scale)");
+static const arg_def_t use_webm =
+ ARG_DEF(NULL, "webm", 0, "Output WebM (default when WebM IO is enabled)");
+static const arg_def_t use_ivf = ARG_DEF(NULL, "ivf", 0, "Output IVF");
+static const arg_def_t out_part =
+ ARG_DEF("P", "output-partitions", 0,
+ "Makes encoder output partitions. Requires IVF output!");
+static const arg_def_t q_hist_n =
+ ARG_DEF(NULL, "q-hist", 1, "Show quantizer histogram (n-buckets)");
+static const arg_def_t rate_hist_n =
+ ARG_DEF(NULL, "rate-hist", 1, "Show rate histogram (n-buckets)");
+static const arg_def_t disable_warnings =
+ ARG_DEF(NULL, "disable-warnings", 0,
+ "Disable warnings about potentially incorrect encode settings.");
+static const arg_def_t disable_warning_prompt =
+ ARG_DEF("y", "disable-warning-prompt", 0,
+ "Display warnings, but do not prompt user to continue.");
#if CONFIG_VP9_HIGHBITDEPTH
static const arg_def_t test16bitinternalarg = ARG_DEF(
NULL, "test-16bit-internal", 0, "Force use of 16 bit internal buffer");
#endif
-static const arg_def_t *main_args[] = {
- &debugmode,
- &outputfile, &codecarg, &passes, &pass_arg, &fpf_name, &limit, &skip,
- &deadline, &best_dl, &good_dl, &rt_dl,
- &quietarg, &verbosearg, &psnrarg, &use_webm, &use_ivf, &out_part, &q_hist_n,
- &rate_hist_n, &disable_warnings, &disable_warning_prompt, &recontest,
- NULL
-};
+static const arg_def_t *main_args[] = { &debugmode,
+ &outputfile,
+ &codecarg,
+ &passes,
+ &pass_arg,
+ &fpf_name,
+ &limit,
+ &skip,
+ &deadline,
+ &best_dl,
+ &good_dl,
+ &rt_dl,
+ &quietarg,
+ &verbosearg,
+ &psnrarg,
+ &use_webm,
+ &use_ivf,
+ &out_part,
+ &q_hist_n,
+ &rate_hist_n,
+ &disable_warnings,
+ &disable_warning_prompt,
+ &recontest,
+ NULL };
-static const arg_def_t usage = ARG_DEF(
- "u", "usage", 1, "Usage profile number to use");
-static const arg_def_t threads = ARG_DEF(
- "t", "threads", 1, "Max number of threads to use");
-static const arg_def_t profile = ARG_DEF(
- NULL, "profile", 1, "Bitstream profile number to use");
+static const arg_def_t usage =
+ ARG_DEF("u", "usage", 1, "Usage profile number to use");
+static const arg_def_t threads =
+ ARG_DEF("t", "threads", 1, "Max number of threads to use");
+static const arg_def_t profile =
+ ARG_DEF(NULL, "profile", 1, "Bitstream profile number to use");
static const arg_def_t width = ARG_DEF("w", "width", 1, "Frame width");
static const arg_def_t height = ARG_DEF("h", "height", 1, "Frame height");
#if CONFIG_WEBM_IO
static const struct arg_enum_list stereo_mode_enum[] = {
- {"mono", STEREO_FORMAT_MONO},
- {"left-right", STEREO_FORMAT_LEFT_RIGHT},
- {"bottom-top", STEREO_FORMAT_BOTTOM_TOP},
- {"top-bottom", STEREO_FORMAT_TOP_BOTTOM},
- {"right-left", STEREO_FORMAT_RIGHT_LEFT},
- {NULL, 0}
+ { "mono", STEREO_FORMAT_MONO },
+ { "left-right", STEREO_FORMAT_LEFT_RIGHT },
+ { "bottom-top", STEREO_FORMAT_BOTTOM_TOP },
+ { "top-bottom", STEREO_FORMAT_TOP_BOTTOM },
+ { "right-left", STEREO_FORMAT_RIGHT_LEFT },
+ { NULL, 0 }
};
static const arg_def_t stereo_mode = ARG_DEF_ENUM(
NULL, "stereo-mode", 1, "Stereo 3D video format", stereo_mode_enum);
#endif
static const arg_def_t timebase = ARG_DEF(
NULL, "timebase", 1, "Output timestamp precision (fractional seconds)");
-static const arg_def_t error_resilient = ARG_DEF(
- NULL, "error-resilient", 1, "Enable error resiliency features");
-static const arg_def_t lag_in_frames = ARG_DEF(
- NULL, "lag-in-frames", 1, "Max number of frames to lag");
+static const arg_def_t error_resilient =
+ ARG_DEF(NULL, "error-resilient", 1, "Enable error resiliency features");
+static const arg_def_t lag_in_frames =
+ ARG_DEF(NULL, "lag-in-frames", 1, "Max number of frames to lag");
-static const arg_def_t *global_args[] = {
- &use_yv12, &use_i420, &use_i422, &use_i444, &use_i440,
- &usage, &threads, &profile,
- &width, &height,
+static const arg_def_t *global_args[] = { &use_yv12,
+ &use_i420,
+ &use_i422,
+ &use_i444,
+ &use_i440,
+ &usage,
+ &threads,
+ &profile,
+ &width,
+ &height,
#if CONFIG_WEBM_IO
- &stereo_mode,
+ &stereo_mode,
#endif
- &timebase, &framerate,
- &error_resilient,
+ &timebase,
+ &framerate,
+ &error_resilient,
#if CONFIG_VP9_HIGHBITDEPTH
- &test16bitinternalarg,
+ &test16bitinternalarg,
#endif
- &lag_in_frames, NULL
-};
+ &lag_in_frames,
+ NULL };
-static const arg_def_t dropframe_thresh = ARG_DEF(
- NULL, "drop-frame", 1, "Temporal resampling threshold (buf %)");
-static const arg_def_t resize_allowed = ARG_DEF(
- NULL, "resize-allowed", 1, "Spatial resampling enabled (bool)");
-static const arg_def_t resize_width = ARG_DEF(
- NULL, "resize-width", 1, "Width of encoded frame");
-static const arg_def_t resize_height = ARG_DEF(
- NULL, "resize-height", 1, "Height of encoded frame");
-static const arg_def_t resize_up_thresh = ARG_DEF(
- NULL, "resize-up", 1, "Upscale threshold (buf %)");
-static const arg_def_t resize_down_thresh = ARG_DEF(
- NULL, "resize-down", 1, "Downscale threshold (buf %)");
-static const struct arg_enum_list end_usage_enum[] = {
- {"vbr", VPX_VBR},
- {"cbr", VPX_CBR},
- {"cq", VPX_CQ},
- {"q", VPX_Q},
- {NULL, 0}
-};
-static const arg_def_t end_usage = ARG_DEF_ENUM(
- NULL, "end-usage", 1, "Rate control mode", end_usage_enum);
-static const arg_def_t target_bitrate = ARG_DEF(
- NULL, "target-bitrate", 1, "Bitrate (kbps)");
-static const arg_def_t min_quantizer = ARG_DEF(
- NULL, "min-q", 1, "Minimum (best) quantizer");
-static const arg_def_t max_quantizer = ARG_DEF(
- NULL, "max-q", 1, "Maximum (worst) quantizer");
-static const arg_def_t undershoot_pct = ARG_DEF(
- NULL, "undershoot-pct", 1, "Datarate undershoot (min) target (%)");
-static const arg_def_t overshoot_pct = ARG_DEF(
- NULL, "overshoot-pct", 1, "Datarate overshoot (max) target (%)");
-static const arg_def_t buf_sz = ARG_DEF(
- NULL, "buf-sz", 1, "Client buffer size (ms)");
-static const arg_def_t buf_initial_sz = ARG_DEF(
- NULL, "buf-initial-sz", 1, "Client initial buffer size (ms)");
-static const arg_def_t buf_optimal_sz = ARG_DEF(
- NULL, "buf-optimal-sz", 1, "Client optimal buffer size (ms)");
+static const arg_def_t dropframe_thresh =
+ ARG_DEF(NULL, "drop-frame", 1, "Temporal resampling threshold (buf %)");
+static const arg_def_t resize_allowed =
+ ARG_DEF(NULL, "resize-allowed", 1, "Spatial resampling enabled (bool)");
+static const arg_def_t resize_width =
+ ARG_DEF(NULL, "resize-width", 1, "Width of encoded frame");
+static const arg_def_t resize_height =
+ ARG_DEF(NULL, "resize-height", 1, "Height of encoded frame");
+static const arg_def_t resize_up_thresh =
+ ARG_DEF(NULL, "resize-up", 1, "Upscale threshold (buf %)");
+static const arg_def_t resize_down_thresh =
+ ARG_DEF(NULL, "resize-down", 1, "Downscale threshold (buf %)");
+static const struct arg_enum_list end_usage_enum[] = { { "vbr", VPX_VBR },
+ { "cbr", VPX_CBR },
+ { "cq", VPX_CQ },
+ { "q", VPX_Q },
+ { NULL, 0 } };
+static const arg_def_t end_usage =
+ ARG_DEF_ENUM(NULL, "end-usage", 1, "Rate control mode", end_usage_enum);
+static const arg_def_t target_bitrate =
+ ARG_DEF(NULL, "target-bitrate", 1, "Bitrate (kbps)");
+static const arg_def_t min_quantizer =
+ ARG_DEF(NULL, "min-q", 1, "Minimum (best) quantizer");
+static const arg_def_t max_quantizer =
+ ARG_DEF(NULL, "max-q", 1, "Maximum (worst) quantizer");
+static const arg_def_t undershoot_pct =
+ ARG_DEF(NULL, "undershoot-pct", 1, "Datarate undershoot (min) target (%)");
+static const arg_def_t overshoot_pct =
+ ARG_DEF(NULL, "overshoot-pct", 1, "Datarate overshoot (max) target (%)");
+static const arg_def_t buf_sz =
+ ARG_DEF(NULL, "buf-sz", 1, "Client buffer size (ms)");
+static const arg_def_t buf_initial_sz =
+ ARG_DEF(NULL, "buf-initial-sz", 1, "Client initial buffer size (ms)");
+static const arg_def_t buf_optimal_sz =
+ ARG_DEF(NULL, "buf-optimal-sz", 1, "Client optimal buffer size (ms)");
static const arg_def_t *rc_args[] = {
- &dropframe_thresh, &resize_allowed, &resize_width, &resize_height,
- &resize_up_thresh, &resize_down_thresh, &end_usage, &target_bitrate,
- &min_quantizer, &max_quantizer, &undershoot_pct, &overshoot_pct, &buf_sz,
- &buf_initial_sz, &buf_optimal_sz, NULL
+ &dropframe_thresh, &resize_allowed, &resize_width, &resize_height,
+ &resize_up_thresh, &resize_down_thresh, &end_usage, &target_bitrate,
+ &min_quantizer, &max_quantizer, &undershoot_pct, &overshoot_pct,
+ &buf_sz, &buf_initial_sz, &buf_optimal_sz, NULL
};
+static const arg_def_t bias_pct =
+ ARG_DEF(NULL, "bias-pct", 1, "CBR/VBR bias (0=CBR, 100=VBR)");
+static const arg_def_t minsection_pct =
+ ARG_DEF(NULL, "minsection-pct", 1, "GOP min bitrate (% of target)");
+static const arg_def_t maxsection_pct =
+ ARG_DEF(NULL, "maxsection-pct", 1, "GOP max bitrate (% of target)");
+static const arg_def_t *rc_twopass_args[] = { &bias_pct, &minsection_pct,
+ &maxsection_pct, NULL };
-static const arg_def_t bias_pct = ARG_DEF(
- NULL, "bias-pct", 1, "CBR/VBR bias (0=CBR, 100=VBR)");
-static const arg_def_t minsection_pct = ARG_DEF(
- NULL, "minsection-pct", 1, "GOP min bitrate (% of target)");
-static const arg_def_t maxsection_pct = ARG_DEF(
- NULL, "maxsection-pct", 1, "GOP max bitrate (% of target)");
-static const arg_def_t *rc_twopass_args[] = {
- &bias_pct, &minsection_pct, &maxsection_pct, NULL
-};
+static const arg_def_t kf_min_dist =
+ ARG_DEF(NULL, "kf-min-dist", 1, "Minimum keyframe interval (frames)");
+static const arg_def_t kf_max_dist =
+ ARG_DEF(NULL, "kf-max-dist", 1, "Maximum keyframe interval (frames)");
+static const arg_def_t kf_disabled =
+ ARG_DEF(NULL, "disable-kf", 0, "Disable keyframe placement");
+static const arg_def_t *kf_args[] = { &kf_min_dist, &kf_max_dist, &kf_disabled,
+ NULL };
-
-static const arg_def_t kf_min_dist = ARG_DEF(
- NULL, "kf-min-dist", 1, "Minimum keyframe interval (frames)");
-static const arg_def_t kf_max_dist = ARG_DEF(
- NULL, "kf-max-dist", 1, "Maximum keyframe interval (frames)");
-static const arg_def_t kf_disabled = ARG_DEF(
- NULL, "disable-kf", 0, "Disable keyframe placement");
-static const arg_def_t *kf_args[] = {
- &kf_min_dist, &kf_max_dist, &kf_disabled, NULL
-};
-
-
-static const arg_def_t noise_sens = ARG_DEF(
- NULL, "noise-sensitivity", 1, "Noise sensitivity (frames to blur)");
-static const arg_def_t sharpness = ARG_DEF(
- NULL, "sharpness", 1, "Loop filter sharpness (0..7)");
-static const arg_def_t static_thresh = ARG_DEF(
- NULL, "static-thresh", 1, "Motion detection threshold");
-static const arg_def_t auto_altref = ARG_DEF(
- NULL, "auto-alt-ref", 1, "Enable automatic alt reference frames");
-static const arg_def_t arnr_maxframes = ARG_DEF(
- NULL, "arnr-maxframes", 1, "AltRef max frames (0..15)");
-static const arg_def_t arnr_strength = ARG_DEF(
- NULL, "arnr-strength", 1, "AltRef filter strength (0..6)");
-static const arg_def_t arnr_type = ARG_DEF(
- NULL, "arnr-type", 1, "AltRef type");
+static const arg_def_t noise_sens =
+ ARG_DEF(NULL, "noise-sensitivity", 1, "Noise sensitivity (frames to blur)");
+static const arg_def_t sharpness =
+ ARG_DEF(NULL, "sharpness", 1, "Loop filter sharpness (0..7)");
+static const arg_def_t static_thresh =
+ ARG_DEF(NULL, "static-thresh", 1, "Motion detection threshold");
+static const arg_def_t auto_altref =
+ ARG_DEF(NULL, "auto-alt-ref", 1, "Enable automatic alt reference frames");
+static const arg_def_t arnr_maxframes =
+ ARG_DEF(NULL, "arnr-maxframes", 1, "AltRef max frames (0..15)");
+static const arg_def_t arnr_strength =
+ ARG_DEF(NULL, "arnr-strength", 1, "AltRef filter strength (0..6)");
+static const arg_def_t arnr_type = ARG_DEF(NULL, "arnr-type", 1, "AltRef type");
static const struct arg_enum_list tuning_enum[] = {
- {"psnr", VPX_TUNE_PSNR},
- {"ssim", VPX_TUNE_SSIM},
- {NULL, 0}
+ { "psnr", VPX_TUNE_PSNR }, { "ssim", VPX_TUNE_SSIM }, { NULL, 0 }
};
-static const arg_def_t tune_ssim = ARG_DEF_ENUM(
- NULL, "tune", 1, "Material to favor", tuning_enum);
-static const arg_def_t cq_level = ARG_DEF(
- NULL, "cq-level", 1, "Constant/Constrained Quality level");
-static const arg_def_t max_intra_rate_pct = ARG_DEF(
- NULL, "max-intra-rate", 1, "Max I-frame bitrate (pct)");
-
+static const arg_def_t tune_ssim =
+ ARG_DEF_ENUM(NULL, "tune", 1, "Material to favor", tuning_enum);
+static const arg_def_t cq_level =
+ ARG_DEF(NULL, "cq-level", 1, "Constant/Constrained Quality level");
+static const arg_def_t max_intra_rate_pct =
+ ARG_DEF(NULL, "max-intra-rate", 1, "Max I-frame bitrate (pct)");
#if CONFIG_VP10_ENCODER
-static const arg_def_t cpu_used_vp9 = ARG_DEF(
- NULL, "cpu-used", 1, "CPU Used (-8..8)");
-static const arg_def_t tile_cols = ARG_DEF(
- NULL, "tile-columns", 1, "Number of tile columns to use, log2");
-static const arg_def_t tile_rows = ARG_DEF(
- NULL, "tile-rows", 1,
- "Number of tile rows to use, log2 (set to 0 while threads > 1)");
-static const arg_def_t lossless = ARG_DEF(
- NULL, "lossless", 1, "Lossless mode (0: false (default), 1: true)");
+static const arg_def_t cpu_used_vp9 =
+ ARG_DEF(NULL, "cpu-used", 1, "CPU Used (-8..8)");
+static const arg_def_t tile_cols =
+ ARG_DEF(NULL, "tile-columns", 1, "Number of tile columns to use, log2");
+static const arg_def_t tile_rows =
+ ARG_DEF(NULL, "tile-rows", 1,
+ "Number of tile rows to use, log2 (set to 0 while threads > 1)");
+static const arg_def_t lossless =
+ ARG_DEF(NULL, "lossless", 1, "Lossless mode (0: false (default), 1: true)");
static const arg_def_t frame_parallel_decoding = ARG_DEF(
NULL, "frame-parallel", 1, "Enable frame parallel decodability features");
static const arg_def_t aq_mode = ARG_DEF(
NULL, "aq-mode", 1,
"Adaptive quantization mode (0: off (default), 1: variance 2: complexity, "
"3: cyclic refresh, 4: equator360)");
-static const arg_def_t frame_periodic_boost = ARG_DEF(
- NULL, "frame-boost", 1,
- "Enable frame periodic boost (0: off (default), 1: on)");
+static const arg_def_t frame_periodic_boost =
+ ARG_DEF(NULL, "frame-boost", 1,
+ "Enable frame periodic boost (0: off (default), 1: on)");
static const arg_def_t gf_cbr_boost_pct = ARG_DEF(
NULL, "gf-cbr-boost", 1, "Boost for Golden Frame in CBR mode (pct)");
-static const arg_def_t max_inter_rate_pct = ARG_DEF(
- NULL, "max-inter-rate", 1, "Max P-frame bitrate (pct)");
+static const arg_def_t max_inter_rate_pct =
+ ARG_DEF(NULL, "max-inter-rate", 1, "Max P-frame bitrate (pct)");
static const arg_def_t min_gf_interval = ARG_DEF(
NULL, "min-gf-interval", 1,
"min gf/arf frame interval (default 0, indicating in-built behavior)");
@@ -393,30 +398,27 @@
{ NULL, 0 }
};
-static const arg_def_t input_color_space = ARG_DEF_ENUM(
- NULL, "color-space", 1,
- "The color space of input content:", color_space_enum);
+static const arg_def_t input_color_space =
+ ARG_DEF_ENUM(NULL, "color-space", 1, "The color space of input content:",
+ color_space_enum);
#if CONFIG_VP9_HIGHBITDEPTH
static const struct arg_enum_list bitdepth_enum[] = {
- {"8", VPX_BITS_8},
- {"10", VPX_BITS_10},
- {"12", VPX_BITS_12},
- {NULL, 0}
+ { "8", VPX_BITS_8 }, { "10", VPX_BITS_10 }, { "12", VPX_BITS_12 }, { NULL, 0 }
};
static const arg_def_t bitdeptharg = ARG_DEF_ENUM(
"b", "bit-depth", 1,
"Bit depth for codec (8 for version <=1, 10 or 12 for version 2)",
bitdepth_enum);
-static const arg_def_t inbitdeptharg = ARG_DEF(
- NULL, "input-bit-depth", 1, "Bit depth of input");
+static const arg_def_t inbitdeptharg =
+ ARG_DEF(NULL, "input-bit-depth", 1, "Bit depth of input");
#endif
static const struct arg_enum_list tune_content_enum[] = {
- {"default", VPX_CONTENT_DEFAULT},
- {"screen", VPX_CONTENT_SCREEN},
- {NULL, 0}
+ { "default", VPX_CONTENT_DEFAULT },
+ { "screen", VPX_CONTENT_SCREEN },
+ { NULL, 0 }
};
static const arg_def_t tune_content = ARG_DEF_ENUM(
@@ -428,51 +430,76 @@
" 11: level 1.1; ... 62: level 6.2)");
#endif
-
#if CONFIG_VP10_ENCODER
#if CONFIG_EXT_PARTITION
static const struct arg_enum_list superblock_size_enum[] = {
- {"dynamic", VPX_SUPERBLOCK_SIZE_DYNAMIC},
- {"64", VPX_SUPERBLOCK_SIZE_64X64},
- {"128", VPX_SUPERBLOCK_SIZE_128X128},
- {NULL, 0}
+ { "dynamic", VPX_SUPERBLOCK_SIZE_DYNAMIC },
+ { "64", VPX_SUPERBLOCK_SIZE_64X64 },
+ { "128", VPX_SUPERBLOCK_SIZE_128X128 },
+ { NULL, 0 }
};
static const arg_def_t superblock_size = ARG_DEF_ENUM(
NULL, "sb-size", 1, "Superblock size to use", superblock_size_enum);
#endif // CONFIG_EXT_PARTITION
-static const arg_def_t *vp10_args[] = {
- &cpu_used_vp9, &auto_altref, &sharpness, &static_thresh,
- &tile_cols, &tile_rows, &arnr_maxframes, &arnr_strength, &arnr_type,
- &tune_ssim, &cq_level, &max_intra_rate_pct, &max_inter_rate_pct,
- &gf_cbr_boost_pct, &lossless,
- &frame_parallel_decoding, &aq_mode, &frame_periodic_boost,
- &noise_sens, &tune_content, &input_color_space,
- &min_gf_interval, &max_gf_interval,
+static const arg_def_t *vp10_args[] = { &cpu_used_vp9,
+ &auto_altref,
+ &sharpness,
+ &static_thresh,
+ &tile_cols,
+ &tile_rows,
+ &arnr_maxframes,
+ &arnr_strength,
+ &arnr_type,
+ &tune_ssim,
+ &cq_level,
+ &max_intra_rate_pct,
+ &max_inter_rate_pct,
+ &gf_cbr_boost_pct,
+ &lossless,
+ &frame_parallel_decoding,
+ &aq_mode,
+ &frame_periodic_boost,
+ &noise_sens,
+ &tune_content,
+ &input_color_space,
+ &min_gf_interval,
+ &max_gf_interval,
#if CONFIG_EXT_PARTITION
- &superblock_size,
+ &superblock_size,
#endif // CONFIG_EXT_PARTITION
#if CONFIG_VP9_HIGHBITDEPTH
- &bitdeptharg, &inbitdeptharg,
+ &bitdeptharg,
+ &inbitdeptharg,
#endif // CONFIG_VP9_HIGHBITDEPTH
- NULL
-};
-static const int vp10_arg_ctrl_map[] = {
- VP8E_SET_CPUUSED, VP8E_SET_ENABLEAUTOALTREF,
- VP8E_SET_SHARPNESS, VP8E_SET_STATIC_THRESHOLD,
- VP9E_SET_TILE_COLUMNS, VP9E_SET_TILE_ROWS,
- VP8E_SET_ARNR_MAXFRAMES, VP8E_SET_ARNR_STRENGTH, VP8E_SET_ARNR_TYPE,
- VP8E_SET_TUNING, VP8E_SET_CQ_LEVEL, VP8E_SET_MAX_INTRA_BITRATE_PCT,
- VP9E_SET_MAX_INTER_BITRATE_PCT, VP9E_SET_GF_CBR_BOOST_PCT,
- VP9E_SET_LOSSLESS, VP9E_SET_FRAME_PARALLEL_DECODING, VP9E_SET_AQ_MODE,
- VP9E_SET_FRAME_PERIODIC_BOOST, VP9E_SET_NOISE_SENSITIVITY,
- VP9E_SET_TUNE_CONTENT, VP9E_SET_COLOR_SPACE,
- VP9E_SET_MIN_GF_INTERVAL, VP9E_SET_MAX_GF_INTERVAL,
+ NULL };
+static const int vp10_arg_ctrl_map[] = { VP8E_SET_CPUUSED,
+ VP8E_SET_ENABLEAUTOALTREF,
+ VP8E_SET_SHARPNESS,
+ VP8E_SET_STATIC_THRESHOLD,
+ VP9E_SET_TILE_COLUMNS,
+ VP9E_SET_TILE_ROWS,
+ VP8E_SET_ARNR_MAXFRAMES,
+ VP8E_SET_ARNR_STRENGTH,
+ VP8E_SET_ARNR_TYPE,
+ VP8E_SET_TUNING,
+ VP8E_SET_CQ_LEVEL,
+ VP8E_SET_MAX_INTRA_BITRATE_PCT,
+ VP9E_SET_MAX_INTER_BITRATE_PCT,
+ VP9E_SET_GF_CBR_BOOST_PCT,
+ VP9E_SET_LOSSLESS,
+ VP9E_SET_FRAME_PARALLEL_DECODING,
+ VP9E_SET_AQ_MODE,
+ VP9E_SET_FRAME_PERIODIC_BOOST,
+ VP9E_SET_NOISE_SENSITIVITY,
+ VP9E_SET_TUNE_CONTENT,
+ VP9E_SET_COLOR_SPACE,
+ VP9E_SET_MIN_GF_INTERVAL,
+ VP9E_SET_MAX_GF_INTERVAL,
#if CONFIG_EXT_PARTITION
- VP10E_SET_SUPERBLOCK_SIZE,
+ VP10E_SET_SUPERBLOCK_SIZE,
#endif // CONFIG_EXT_PARTITION
- 0
-};
+ 0 };
#endif
static const arg_def_t *no_args[] = { NULL };
@@ -498,17 +525,17 @@
fprintf(stderr, "\nVP10 Specific Options:\n");
arg_show_usage(stderr, vp10_args);
#endif
- fprintf(stderr, "\nStream timebase (--timebase):\n"
+ fprintf(stderr,
+ "\nStream timebase (--timebase):\n"
" The desired precision of timestamps in the output, expressed\n"
" in fractional seconds. Default is 1/1000.\n");
fprintf(stderr, "\nIncluded encoders:\n\n");
for (i = 0; i < num_encoder; ++i) {
const VpxInterface *const encoder = get_vpx_encoder_by_index(i);
- const char* defstr = (i == (num_encoder - 1)) ? "(default)" : "";
- fprintf(stderr, " %-6s - %s %s\n",
- encoder->name, vpx_codec_iface_name(encoder->codec_interface()),
- defstr);
+ const char *defstr = (i == (num_encoder - 1)) ? "(default)" : "";
+ fprintf(stderr, " %-6s - %s %s\n", encoder->name,
+ vpx_codec_iface_name(encoder->codec_interface()), defstr);
}
fprintf(stderr, "\n ");
fprintf(stderr, "Use --codec to switch to a non-default encoder.\n\n");
@@ -516,12 +543,12 @@
exit(EXIT_FAILURE);
}
-#define mmin(a, b) ((a) < (b) ? (a) : (b))
+#define mmin(a, b) ((a) < (b) ? (a) : (b))
#if CONFIG_VP9_HIGHBITDEPTH
static void find_mismatch_high(const vpx_image_t *const img1,
- const vpx_image_t *const img2,
- int yloc[4], int uloc[4], int vloc[4]) {
+ const vpx_image_t *const img2, int yloc[4],
+ int uloc[4], int vloc[4]) {
uint16_t *plane1, *plane2;
uint32_t stride1, stride2;
const uint32_t bsize = 64;
@@ -534,10 +561,10 @@
int match = 1;
uint32_t i, j;
yloc[0] = yloc[1] = yloc[2] = yloc[3] = -1;
- plane1 = (uint16_t*)img1->planes[VPX_PLANE_Y];
- plane2 = (uint16_t*)img2->planes[VPX_PLANE_Y];
- stride1 = img1->stride[VPX_PLANE_Y]/2;
- stride2 = img2->stride[VPX_PLANE_Y]/2;
+ plane1 = (uint16_t *)img1->planes[VPX_PLANE_Y];
+ plane2 = (uint16_t *)img2->planes[VPX_PLANE_Y];
+ stride1 = img1->stride[VPX_PLANE_Y] / 2;
+ stride2 = img2->stride[VPX_PLANE_Y] / 2;
for (i = 0, match = 1; match && i < img1->d_h; i += bsize) {
for (j = 0; match && j < img1->d_w; j += bsize) {
int k, l;
@@ -560,10 +587,10 @@
}
uloc[0] = uloc[1] = uloc[2] = uloc[3] = -1;
- plane1 = (uint16_t*)img1->planes[VPX_PLANE_U];
- plane2 = (uint16_t*)img2->planes[VPX_PLANE_U];
- stride1 = img1->stride[VPX_PLANE_U]/2;
- stride2 = img2->stride[VPX_PLANE_U]/2;
+ plane1 = (uint16_t *)img1->planes[VPX_PLANE_U];
+ plane2 = (uint16_t *)img2->planes[VPX_PLANE_U];
+ stride1 = img1->stride[VPX_PLANE_U] / 2;
+ stride2 = img2->stride[VPX_PLANE_U] / 2;
for (i = 0, match = 1; match && i < c_h; i += bsizey) {
for (j = 0; match && j < c_w; j += bsizex) {
int k, l;
@@ -586,10 +613,10 @@
}
vloc[0] = vloc[1] = vloc[2] = vloc[3] = -1;
- plane1 = (uint16_t*)img1->planes[VPX_PLANE_V];
- plane2 = (uint16_t*)img2->planes[VPX_PLANE_V];
- stride1 = img1->stride[VPX_PLANE_V]/2;
- stride2 = img2->stride[VPX_PLANE_V]/2;
+ plane1 = (uint16_t *)img1->planes[VPX_PLANE_V];
+ plane2 = (uint16_t *)img2->planes[VPX_PLANE_V];
+ stride1 = img1->stride[VPX_PLANE_V] / 2;
+ stride2 = img2->stride[VPX_PLANE_V] / 2;
for (i = 0, match = 1; match && i < c_h; i += bsizey) {
for (j = 0; match && j < c_w; j += bsizex) {
int k, l;
@@ -614,8 +641,8 @@
#endif
static void find_mismatch(const vpx_image_t *const img1,
- const vpx_image_t *const img2,
- int yloc[4], int uloc[4], int vloc[4]) {
+ const vpx_image_t *const img2, int yloc[4],
+ int uloc[4], int vloc[4]) {
const uint32_t bsize = 64;
const uint32_t bsizey = bsize >> img1->y_chroma_shift;
const uint32_t bsizex = bsize >> img1->x_chroma_shift;
@@ -706,8 +733,7 @@
static int compare_img(const vpx_image_t *const img1,
const vpx_image_t *const img2) {
uint32_t l_w = img1->d_w;
- uint32_t c_w =
- (img1->d_w + img1->x_chroma_shift) >> img1->x_chroma_shift;
+ uint32_t c_w = (img1->d_w + img1->x_chroma_shift) >> img1->x_chroma_shift;
const uint32_t c_h =
(img1->d_h + img1->y_chroma_shift) >> img1->y_chroma_shift;
uint32_t i;
@@ -741,84 +767,79 @@
return match;
}
-
-#define NELEMENTS(x) (sizeof(x)/sizeof(x[0]))
+#define NELEMENTS(x) (sizeof(x) / sizeof(x[0]))
#if CONFIG_VP10_ENCODER
#define ARG_CTRL_CNT_MAX NELEMENTS(vp10_arg_ctrl_map)
#endif
#if !CONFIG_WEBM_IO
typedef int stereo_format_t;
-struct WebmOutputContext { int debug; };
+struct WebmOutputContext {
+ int debug;
+};
#endif
/* Per-stream configuration */
struct stream_config {
- struct vpx_codec_enc_cfg cfg;
- const char *out_fn;
- const char *stats_fn;
+ struct vpx_codec_enc_cfg cfg;
+ const char *out_fn;
+ const char *stats_fn;
#if CONFIG_FP_MB_STATS
- const char *fpmb_stats_fn;
+ const char *fpmb_stats_fn;
#endif
- stereo_format_t stereo_fmt;
- int arg_ctrls[ARG_CTRL_CNT_MAX][2];
- int arg_ctrl_cnt;
- int write_webm;
+ stereo_format_t stereo_fmt;
+ int arg_ctrls[ARG_CTRL_CNT_MAX][2];
+ int arg_ctrl_cnt;
+ int write_webm;
#if CONFIG_VP9_HIGHBITDEPTH
// whether to use 16bit internal buffers
- int use_16bit_internal;
+ int use_16bit_internal;
#endif
};
-
struct stream_state {
- int index;
- struct stream_state *next;
- struct stream_config config;
- FILE *file;
- struct rate_hist *rate_hist;
- struct WebmOutputContext webm_ctx;
- uint64_t psnr_sse_total;
- uint64_t psnr_samples_total;
- double psnr_totals[4];
- int psnr_count;
- int counts[64];
- vpx_codec_ctx_t encoder;
- unsigned int frames_out;
- uint64_t cx_time;
- size_t nbytes;
- stats_io_t stats;
+ int index;
+ struct stream_state *next;
+ struct stream_config config;
+ FILE *file;
+ struct rate_hist *rate_hist;
+ struct WebmOutputContext webm_ctx;
+ uint64_t psnr_sse_total;
+ uint64_t psnr_samples_total;
+ double psnr_totals[4];
+ int psnr_count;
+ int counts[64];
+ vpx_codec_ctx_t encoder;
+ unsigned int frames_out;
+ uint64_t cx_time;
+ size_t nbytes;
+ stats_io_t stats;
#if CONFIG_FP_MB_STATS
- stats_io_t fpmb_stats;
+ stats_io_t fpmb_stats;
#endif
- struct vpx_image *img;
- vpx_codec_ctx_t decoder;
- int mismatch_seen;
+ struct vpx_image *img;
+ vpx_codec_ctx_t decoder;
+ int mismatch_seen;
};
-
-static void validate_positive_rational(const char *msg,
+static void validate_positive_rational(const char *msg,
struct vpx_rational *rat) {
if (rat->den < 0) {
rat->num *= -1;
rat->den *= -1;
}
- if (rat->num < 0)
- die("Error: %s must be positive\n", msg);
+ if (rat->num < 0) die("Error: %s must be positive\n", msg);
- if (!rat->den)
- die("Error: %s has zero denominator\n", msg);
+ if (!rat->den) die("Error: %s has zero denominator\n", msg);
}
-
static void parse_global_config(struct VpxEncoderConfig *global, char **argv) {
- char **argi, **argj;
- struct arg arg;
+ char **argi, **argj;
+ struct arg arg;
const int num_encoder = get_vpx_encoder_count();
- if (num_encoder < 1)
- die("Error: no valid encoder available\n");
+ if (num_encoder < 1) die("Error: no valid encoder available\n");
/* Initialize default parameters */
memset(global, 0, sizeof(*global));
@@ -844,8 +865,7 @@
global->pass = arg_parse_uint(&arg);
if (global->pass < 1 || global->pass > 2)
- die("Error: Invalid pass selected (%d)\n",
- global->pass);
+ die("Error: Invalid pass selected (%d)\n", global->pass);
} else if (arg_match(&arg, &usage, argi))
global->usage = arg_parse_uint(&arg);
else if (arg_match(&arg, &deadline, argi))
@@ -901,8 +921,8 @@
if (global->pass) {
/* DWIM: Assume the user meant passes=2 if pass=2 is specified */
if (global->pass > global->passes) {
- warn("Assuming --pass=%d implies --passes=%d\n",
- global->pass, global->pass);
+ warn("Assuming --pass=%d implies --passes=%d\n", global->pass,
+ global->pass);
global->passes = global->pass;
}
}
@@ -913,27 +933,26 @@
// encoder
if (global->codec != NULL && global->codec->name != NULL)
global->passes = (strcmp(global->codec->name, "vp9") == 0 &&
- global->deadline != VPX_DL_REALTIME) ? 2 : 1;
+ global->deadline != VPX_DL_REALTIME)
+ ? 2
+ : 1;
#else
global->passes = 1;
#endif
}
- if (global->deadline == VPX_DL_REALTIME &&
- global->passes > 1) {
+ if (global->deadline == VPX_DL_REALTIME && global->passes > 1) {
warn("Enforcing one-pass encoding in realtime mode\n");
global->passes = 1;
}
}
-
static void open_input_file(struct VpxInputContext *input) {
/* Parse certain options from the input file, if possible */
- input->file = strcmp(input->filename, "-")
- ? fopen(input->filename, "rb") : set_binary_mode(stdin);
+ input->file = strcmp(input->filename, "-") ? fopen(input->filename, "rb")
+ : set_binary_mode(stdin);
- if (!input->file)
- fatal("Failed to open input file");
+ if (!input->file) fatal("Failed to open input file");
if (!fseeko(input->file, 0, SEEK_END)) {
/* Input file is seekable. Figure out how long it is, so we can get
@@ -953,8 +972,7 @@
input->detect.buf_read = fread(input->detect.buf, 1, 4, input->file);
input->detect.position = 0;
- if (input->detect.buf_read == 4
- && file_is_y4m(input->detect.buf)) {
+ if (input->detect.buf_read == 4 && file_is_y4m(input->detect.buf)) {
if (y4m_input_open(&input->y4m, input->file, input->detect.buf, 4,
input->only_i420) >= 0) {
input->file_type = FILE_TYPE_Y4M;
@@ -975,11 +993,9 @@
}
}
-
static void close_input_file(struct VpxInputContext *input) {
fclose(input->file);
- if (input->file_type == FILE_TYPE_Y4M)
- y4m_input_close(&input->y4m);
+ if (input->file_type == FILE_TYPE_Y4M) y4m_input_close(&input->y4m);
}
static struct stream_state *new_stream(struct VpxEncoderConfig *global,
@@ -996,14 +1012,12 @@
stream->index++;
prev->next = stream;
} else {
- vpx_codec_err_t res;
+ vpx_codec_err_t res;
/* Populate encoder configuration */
res = vpx_codec_enc_config_default(global->codec->codec_interface(),
- &stream->config.cfg,
- global->usage);
- if (res)
- fatal("Failed to get config: %s\n", vpx_codec_err_to_string(res));
+ &stream->config.cfg, global->usage);
+ if (res) fatal("Failed to get config: %s\n", vpx_codec_err_to_string(res));
/* Change the default timebase to a high enough value so that the
* encoder will always create strictly increasing timestamps.
@@ -1040,18 +1054,16 @@
return stream;
}
-
static int parse_stream_params(struct VpxEncoderConfig *global,
- struct stream_state *stream,
- char **argv) {
- char **argi, **argj;
- struct arg arg;
+ struct stream_state *stream, char **argv) {
+ char **argi, **argj;
+ struct arg arg;
static const arg_def_t **ctrl_args = no_args;
- static const int *ctrl_args_map = NULL;
- struct stream_config *config = &stream->config;
- int eos_mark_found = 0;
+ static const int *ctrl_args_map = NULL;
+ struct stream_config *config = &stream->config;
+ int eos_mark_found = 0;
#if CONFIG_VP9_HIGHBITDEPTH
- int test_16bit_internal = 0;
+ int test_16bit_internal = 0;
#endif
// Handle codec specific options
@@ -1156,7 +1168,7 @@
} else if (arg_match(&arg, &buf_optimal_sz, argi)) {
config->cfg.rc_buf_optimal_sz = arg_parse_uint(&arg);
} else if (arg_match(&arg, &bias_pct, argi)) {
- config->cfg.rc_2pass_vbr_bias_pct = arg_parse_uint(&arg);
+ config->cfg.rc_2pass_vbr_bias_pct = arg_parse_uint(&arg);
if (global->passes < 2)
warn("option %s ignored in one-pass mode.\n", arg.name);
} else if (arg_match(&arg, &minsection_pct, argi)) {
@@ -1202,43 +1214,41 @@
if (ctrl_args_map != NULL && j < (int)ARG_CTRL_CNT_MAX) {
config->arg_ctrls[j][0] = ctrl_args_map[i];
config->arg_ctrls[j][1] = arg_parse_enum_or_int(&arg);
- if (j == config->arg_ctrl_cnt)
- config->arg_ctrl_cnt++;
+ if (j == config->arg_ctrl_cnt) config->arg_ctrl_cnt++;
}
}
}
- if (!match)
- argj++;
+ if (!match) argj++;
}
}
#if CONFIG_VP9_HIGHBITDEPTH
if (strcmp(global->codec->name, "vp9") == 0 ||
strcmp(global->codec->name, "vp10") == 0) {
- config->use_16bit_internal = test_16bit_internal |
- (config->cfg.g_profile > 1);
+ config->use_16bit_internal =
+ test_16bit_internal | (config->cfg.g_profile > 1);
}
#endif
return eos_mark_found;
}
-
-#define FOREACH_STREAM(func) \
- do { \
- struct stream_state *stream; \
+#define FOREACH_STREAM(func) \
+ do { \
+ struct stream_state *stream; \
for (stream = streams; stream; stream = stream->next) { \
- func; \
- } \
+ func; \
+ } \
} while (0)
-
static void validate_stream_config(const struct stream_state *stream,
const struct VpxEncoderConfig *global) {
const struct stream_state *streami;
(void)global;
if (!stream->config.cfg.g_w || !stream->config.cfg.g_h)
- fatal("Stream %d: Specify stream dimensions with --width (-w) "
- " and --height (-h)", stream->index);
+ fatal(
+ "Stream %d: Specify stream dimensions with --width (-w) "
+ " and --height (-h)",
+ stream->index);
// Check that the codec bit depth is greater than the input bit depth.
if (stream->config.cfg.g_input_bit_depth >
@@ -1285,9 +1295,7 @@
}
}
-
-static void set_stream_dimensions(struct stream_state *stream,
- unsigned int w,
+static void set_stream_dimensions(struct stream_state *stream, unsigned int w,
unsigned int h) {
if (!stream->config.cfg.g_w) {
if (!stream->config.cfg.g_h)
@@ -1300,7 +1308,7 @@
}
}
-static const char* file_type_to_string(enum VideoFileType t) {
+static const char *file_type_to_string(enum VideoFileType t) {
switch (t) {
case FILE_TYPE_RAW: return "RAW";
case FILE_TYPE_Y4M: return "Y4M";
@@ -1308,7 +1316,7 @@
}
}
-static const char* image_format_to_string(vpx_img_fmt_t f) {
+static const char *image_format_to_string(vpx_img_fmt_t f) {
switch (f) {
case VPX_IMG_FMT_I420: return "I420";
case VPX_IMG_FMT_I422: return "I422";
@@ -1326,7 +1334,6 @@
static void show_stream_config(struct stream_state *stream,
struct VpxEncoderConfig *global,
struct VpxInputContext *input) {
-
#define SHOW(field) \
fprintf(stderr, " %-28s = %d\n", #field, stream->config.cfg.field)
@@ -1334,8 +1341,7 @@
fprintf(stderr, "Codec: %s\n",
vpx_codec_iface_name(global->codec->codec_interface()));
fprintf(stderr, "Source file: %s File Type: %s Format: %s\n",
- input->filename,
- file_type_to_string(input->file_type),
+ input->filename, file_type_to_string(input->file_type),
image_format_to_string(input->fmt));
}
if (stream->next || stream->index)
@@ -1378,20 +1384,17 @@
SHOW(kf_max_dist);
}
-
static void open_output_file(struct stream_state *stream,
struct VpxEncoderConfig *global,
const struct VpxRational *pixel_aspect_ratio) {
const char *fn = stream->config.out_fn;
const struct vpx_codec_enc_cfg *const cfg = &stream->config.cfg;
- if (cfg->g_pass == VPX_RC_FIRST_PASS)
- return;
+ if (cfg->g_pass == VPX_RC_FIRST_PASS) return;
stream->file = strcmp(fn, "-") ? fopen(fn, "wb") : set_binary_mode(stdout);
- if (!stream->file)
- fatal("Failed to open output file");
+ if (!stream->file) fatal("Failed to open output file");
if (stream->config.write_webm && fseek(stream->file, 0, SEEK_CUR))
fatal("WebM output to pipes not supported.");
@@ -1399,10 +1402,8 @@
#if CONFIG_WEBM_IO
if (stream->config.write_webm) {
stream->webm_ctx.stream = stream->file;
- write_webm_file_header(&stream->webm_ctx, cfg,
- &global->framerate,
- stream->config.stereo_fmt,
- global->codec->fourcc,
+ write_webm_file_header(&stream->webm_ctx, cfg, &global->framerate,
+ stream->config.stereo_fmt, global->codec->fourcc,
pixel_aspect_ratio);
}
#else
@@ -1414,13 +1415,11 @@
}
}
-
static void close_output_file(struct stream_state *stream,
unsigned int fourcc) {
const struct vpx_codec_enc_cfg *const cfg = &stream->config.cfg;
- if (cfg->g_pass == VPX_RC_FIRST_PASS)
- return;
+ if (cfg->g_pass == VPX_RC_FIRST_PASS) return;
#if CONFIG_WEBM_IO
if (stream->config.write_webm) {
@@ -1430,21 +1429,17 @@
if (!stream->config.write_webm) {
if (!fseek(stream->file, 0, SEEK_SET))
- ivf_write_file_header(stream->file, &stream->config.cfg,
- fourcc,
+ ivf_write_file_header(stream->file, &stream->config.cfg, fourcc,
stream->frames_out);
}
fclose(stream->file);
}
-
static void setup_pass(struct stream_state *stream,
- struct VpxEncoderConfig *global,
- int pass) {
+ struct VpxEncoderConfig *global, int pass) {
if (stream->config.stats_fn) {
- if (!stats_open_file(&stream->stats, stream->config.stats_fn,
- pass))
+ if (!stats_open_file(&stream->stats, stream->config.stats_fn, pass))
fatal("Failed to open statistics store");
} else {
if (!stats_open_mem(&stream->stats, pass))
@@ -1453,8 +1448,8 @@
#if CONFIG_FP_MB_STATS
if (stream->config.fpmb_stats_fn) {
- if (!stats_open_file(&stream->fpmb_stats,
- stream->config.fpmb_stats_fn, pass))
+ if (!stats_open_file(&stream->fpmb_stats, stream->config.fpmb_stats_fn,
+ pass))
fatal("Failed to open mb statistics store");
} else {
if (!stats_open_mem(&stream->fpmb_stats, pass))
@@ -1463,8 +1458,8 @@
#endif
stream->config.cfg.g_pass = global->passes == 2
- ? pass ? VPX_RC_LAST_PASS : VPX_RC_FIRST_PASS
- : VPX_RC_ONE_PASS;
+ ? pass ? VPX_RC_LAST_PASS : VPX_RC_FIRST_PASS
+ : VPX_RC_ONE_PASS;
if (pass) {
stream->config.cfg.rc_twopass_stats_in = stats_get(&stream->stats);
#if CONFIG_FP_MB_STATS
@@ -1478,7 +1473,6 @@
stream->frames_out = 0;
}
-
static void initialize_encoder(struct stream_state *stream,
struct VpxEncoderConfig *global) {
int i;
@@ -1503,8 +1497,7 @@
int ctrl = stream->config.arg_ctrls[i][0];
int value = stream->config.arg_ctrls[i][1];
if (vpx_codec_control_(&stream->encoder, ctrl, value))
- fprintf(stderr, "Error: Tried to set control %d = %d\n",
- ctrl, value);
+ fprintf(stderr, "Error: Tried to set control %d = %d\n", ctrl, value);
ctx_exit_on_error(&stream->encoder, "Failed to control codec");
}
@@ -1512,7 +1505,7 @@
#if CONFIG_DECODERS
if (global->test_decode != TEST_DECODE_OFF) {
const VpxInterface *decoder = get_vpx_decoder_by_name(global->codec->name);
- vpx_codec_dec_cfg_t cfg = { 0, 0, 0};
+ vpx_codec_dec_cfg_t cfg = { 0, 0, 0 };
vpx_codec_dec_init(&stream->decoder, decoder->codec_interface(), &cfg, 0);
#if CONFIG_VP10_DECODER && CONFIG_EXT_TILE
@@ -1528,23 +1521,21 @@
#endif
}
-
static void encode_frame(struct stream_state *stream,
- struct VpxEncoderConfig *global,
- struct vpx_image *img,
+ struct VpxEncoderConfig *global, struct vpx_image *img,
unsigned int frames_in) {
vpx_codec_pts_t frame_start, next_frame_start;
struct vpx_codec_enc_cfg *cfg = &stream->config.cfg;
struct vpx_usec_timer timer;
- frame_start = (cfg->g_timebase.den * (int64_t)(frames_in - 1)
- * global->framerate.den)
- / cfg->g_timebase.num / global->framerate.num;
- next_frame_start = (cfg->g_timebase.den * (int64_t)(frames_in)
- * global->framerate.den)
- / cfg->g_timebase.num / global->framerate.num;
+ frame_start =
+ (cfg->g_timebase.den * (int64_t)(frames_in - 1) * global->framerate.den) /
+ cfg->g_timebase.num / global->framerate.num;
+ next_frame_start =
+ (cfg->g_timebase.den * (int64_t)(frames_in)*global->framerate.den) /
+ cfg->g_timebase.num / global->framerate.num;
- /* Scale if necessary */
+/* Scale if necessary */
#if CONFIG_VP9_HIGHBITDEPTH
if (img) {
if ((img->fmt & VPX_IMG_FMT_HIGHBITDEPTH) &&
@@ -1555,32 +1546,28 @@
}
#if CONFIG_LIBYUV
if (!stream->img) {
- stream->img = vpx_img_alloc(NULL, VPX_IMG_FMT_I42016,
- cfg->g_w, cfg->g_h, 16);
+ stream->img =
+ vpx_img_alloc(NULL, VPX_IMG_FMT_I42016, cfg->g_w, cfg->g_h, 16);
}
- I420Scale_16((uint16*)img->planes[VPX_PLANE_Y],
- img->stride[VPX_PLANE_Y]/2,
- (uint16*)img->planes[VPX_PLANE_U],
- img->stride[VPX_PLANE_U]/2,
- (uint16*)img->planes[VPX_PLANE_V],
- img->stride[VPX_PLANE_V]/2,
- img->d_w, img->d_h,
- (uint16*)stream->img->planes[VPX_PLANE_Y],
- stream->img->stride[VPX_PLANE_Y]/2,
- (uint16*)stream->img->planes[VPX_PLANE_U],
- stream->img->stride[VPX_PLANE_U]/2,
- (uint16*)stream->img->planes[VPX_PLANE_V],
- stream->img->stride[VPX_PLANE_V]/2,
- stream->img->d_w, stream->img->d_h,
- kFilterBox);
+ I420Scale_16(
+ (uint16 *)img->planes[VPX_PLANE_Y], img->stride[VPX_PLANE_Y] / 2,
+ (uint16 *)img->planes[VPX_PLANE_U], img->stride[VPX_PLANE_U] / 2,
+ (uint16 *)img->planes[VPX_PLANE_V], img->stride[VPX_PLANE_V] / 2,
+ img->d_w, img->d_h, (uint16 *)stream->img->planes[VPX_PLANE_Y],
+ stream->img->stride[VPX_PLANE_Y] / 2,
+ (uint16 *)stream->img->planes[VPX_PLANE_U],
+ stream->img->stride[VPX_PLANE_U] / 2,
+ (uint16 *)stream->img->planes[VPX_PLANE_V],
+ stream->img->stride[VPX_PLANE_V] / 2, stream->img->d_w,
+ stream->img->d_h, kFilterBox);
img = stream->img;
#else
- stream->encoder.err = 1;
- ctx_exit_on_error(&stream->encoder,
- "Stream %d: Failed to encode frame.\n"
- "Scaling disabled in this configuration. \n"
- "To enable, configure with --enable-libyuv\n",
- stream->index);
+ stream->encoder.err = 1;
+ ctx_exit_on_error(&stream->encoder,
+ "Stream %d: Failed to encode frame.\n"
+ "Scaling disabled in this configuration. \n"
+ "To enable, configure with --enable-libyuv\n",
+ stream->index);
#endif
}
}
@@ -1592,20 +1579,16 @@
}
#if CONFIG_LIBYUV
if (!stream->img)
- stream->img = vpx_img_alloc(NULL, VPX_IMG_FMT_I420,
- cfg->g_w, cfg->g_h, 16);
- I420Scale(img->planes[VPX_PLANE_Y], img->stride[VPX_PLANE_Y],
- img->planes[VPX_PLANE_U], img->stride[VPX_PLANE_U],
- img->planes[VPX_PLANE_V], img->stride[VPX_PLANE_V],
- img->d_w, img->d_h,
- stream->img->planes[VPX_PLANE_Y],
- stream->img->stride[VPX_PLANE_Y],
- stream->img->planes[VPX_PLANE_U],
- stream->img->stride[VPX_PLANE_U],
- stream->img->planes[VPX_PLANE_V],
- stream->img->stride[VPX_PLANE_V],
- stream->img->d_w, stream->img->d_h,
- kFilterBox);
+ stream->img =
+ vpx_img_alloc(NULL, VPX_IMG_FMT_I420, cfg->g_w, cfg->g_h, 16);
+ I420Scale(
+ img->planes[VPX_PLANE_Y], img->stride[VPX_PLANE_Y],
+ img->planes[VPX_PLANE_U], img->stride[VPX_PLANE_U],
+ img->planes[VPX_PLANE_V], img->stride[VPX_PLANE_V], img->d_w, img->d_h,
+ stream->img->planes[VPX_PLANE_Y], stream->img->stride[VPX_PLANE_Y],
+ stream->img->planes[VPX_PLANE_U], stream->img->stride[VPX_PLANE_U],
+ stream->img->planes[VPX_PLANE_V], stream->img->stride[VPX_PLANE_V],
+ stream->img->d_w, stream->img->d_h, kFilterBox);
img = stream->img;
#else
stream->encoder.err = 1;
@@ -1619,15 +1602,14 @@
vpx_usec_timer_start(&timer);
vpx_codec_encode(&stream->encoder, img, frame_start,
- (unsigned long)(next_frame_start - frame_start),
- 0, global->deadline);
+ (unsigned long)(next_frame_start - frame_start), 0,
+ global->deadline);
vpx_usec_timer_mark(&timer);
stream->cx_time += vpx_usec_timer_elapsed(&timer);
ctx_exit_on_error(&stream->encoder, "Stream %d: Failed to encode frame",
stream->index);
}
-
static void update_quantizer_histogram(struct stream_state *stream) {
if (stream->config.cfg.g_pass != VPX_RC_FIRST_PASS) {
int q;
@@ -1638,10 +1620,8 @@
}
}
-
static void get_cx_data(struct stream_state *stream,
- struct VpxEncoderConfig *global,
- int *got_data) {
+ struct VpxEncoderConfig *global, int *got_data) {
const vpx_codec_cx_pkt_t *pkt;
const struct vpx_codec_enc_cfg *cfg = &stream->config.cfg;
vpx_codec_iter_t iter = NULL;
@@ -1682,8 +1662,8 @@
}
}
- (void) fwrite(pkt->data.frame.buf, 1, pkt->data.frame.sz,
- stream->file);
+ (void)fwrite(pkt->data.frame.buf, 1, pkt->data.frame.sz,
+ stream->file);
}
stream->nbytes += pkt->data.raw.sz;
@@ -1704,15 +1684,13 @@
break;
case VPX_CODEC_STATS_PKT:
stream->frames_out++;
- stats_write(&stream->stats,
- pkt->data.twopass_stats.buf,
+ stats_write(&stream->stats, pkt->data.twopass_stats.buf,
pkt->data.twopass_stats.sz);
stream->nbytes += pkt->data.raw.sz;
break;
#if CONFIG_FP_MB_STATS
case VPX_CODEC_FPMB_STATS_PKT:
- stats_write(&stream->fpmb_stats,
- pkt->data.firstpass_mb_stats.buf,
+ stats_write(&stream->fpmb_stats, pkt->data.firstpass_mb_stats.buf,
pkt->data.firstpass_mb_stats.sz);
stream->nbytes += pkt->data.raw.sz;
break;
@@ -1733,19 +1711,16 @@
}
break;
- default:
- break;
+ default: break;
}
}
}
-
-static void show_psnr(struct stream_state *stream, double peak) {
+static void show_psnr(struct stream_state *stream, double peak) {
int i;
double ovpsnr;
- if (!stream->psnr_count)
- return;
+ if (!stream->psnr_count) return;
fprintf(stderr, "Stream %d PSNR (Overall/Avg/Y/U/V)", stream->index);
ovpsnr = sse_to_psnr((double)stream->psnr_samples_total, peak,
@@ -1758,18 +1733,16 @@
fprintf(stderr, "\n");
}
-
static float usec_to_fps(uint64_t usec, unsigned int frames) {
return (float)(usec > 0 ? frames * 1000000.0 / (float)usec : 0);
}
-static void test_decode(struct stream_state *stream,
+static void test_decode(struct stream_state *stream,
enum TestDecodeFatality fatal,
const VpxInterface *codec) {
vpx_image_t enc_img, dec_img;
- if (stream->mismatch_seen)
- return;
+ if (stream->mismatch_seen) return;
/* Get the internal reference frame */
if (strcmp(codec->name, "vp8") == 0) {
@@ -1831,10 +1804,8 @@
" Y[%d, %d] {%d/%d},"
" U[%d, %d] {%d/%d},"
" V[%d, %d] {%d/%d}",
- stream->index, stream->frames_out,
- y[0], y[1], y[2], y[3],
- u[0], u[1], u[2], u[3],
- v[0], v[1], v[2], v[3]);
+ stream->index, stream->frames_out, y[0], y[1], y[2],
+ y[3], u[0], u[1], u[2], u[3], v[0], v[1], v[2], v[3]);
stream->mismatch_seen = stream->frames_out;
}
@@ -1842,7 +1813,6 @@
vpx_img_free(&dec_img);
}
-
static void print_time(const char *label, int64_t etl) {
int64_t hours;
int64_t mins;
@@ -1855,14 +1825,13 @@
etl -= mins * 60;
secs = etl;
- fprintf(stderr, "[%3s %2"PRId64":%02"PRId64":%02"PRId64"] ",
- label, hours, mins, secs);
+ fprintf(stderr, "[%3s %2" PRId64 ":%02" PRId64 ":%02" PRId64 "] ", label,
+ hours, mins, secs);
} else {
fprintf(stderr, "[%3s unknown] ", label);
}
}
-
int main(int argc, const char **argv_) {
int pass;
vpx_image_t raw;
@@ -1885,8 +1854,7 @@
memset(&input, 0, sizeof(input));
exec_name = argv_[0];
- if (argc < 3)
- usage_exit();
+ if (argc < 3) usage_exit();
/* Setup default input stream settings */
input.framerate.numerator = 30;
@@ -1902,21 +1870,11 @@
parse_global_config(&global, argv);
switch (global.color_type) {
- case I420:
- input.fmt = VPX_IMG_FMT_I420;
- break;
- case I422:
- input.fmt = VPX_IMG_FMT_I422;
- break;
- case I444:
- input.fmt = VPX_IMG_FMT_I444;
- break;
- case I440:
- input.fmt = VPX_IMG_FMT_I440;
- break;
- case YV12:
- input.fmt = VPX_IMG_FMT_YV12;
- break;
+ case I420: input.fmt = VPX_IMG_FMT_I420; break;
+ case I422: input.fmt = VPX_IMG_FMT_I422; break;
+ case I444: input.fmt = VPX_IMG_FMT_I444; break;
+ case I440: input.fmt = VPX_IMG_FMT_I440; break;
+ case YV12: input.fmt = VPX_IMG_FMT_YV12; break;
}
{
@@ -1929,8 +1887,7 @@
do {
stream = new_stream(&global, stream);
stream_cnt++;
- if (!streams)
- streams = stream;
+ if (!streams) streams = stream;
} while (parse_stream_params(&global, stream, argv));
}
@@ -1939,14 +1896,13 @@
if (argi[0][0] == '-' && argi[0][1])
die("Error: Unrecognized option %s\n", *argi);
- FOREACH_STREAM(check_encoder_config(global.disable_warning_prompt,
- &global, &stream->config.cfg););
+ FOREACH_STREAM(check_encoder_config(global.disable_warning_prompt, &global,
+ &stream->config.cfg););
/* Handle non-option arguments */
input.filename = argv[0];
- if (!input.filename)
- usage_exit();
+ if (!input.filename) usage_exit();
/* Decide if other chroma subsamplings than 4:2:0 are supported */
if (global.codec->fourcc == VP9_FOURCC || global.codec->fourcc == VP10_FOURCC)
@@ -1975,8 +1931,9 @@
/* Update stream configurations from the input file's parameters */
if (!input.width || !input.height)
- fatal("Specify stream dimensions with --width (-w) "
- " and --height (-h)");
+ fatal(
+ "Specify stream dimensions with --width (-w) "
+ " and --height (-h)");
/* If input file does not specify bit-depth but input-bit-depth parameter
* exists, assume that to be the input bit-depth. However, if the
@@ -1993,9 +1950,8 @@
});
if (input.bit_depth > 8) input.fmt |= VPX_IMG_FMT_HIGHBITDEPTH;
} else {
- FOREACH_STREAM({
- stream->config.cfg.g_input_bit_depth = input.bit_depth;
- });
+ FOREACH_STREAM(
+ { stream->config.cfg.g_input_bit_depth = input.bit_depth; });
}
FOREACH_STREAM(set_stream_dimensions(stream, input.width, input.height));
@@ -2005,18 +1961,21 @@
* --passes=2, ensure --fpf was set.
*/
if (global.pass && global.passes == 2)
- FOREACH_STREAM( {
- if (!stream->config.stats_fn)
- die("Stream %d: Must specify --fpf when --pass=%d"
- " and --passes=2\n", stream->index, global.pass);
- });
+ FOREACH_STREAM({
+ if (!stream->config.stats_fn)
+ die(
+ "Stream %d: Must specify --fpf when --pass=%d"
+ " and --passes=2\n",
+ stream->index, global.pass);
+ });
#if !CONFIG_WEBM_IO
FOREACH_STREAM({
if (stream->config.write_webm) {
stream->config.write_webm = 0;
- warn("vpxenc was compiled without WebM container support."
- "Producing IVF output");
+ warn(
+ "vpxenc was compiled without WebM container support."
+ "Producing IVF output");
}
});
#endif
@@ -2044,14 +2003,13 @@
else
vpx_img_alloc(&raw, input.fmt, input.width, input.height, 32);
- FOREACH_STREAM(stream->rate_hist =
- init_rate_histogram(&stream->config.cfg,
- &global.framerate));
+ FOREACH_STREAM(stream->rate_hist = init_rate_histogram(
+ &stream->config.cfg, &global.framerate));
}
FOREACH_STREAM(setup_pass(stream, &global, pass));
- FOREACH_STREAM(open_output_file(stream, &global,
- &input.pixel_aspect_ratio));
+ FOREACH_STREAM(
+ open_output_file(stream, &global, &input.pixel_aspect_ratio));
FOREACH_STREAM(initialize_encoder(stream, &global));
#if CONFIG_VP9_HIGHBITDEPTH
@@ -2068,7 +2026,7 @@
input_shift = 0;
} else {
input_shift = (int)stream->config.cfg.g_bit_depth -
- stream->config.cfg.g_input_bit_depth;
+ stream->config.cfg.g_input_bit_depth;
}
});
}
@@ -2083,26 +2041,23 @@
if (!global.limit || frames_in < global.limit) {
frame_avail = read_frame(&input, &raw);
- if (frame_avail)
- frames_in++;
- seen_frames = frames_in > global.skip_frames ?
- frames_in - global.skip_frames : 0;
+ if (frame_avail) frames_in++;
+ seen_frames =
+ frames_in > global.skip_frames ? frames_in - global.skip_frames : 0;
if (!global.quiet) {
float fps = usec_to_fps(cx_time, seen_frames);
fprintf(stderr, "\rPass %d/%d ", pass + 1, global.passes);
if (stream_cnt == 1)
- fprintf(stderr,
- "frame %4d/%-4d %7"PRId64"B ",
- frames_in, streams->frames_out, (int64_t)streams->nbytes);
+ fprintf(stderr, "frame %4d/%-4d %7" PRId64 "B ", frames_in,
+ streams->frames_out, (int64_t)streams->nbytes);
else
fprintf(stderr, "frame %4d ", frames_in);
- fprintf(stderr, "%7"PRId64" %s %.2f %s ",
+ fprintf(stderr, "%7" PRId64 " %s %.2f %s ",
cx_time > 9999999 ? cx_time / 1000 : cx_time,
- cx_time > 9999999 ? "ms" : "us",
- fps >= 1.0 ? fps : fps * 60,
+ cx_time > 9999999 ? "ms" : "us", fps >= 1.0 ? fps : fps * 60,
fps >= 1.0 ? "fps" : "fpm");
print_time("ETA", estimated_time_left);
}
@@ -2133,8 +2088,7 @@
FOREACH_STREAM({
if (stream->config.use_16bit_internal)
encode_frame(stream, &global,
- frame_avail ? frame_to_encode : NULL,
- frames_in);
+ frame_avail ? frame_to_encode : NULL, frames_in);
else
assert(0);
});
@@ -2146,8 +2100,7 @@
}
#else
vpx_usec_timer_start(&timer);
- FOREACH_STREAM(encode_frame(stream, &global,
- frame_avail ? &raw : NULL,
+ FOREACH_STREAM(encode_frame(stream, &global, frame_avail ? &raw : NULL,
frames_in));
#endif
vpx_usec_timer_mark(&timer);
@@ -2169,8 +2122,8 @@
const int64_t frame_in_lagged = (seen_frames - lagged_count) * 1000;
rate = cx_time ? frame_in_lagged * (int64_t)1000000 / cx_time : 0;
- remaining = 1000 * (global.limit - global.skip_frames
- - seen_frames + lagged_count);
+ remaining = 1000 * (global.limit - global.skip_frames -
+ seen_frames + lagged_count);
} else {
const int64_t input_pos = ftello(input.file);
const int64_t input_pos_lagged = input_pos - lagged_count;
@@ -2180,9 +2133,8 @@
remaining = limit - input_pos + lagged_count;
}
- average_rate = (average_rate <= 0)
- ? rate
- : (average_rate * 7 + rate) / 8;
+ average_rate =
+ (average_rate <= 0) ? rate : (average_rate * 7 + rate) / 8;
estimated_time_left = average_rate ? remaining / average_rate : -1;
}
@@ -2191,23 +2143,23 @@
}
fflush(stdout);
- if (!global.quiet)
- fprintf(stderr, "\033[K");
+ if (!global.quiet) fprintf(stderr, "\033[K");
}
- if (stream_cnt > 1)
- fprintf(stderr, "\n");
+ if (stream_cnt > 1) fprintf(stderr, "\n");
if (!global.quiet) {
- FOREACH_STREAM(fprintf(stderr,
- "\rPass %d/%d frame %4d/%-4d %7"PRId64"B %7"PRId64"b/f %7"PRId64"b/s"
- " %7"PRId64" %s (%.2f fps)\033[K\n",
- pass + 1,
- global.passes, frames_in, stream->frames_out, (int64_t)stream->nbytes,
+ FOREACH_STREAM(fprintf(
+ stderr, "\rPass %d/%d frame %4d/%-4d %7" PRId64 "B %7" PRId64
+ "b/f %7" PRId64 "b/s"
+ " %7" PRId64 " %s (%.2f fps)\033[K\n",
+ pass + 1, global.passes, frames_in, stream->frames_out,
+ (int64_t)stream->nbytes,
seen_frames ? (int64_t)(stream->nbytes * 8 / seen_frames) : 0,
- seen_frames ? (int64_t)stream->nbytes * 8 *
- (int64_t)global.framerate.num / global.framerate.den /
- seen_frames : 0,
+ seen_frames
+ ? (int64_t)stream->nbytes * 8 * (int64_t)global.framerate.num /
+ global.framerate.den / seen_frames
+ : 0,
stream->cx_time > 9999999 ? stream->cx_time / 1000 : stream->cx_time,
stream->cx_time > 9999999 ? "ms" : "us",
usec_to_fps(stream->cx_time, seen_frames)));
@@ -2242,17 +2194,15 @@
FOREACH_STREAM(stats_close(&stream->fpmb_stats, global.passes - 1));
#endif
- if (global.pass)
- break;
+ if (global.pass) break;
}
if (global.show_q_hist_buckets)
- FOREACH_STREAM(show_q_histogram(stream->counts,
- global.show_q_hist_buckets));
+ FOREACH_STREAM(
+ show_q_histogram(stream->counts, global.show_q_hist_buckets));
if (global.show_rate_hist_buckets)
- FOREACH_STREAM(show_rate_histogram(stream->rate_hist,
- &stream->config.cfg,
+ FOREACH_STREAM(show_rate_histogram(stream->rate_hist, &stream->config.cfg,
global.show_rate_hist_buckets));
FOREACH_STREAM(destroy_rate_histogram(stream->rate_hist));
@@ -2274,8 +2224,7 @@
#endif
#if CONFIG_VP9_HIGHBITDEPTH
- if (allocated_raw_shift)
- vpx_img_free(&raw_shift);
+ if (allocated_raw_shift) vpx_img_free(&raw_shift);
#endif
vpx_img_free(&raw);
free(argv);