mirror of
https://github.com/golang/go
synced 2024-11-24 22:00:09 -07:00
http: add more MPEG-4 MIME types to sniffer, and disable MP4 sniffing.
R=rsc CC=golang-dev https://golang.org/cl/4808056
This commit is contained in:
parent
583f72434f
commit
4143491c4a
@ -98,7 +98,8 @@ var sniffSignatures = []sniffSig{
|
|||||||
&exactSig{[]byte("\x50\x4B\x03\x04"), "application/zip"},
|
&exactSig{[]byte("\x50\x4B\x03\x04"), "application/zip"},
|
||||||
&exactSig{[]byte("\x1F\x8B\x08"), "application/x-gzip"},
|
&exactSig{[]byte("\x1F\x8B\x08"), "application/x-gzip"},
|
||||||
|
|
||||||
mp4Sig(0),
|
// TODO(dsymonds): Re-enable this when the spec is sorted w.r.t. MP4.
|
||||||
|
//mp4Sig(0),
|
||||||
|
|
||||||
textSig(0), // should be last
|
textSig(0), // should be last
|
||||||
}
|
}
|
||||||
@ -179,8 +180,18 @@ func (mp4Sig) match(data []byte, firstNonWS int) string {
|
|||||||
// minor version number
|
// minor version number
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if bytes.Equal(data[st:st+3], []byte("mp4")) {
|
seg := string(data[st : st+3])
|
||||||
|
switch seg {
|
||||||
|
case "mp4", "iso", "M4V", "M4P", "M4B":
|
||||||
return "video/mp4"
|
return "video/mp4"
|
||||||
|
/* The remainder are not in the spec.
|
||||||
|
case "M4A":
|
||||||
|
return "audio/mp4"
|
||||||
|
case "3gp":
|
||||||
|
return "video/3gpp"
|
||||||
|
case "jp2":
|
||||||
|
return "image/jp2" // JPEG 2000
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
|
@ -35,7 +35,9 @@ var sniffTests = []struct {
|
|||||||
{"GIF 87a", []byte(`GIF87a`), "image/gif"},
|
{"GIF 87a", []byte(`GIF87a`), "image/gif"},
|
||||||
{"GIF 89a", []byte(`GIF89a...`), "image/gif"},
|
{"GIF 89a", []byte(`GIF89a...`), "image/gif"},
|
||||||
|
|
||||||
{"MP4", []byte("\x00\x00\x00\x18ftypmp42\x00\x00\x00\x00mp42isom<\x06t\xbfmdat"), "video/mp4"},
|
// TODO(dsymonds): Re-enable this when the spec is sorted w.r.t. MP4.
|
||||||
|
//{"MP4 video", []byte("\x00\x00\x00\x18ftypmp42\x00\x00\x00\x00mp42isom<\x06t\xbfmdat"), "video/mp4"},
|
||||||
|
//{"MP4 audio", []byte("\x00\x00\x00\x20ftypM4A \x00\x00\x00\x00M4A mp42isom\x00\x00\x00\x00"), "audio/mp4"},
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDetectContentType(t *testing.T) {
|
func TestDetectContentType(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user