| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- #include "AudioContainers.h"
 
- #include <string.h>      // for memcmp
 
- #include <cstddef>       // for byte
 
- #include "BellLogger.h"  // for BellLogger
 
- #include "ADTSContainer.h"  // for AACContainer
 
- #include "CodecType.h"      // for bell
 
- #include "MP3Container.h"   // for MP3Container
 
- namespace bell {
 
- class AudioContainer;
 
- }  // namespace bell
 
- using namespace bell;
 
- std::unique_ptr<bell::AudioContainer> AudioContainers::guessAudioContainer(
 
-     std::istream& istr) {
 
-   std::byte tmp[14];
 
-   istr.read((char*)tmp, sizeof(tmp));
 
-   if (memcmp(tmp, "\xFF\xF1", 2) == 0 || memcmp(tmp, "\xFF\xF9", 2) == 0) {
 
-     // AAC found
 
-     BELL_LOG(info, "AudioContainers",
 
-              "Mime guesser found AAC in ADTS format, creating ADTSContainer");
 
-     return std::make_unique<bell::ADTSContainer>(istr, tmp);
 
-   } else if (memcmp(tmp, "\xFF\xFB", 2) == 0 ||
 
-              memcmp(tmp, "\x49\x44\x33", 3) == 0) {
 
-     // MP3 Found
 
-     BELL_LOG(info, "AudioContainers",
 
-              "Mime guesser found MP3 format, creating MP3Container");
 
-     return std::make_unique<bell::MP3Container>(istr, tmp);
 
-   }
 
-   BELL_LOG(error, "AudioContainers",
 
-            "Mime guesser found no supported format [%X, %X]", tmp[0], tmp[1]);
 
-   return nullptr;
 
- }
 
 
  |