ffmpeg: Estimate duration for some audio formats in GetCodecInfoBytes #414
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
not all formats have a duration baked into the container. in those cases, ffmpeg normally uses the file size and bitrate to estimate the duration, but pipes do not have a file size ... however, we do know the file size from the input parameter (a byte slice,
data
) so calculate the duration ourselves for a few audio formats.Also add a couple of small test files to cover codecs where we do not compile in encoders (mp3 and opus), and extend the existing test cases to also call GetCodecInfoBytes
Note that certain formats are known not to work with this method, eg ogg does not return a bitrate at all. This is covered in test cases as well.