Detect embedded art in ogg containers
This commit is contained in:
@@ -33,7 +33,7 @@ func (m *Metadata) Genre() string { return m.getTag("genre") }
|
|||||||
func (m *Metadata) Year() int { return m.parseYear("date") }
|
func (m *Metadata) Year() int { return m.parseYear("date") }
|
||||||
func (m *Metadata) TrackNumber() (int, int) { return m.parseTuple("track") }
|
func (m *Metadata) TrackNumber() (int, int) { return m.parseTuple("track") }
|
||||||
func (m *Metadata) DiscNumber() (int, int) { return m.parseTuple("tpa", "disc") }
|
func (m *Metadata) DiscNumber() (int, int) { return m.parseTuple("tpa", "disc") }
|
||||||
func (m *Metadata) HasPicture() bool { return m.getTag("has_picture") == "true" }
|
func (m *Metadata) HasPicture() bool { return m.getTag("has_picture", "metadata_block_picture") != "" }
|
||||||
func (m *Metadata) Comment() string { return m.getTag("comment") }
|
func (m *Metadata) Comment() string { return m.getTag("comment") }
|
||||||
func (m *Metadata) Compilation() bool { return m.parseBool("compilation") }
|
func (m *Metadata) Compilation() bool { return m.parseBool("compilation") }
|
||||||
func (m *Metadata) Duration() float32 { return m.parseDuration("duration") }
|
func (m *Metadata) Duration() float32 { return m.parseDuration("duration") }
|
||||||
@@ -99,7 +99,7 @@ var (
|
|||||||
inputRegex = regexp.MustCompile(`(?m)^Input #\d+,.*,\sfrom\s'(.*)'`)
|
inputRegex = regexp.MustCompile(`(?m)^Input #\d+,.*,\sfrom\s'(.*)'`)
|
||||||
|
|
||||||
// TITLE : Back In Black
|
// TITLE : Back In Black
|
||||||
tagsRx = regexp.MustCompile(`(?i)^\s{4,6}(\w+)\s+:(.*)`)
|
tagsRx = regexp.MustCompile(`(?i)^\s{4,6}(\w+)\s*:(.*)`)
|
||||||
|
|
||||||
// Duration: 00:04:16.00, start: 0.000000, bitrate: 995 kb/s`
|
// Duration: 00:04:16.00, start: 0.000000, bitrate: 995 kb/s`
|
||||||
durationRx = regexp.MustCompile(`^\s\sDuration: ([\d.:]+).*bitrate: (\d+)`)
|
durationRx = regexp.MustCompile(`^\s\sDuration: ([\d.:]+).*bitrate: (\d+)`)
|
||||||
|
|||||||
@@ -79,6 +79,19 @@ Input #0, mp3, from '/Users/deluan/Music/iTunes/iTunes Media/Music/Compilations/
|
|||||||
Expect(md.HasPicture()).To(BeTrue())
|
Expect(md.HasPicture()).To(BeTrue())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("detects embedded cover art in ogg containers", func() {
|
||||||
|
const output = `
|
||||||
|
Input #0, ogg, from '/Users/deluan/Music/iTunes/iTunes Media/Music/_Testes/Jamaican In New York/01-02 Jamaican In New York (Album Version).opus':
|
||||||
|
Duration: 00:04:28.69, start: 0.007500, bitrate: 139 kb/s
|
||||||
|
Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp
|
||||||
|
Metadata:
|
||||||
|
ALBUM : Jamaican In New York
|
||||||
|
metadata_block_picture: AAAAAwAAAAppbWFnZS9qcGVnAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Id/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ
|
||||||
|
TITLE : Jamaican In New York (Album Version)`
|
||||||
|
md, _ := extractMetadata("tests/fixtures/test.mp3", output)
|
||||||
|
Expect(md.HasPicture()).To(BeTrue())
|
||||||
|
})
|
||||||
|
|
||||||
It("gets bitrate from the stream, if available", func() {
|
It("gets bitrate from the stream, if available", func() {
|
||||||
const output = `
|
const output = `
|
||||||
Input #0, mp3, from '/Users/deluan/Music/iTunes/iTunes Media/Music/Compilations/Putumayo Presents Blues Lounge/09 Pablo's Blues.mp3':
|
Input #0, mp3, from '/Users/deluan/Music/iTunes/iTunes Media/Music/Compilations/Putumayo Presents Blues Lounge/09 Pablo's Blues.mp3':
|
||||||
|
|||||||
Reference in New Issue
Block a user