On Sun, 23 Nov 2014, Martin Storsjö wrote:

This fixes playback with dash.js, when the input is one separate
mp4 file per track.
---
tools/sidxindex.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/sidxindex.c b/tools/sidxindex.c
index da41d09..cb1b6c9 100644
--- a/tools/sidxindex.c
+++ b/tools/sidxindex.c
@@ -327,7 +327,7 @@ static int output_mpd(struct Tracks *tracks, const char 
*filename)
        for (i = 0; i < nb_tracks[set]; ) {
            struct Track *first_track = adaptation_sets[set][i];
            int width = 0, height = 0, sample_rate = 0, channels = 0, bitrate = 
0;
-            fprintf(out, "\t\t\t<Representation id=\"%d\" mimeType=\"video/mp4\" 
codecs=\"", i);
+            fprintf(out, "\t\t\t<Representation id=\"%d\" codecs=\"", i);
            for (j = i; j < nb_tracks[set]; j++) {
                struct Track *track = adaptation_sets[set][j];
                if (strcmp(track->name, first_track->name))
@@ -345,7 +345,8 @@ static int output_mpd(struct Tracks *tracks, const char 
*filename)
                    fprintf(out, ",");
                fprintf(out, "%s", track->codec_str);
            }
-            fprintf(out, "\" bandwidth=\"%d\"", bitrate);
+            fprintf(out, "\" mimeType=\"%s/mp4\" bandwidth=\"%d\"",
+                    (sample_rate && !width) ? "audio" : "video", bitrate);

I'd probably simplify this even further into

width ? "video" : "audio"

Then you still get video/mp4 for video and video+audio. The behaviour for the case when neither of them exist doesn't matter since non-audio/video tracks are filtered out already earlier.

// Martin
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to