add --silent
[fdkaac.git] / src / main.c
index 4db5fb2e8c469b0783ee939092d092048468080a..8c78c8edfe170dbcdb79134aebddbbf45facd94d 100644 (file)
@@ -108,7 +108,8 @@ PROGNAME " %s\n"
 "                               transport layer\n"
 "\n"
 " -o <filename>                 Output filename\n"
-" --ignore-length               Ignore length of WAV header\n"
+" --ignorelength                Ignore length of WAV header\n"
+" -S, --silent                  Don't print progress messages\n"
 "\n"
 "Options for raw (headerless) input:\n"
 " -R, --raw                     Treat input as raw (by default WAV is\n"
@@ -155,6 +156,7 @@ typedef struct aacenc_param_ex_t {
     char *input_filename;
     char *output_filename;
     unsigned ignore_length;
+    int silent;
 
     int is_raw;
     unsigned raw_channels;
@@ -212,7 +214,8 @@ int parse_options(int argc, char **argv, aacenc_param_ex_t *params)
         { "adts-crc-check",   no_argument,       0, 'C' },
         { "header-period",    required_argument, 0, 'P' },
 
-        { "ignore-length",    no_argument,       0, 'I' },
+        { "ignorelength",     no_argument,       0, 'I' },
+        { "silent",           no_argument,       0, 'S' },
 
         { "raw",              no_argument,       0, 'R' },
         { "raw-channels",     required_argument, 0, OPT_RAW_CHANNELS       },
@@ -233,11 +236,12 @@ int parse_options(int argc, char **argv, aacenc_param_ex_t *params)
         { "tempo",            required_argument, 0, M4AF_TAG_TEMPO         },
         { "tag",              required_argument, 0, OPT_SHORT_TAG          },
         { "long-tag",         required_argument, 0, OPT_LONG_TAG           },
+        { 0,                  0,                 0, 0                      },
     };
     params->afterburner = 1;
 
     aacenc_getmainargs(&argc, &argv);
-    while ((ch = getopt_long(argc, argv, "hp:b:m:w:a:Ls:f:CP:Io:R",
+    while ((ch = getopt_long(argc, argv, "hp:b:m:w:a:Ls:f:CP:Io:SR",
                              long_options, 0)) != EOF) {
         switch (ch) {
         case 'h':
@@ -310,6 +314,9 @@ int parse_options(int argc, char **argv, aacenc_param_ex_t *params)
         case 'I':
             params->ignore_length = 1;
             break;
+        case 'S':
+            params->silent = 1;
+            break;
         case 'R':
             params->is_raw = 1;
             break;
@@ -427,7 +434,8 @@ int write_sample(FILE *ofp, m4af_writer_t *m4af,
 
 static
 int encode(wav_reader_t *wavf, HANDLE_AACENCODER encoder,
-           uint32_t frame_length, FILE *ofp, m4af_writer_t *m4af)
+           uint32_t frame_length, FILE *ofp, m4af_writer_t *m4af,
+           int show_progress)
 {
     uint8_t *ibuf = 0;
     int16_t *pcmbuf = 0;
@@ -456,8 +464,9 @@ int encode(wav_reader_t *wavf, HANDLE_AACENCODER encoder,
                     goto END;
                 }
             }
-            aacenc_progress_update(&progress, wav_get_position(wavf),
-                                   format->sample_rate * 2);
+            if (show_progress)
+                aacenc_progress_update(&progress, wav_get_position(wavf),
+                                       format->sample_rate * 2);
         }
         if ((consumed = aac_encode_frame(encoder, format, pcmbuf, nread,
                                          &obuf, &olen, &osize)) < 0)
@@ -468,7 +477,9 @@ int encode(wav_reader_t *wavf, HANDLE_AACENCODER encoder,
             ++frames_written;
         }
     } while (nread > 0 || olen > 0);
-    aacenc_progress_finish(&progress, wav_get_position(wavf));
+
+    if (show_progress)
+        aacenc_progress_finish(&progress, wav_get_position(wavf));
     rc = frames_written;
 END:
     if (ibuf) free(ibuf);
@@ -769,10 +780,10 @@ int main(int argc, char **argv)
     if (!params.transport_format) {
         uint32_t scale;
         unsigned framelen = aacinfo.frameLength;
-       int sbr_mode = aacenc_is_sbr_active((aacenc_param_t*)&params);
-       int sig_mode = aacEncoder_GetParam(encoder, AACENC_SIGNALING_MODE);
-       if (sbr_mode && !sig_mode)
-           downsampled_timescale = 1;
+        int sbr_mode = aacenc_is_sbr_active((aacenc_param_t*)&params);
+        int sig_mode = aacEncoder_GetParam(encoder, AACENC_SIGNALING_MODE);
+        if (sbr_mode && !sig_mode)
+            downsampled_timescale = 1;
         scale = sample_format->sample_rate >> downsampled_timescale;
         if ((m4af = m4af_create(M4AF_CODEC_MP4A, scale, &m4af_io, ofp)) < 0)
             goto END;
@@ -781,12 +792,13 @@ int main(int argc, char **argv)
                                       framelen >> downsampled_timescale);
         m4af_begin_write(m4af);
     }
-    frame_count = encode(wavf, encoder, aacinfo.frameLength, ofp, m4af);
+    frame_count = encode(wavf, encoder, aacinfo.frameLength, ofp, m4af,
+                         !params.silent);
     if (frame_count < 0)
         goto END;
     if (m4af) {
         uint32_t delay = aacinfo.encoderDelay;
-       int64_t frames_read = wav_get_position(wavf);
+        int64_t frames_read = wav_get_position(wavf);
         uint32_t padding = frame_count * aacinfo.frameLength
                             - frames_read - aacinfo.encoderDelay;
         m4af_set_priming(m4af, 0, delay >> downsampled_timescale,
This page took 0.012525 seconds and 4 git commands to generate.