Lines Matching refs:pFlac

521 void drflac_close(drflac* pFlac);
534 uint64_t drflac_read_s32(drflac* pFlac, uint64_t samplesToRead, int32_t* pBufferOut);
548 bool drflac_seek_to_sample(drflac* pFlac, uint64_t sampleIndex);
2240 static bool drflac__decode_frame(drflac* pFlac) in drflac__decode_frame() argument
2243 memset(pFlac->currentFrame.subframes, 0, sizeof(pFlac->currentFrame.subframes)); in drflac__decode_frame()
2245 …int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFrame.header.ch… in drflac__decode_frame()
2248 …if (!drflac__decode_subframe(&pFlac->bs, &pFlac->currentFrame, i, pFlac->pDecodedSamples + (pFlac-… in drflac__decode_frame()
2254 if (!drflac__seek_bits(&pFlac->bs, (DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7) + 16)) { in drflac__decode_frame()
2259 pFlac->currentFrame.samplesRemaining = pFlac->currentFrame.header.blockSize * channelCount; in drflac__decode_frame()
2264 static bool drflac__seek_frame(drflac* pFlac) in drflac__seek_frame() argument
2266 …int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFrame.header.ch… in drflac__seek_frame()
2269 if (!drflac__seek_subframe(&pFlac->bs, &pFlac->currentFrame, i)) { in drflac__seek_frame()
2275 return drflac__seek_bits(&pFlac->bs, (DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7) + 16); in drflac__seek_frame()
2278 static bool drflac__read_and_decode_next_frame(drflac* pFlac) in drflac__read_and_decode_next_frame() argument
2280 assert(pFlac != NULL); in drflac__read_and_decode_next_frame()
2282 …if (!drflac__read_next_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFrame.header)… in drflac__read_and_decode_next_frame()
2286 return drflac__decode_frame(pFlac); in drflac__read_and_decode_next_frame()
2290 static void drflac__get_current_frame_sample_range(drflac* pFlac, uint64_t* pFirstSampleInFrameOut,… in drflac__get_current_frame_sample_range() argument
2292 assert(pFlac != NULL); in drflac__get_current_frame_sample_range()
2294 …unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFrame.… in drflac__get_current_frame_sample_range()
2296 uint64_t firstSampleInFrame = pFlac->currentFrame.header.sampleNumber; in drflac__get_current_frame_sample_range()
2298 … firstSampleInFrame = pFlac->currentFrame.header.frameNumber * pFlac->maxBlockSize*channelCount; in drflac__get_current_frame_sample_range()
2301 …uint64_t lastSampleInFrame = firstSampleInFrame + (pFlac->currentFrame.header.blockSize*channelCou… in drflac__get_current_frame_sample_range()
2315 static bool drflac__seek_to_first_frame(drflac* pFlac) in drflac__seek_to_first_frame() argument
2317 assert(pFlac != NULL); in drflac__seek_to_first_frame()
2319 bool result = drflac__seek_to_byte(&pFlac->bs, pFlac->firstFramePos); in drflac__seek_to_first_frame()
2321 memset(&pFlac->currentFrame, 0, sizeof(pFlac->currentFrame)); in drflac__seek_to_first_frame()
2325 static DRFLAC_INLINE bool drflac__seek_to_next_frame(drflac* pFlac) in drflac__seek_to_next_frame() argument
2328 assert(pFlac != NULL); in drflac__seek_to_next_frame()
2329 return drflac__seek_frame(pFlac); in drflac__seek_to_next_frame()
2332 static bool drflac__seek_to_frame_containing_sample(drflac* pFlac, uint64_t sampleIndex) in drflac__seek_to_frame_containing_sample() argument
2334 assert(pFlac != NULL); in drflac__seek_to_frame_containing_sample()
2336 if (!drflac__seek_to_first_frame(pFlac)) { in drflac__seek_to_frame_containing_sample()
2345 …if (!drflac__read_next_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFrame.header)… in drflac__seek_to_frame_containing_sample()
2349 drflac__get_current_frame_sample_range(pFlac, &firstSampleInFrame, &lastSampleInFrame); in drflac__seek_to_frame_containing_sample()
2354 if (!drflac__seek_to_next_frame(pFlac)) { in drflac__seek_to_frame_containing_sample()
2363 static bool drflac__seek_to_sample__brute_force(drflac* pFlac, uint64_t sampleIndex) in drflac__seek_to_sample__brute_force() argument
2365 if (!drflac__seek_to_frame_containing_sample(pFlac, sampleIndex)) { in drflac__seek_to_sample__brute_force()
2372 drflac__get_current_frame_sample_range(pFlac, &firstSampleInFrame, NULL); in drflac__seek_to_sample__brute_force()
2381 if (!drflac__decode_frame(pFlac)) { in drflac__seek_to_sample__brute_force()
2385 return drflac_read_s32(pFlac, samplesToDecode, NULL) != 0; in drflac__seek_to_sample__brute_force()
2389 static bool drflac__seek_to_sample__seek_table(drflac* pFlac, uint64_t sampleIndex) in drflac__seek_to_sample__seek_table() argument
2391 assert(pFlac != NULL); in drflac__seek_to_sample__seek_table()
2393 if (pFlac->seektablePos == 0) { in drflac__seek_to_sample__seek_table()
2397 if (!drflac__seek_to_byte(&pFlac->bs, pFlac->seektablePos)) { in drflac__seek_to_sample__seek_table()
2402 uint32_t seekpointCount = pFlac->seektableSize / 18; // 18 = the size of each seek point. in drflac__seek_to_sample__seek_table()
2414 if (!drflac__read_uint64(&pFlac->bs, 64, &seekpoint.firstSample)) { in drflac__seek_to_sample__seek_table()
2417 if (!drflac__read_uint64(&pFlac->bs, 64, &seekpoint.frameOffset)) { in drflac__seek_to_sample__seek_table()
2420 if (!drflac__read_uint16(&pFlac->bs, 16, &seekpoint.sampleCount)) { in drflac__seek_to_sample__seek_table()
2424 if (seekpoint.firstSample * pFlac->channels > sampleIndex) { in drflac__seek_to_sample__seek_table()
2434 if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFramePos + closestSeekpoint.frameOffset)) { in drflac__seek_to_sample__seek_table()
2444 …if (!drflac__read_next_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFrame.header)… in drflac__seek_to_sample__seek_table()
2448 drflac__get_current_frame_sample_range(pFlac, &firstSampleInFrame, &lastSampleInFrame); in drflac__seek_to_sample__seek_table()
2453 if (!drflac__seek_to_next_frame(pFlac)) { in drflac__seek_to_sample__seek_table()
2461 if (!drflac__decode_frame(pFlac)) { in drflac__seek_to_sample__seek_table()
2466 return drflac_read_s32(pFlac, samplesToDecode, NULL) == samplesToDecode; in drflac__seek_to_sample__seek_table()
2570 bool drflac__read_and_decode_metadata(drflac* pFlac) in drflac__read_and_decode_metadata() argument
2572 assert(pFlac != NULL); in drflac__read_and_decode_metadata()
2585 …if (!drflac__read_and_decode_block_header(pFlac->bs.onRead, pFlac->bs.pUserData, &isLastBlock, &bl… in drflac__read_and_decode_metadata()
2600 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2606 if (pFlac->bs.onRead(pFlac->bs.pUserData, pRawData, blockSize) != blockSize) { in drflac__read_and_decode_metadata()
2616 pFlac->onMeta(pFlac->pUserDataMD, &metadata); in drflac__read_and_decode_metadata()
2627 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2633 if (pFlac->bs.onRead(pFlac->bs.pUserData, pRawData, blockSize) != blockSize) { in drflac__read_and_decode_metadata()
2651 pFlac->onMeta(pFlac->pUserDataMD, &metadata); in drflac__read_and_decode_metadata()
2659 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2665 if (pFlac->bs.onRead(pFlac->bs.pUserData, pRawData, blockSize) != blockSize) { in drflac__read_and_decode_metadata()
2678 pFlac->onMeta(pFlac->pUserDataMD, &metadata); in drflac__read_and_decode_metadata()
2686 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2692 if (pFlac->bs.onRead(pFlac->bs.pUserData, pRawData, blockSize) != blockSize) { in drflac__read_and_decode_metadata()
2706 pFlac->onMeta(pFlac->pUserDataMD, &metadata); in drflac__read_and_decode_metadata()
2714 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2720 if (pFlac->bs.onRead(pFlac->bs.pUserData, pRawData, blockSize) != blockSize) { in drflac__read_and_decode_metadata()
2740 pFlac->onMeta(pFlac->pUserDataMD, &metadata); in drflac__read_and_decode_metadata()
2748 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2752 … if (!pFlac->bs.onSeek(pFlac->bs.pUserData, blockSize, drflac_seek_origin_current)) { in drflac__read_and_decode_metadata()
2756 pFlac->onMeta(pFlac->pUserDataMD, &metadata); in drflac__read_and_decode_metadata()
2763 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2764 … if (!pFlac->bs.onSeek(pFlac->bs.pUserData, blockSize, drflac_seek_origin_current)) { in drflac__read_and_decode_metadata()
2774 if (pFlac->onMeta) { in drflac__read_and_decode_metadata()
2780 if (pFlac->bs.onRead(pFlac->bs.pUserData, pRawData, blockSize) != blockSize) { in drflac__read_and_decode_metadata()
2787 pFlac->onMeta(pFlac->pUserDataMD, &metadata); in drflac__read_and_decode_metadata()
2795 if (pFlac->onMeta == NULL) { in drflac__read_and_decode_metadata()
2796 if (!pFlac->bs.onSeek(pFlac->bs.pUserData, blockSize, drflac_seek_origin_current)) { in drflac__read_and_decode_metadata()
2807 pFlac->seektablePos = seektablePos; in drflac__read_and_decode_metadata()
2808 pFlac->seektableSize = seektableSize; in drflac__read_and_decode_metadata()
2809 pFlac->firstFramePos = runningFilePos; in drflac__read_and_decode_metadata()
3195 bool drflac_ogg__seek_to_sample(drflac* pFlac, uint64_t sample) in drflac_ogg__seek_to_sample() argument
3197 …drflac_oggbs* oggbs = (drflac_oggbs*)(((int32_t*)pFlac->pExtraData) + pFlac->maxBlockSize*pFlac->c… in drflac_ogg__seek_to_sample()
3202 if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFramePos)) { in drflac_ogg__seek_to_sample()
3217 if (oggbs->currentPageHeader.granulePosition*pFlac->channels >= sample) { in drflac_ogg__seek_to_sample()
3232 … runningGranulePosition = oggbs->currentPageHeader.granulePosition*pFlac->channels; in drflac_ogg__seek_to_sample()
3271 …if (!drflac__read_next_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFrame.header)… in drflac_ogg__seek_to_sample()
3275 …int channels = drflac__get_channel_count_from_channel_assignment(pFlac->currentFrame.header.channe… in drflac_ogg__seek_to_sample()
3276 … uint64_t lastSampleInFrame = firstSampleInFrame + (pFlac->currentFrame.header.blockSize*channels); in drflac_ogg__seek_to_sample()
3293 if (!drflac__seek_to_next_frame(pFlac)) { in drflac_ogg__seek_to_sample()
3309 if (!drflac__decode_frame(pFlac)) { in drflac_ogg__seek_to_sample()
3314 return drflac_read_s32(pFlac, samplesToDecode, NULL) == samplesToDecode; in drflac_ogg__seek_to_sample()
3513 void drflac__init_from_info(drflac* pFlac, drflac_init_info* pInit) in drflac__init_from_info() argument
3515 assert(pFlac != NULL); in drflac__init_from_info()
3518 memset(pFlac, 0, sizeof(*pFlac)); in drflac__init_from_info()
3519 pFlac->bs.onRead = pInit->onRead; in drflac__init_from_info()
3520 pFlac->bs.onSeek = pInit->onSeek; in drflac__init_from_info()
3521 pFlac->bs.pUserData = pInit->pUserData; in drflac__init_from_info()
3522pFlac->bs.nextL2Line = sizeof(pFlac->bs.cacheL2) / sizeof(pFlac->bs.cacheL2[0]); // <-- Initial… in drflac__init_from_info()
3523 pFlac->bs.consumedBits = sizeof(pFlac->bs.cache)*8; in drflac__init_from_info()
3525 pFlac->onMeta = pInit->onMeta; in drflac__init_from_info()
3526 pFlac->pUserDataMD = pInit->pUserDataMD; in drflac__init_from_info()
3527 pFlac->maxBlockSize = pInit->maxBlockSize; in drflac__init_from_info()
3528 pFlac->sampleRate = pInit->sampleRate; in drflac__init_from_info()
3529 pFlac->channels = (uint8_t)pInit->channels; in drflac__init_from_info()
3530 pFlac->bitsPerSample = (uint8_t)pInit->bitsPerSample; in drflac__init_from_info()
3531 pFlac->totalSampleCount = pInit->totalSampleCount; in drflac__init_from_info()
3532 pFlac->container = pInit->container; in drflac__init_from_info()
3554 drflac* pFlac = (drflac*)malloc(allocationSize); in drflac_open_with_metadata_private() local
3555 drflac__init_from_info(pFlac, &init); in drflac_open_with_metadata_private()
3556 pFlac->pDecodedSamples = (int32_t*)pFlac->pExtraData; in drflac_open_with_metadata_private()
3560 …drflac_oggbs* oggbs = (drflac_oggbs*)(((int32_t*)pFlac->pExtraData) + init.maxBlockSize*init.chann… in drflac_open_with_metadata_private()
3571 pFlac->bs.onRead = drflac__on_read_ogg; in drflac_open_with_metadata_private()
3572 pFlac->bs.onSeek = drflac__on_seek_ogg; in drflac_open_with_metadata_private()
3573 pFlac->bs.pUserData = (void*)oggbs; in drflac_open_with_metadata_private()
3579 if (!drflac__read_and_decode_metadata(pFlac)) { in drflac_open_with_metadata_private()
3580 free(pFlac); in drflac_open_with_metadata_private()
3585 return pFlac; in drflac_open_with_metadata_private()
3673 drflac* pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, (void*)file); in drflac_open_file() local
3674 if (pFlac == NULL) { in drflac_open_file()
3679 return pFlac; in drflac_open_file()
3689 …drflac* pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, on… in drflac_open_file_with_metadata() local
3690 if (pFlac == NULL) { in drflac_open_file_with_metadata()
3692 return pFlac; in drflac_open_file_with_metadata()
3695 return pFlac; in drflac_open_file_with_metadata()
3747 drflac* pFlac = drflac_open(drflac__on_read_memory, drflac__on_seek_memory, &memoryStream); in drflac_open_memory() local
3748 if (pFlac == NULL) { in drflac_open_memory()
3752 pFlac->memoryStream = memoryStream; in drflac_open_memory()
3756 if (pFlac->container == drflac_container_ogg) in drflac_open_memory()
3758 …drflac_oggbs* oggbs = (drflac_oggbs*)(((int32_t*)pFlac->pExtraData) + pFlac->maxBlockSize*pFlac->c… in drflac_open_memory()
3759 oggbs->pUserData = &pFlac->memoryStream; in drflac_open_memory()
3764 pFlac->bs.pUserData = &pFlac->memoryStream; in drflac_open_memory()
3767 return pFlac; in drflac_open_memory()
3776 …drflac* pFlac = drflac_open_with_metadata_private(drflac__on_read_memory, drflac__on_seek_memory, … in drflac_open_memory_with_metadata() local
3777 if (pFlac == NULL) { in drflac_open_memory_with_metadata()
3781 pFlac->memoryStream = memoryStream; in drflac_open_memory_with_metadata()
3785 if (pFlac->container == drflac_container_ogg) in drflac_open_memory_with_metadata()
3787 …drflac_oggbs* oggbs = (drflac_oggbs*)(((int32_t*)pFlac->pExtraData) + pFlac->maxBlockSize*pFlac->c… in drflac_open_memory_with_metadata()
3788 oggbs->pUserData = &pFlac->memoryStream; in drflac_open_memory_with_metadata()
3793 pFlac->bs.pUserData = &pFlac->memoryStream; in drflac_open_memory_with_metadata()
3796 return pFlac; in drflac_open_memory_with_metadata()
3811 void drflac_close(drflac* pFlac) in drflac_close() argument
3813 if (pFlac == NULL) { in drflac_close()
3820 if (pFlac->bs.onRead == drflac__on_read_stdio) { in drflac_close()
3821 drflac__close_file_handle((drflac_file)pFlac->bs.pUserData); in drflac_close()
3826 if (pFlac->container == drflac_container_ogg) { in drflac_close()
3827 assert(pFlac->bs.onRead == drflac__on_read_ogg); in drflac_close()
3828 …drflac_oggbs* oggbs = (drflac_oggbs*)((int32_t*)pFlac->pExtraData + pFlac->maxBlockSize*pFlac->cha… in drflac_close()
3836 free(pFlac); in drflac_close()
3839 uint64_t drflac__read_s32__misaligned(drflac* pFlac, uint64_t samplesToRead, int32_t* bufferOut) in drflac__read_s32__misaligned() argument
3841 …unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFrame.… in drflac__read_s32__misaligned()
3845 …assert(pFlac->currentFrame.samplesRemaining > 0 && samplesToRead <= pFlac->currentFrame.samplesRem… in drflac__read_s32__misaligned()
3851 uint64_t totalSamplesInFrame = pFlac->currentFrame.header.blockSize * channelCount; in drflac__read_s32__misaligned()
3852 … uint64_t samplesReadFromFrameSoFar = totalSamplesInFrame - pFlac->currentFrame.samplesRemaining; in drflac__read_s32__misaligned()
3858 switch (pFlac->currentFrame.header.channelAssignment) in drflac__read_s32__misaligned()
3863 … decodedSample = pFlac->currentFrame.subframes[channelIndex].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3865 … int side = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3866 … int left = pFlac->currentFrame.subframes[channelIndex - 1].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3875 … int side = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3876 … int right = pFlac->currentFrame.subframes[channelIndex + 1].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3879 … decodedSample = pFlac->currentFrame.subframes[channelIndex].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3889 … mid = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3890 … side = pFlac->currentFrame.subframes[channelIndex + 1].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3895 … mid = pFlac->currentFrame.subframes[channelIndex - 1].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3896 … side = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3907 … decodedSample = pFlac->currentFrame.subframes[channelIndex].pDecodedSamples[nextSampleInFrame]; in drflac__read_s32__misaligned()
3912 …decodedSample <<= ((32 - pFlac->bitsPerSample) + pFlac->currentFrame.subframes[channelIndex].waste… in drflac__read_s32__misaligned()
3919 pFlac->currentFrame.samplesRemaining -= 1; in drflac__read_s32__misaligned()
3926 uint64_t drflac__seek_forward_by_samples(drflac* pFlac, uint64_t samplesToRead) in drflac__seek_forward_by_samples() argument
3931 if (pFlac->currentFrame.samplesRemaining == 0) in drflac__seek_forward_by_samples()
3933 if (!drflac__read_and_decode_next_frame(pFlac)) { in drflac__seek_forward_by_samples()
3940 pFlac->currentFrame.samplesRemaining -= 1; in drflac__seek_forward_by_samples()
3948 uint64_t drflac_read_s32(drflac* pFlac, uint64_t samplesToRead, int32_t* bufferOut) in drflac_read_s32() argument
3951 if (pFlac == NULL || samplesToRead == 0) { in drflac_read_s32()
3956 return drflac__seek_forward_by_samples(pFlac, samplesToRead); in drflac_read_s32()
3964 if (pFlac->currentFrame.samplesRemaining == 0) in drflac_read_s32()
3966 if (!drflac__read_and_decode_next_frame(pFlac)) { in drflac_read_s32()
3974 …unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFrame.… in drflac_read_s32()
3975 uint64_t totalSamplesInFrame = pFlac->currentFrame.header.blockSize * channelCount; in drflac_read_s32()
3976 … uint64_t samplesReadFromFrameSoFar = totalSamplesInFrame - pFlac->currentFrame.samplesRemaining; in drflac_read_s32()
3980 …uint64_t misalignedSamplesRead = drflac__read_s32__misaligned(pFlac, misalignedSampleCount, buffer… in drflac_read_s32()
3989 … if (alignedSampleCountPerChannel > pFlac->currentFrame.samplesRemaining / channelCount) { in drflac_read_s32()
3990 alignedSampleCountPerChannel = pFlac->currentFrame.samplesRemaining / channelCount; in drflac_read_s32()
3994 unsigned int unusedBitsPerSample = 32 - pFlac->bitsPerSample; in drflac_read_s32()
3996 switch (pFlac->currentFrame.header.channelAssignment) in drflac_read_s32()
4000 …const int* pDecodedSamples0 = pFlac->currentFrame.subframes[0].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4001 …const int* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4008 …bufferOut[i*2+0] = left << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerS… in drflac_read_s32()
4009 …bufferOut[i*2+1] = right << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerS… in drflac_read_s32()
4015 …const int* pDecodedSamples0 = pFlac->currentFrame.subframes[0].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4016 …const int* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4023 …bufferOut[i*2+0] = left << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerS… in drflac_read_s32()
4024 …bufferOut[i*2+1] = right << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerS… in drflac_read_s32()
4030 …const int* pDecodedSamples0 = pFlac->currentFrame.subframes[0].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4031 …const int* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4037 …bufferOut[i*2+0] = ((mid + side) >> 1) << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].… in drflac_read_s32()
4038 …bufferOut[i*2+1] = ((mid - side) >> 1) << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].… in drflac_read_s32()
4045 if (pFlac->currentFrame.header.channelAssignment == 1) // 1 = Stereo in drflac_read_s32()
4048 …const int* pDecodedSamples0 = pFlac->currentFrame.subframes[0].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4049 …const int* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampl… in drflac_read_s32()
4052 …bufferOut[i*2+0] = pDecodedSamples0[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].… in drflac_read_s32()
4053 …bufferOut[i*2+1] = pDecodedSamples1[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].… in drflac_read_s32()
4061 …channelCount)+j] = (pFlac->currentFrame.subframes[j].pDecodedSamples[firstAlignedSampleInFrame + i… in drflac_read_s32()
4073 pFlac->currentFrame.samplesRemaining -= (unsigned int)alignedSamplesRead; in drflac_read_s32()
4078 if (samplesToRead > 0 && pFlac->currentFrame.samplesRemaining > 0) in drflac_read_s32()
4081 if (samplesToRead < pFlac->currentFrame.samplesRemaining) { in drflac_read_s32()
4082 … excessSamplesRead = drflac__read_s32__misaligned(pFlac, samplesToRead, bufferOut); in drflac_read_s32()
4084 …excessSamplesRead = drflac__read_s32__misaligned(pFlac, pFlac->currentFrame.samplesRemaining, buff… in drflac_read_s32()
4098 bool drflac_seek_to_sample(drflac* pFlac, uint64_t sampleIndex) in drflac_seek_to_sample() argument
4100 if (pFlac == NULL) { in drflac_seek_to_sample()
4105 return drflac__seek_to_first_frame(pFlac); in drflac_seek_to_sample()
4109 if (sampleIndex >= pFlac->totalSampleCount) { in drflac_seek_to_sample()
4110 sampleIndex = pFlac->totalSampleCount - 1; in drflac_seek_to_sample()
4117 if (pFlac->container == drflac_container_ogg) in drflac_seek_to_sample()
4119 return drflac_ogg__seek_to_sample(pFlac, sampleIndex); in drflac_seek_to_sample()
4125 if (!drflac__seek_to_sample__seek_table(pFlac, sampleIndex)) { in drflac_seek_to_sample()
4126 return drflac__seek_to_sample__brute_force(pFlac, sampleIndex); in drflac_seek_to_sample()
4138 int32_t* drflac__full_decode_and_close(drflac* pFlac, unsigned int* sampleRateOut, unsigned int* ch… in drflac__full_decode_and_close() argument
4140 assert(pFlac != NULL); in drflac__full_decode_and_close()
4143 uint64_t totalSampleCount = pFlac->totalSampleCount; in drflac__full_decode_and_close()
4156 …while ((samplesRead = (uint64_t)drflac_read_s32(pFlac, sizeof(buffer)/sizeof(buffer[0]), buffer)) … in drflac__full_decode_and_close()
4189 uint64_t samplesDecoded = drflac_read_s32(pFlac, pFlac->totalSampleCount, pSampleData); in drflac__full_decode_and_close()
4190 if (samplesDecoded != pFlac->totalSampleCount) { in drflac__full_decode_and_close()
4197 if (sampleRateOut) *sampleRateOut = pFlac->sampleRate; in drflac__full_decode_and_close()
4198 if (channelsOut) *channelsOut = pFlac->channels; in drflac__full_decode_and_close()
4201 drflac_close(pFlac); in drflac__full_decode_and_close()
4205 drflac_close(pFlac); in drflac__full_decode_and_close()
4216 drflac* pFlac = drflac_open(onRead, onSeek, pUserData); in drflac_open_and_decode() local
4217 if (pFlac == NULL) { in drflac_open_and_decode()
4221 return drflac__full_decode_and_close(pFlac, sampleRate, channels, totalSampleCount); in drflac_open_and_decode()
4231 drflac* pFlac = drflac_open_file(filename); in drflac_open_and_decode_file() local
4232 if (pFlac == NULL) { in drflac_open_and_decode_file()
4236 return drflac__full_decode_and_close(pFlac, sampleRate, channels, totalSampleCount); in drflac_open_and_decode_file()
4246 drflac* pFlac = drflac_open_memory(data, dataSize); in drflac_open_and_decode_memory() local
4247 if (pFlac == NULL) { in drflac_open_and_decode_memory()
4251 return drflac__full_decode_and_close(pFlac, sampleRate, channels, totalSampleCount); in drflac_open_and_decode_memory()