From 5db07ea5ed9b103487499b9b4d257e6e999ab07e Mon Sep 17 00:00:00 2001 From: Erik Zandvliet Date: Tue, 19 Feb 2013 10:56:33 +0100 Subject: [PATCH] Converter API New Version for mistinfo --- lib/converter.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ lib/converter.h | 18 ++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 lib/converter.cpp create mode 100644 lib/converter.h diff --git a/lib/converter.cpp b/lib/converter.cpp new file mode 100644 index 00000000..a0f27485 --- /dev/null +++ b/lib/converter.cpp @@ -0,0 +1,44 @@ +#include +#include + +#include "converter.h" +#include "procs.h" + +namespace Converter { + + Converter::Converter(){ + fillFFMpegEncoders(); + } + + void Converter::fillFFMpegEncoders(){ + std::vector cmd; + cmd.push_back("ffmpeg"); + cmd.push_back("-encoders"); + int outFD = -1; + Util::Procs::StartPiped("FFMpegInfo", cmd, 0, &outFD, 0); + FILE * outFile = fdopen( outFD, "r" ); + char * fileBuf = 0; + size_t fileBufLen = 0; + while ( !(feof(outFile) || ferror(outFile))){ + getline(&fileBuf, &fileBufLen, outFile); + if (strstr(fileBuf, "aac") || strstr(fileBuf, "AAC")){ + strtok(fileBuf, " \t"); + allCodecs["ffmpeg"][strtok(NULL, " \t")] = "aac"; + } + if (strstr(fileBuf, "h264") || strstr(fileBuf, "H264")){ + strtok(fileBuf, " \t"); + allCodecs["ffmpeg"][strtok(NULL, " \t")] = "h264"; + } + if (strstr(fileBuf, "mp3") || strstr(fileBuf, "MP3")){ + strtok(fileBuf, " \t"); + allCodecs["ffmpeg"][strtok(NULL, " \t")] = "mp3"; + } + } + fclose( outFile ); + } + + + converterInfo & Converter::getCodecs() { + return allCodecs; + } +} diff --git a/lib/converter.h b/lib/converter.h new file mode 100644 index 00000000..31b18b80 --- /dev/null +++ b/lib/converter.h @@ -0,0 +1,18 @@ +#include +#include + +#include "json.h" + +typedef std::map codecInfo; +typedef std::map converterInfo; + +namespace Converter { + class Converter { + public: + Converter(); + converterInfo & getCodecs(); + private: + void fillFFMpegEncoders(); + converterInfo allCodecs; + }; +}