fftools/ffmpeg_mux_init.c: delete encoder-specific metadata when re-encoding.

This commit is contained in:
Romain Beauxis
2026-05-13 20:57:03 -07:00
committed by Romain Beauxis
parent c1be9b4a81
commit 4641be96e5
43 changed files with 464 additions and 121 deletions

View File

@@ -920,6 +920,46 @@ To set the language of the first audio stream:
ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
@end example
@item -keep_metadata[:@var{metadata_specifier}] @var{key} (@emph{output,per-metadata})
When re-encoding a stream, certain metadata keys that are likely to become stale
(such as @code{iTunSMPB} or @code{encoded_by}) are automatically discarded.
This option prevents a specific key from being discarded, preserving its original
value from the input.
Without a specifier, the key is preserved in all metadata contexts (format and
streams). Use @code{g} to restrict to format (global) metadata, or @code{s} with
an optional stream specifier to restrict to matching streams only.
For example, to keep @code{iTunSMPB} in format metadata only when re-encoding:
@example
ffmpeg -i in.mp3 -keep_metadata:g iTunSMPB out.mp3
@end example
To keep @code{NUMBER_OF_BYTES} only for the video stream:
@example
ffmpeg -i in.mkv -keep_metadata:s:v NUMBER_OF_BYTES out.mkv
@end example
Some keys are stored in the metadata with a suffix (e.g.
@code{NUMBER_OF_BYTES-eng}). Specifying the unsuffixed family name (e.g.
@code{NUMBER_OF_BYTES}) keeps all variants. To keep only a specific one,
specify the full key explicitly:
@example
ffmpeg -i in.mkv -keep_metadata:s:v NUMBER_OF_BYTES-eng out.mkv
@end example
Some (such as @code{major_brand}, @code{minor_version}, and
@code{compatible_brands}) are always removed regardless of re-encoding, because
they describe the source container and are meaningless in the output.
@code{-keep_metadata} applies to those keys even when stream-copying.
Re-encoding-only keys (such as encoder tags and Matroska stream statistics) are
removed from a stream's metadata only when that stream is being re-encoded, and
from format metadata only when at least one audio or video stream is re-encoded.
Only format and stream metadata are filtered. Chapter and program metadata
are never modified by this mechanism.
@item -disposition[:stream_specifier] @var{value} (@emph{output,per-stream})
Sets the disposition flags for a stream.

View File

@@ -193,6 +193,7 @@ typedef struct OptionsContext {
AVDictionary *streamid;
SpecifierOptList metadata;
SpecifierOptList keep_metadata;
SpecifierOptList max_frames;
SpecifierOptList bitstream_filters;
SpecifierOptList codec_tags;

View File

@@ -2962,6 +2962,150 @@ static int copy_metadata(Muxer *mux, AVFormatContext *ic,
return 0;
}
#define REENC_MASK(type) (1u << (type))
#define REENC_AUDIO_ONLY REENC_MASK(AVMEDIA_TYPE_AUDIO)
#define REENC_VIDEO_ONLY REENC_MASK(AVMEDIA_TYPE_VIDEO)
#define REENC_ANY (REENC_AUDIO_ONLY | REENC_VIDEO_ONLY)
static const struct {
const char *key;
int flags;
unsigned reenc_mask; /* 0 = always delete; non-zero = bit-mask of
* REENC_* values whose re-encoding triggers
* deletion of this key */
} reenc_delete_keys[] = {
// Note: "encoder" is intentionally absent — set_encoder_id() stamps it
// after copy_meta() runs, so it always reflects the current encoder.
// iTunes gapless playback: encoder-specific sample counts and padding;
// gapless_playback is the M4A/MOV equivalent of iTunPGAP
{ "iTunPGAP", 0, REENC_AUDIO_ONLY },
{ "iTunSMPB", 0, REENC_AUDIO_ONLY },
{ "gapless_playback", 0, REENC_AUDIO_ONLY },
// iTunes Sound Check: peak amplitude computed from the original waveform
{ "iTunNORM", 0, REENC_AUDIO_ONLY },
// encoding provenance: describe the original encoder, not the new one
{ "encoded_by", 0, REENC_ANY },
{ "encoding_tool", 0, REENC_ANY },
// MOV/MP4 stream: vendor 4CC identifies the original encoder
{ "vendor_id", 0, REENC_ANY },
// Matroska stream stats written by mkvmerge; all are invalidated by re-encoding
{ "BPS", AV_DICT_IGNORE_SUFFIX, REENC_ANY },
{ "DURATION", AV_DICT_IGNORE_SUFFIX, REENC_ANY },
{ "NUMBER_OF_BYTES", AV_DICT_IGNORE_SUFFIX, REENC_ANY },
{ "NUMBER_OF_FRAMES", AV_DICT_IGNORE_SUFFIX, REENC_ANY },
{ "_STATISTICS_TAGS", AV_DICT_IGNORE_SUFFIX, REENC_ANY },
{ "_STATISTICS_WRITING_APP", AV_DICT_IGNORE_SUFFIX, REENC_ANY },
{ "_STATISTICS_WRITING_DATE_UTC", AV_DICT_IGNORE_SUFFIX, REENC_ANY },
// MOV/MP4: source container brand written by the demuxer; muxer ignores
// these keys and writes its own ftyp, so they always describe the source file
{ "major_brand", 0, 0 },
{ "minor_version", 0, 0 },
{ "compatible_brands", 0, 0 },
{ NULL }
};
static int meta_spec_matches(void *log_ctx, AVFormatContext *oc, AVStream *st,
const char *spec)
{
char type;
int index = 0;
const char *stream_spec = NULL;
if (parse_meta_type(log_ctx, spec, &type, &index, &stream_spec) < 0)
return 0;
if (*spec) {
if (type == 'g' && st)
return 0;
if (type == 's') {
int ret;
if (!st)
return 0;
ret = check_stream_specifier(oc, st, stream_spec);
return ret < 0 ? ret : ret > 0;
}
if (type == 'c' || type == 'p')
return 0;
}
return 1;
}
static int reenc_delete_metadata_key(const OptionsContext *o, void *log_ctx,
AVFormatContext *oc, AVStream *st,
const char *family, const char *key, int flags)
{
for (int i = 0; i < o->keep_metadata.nb_opt; i++) {
int ret = meta_spec_matches(log_ctx, oc, st, o->keep_metadata.opt[i].specifier);
if (ret < 0)
return ret;
if (!ret)
continue;
const char *keep = o->keep_metadata.opt[i].u.str;
if (flags & AV_DICT_IGNORE_SUFFIX) {
/* accept the unsuffixed family name (e.g. NUMBER_OF_BYTES keeps
* NUMBER_OF_BYTES-eng) or the exact matched key; an arbitrary
* prefix like NUMBER does not match NUMBER_OF_BYTES-eng */
if (!strcmp(keep, family) || !strcmp(keep, key))
return 0;
} else {
if (!strcmp(key, keep))
return 0;
}
}
for (int i = 0; i < o->metadata.nb_opt; i++) {
int ret;
/* plain -metadata (empty specifier) applies to global metadata only,
* matching of_add_metadata(); don't let it suppress stream-level pruning */
if (!*o->metadata.opt[i].specifier && st)
continue;
ret = meta_spec_matches(log_ctx, oc, st, o->metadata.opt[i].specifier);
if (ret < 0)
return ret;
if (!ret)
continue;
size_t klen = strcspn(o->metadata.opt[i].u.str, "=");
if (!strncmp(key, o->metadata.opt[i].u.str, klen) && key[klen] == '\0')
return 0;
}
return 1;
}
static int reenc_delete_stale_metadata(const OptionsContext *o, void *log_ctx,
AVFormatContext *oc, AVStream *st,
AVDictionary **dict, const char *kind,
unsigned reenc_mask)
{
for (int i = 0; reenc_delete_keys[i].key; i++) {
const char *key = reenc_delete_keys[i].key;
int flags = reenc_delete_keys[i].flags;
const AVDictionaryEntry *e;
int ret;
if (reenc_delete_keys[i].reenc_mask && !(reenc_delete_keys[i].reenc_mask & reenc_mask))
continue;
e = NULL;
while ((e = av_dict_get(*dict, key, e, flags | AV_DICT_MATCH_CASE))) {
ret = reenc_delete_metadata_key(o, log_ctx, oc, st, key, e->key, flags);
if (ret < 0)
return ret;
if (!ret)
continue;
if (reenc_mask & reenc_delete_keys[i].reenc_mask)
av_log(log_ctx, AV_LOG_WARNING,
"Discarding %s metadata '%s' because %s stream is being "
"re-encoded. Use '-keep_metadata %s' to keep it.\n",
kind, e->key,
!strcmp(kind, "stream") ? "the" : "a", e->key);
av_dict_set(dict, e->key, NULL, 0);
e = NULL;
}
}
return 0;
}
static int copy_meta(Muxer *mux, const OptionsContext *o)
{
OutputFile *of = &mux->of;
@@ -3021,6 +3165,42 @@ static int copy_meta(Muxer *mux, const OptionsContext *o)
av_dict_set(&oc->metadata, "company_name", NULL, 0);
av_dict_set(&oc->metadata, "product_name", NULL, 0);
av_dict_set(&oc->metadata, "product_version", NULL, 0);
}
for (int i = 0; i < o->keep_metadata.nb_opt; i++) {
char type;
int index = 0;
const char *stream_spec = NULL;
const char *spec = o->keep_metadata.opt[i].specifier;
ret = parse_meta_type(mux, spec, &type, &index, &stream_spec);
if (ret < 0)
return ret;
if (type == 'c' || type == 'p') {
av_log(mux, AV_LOG_WARNING,
"-keep_metadata:%s: chapter and program metadata filtering "
"is not supported and will be ignored.\n", spec);
} else if (type == 's') {
for (int j = 0; j < oc->nb_streams; j++) {
ret = check_stream_specifier(oc, oc->streams[j], stream_spec);
if (ret < 0)
return ret;
}
}
}
/* reenc_mask keys only apply when an audio/video stream is re-encoded;
* subtitle/attachment re-encodes do not affect format-level tags.
* Runs unconditionally so -map_metadata does not bypass the pruning. */
{
unsigned reenc_mask = 0;
for (int i = 0; i < of->nb_streams; i++) {
OutputStream *ost = of->streams[i];
if (ost->enc)
reenc_mask |= REENC_MASK(ost->st->codecpar->codec_type);
}
ret = reenc_delete_stale_metadata(o, mux, oc, NULL, &oc->metadata, "format", reenc_mask);
if (ret < 0)
return ret;
}
if (!metadata_streams_manual)
for (int i = 0; i < of->nb_streams; i++) {
@@ -3030,6 +3210,16 @@ static int copy_meta(Muxer *mux, const OptionsContext *o)
continue;
av_dict_copy(&ost->st->metadata, ost->ist->st->metadata, AV_DICT_DONT_OVERWRITE);
}
/* runs unconditionally so -map_metadata does not bypass the pruning;
* applies to all output streams, including filter outputs without ost->ist */
for (int i = 0; i < of->nb_streams; i++) {
OutputStream *ost = of->streams[i];
ret = reenc_delete_stale_metadata(o, ost, oc, ost->st, &ost->st->metadata, "stream",
ost->enc ? REENC_MASK(ost->st->codecpar->codec_type) : 0);
if (ret < 0)
return ret;
}
return 0;
}

View File

@@ -1631,6 +1631,9 @@ const OptionDef options[] = {
{ "metadata", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT,
{ .off = OFFSET(metadata) },
"add metadata", "key=value" },
{ "keep_metadata", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT,
{ .off = OFFSET(keep_metadata) },
"keep metadata key from input when re-encoding", "key" },
{ "program", OPT_TYPE_STRING, OPT_SPEC | OPT_EXPERT | OPT_OUTPUT,
{ .off = OFFSET(program) },
"add program with specified streams", "title=string:st=number..." },

View File

@@ -5,6 +5,16 @@ FATE_ID3V2_FFMPEG-$(CONFIG_MP3_DEMUXER) += fate-id3v2-invalid-tags
fate-id3v2-invalid-tags: CMD = run $(FFMPEG) -nostdin -hide_banner -i $(TARGET_SAMPLES)/id3v2/invalid-tags.mp3 -f null - || true
fate-id3v2-invalid-tags: CMP = null
FATE_ID3V2_FFMPEG-$(CONFIG_MP3_DEMUXER) += fate-id3v2-keep-metadata-invalid-type
fate-id3v2-keep-metadata-invalid-type: CMD = run $(FFMPEG) -nostdin -hide_banner -i $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 -c copy -keep_metadata:x vendor_id -f null - ; true
fate-id3v2-keep-metadata-invalid-type: CMP = grep
fate-id3v2-keep-metadata-invalid-type: REF = Invalid metadata type x
FATE_ID3V2_FFMPEG-$(CONFIG_MP3_DEMUXER) += fate-id3v2-keep-metadata-invalid-stream-spec
fate-id3v2-keep-metadata-invalid-stream-spec: CMD = run $(FFMPEG) -nostdin -hide_banner -i $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 -c copy -keep_metadata:s:bogus vendor_id -f null - ; true
fate-id3v2-keep-metadata-invalid-stream-spec: CMP = grep
fate-id3v2-keep-metadata-invalid-stream-spec: REF = Trailing garbage at the end of a stream specifier: bogus
FATE_ID3V2_FFMPEG_FFPROBE-$(call REMUX, MP3) += fate-id3v2-priv-remux
fate-id3v2-priv-remux: CMD = transcode mp3 $(TARGET_SAMPLES)/id3v2/id3v2_priv.mp3 mp3 "-c copy" "-c copy -t 0.1" "-show_entries format_tags"
@@ -25,10 +35,21 @@ fate-id3v2-txxx: CMD = run_with_temp "$(FFMPEG) -nostdin -hide_banner -loglevel
FATE_ID3V2_FFMPEG_FFPROBE-$(call ENCDEC, AAC MP3, NUT) += fate-id3v2-reenc-delete-metadata
fate-id3v2-reenc-delete-metadata: CMD = transcode mp3 $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 nut "-c:a aac -bitexact -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
FATE_ID3V2_FFMPEG_FFPROBE-$(call ENCDEC, AAC MP3, NUT) += fate-id3v2-reenc-delete-metadata-keep
fate-id3v2-reenc-delete-metadata-keep: CMD = transcode mp3 $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 nut "-c:a aac -bitexact -keep_metadata iTunSMPB -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
# -map_metadata must not bypass stale metadata pruning
FATE_ID3V2_FFMPEG_FFPROBE-$(call ENCDEC, AAC MP3, NUT) += fate-id3v2-reenc-delete-metadata-map-metadata
fate-id3v2-reenc-delete-metadata-map-metadata: CMD = transcode mp3 $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 nut "-c:a aac -bitexact -map_metadata 0 -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
# :g specifier targets format metadata — iTunSMPB lives there, so it should be kept
FATE_ID3V2_FFMPEG_FFPROBE-$(call ENCDEC, AAC MP3, NUT) += fate-id3v2-reenc-delete-metadata-keep-format
fate-id3v2-reenc-delete-metadata-keep-format: CMD = transcode mp3 $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 nut "-c:a aac -bitexact -keep_metadata:g iTunSMPB -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
# :s:a specifier targets stream metadata — iTunSMPB is format-level, so it should still be deleted
FATE_ID3V2_FFMPEG_FFPROBE-$(call ENCDEC, AAC MP3, NUT) += fate-id3v2-reenc-delete-metadata-keep-stream
fate-id3v2-reenc-delete-metadata-keep-stream: CMD = transcode mp3 $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 nut "-c:a aac -bitexact -keep_metadata:s:a iTunSMPB -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
FATE_ID3V2_FFMPEG_FFPROBE-$(call REMUX, MP3) += fate-id3v2-reenc-remux-keep
fate-id3v2-reenc-remux-keep: CMD = transcode mp3 $(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 mp3 "-c copy" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null

View File

@@ -300,6 +300,29 @@ FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER HEVC_DECODER) += fate-matr
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-metadata
fate-matroska-reenc-delete-metadata: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-metadata-keep
fate-matroska-reenc-delete-metadata-keep: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact -keep_metadata NUMBER_OF_BYTES" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null
# :s:a:0 specifier — no audio stream in output, so NUMBER_OF_BYTES should still be deleted
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-audio-metadata
fate-matroska-reenc-delete-audio-metadata: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact -keep_metadata:s:a:0 NUMBER_OF_BYTES" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null
# :s:v specifier matches the re-encoded video stream — NUMBER_OF_BYTES should be kept
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-metadata-keep-stream-video
fate-matroska-reenc-delete-metadata-keep-stream-video: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact -keep_metadata:s:v NUMBER_OF_BYTES" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null
# suffixed key (NUMBER_OF_BYTES-eng) as seen in metadata output must also work as a keep arg
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-metadata-keep-stream-video-suffix
fate-matroska-reenc-delete-metadata-keep-stream-video-suffix: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact -keep_metadata:s:v NUMBER_OF_BYTES-eng" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null
# an arbitrary prefix of a family name (NUMBER) must not match NUMBER_OF_BYTES or NUMBER_OF_BYTES-eng
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-metadata-keep-prefix-nomatch
fate-matroska-reenc-delete-metadata-keep-prefix-nomatch: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact -keep_metadata:s:v NUMBER" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null
# :s:v:1 specifier — video index 1 does not exist, so NUMBER_OF_BYTES should be deleted
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-metadata-keep-stream-video1
fate-matroska-reenc-delete-metadata-keep-stream-video1: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact -keep_metadata:s:v:1 NUMBER_OF_BYTES" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null
# -metadata:s:a:0 specifier must not suppress deletion on a non-matching (video) stream
FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, SCALE_FILTER) += fate-matroska-reenc-delete-metadata-spec-scope
fate-matroska-reenc-delete-metadata-spec-scope: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v mpeg2video -bitexact -metadata:s:a:0 NUMBER_OF_BYTES=custom" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" "" "" "" null

View File

@@ -385,6 +385,11 @@ fate-mov-mp4-edst-remainder: CMD = stream_remux mov $(TARGET_SAMPLES)/audiomatch
FATE_MOV_FFMPEG_FFPROBE-$(call ENCDEC, AAC AAC, NUT MOV) += fate-mov-reenc-delete-format-metadata
fate-mov-reenc-delete-format-metadata: CMD = transcode mov $(TARGET_SAMPLES)/cover_art/Owner-iTunes_9.0.3.15.m4a nut "-map 0:a:0 -c:a aac -bitexact -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
# audio-only format tags (gapless_playback, iTunSMPB, iTunNORM) must survive when
# only the cover-art video stream is re-encoded and the audio is stream-copied
FATE_MOV_FFMPEG_FFPROBE-$(call ENCDEC, PNG, NUT MOV) += fate-mov-cover-reenc-keeps-audio-format-tags
fate-mov-cover-reenc-keeps-audio-format-tags: CMD = transcode mov $(TARGET_SAMPLES)/cover_art/Owner-iTunes_9.0.3.15.m4a nut "-map 0:a:0 -c:a copy -map 0:v:0 -filter:v scale -c:v png -bitexact -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
# stream-level branding: vendor_id should be deleted on re-encode
FATE_MOV_FFMPEG_FFPROBE-$(call ENCDEC, FLAC PCM_S16BE, NUT MOV) += fate-mov-reenc-delete-stream-metadata
fate-mov-reenc-delete-stream-metadata: CMD = transcode mov $(TARGET_SAMPLES)/qt-surge-suite/surge-2-16-B-twos.mov nut "-c:a flac -bitexact -t 0.1" "-c copy -t 0.1" "-show_entries stream_tags" "" "" "" null

View File

@@ -1,5 +1,5 @@
1f3ac6e905aa6bfee0d35c19a2400c26 *tests/data/fate/caf-alac-remux.caf
1292684 tests/data/fate/caf-alac-remux.caf
1aaad1d0c4a2fe9980bdb3625d74c8b4 *tests/data/fate/caf-alac-remux.caf
1292637 tests/data/fate/caf-alac-remux.caf
#extradata 0: 36, 0x562b05d8
#tb 0: 1/44100
#media_type 0: audio
@@ -10,17 +10,15 @@
0, 4096, 4096, 4096, 6701, 0xa9ddc14e
0, 8192, 8192, 4096, 6639, 0x3ccda8d6
[FORMAT]
TAG:album=OpenMusic
TAG:track=5/13
TAG:minor_version=0
TAG:compatible_brands=M4A mp42isom
TAG:genre=Rock
TAG:disc=1
TAG:title=Inside
TAG:compilation=1
TAG:gapless_playback=0
TAG:genre=Rock
TAG:album_artist=Maxwell Strait
TAG:Encoding Params=vers
TAG:iTunNORM= 000004DF 000004C2 00001E64 00001AB3 00000FB9 00000FB9 00006480 00006480 00000FB9 00000B52
TAG:artist=Maxwell Strait
TAG:album_artist=Maxwell Strait
TAG:album=OpenMusic
[/FORMAT]

View File

@@ -1,5 +1,5 @@
f41881b70a18d8405c1dd43ee8502349 *tests/data/fate/cover-art-flac-remux.flac
964331 tests/data/fate/cover-art-flac-remux.flac
61963e1df31cfa046f99d971a465d364 *tests/data/fate/cover-art-flac-remux.flac
964133 tests/data/fate/cover-art-flac-remux.flac
#extradata 0: 34, 0x8f1f0acf
#tb 0: 1/44100
#media_type 0: audio
@@ -92,18 +92,13 @@ TAG:comment=Publisher/Studio logotype
TAG:title=White King Granulated Soap
[/STREAM]
[FORMAT]
TAG:major_brand=M4A
TAG:minor_version=0
TAG:compatible_brands=M4A mp42isom
TAG:album=OpenMusic
TAG:album_artist=Maxwell Strait
TAG:artist=Maxwell Strait
TAG:disc=1
TAG:title=Inside
TAG:compilation=1
TAG:gapless_playback=0
TAG:track=5/13
TAG:Encoding Params=vers
TAG:iTunNORM= 000004DF 000004C2 00001E64 00001AB3 00000FB9 00000FB9 00006480 00006480 00000FB9 00000B52
TAG:artist=Maxwell Strait
TAG:album_artist=Maxwell Strait
TAG:album=OpenMusic
TAG:genre=Rock
TAG:Encoding Params=vers
[/FORMAT]

View File

@@ -1,5 +1,5 @@
070ed1d95dc1bd365d68ae795966589f *tests/data/fate/cover-art-mp3-id3v2-remux.mp3
346509 tests/data/fate/cover-art-mp3-id3v2-remux.mp3
3a20f15563ed1d277f54562743f615de *tests/data/fate/cover-art-mp3-id3v2-remux.mp3
346486 tests/data/fate/cover-art-mp3-id3v2-remux.mp3
#tb 0: 1/14112000
#media_type 0: audio
#codec_id 0: mp3

View File

@@ -1,5 +1,5 @@
81199f98b1210eada2e7ff7ba11afd8c *tests/data/fate/enhanced-flv-hevc.flv
3603038 tests/data/fate/enhanced-flv-hevc.flv
6d8f2f8590bbcf9bd998b4420155412b *tests/data/fate/enhanced-flv-hevc.flv
3602973 tests/data/fate/enhanced-flv-hevc.flv
#extradata 0: 551, 0xb1ddcd66
#extradata 1: 2, 0x00340022
#tb 0: 1/1000

View File

@@ -1,5 +1,5 @@
fd79a2d2690c878a3b06cc66c4441e69 *tests/data/fate/enhanced-flv-multitrack.flv
4697015 tests/data/fate/enhanced-flv-multitrack.flv
347f5ababa03ba1e3ef62209f2355220 *tests/data/fate/enhanced-flv-multitrack.flv
4696936 tests/data/fate/enhanced-flv-multitrack.flv
#extradata 0: 46, 0x6fed1203
#extradata 1: 26, 0x5e13070a
#extradata 2: 12, 0x044200af

View File

@@ -1,5 +1,5 @@
b80387bd80ec592cb99df5de8ef60732 *tests/data/fate/generic-tags-remux-asf.asf
20596 tests/data/fate/generic-tags-remux-asf.asf
e4420ac5019d13273b1d7c068f717705 *tests/data/fate/generic-tags-remux-asf.asf
20556 tests/data/fate/generic-tags-remux-asf.asf
#extradata 0: 4, 0x00020001
#tb 0: 1/1000
#media_type 0: audio
@@ -40,11 +40,10 @@ TAG:copyright=2011 M83 Recording Inc
TAG:date=2011-10-17
TAG:disc=1
TAG:disc_subtitle=Hurry Up
TAG:encoded_by=Tau
TAG:track=1/11
TAG:filename=Intro.mp3
TAG:genre=Electronic
TAG:language=eng
TAG:performer=Anthony Gonzalez
TAG:title=Intro
TAG:track=1/11
[/FORMAT]

View File

@@ -1,5 +1,5 @@
9571b4873186aae56de614a2aada6150 *tests/data/fate/generic-tags-remux-riff.wav
246 tests/data/fate/generic-tags-remux-riff.wav
6ad807e593f65a3846d688a92638b0f5 *tests/data/fate/generic-tags-remux-riff.wav
234 tests/data/fate/generic-tags-remux-riff.wav
#tb 0: 1/44100
#media_type 0: audio
#codec_id 0: pcm_s16le
@@ -15,5 +15,4 @@ TAG:language=eng
TAG:title=Intro
TAG:album=Hurry Up, We're Dreaming
TAG:track=1/11
TAG:encoded_by=Tau
[/FORMAT]

View File

@@ -1,5 +1,5 @@
e9e51f486ae8907794c46377678c5203 *tests/data/fate/generic-tags-remux-vorbiscomment.flac
8646 tests/data/fate/generic-tags-remux-vorbiscomment.flac
00ad19f1aff315184c627fa2edb0c225 *tests/data/fate/generic-tags-remux-vorbiscomment.flac
8628 tests/data/fate/generic-tags-remux-vorbiscomment.flac
#extradata 0: 34, 0x93a20b79
#tb 0: 1/44100
#media_type 0: audio
@@ -16,12 +16,11 @@ TAG:copyright=2011 M83 Recording Inc
TAG:date=2011-10-17
TAG:disc=1
TAG:disc_subtitle=Hurry Up
TAG:encoded_by=Tau
TAG:track=1/11
TAG:filename=Intro.mp3
TAG:genre=Electronic
TAG:language=eng
TAG:performer=Anthony Gonzalez
TAG:publisher=M83 Recording Inc
TAG:title=Intro
TAG:track=1/11
[/FORMAT]

View File

@@ -1,5 +1,5 @@
18c64ec6b4f0cc39c5f8f3564b372fef *tests/data/fate/h264-bsf-redundant-pps-side-data.nut
596084 tests/data/fate/h264-bsf-redundant-pps-side-data.nut
3e92e076f369fd6a3d7a120d41d15918 *tests/data/fate/h264-bsf-redundant-pps-side-data.nut
596025 tests/data/fate/h264-bsf-redundant-pps-side-data.nut
#extradata 0: 34, 0x850408e3
#tb 0: 1/48000
#media_type 0: video

View File

@@ -1,5 +1,5 @@
f94ed2c25b6bbe63160743f08de33665 *tests/data/fate/h264-bsf-redundant-pps-side-data2.nut
5138 tests/data/fate/h264-bsf-redundant-pps-side-data2.nut
97b7e9c6ba90137731c672382862fac7 *tests/data/fate/h264-bsf-redundant-pps-side-data2.nut
5067 tests/data/fate/h264-bsf-redundant-pps-side-data2.nut
#tb 0: 1/25
#media_type 0: video
#codec_id 0: rawvideo

View File

@@ -1,9 +1,5 @@
9b854b7dbe3fb779cd75f131e52372b0 *tests/data/fate/id3v2-reenc-delete-metadata.nut
2667 tests/data/fate/id3v2-reenc-delete-metadata.nut
31f137d9ea26baee95f75083ac87f60a *tests/data/fate/id3v2-reenc-delete-metadata.nut
2396 tests/data/fate/id3v2-reenc-delete-metadata.nut
[FORMAT]
TAG:title=7rk
TAG:iTunPGAP=0
TAG:encoded_by=iTunes 12.7.0.166
TAG:iTunNORM= 00000362 000004C0 0000308F 00003CC5 00000DAC 00000DAC 00007D14 00007AC9 000007C1 0000175E
TAG:iTunSMPB= 00000000 00000210 0000086A 0000000000066486 00000000 0002DA9D 00000000 00000000 00000000 00000000 00000000 00000000
[/FORMAT]

View File

@@ -0,0 +1,6 @@
805cef2308c41ebbf8e772f166aafe2e *tests/data/fate/id3v2-reenc-delete-metadata-keep.nut
2524 tests/data/fate/id3v2-reenc-delete-metadata-keep.nut
[FORMAT]
TAG:title=7rk
TAG:iTunSMPB= 00000000 00000210 0000086A 0000000000066486 00000000 0002DA9D 00000000 00000000 00000000 00000000 00000000 00000000
[/FORMAT]

View File

@@ -0,0 +1,6 @@
805cef2308c41ebbf8e772f166aafe2e *tests/data/fate/id3v2-reenc-delete-metadata-keep-format.nut
2524 tests/data/fate/id3v2-reenc-delete-metadata-keep-format.nut
[FORMAT]
TAG:title=7rk
TAG:iTunSMPB= 00000000 00000210 0000086A 0000000000066486 00000000 0002DA9D 00000000 00000000 00000000 00000000 00000000 00000000
[/FORMAT]

View File

@@ -0,0 +1,5 @@
31f137d9ea26baee95f75083ac87f60a *tests/data/fate/id3v2-reenc-delete-metadata-keep-stream.nut
2396 tests/data/fate/id3v2-reenc-delete-metadata-keep-stream.nut
[FORMAT]
TAG:title=7rk
[/FORMAT]

View File

@@ -1,9 +1,5 @@
9b854b7dbe3fb779cd75f131e52372b0 *tests/data/fate/id3v2-reenc-delete-metadata-map-metadata.nut
2667 tests/data/fate/id3v2-reenc-delete-metadata-map-metadata.nut
31f137d9ea26baee95f75083ac87f60a *tests/data/fate/id3v2-reenc-delete-metadata-map-metadata.nut
2396 tests/data/fate/id3v2-reenc-delete-metadata-map-metadata.nut
[FORMAT]
TAG:title=7rk
TAG:iTunPGAP=0
TAG:encoded_by=iTunes 12.7.0.166
TAG:iTunNORM= 00000362 000004C0 0000308F 00003CC5 00000DAC 00000DAC 00007D14 00007AC9 000007C1 0000175E
TAG:iTunSMPB= 00000000 00000210 0000086A 0000000000066486 00000000 0002DA9D 00000000 00000000 00000000 00000000 00000000 00000000
[/FORMAT]

View File

@@ -1,5 +1,5 @@
6075eb35f53692596194f3b0175cb184 *tests/data/fate/matroska-alac-remux.matroska
1293794 tests/data/fate/matroska-alac-remux.matroska
8c3da576105e9c29451855520c1c68d2 *tests/data/fate/matroska-alac-remux.matroska
1293709 tests/data/fate/matroska-alac-remux.matroska
#extradata 0: 36, 0x562b05d8
#tb 0: 1/1000
#media_type 0: audio
@@ -159,9 +159,9 @@ DISPOSITION:multilayer=0
TAG:title=Inside
TAG:encoder=Lavf
TAG:creation_time=2009-01-25T16:08:26.000000Z
TAG:MAJOR_BRAND=M4A
TAG:MINOR_VERSION=0
TAG:COMPATIBLE_BRANDS=M4A mp42isom
TAG:track=5/13
TAG:GENRE=Rock
TAG:ALBUM=OpenMusic
TAG:DISC=1
TAG:COMPILATION=1
TAG:GAPLESS_PLAYBACK=0
@@ -169,7 +169,4 @@ TAG:ENCODING_PARAMS=vers
TAG:ITUNNORM= 000004DF 000004C2 00001E64 00001AB3 00000FB9 00000FB9 00006480 00006480 00000FB9 00000B52
TAG:ARTIST=Maxwell Strait
TAG:ALBUM_ARTIST=Maxwell Strait
TAG:ALBUM=OpenMusic
TAG:GENRE=Rock
TAG:track=5/13
[/FORMAT]

View File

@@ -1,5 +1,5 @@
fc4932f90dfc955b55cfbdbb210fdd16 *tests/data/fate/matroska-crop.matroska
355698 tests/data/fate/matroska-crop.matroska
5e994da09d804380c7e0d7ce107e3eba *tests/data/fate/matroska-crop.matroska
355603 tests/data/fate/matroska-crop.matroska
#tb 0: 1/1
#media_type 0: video
#codec_id 0: rawvideo

View File

@@ -1,5 +1,5 @@
8c4a1c8c1c40d3c75e4019aa4f06a6cc *tests/data/fate/matroska-dovi-hvce-mp4-to-mkv.matroska
668049 tests/data/fate/matroska-dovi-hvce-mp4-to-mkv.matroska
77bf58de6cf4db39bfa33568459fcb1f *tests/data/fate/matroska-dovi-hvce-mp4-to-mkv.matroska
667965 tests/data/fate/matroska-dovi-hvce-mp4-to-mkv.matroska
#extradata 0: 187, 0x34a930cb
#tb 0: 1/1000
#media_type 0: video

View File

@@ -1,5 +1,5 @@
adafbb4d021db027f4ae4ef7ca1c56c2 *tests/data/fate/matroska-dovi-write-config7.matroska
72640 tests/data/fate/matroska-dovi-write-config7.matroska
a713f83f8b20954728839450a7697491 *tests/data/fate/matroska-dovi-write-config7.matroska
72543 tests/data/fate/matroska-dovi-write-config7.matroska
#extradata 0: 116, 0x2b8d1669
#extradata 1: 116, 0x2b8d1669
#tb 0: 1/1000

View File

@@ -1,5 +1,5 @@
414d901156c2bc727c7b9b389e3ca1b5 *tests/data/fate/matroska-dovi-write-config8.matroska
3600635 tests/data/fate/matroska-dovi-write-config8.matroska
c10db6bfab4b9b2344c7e7f92e8998de *tests/data/fate/matroska-dovi-write-config8.matroska
3600558 tests/data/fate/matroska-dovi-write-config8.matroska
#extradata 0: 551, 0xb1ddcd66
#extradata 1: 2, 0x00340022
#tb 0: 1/1000

View File

@@ -1,5 +1,5 @@
7294b73bcb1cd5059b8f413e2a4dab5b *tests/data/fate/matroska-non-rotation-displaymatrix.matroska
7866 tests/data/fate/matroska-non-rotation-displaymatrix.matroska
d7fdaa33d0ae71997ff4e60953741631 *tests/data/fate/matroska-non-rotation-displaymatrix.matroska
7775 tests/data/fate/matroska-non-rotation-displaymatrix.matroska
#extradata 0: 34, 0xc1d10b51
#tb 0: 1/1000
#media_type 0: video

View File

@@ -1,5 +1,5 @@
ee93018a787b4e9620dd27207e267ad6 *tests/data/fate/matroska-reenc-chapter-nofilter.nut
28879 tests/data/fate/matroska-reenc-chapter-nofilter.nut
9cb225d7afd5aec09f3b90501f74cc0f *tests/data/fate/matroska-reenc-chapter-nofilter.nut
28587 tests/data/fate/matroska-reenc-chapter-nofilter.nut
[CHAPTER]
TAG:title=Schloß
TAG:NUMBER_OF_FRAMES=test

View File

@@ -0,0 +1,12 @@
7d3bba1fefcd3b1e4c8037b372bc7a96 *tests/data/fate/matroska-reenc-delete-audio-metadata.nut
28564 tests/data/fate/matroska-reenc-delete-audio-metadata.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]
[FORMAT]
TAG:DESCRIPTION=Edition description
TAG:TITLE=Edition title
[/FORMAT]

View File

@@ -1,15 +1,8 @@
f3f1913ea5dffcff4789d178aed75e10 *tests/data/fate/matroska-reenc-delete-metadata.nut
28856 tests/data/fate/matroska-reenc-delete-metadata.nut
7d3bba1fefcd3b1e4c8037b372bc7a96 *tests/data/fate/matroska-reenc-delete-metadata.nut
28564 tests/data/fate/matroska-reenc-delete-metadata.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
TAG:BPS-eng=216040
TAG:DURATION-eng=00:00:00.400000000
TAG:NUMBER_OF_FRAMES-eng=10
TAG:NUMBER_OF_BYTES-eng=10802
TAG:_STATISTICS_WRITING_APP-eng=mkvmerge v9.0.1 ('Mask Machine') 64bit
TAG:_STATISTICS_WRITING_DATE_UTC-eng=2019-02-14 12:53:10
TAG:_STATISTICS_TAGS-eng=BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]

View File

@@ -1,15 +1,8 @@
9a7537256acd618b31e18a3d92fc907f *tests/data/fate/matroska-reenc-delete-metadata-filter-output.nut
28835 tests/data/fate/matroska-reenc-delete-metadata-filter-output.nut
09fe3f3cb1d5d5c474069833bca0d97b *tests/data/fate/matroska-reenc-delete-metadata-filter-output.nut
28543 tests/data/fate/matroska-reenc-delete-metadata-filter-output.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
TAG:BPS-eng=216040
TAG:DURATION-eng=00:00:00.400000000
TAG:NUMBER_OF_FRAMES-eng=10
TAG:NUMBER_OF_BYTES-eng=10802
TAG:_STATISTICS_WRITING_APP-eng=mkvmerge v9.0.1 ('Mask Machine') 64bit
TAG:_STATISTICS_WRITING_DATE_UTC-eng=2019-02-14 12:53:10
TAG:_STATISTICS_TAGS-eng=BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]

View File

@@ -0,0 +1,13 @@
6796b46d997552df3f92fb51a4e628c9 *tests/data/fate/matroska-reenc-delete-metadata-keep.nut
28591 tests/data/fate/matroska-reenc-delete-metadata-keep.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
TAG:NUMBER_OF_BYTES-eng=10802
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]
[FORMAT]
TAG:DESCRIPTION=Edition description
TAG:TITLE=Edition title
[/FORMAT]

View File

@@ -0,0 +1,12 @@
7d3bba1fefcd3b1e4c8037b372bc7a96 *tests/data/fate/matroska-reenc-delete-metadata-keep-prefix-nomatch.nut
28564 tests/data/fate/matroska-reenc-delete-metadata-keep-prefix-nomatch.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]
[FORMAT]
TAG:DESCRIPTION=Edition description
TAG:TITLE=Edition title
[/FORMAT]

View File

@@ -0,0 +1,13 @@
6796b46d997552df3f92fb51a4e628c9 *tests/data/fate/matroska-reenc-delete-metadata-keep-stream-video.nut
28591 tests/data/fate/matroska-reenc-delete-metadata-keep-stream-video.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
TAG:NUMBER_OF_BYTES-eng=10802
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]
[FORMAT]
TAG:DESCRIPTION=Edition description
TAG:TITLE=Edition title
[/FORMAT]

View File

@@ -0,0 +1,13 @@
6796b46d997552df3f92fb51a4e628c9 *tests/data/fate/matroska-reenc-delete-metadata-keep-stream-video-suffix.nut
28591 tests/data/fate/matroska-reenc-delete-metadata-keep-stream-video-suffix.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
TAG:NUMBER_OF_BYTES-eng=10802
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]
[FORMAT]
TAG:DESCRIPTION=Edition description
TAG:TITLE=Edition title
[/FORMAT]

View File

@@ -0,0 +1,12 @@
7d3bba1fefcd3b1e4c8037b372bc7a96 *tests/data/fate/matroska-reenc-delete-metadata-keep-stream-video1.nut
28564 tests/data/fate/matroska-reenc-delete-metadata-keep-stream-video1.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]
[FORMAT]
TAG:DESCRIPTION=Edition description
TAG:TITLE=Edition title
[/FORMAT]

View File

@@ -1,15 +1,8 @@
f3f1913ea5dffcff4789d178aed75e10 *tests/data/fate/matroska-reenc-delete-metadata-spec-scope.nut
28856 tests/data/fate/matroska-reenc-delete-metadata-spec-scope.nut
7d3bba1fefcd3b1e4c8037b372bc7a96 *tests/data/fate/matroska-reenc-delete-metadata-spec-scope.nut
28564 tests/data/fate/matroska-reenc-delete-metadata-spec-scope.nut
[STREAM]
TAG:encoder=Lavc mpeg2video
TAG:language=spa
TAG:BPS-eng=216040
TAG:DURATION-eng=00:00:00.400000000
TAG:NUMBER_OF_FRAMES-eng=10
TAG:NUMBER_OF_BYTES-eng=10802
TAG:_STATISTICS_WRITING_APP-eng=mkvmerge v9.0.1 ('Mask Machine') 64bit
TAG:_STATISTICS_WRITING_DATE_UTC-eng=2019-02-14 12:53:10
TAG:_STATISTICS_TAGS-eng=BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[SIDE_DATA]
[/SIDE_DATA]
[/STREAM]

View File

@@ -0,0 +1,18 @@
d9b9b84a20f350bc1d59a91cbba225de *tests/data/fate/mov-cover-reenc-keeps-audio-format-tags.nut
45776 tests/data/fate/mov-cover-reenc-keeps-audio-format-tags.nut
[FORMAT]
TAG:date=2010
TAG:disc=3/5
TAG:track=2/5
TAG:comment=The comment...
TAG:title=Owner
TAG:compilation=0
TAG:gapless_playback=0
TAG:genre=Rock
TAG:iTunSMPB= 00000000 00000840 000001FD 000000000013B5C3 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
TAG:Encoding Params=vers
TAG:iTunNORM= 0000085B 0000072C 00006BC3 0000D444 00004EBA 00004ED2 00008000 00008000 000037DF 000039C7
TAG:artist=The Artist
TAG:album_artist=The Album Artist
TAG:album=The Album
[/FORMAT]

View File

@@ -1,21 +1,15 @@
31a5be81f6278f7d62e901207bf59485 *tests/data/fate/mov-reenc-delete-format-metadata.nut
894 tests/data/fate/mov-reenc-delete-format-metadata.nut
f63b90216e9667fa0b030aae0f808fd8 *tests/data/fate/mov-reenc-delete-format-metadata.nut
579 tests/data/fate/mov-reenc-delete-format-metadata.nut
[FORMAT]
TAG:major_brand=M4A
TAG:minor_version=0
TAG:compatible_brands=M4A mp42isom
TAG:genre=Rock
TAG:album=The Album
TAG:album_artist=The Album Artist
TAG:comment=The comment...
TAG:title=Owner
TAG:compilation=0
TAG:gapless_playback=0
TAG:date=2010
TAG:iTunSMPB= 00000000 00000840 000001FD 000000000013B5C3 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
TAG:Encoding Params=vers
TAG:iTunNORM= 0000085B 0000072C 00006BC3 0000D444 00004EBA 00004ED2 00008000 00008000 000037DF 000039C7
TAG:artist=The Artist
TAG:album_artist=The Album Artist
TAG:album=The Album
TAG:genre=Rock
TAG:track=2/5
TAG:disc=3/5
TAG:artist=The Artist
TAG:date=2010
TAG:Encoding Params=vers
TAG:track=2/5
[/FORMAT]

View File

@@ -1,9 +1,8 @@
c3339d3d42a7f414fec083f0766fb79a *tests/data/fate/mov-reenc-delete-stream-metadata.nut
6629 tests/data/fate/mov-reenc-delete-stream-metadata.nut
5e44edd89f2f43665ff5e4e53638fdf5 *tests/data/fate/mov-reenc-delete-stream-metadata.nut
6605 tests/data/fate/mov-reenc-delete-stream-metadata.nut
[STREAM]
TAG:encoder=Lavc flac
TAG:creation_time=2002-06-02T18:38:54.000000Z
TAG:language=eng
TAG:handler_name=Apple Sound Media Handler
TAG:vendor_id=[0][0][0][0]
[/STREAM]

View File

@@ -1,11 +1,10 @@
3b2b8f248a99168fa938c9767c350dca *tests/data/fate/mov-reenc-delete-stream-metadata-global-tag.nut
6647 tests/data/fate/mov-reenc-delete-stream-metadata-global-tag.nut
dc4bc94edbf9bcf78cf74471f244398b *tests/data/fate/mov-reenc-delete-stream-metadata-global-tag.nut
6623 tests/data/fate/mov-reenc-delete-stream-metadata-global-tag.nut
[STREAM]
TAG:encoder=Lavc flac
TAG:creation_time=2002-06-02T18:38:54.000000Z
TAG:language=eng
TAG:handler_name=Apple Sound Media Handler
TAG:vendor_id=[0][0][0][0]
[/STREAM]
[FORMAT]
TAG:vendor_id=custom

View File

@@ -1,5 +1,5 @@
0013b260aa50b70d1a00d9770581a177 *tests/data/fate/rgb24-mkv.matroska
58236 tests/data/fate/rgb24-mkv.matroska
e85dcc076f7ebea460517c3255705fec *tests/data/fate/rgb24-mkv.matroska
58213 tests/data/fate/rgb24-mkv.matroska
#tb 0: 1/10
#media_type 0: video
#codec_id 0: rawvideo