81 Commits

Author SHA1 Message Date
mbirth 21546019c3 Replace echos with proper Exception and trigger_error()
Signed-off-by: Markus Birth <markus@birth-online.de>
2025-08-16 23:28:24 +01:00
mbirth 734bcaea9c Remove require() and let autoloader do its thing
Signed-off-by: Markus Birth <markus@birth-online.de>
2025-08-16 23:27:53 +01:00
mbirth e64c30e569 Turn returned HTTP headers lowercase before parsing
NGINX for some reason returns "content-length" instead of
"Content-Length".
2025-06-15 01:36:12 +01:00
mbirth 7a8dede10b Move ID3v2 flags parsing into method
Signed-off-by: Markus Birth <markus@birth-online.de>
2025-06-14 22:19:49 +01:00
mbirth ad8183b41f Add error handling if block can't be downloaded 2024-05-29 01:28:59 +01:00
mbirth aaaba0e2f1 Fix Protection bit inverted meaning 2024-05-29 01:28:43 +01:00
mbirth 3e1288a68c Added support for informational bits in Mpeg frame header
Copyright, Original, Private, CRC protected, Padding
2024-05-28 01:24:46 +01:00
mbirth 4b2cbfb384 Cosmetics 2024-05-28 01:23:52 +01:00
mbirth 2a98464bbe Put id3v1 genre_id in brackets as seen with id3v2 2024-05-27 23:53:08 +01:00
mbirth c54e75a899 Show error for invalid LAYER/CODEC versions 2024-05-27 23:46:04 +01:00
mbirth 9b92776607 Differentiate btw id3v1.0 and id3v1.1 2024-05-27 23:45:35 +01:00
mbirth 0ef2575001 Fix Mpeg frame verification 2024-05-27 23:44:54 +01:00
mbirth 5b8e15a1e0 Fix Mpeg frame sync detection 2024-05-27 23:44:22 +01:00
mbirth c387953040 Optimise parsing of id3v2 flags 2024-05-27 20:56:20 +01:00
mbirth 3184973867 Optimise searching for Mpeg frame 2024-05-27 20:55:51 +01:00
mbirth 2a16b836b7 Return payload size for ID3v2 tags 2024-05-27 20:55:22 +01:00
mbirth 38a962cbdc Style changes 2024-05-27 20:54:44 +01:00
mbirth 3ff00fde72 Rename Syncsafe to Synchsafe according to spec 2024-05-27 20:53:50 +01:00
mbirth c98606734a Set filename and size in Mp3Info object 2024-05-27 20:53:03 +01:00
mbirth a3fddb495d Optimise id3v2.4 comment parsing 2024-05-27 20:04:43 +01:00
mbirth 37bc9d5ec6 Optimise id3v2 header parsing 2024-05-27 20:04:23 +01:00
mbirth d474f40403 Helper for Syncsafe size values 2024-05-27 20:03:14 +01:00
mbirth c0d64e81aa Minor style optimisations 2024-05-27 20:01:29 +01:00
mbirth 4de63bd94b Proper TXXX tag handling
TXXX consists of description and value. Descriptions should be unique, but rarely are. This now parses them into TXXX:<description> and turns it into an array if multiple tags are found.

Signed-off-by: Markus Birth <markus@birth-online.de>
2024-05-27 16:20:49 +01:00
mbirth d6977ef4dc Fix ID3v2 frame size calculation
Frame size uses 7-out-of-8-Bits notation.

Signed-off-by: Markus Birth <markus@birth-online.de>
2024-05-27 15:28:22 +01:00
mbirth 48edb42c1e Fix isValidAudio()
Signed-off-by: Markus Birth <markus@birth-online.de>
2024-05-27 13:49:41 +01:00
mbirth 120617847c Fix cover retrieval
Signed-off-by: Markus Birth <markus@birth-online.de>
2024-05-27 13:05:30 +01:00
mbirth 3699fd5ecb Add separate classes for local and remote file access
Improves parsing of remote files by using HTTP Range requests so it doesn't have to download the whole file.

Signed-off-by: Markus Birth <markus@birth-online.de>
2024-05-26 14:15:17 +01:00
Sergey d749cdd862 Update README.md 2023-05-30 11:00:48 +03:00
wapmorgan f4e3b0d606 #29 Fix invalid short_description for empty short_description 2023-05-28 21:37:15 +03:00
Sergey a28101d523 Merge pull request #28 from kesselb/guard-get-cover
fix: add string as return for getCover and make sure to not pass false to fseek
2023-05-28 21:05:37 +03:00
wapmorgan 534c3052d4 #13 #24 Fix invalid duration due to difference in first N frames. Solution: read few frames and compute duration based on the last frame data. 2023-05-28 21:04:09 +03:00
Daniel Kesselberg c75f4e0a39 fix: add string as return for getCover and make sure to not pass false to fseek
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-05-28 16:33:05 +02:00
Sergey cbbd6b306b Update composer.json 2022-07-29 23:14:29 +03:00
Sergey a7cd1727b5 Update mp3scan 2022-07-29 23:14:08 +03:00
wapmorgan 13d1c142a7 Fixing #25: implode on php8 2022-06-16 02:39:26 +03:00
Sergey 752935f83a Merge pull request #22 from shannah/master
Suppress check for valid audio on URLs to fix 'File not present' erro…
2022-02-20 23:25:01 +03:00
Sergey e24b66463f Merge pull request #23 from paurakhsharma/patch-1
Fix isValidAudio logic for remote URL
2022-01-01 17:01:34 +03:00
Paurakh Sharma Humagain a4aa368e59 Fix isValidAudio logic for remote URL 2021-11-25 13:42:48 +01:00
Steve Hannah 45c8e67e43 Suppress check for valid audio on URLs to fix 'File not present' errors when passing URLs to constructor. Fixes https://github.com/wapmorgan/Mp3Info/issues/21 2021-11-12 10:12:15 -08:00
wapmorgan b53a5e9368 Ability to scan remote files (downloads the whole file; #19) and checking file before scanning 2021-08-12 03:38:40 +03:00
wapmorgan 9e9e29fc3f Append README: getCover (#18) 2021-08-11 21:30:23 +03:00
wapmorgan ee86090f0a Fix incorrect VBR-file duration (depending on quality) and add Cover extraction 2021-08-11 21:21:54 +03:00
Sergey 5f7d54fa69 Update README.md 2020-05-07 00:33:39 +03:00
Sergey 26384fb5a2 Update README.md 2020-05-07 00:32:00 +03:00
Sergey 317c124adf Update README.md 2020-05-07 00:26:21 +03:00
wapmorgan 7b524fabfe Implement id3v2.4.x reading 2020-05-07 00:22:02 +03:00
wapmorgan 0dc3d62d15 Update scanner 2019-12-03 03:57:48 +03:00
wapmorgan acfbcfb5d2 Fix checking vbr for 2.5 codec 2019-12-03 03:57:41 +03:00
wapmorgan 91b9ab254c Update readme 2019-12-03 03:36:51 +03:00