| 167 | } |
| 168 | |
| 169 | bool Mp3StreamDecoderImpl::begin(fl::filebuf_ptr stream) { |
| 170 | if (!stream) { |
| 171 | mErrorMsg = "Invalid stream provided"; |
| 172 | mHasError = true; |
| 173 | return false; |
| 174 | } |
| 175 | |
| 176 | mStream = stream; |
| 177 | mDecoder = fl::make_unique<Mp3HelixDecoder>(); |
| 178 | if (!mDecoder->init()) { |
| 179 | mErrorMsg = "Failed to initialize MP3 decoder"; |
| 180 | mHasError = true; |
| 181 | mDecoder.reset(); |
| 182 | return false; |
| 183 | } |
| 184 | |
| 185 | mBuffer.resize(BUFFER_SIZE); |
| 186 | mBufferPos = 0; |
| 187 | mBufferFilled = 0; |
| 188 | mBytesProcessed = 0; |
| 189 | mHasError = false; |
| 190 | mEndOfStream = false; |
| 191 | mHasDecodedFirstFrame = false; |
| 192 | |
| 193 | return true; |
| 194 | } |
| 195 | |
| 196 | void Mp3StreamDecoderImpl::end() { |
| 197 | mDecoder.reset(); |
no test coverage detected