}
*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;