Opened 15 years ago
Closed 15 years ago
#1564 closed defect (fixed)
[patch] demuxer (esp. ogg) too verbose on track changes
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Component: | demuxer |
Version: | HEAD | Severity: | minor |
Keywords: | Cc: | reimar | |
Blocked By: | Blocking: | ||
Reproduced by developer: | no | Analyzed by developer: | no |
Description
The demuxer prints a line notifying on tag changes. However, it doesn't bother to check whether the tag value is the same as it previously was.
Example:
$ cat *.ogg | mplayer -demuxer ogg -
[...]
Starting playback...
Demuxer info Creation Date changed to 1989
Demuxer info Artist changed to John Zorn
Demuxer info Title changed to The Sicilian Clan
Demuxer info Album changed to Naked City
Demuxer info Genre changed to Avant-garde
Demuxer info Track changed to 2/26
Demuxer info Creation Date changed to 1989
Demuxer info Artist changed to John Zorn
Demuxer info Title changed to You Will Be Shot
Demuxer info Album changed to Naked City
Demuxer info Genre changed to Avant-garde
Demuxer info Track changed to 3/26
Lots of duplicate output.
Attachments (1)
Change History (5)
by , 15 years ago
Attachment: | mplayersilentdemuxer.diff added |
---|
comment:1 by , 15 years ago
Output with patch:
Starting playback...
Demuxer info Title changed to The Sicilian Clan
Demuxer info Track changed to 2/26
Demuxer info Title changed to You Will Be Shot
Demuxer info Track changed to 3/26
comment:2 by , 15 years ago
Cc: | added |
---|
I think I'd prefer this one, can you test it:
Index: libmpdemux/demuxer.c
===================================================================
--- libmpdemux/demuxer.c (revision 29672)
+++ libmpdemux/demuxer.c (working copy)
@@ -1144,6 +1261,10 @@
for (n = 0; info && info[2 * n] != NULL; n++) {
if (!strcasecmp(opt, info[2 * n])) {
+ if (!strcmp(param, info[2 * n + 1])) {
+ mp_msg(MSGT_DEMUX, MSGL_V, "Demuxer info %s set to unchanged value %s\n", opt, param);
+ return 0;
+ }
mp_msg(MSGT_DEMUX, MSGL_INFO, MSGTR_DemuxerInfoChanged, opt,
param);
free(info[2 * n + 1]);
comment:3 by , 15 years ago
(In reply to comment #2)
I think I'd prefer this one
You're correct -- it needs the return clause. Shame on me for not looking at the rest of the function. Your version works just fine (but I don't really have anything other than chained oggs to test it on)
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Mostly I just wanted to keep some output with -v for debugging purposes, but you are right that I accidentally also avoided a bug :-).
Anyway applied.
patch