" transport layer\n"
"\n"
" -o <filename> Output filename\n"
-" --ignore-length Ignore length of WAV header\n"
+" --ignorelength Ignore length of WAV header\n"
"\n"
"Options for raw (headerless) input:\n"
" -R, --raw Treat input as raw (by default WAV is\n"
{ "adts-crc-check", no_argument, 0, 'C' },
{ "header-period", required_argument, 0, 'P' },
- { "ignore-length", no_argument, 0, 'I' },
+ { "ignorelength", no_argument, 0, 'I' },
{ "raw", no_argument, 0, 'R' },
{ "raw-channels", required_argument, 0, OPT_RAW_CHANNELS },
{ "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;
}
*val++ = '\0';
if (ch == OPT_SHORT_TAG) {
+ /*
+ * take care of U+00A9(COPYRIGHT SIGN).
+ * 1) if length of fcc is 3, we prepend '\xa9'.
+ * 2) U+00A9 becomes "\xc2\xa9" in UTF-8. Therefore
+ * we remove first '\xc2'.
+ */
+ if (optarg[0] == '\xc2')
+ ++optarg;
if ((klen = strlen(optarg))== 3)
fcc = 0xa9;
else if (klen != 4) {
}
static
-int put_tag_entry(m4af_writer_t *m4af, const aacenc_tag_entry_t *tag)
+void put_tag_entry(m4af_writer_t *m4af, const aacenc_tag_entry_t *tag)
{
unsigned m, n = 0;
case M4AF_FOURCC('t','v','e','n'):
case M4AF_FOURCC('t','v','n','n'):
case M4AF_FOURCC('t','v','s','h'):
+ case M4AF_FOURCC('x','i','d',' '):
case M4AF_FOURCC('\xa9','e','n','c'):
case M4AF_FOURCC('\xa9','s','t','3'):
{
return 0;
}
-static
-const char *basename(const char *filename)
-{
- char *p = strrchr(filename, '/');
-#ifdef _WIN32
- char *q = strrchr(filename, '\\');
- if (p < q) p = q;
-#endif
- return p ? p + 1 : filename;
-}
-
static
char *generate_output_filename(const char *filename, const char *ext)
{
p = malloc(ext_len + 6);
sprintf(p, "stdin%s", ext);
} else {
- const char *base = basename(filename);
+ const char *base = aacenc_basename(filename);
size_t ilen = strlen(base);
const char *ext_org = strrchr(base, '.');
if (ext_org) ilen = ext_org - base;