33 audio.cpp
44
55 Created on: Oct 28.2018 */ char audioI2SVers[] =" \
6- Version 3.4.1j " ;
7- /* Updated on: Aug 16 .2025
6+ Version 3.4.1k " ;
7+ /* Updated on: Aug 17 .2025
88
99 Author: Wolle (schreibfaul1)
1010 Audio library for ESP32, ESP32-S3 or ESP32-P4
@@ -3550,6 +3550,25 @@ ps_ptr<char> Audio::parsePlaylist_M3U8() {
35503550 // #EXTINF:10,title="text=\"Spot Block End\" amgTrackId=\"9876543\"",artist=" ",url="length=\"00:00:00\""
35513551 // http://n3fa-e2.revma.ihrhls.com/zc7729/63_sdtszizjcjbz02/main/163374039.aac
35523552
3553+
3554+ // #EXTM3U
3555+ // #EXT-X-VERSION:3
3556+ // #EXT-X-MEDIA-SEQUENCE:0
3557+ // #EXT-X-TARGETDURATION:4
3558+ // #EXTINF:3.997,90s90s - Rock
3559+ // #EXT-X-PROGRAM-DATE-TIME:2025-08-17T14:08:21.088877044Z
3560+ // https://hz71.streamabc.net/hls/d2gu4l4peavc72tgotd0/regc-90s90srock1436287-mp3-192-2191420/0.mp3
3561+ // #EXTINF:3.997,90s90s - Rock
3562+ // #EXT-X-PROGRAM-DATE-TIME:2025-08-17T14:08:24.088877044Z
3563+ // https://hz71.streamabc.net/hls/d2gu4l4peavc72tgotd0/regc-90s90srock1436287-mp3-192-2191420/1.mp3
3564+ // #EXTINF:3.997,90s90s - Rock
3565+ // #EXT-X-PROGRAM-DATE-TIME:2025-08-17T14:08:28.088877044Z
3566+ // https://hz71.streamabc.net/hls/d2gu4l4peavc72tgotd0/regc-90s90srock1436287-mp3-192-2191420/2.mp3
3567+ // #EXTINF:3.997,90s90s - Rock
3568+ // #EXT-X-PROGRAM-DATE-TIME:2025-08-17T14:08:32.088877044Z
3569+ // https://hz71.streamabc.net/hls/d2gu4l4peavc72tgotd0/regc-90s90srock1436287-mp3-192-2191420/3.mp3
3570+
3571+
35533572 if (!m_lastHost.valid ()) {AUDIO_LOG_ERROR (" m_lastHost is NULL" ); return {};} // guard
35543573
35553574 uint8_t lines = m_playlistContent.size ();
@@ -3564,6 +3583,7 @@ ps_ptr<char> Audio::parsePlaylist_M3U8() {
35643583 // AUDIO_LOG_INFO("pl%i = %s", i, m_playlistContent[i].get());
35653584 if (m_playlistContent[i].starts_with (" #EXT-X-STREAM-INF:" )) { f_haveRedirection = true ; /* AUDIO_LOG_ERROR("we have a redirection");*/ }
35663585 if (addNextLine) {
3586+ if (startsWith (m_playlistContent[i].get (), " #EXT-X-PROGRAM-DATE-TIME:" )) continue ; // skip this line
35673587 addNextLine = false ;
35683588 // size_t len = strlen(linesWithSeqNr[idx].get()) + strlen(m_playlistContent[i].get()) + 1;
35693589 m_linesWithURL.emplace_back ().clone_from (m_playlistContent[i]);
@@ -3973,6 +3993,7 @@ void Audio::processWebStreamTS() {
39733993 m_pwsst.ts_packetPtr = 0 ;
39743994 m_t0 = millis ();
39753995 getChunkSize (0 , true );
3996+ ts_parsePacket (0 , 0 , 0 );
39763997 if (!m_pwsst.ts_packet .valid ()) m_pwsst.ts_packet .alloc_array (m_pwsst.ts_packetsize , " m_pwsst.ts_packet" ); // first init
39773998 } // —————————————————————————————————————————————————————————————————————————
39783999
@@ -6089,9 +6110,7 @@ bool Audio::ts_parsePacket(uint8_t* packet, uint8_t* packetStart, uint8_t* packe
60896110
60906111 if (packet == NULL ) {
60916112 if (log) AUDIO_LOG_WARN (" parseTS reset" );
6092- for (int i = 0 ; i < PID_ARRAY_LEN; i++) m_tspp.pids [i] = 0 ;
6093- m_tspp.PES_DataLength = 0 ;
6094- m_tspp.pidOfAAC = 0 ;
6113+ memset (&m_tspp, 0 , sizeof (tspp_t ));
60956114 return true ;
60966115 }
60976116
0 commit comments