From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Plugins/Input/in_mp4/AudioSample.h | 80 ++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Src/Plugins/Input/in_mp4/AudioSample.h (limited to 'Src/Plugins/Input/in_mp4/AudioSample.h') diff --git a/Src/Plugins/Input/in_mp4/AudioSample.h b/Src/Plugins/Input/in_mp4/AudioSample.h new file mode 100644 index 00000000..df483b26 --- /dev/null +++ b/Src/Plugins/Input/in_mp4/AudioSample.h @@ -0,0 +1,80 @@ +#ifndef NULLSOFT_IN_MP4_AUDIOSAMPLE_H +#define NULLSOFT_IN_MP4_AUDIOSAMPLE_H + +#include "main.h" + +class AudioSample +{ +public: + AudioSample(size_t maxInput, size_t maxOutput) + { + input = (unsigned __int8 *)calloc(maxInput, sizeof(unsigned __int8)); + inputSize = maxInput; + + output = (__int8 *)calloc(maxOutput, sizeof(__int8)); + outputSize = maxOutput; + + inputValid = outputValid = result = sampleRate = numChannels = + bitsPerSample = bitrate = sampleId = timestamp = duration = offset = 0; + outputCursor = 0; + } + ~AudioSample() + { + free(output); + free(input); + } + bool OK() + { + return input && output; + } + // input + unsigned __int8 *input; + size_t inputSize, inputValid; + MP4SampleId sampleId; + + // output + __int8 *output, *outputCursor; + size_t outputSize, outputValid; + MP4Duration duration, offset, timestamp; + int result; + unsigned int sampleRate, numChannels, bitsPerSample; + unsigned int bitrate; +}; + +class VideoSample +{ +public: + VideoSample(size_t maxInput) + { + input = (unsigned __int8 *)calloc(maxInput, sizeof(unsigned __int8)); + inputSize = maxInput; + timestamp = inputValid = 0; + } + ~VideoSample() + { + free(input); + } + bool OK() + { + return !!input; + } + // input + unsigned __int8 *input; + size_t inputSize, inputValid; + + MP4Timestamp timestamp; +}; + +class DecodedVideoSample +{ +public: + ~DecodedVideoSample() + { + decoder->FreePicture(output,decoder_data); + } + void *output; + void *decoder_data; + MP4VideoDecoder *decoder; + MP4Timestamp timestamp; +}; +#endif \ No newline at end of file -- cgit