From 4706bfa7dd5dadc45fc926d397c12271db902c29 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Tue, 25 Jun 2024 22:44:32 +0800 Subject: [PATCH] Add sqlite3 function. --- application/MissionManager/src/IdleState.cpp | 9 ++ application/MissionManager/src/IdleState.h | 3 + application/MissionManager/src/MediaTask.cpp | 6 +- application/MissionManager/src/MediaTask.h | 5 +- .../MissionManager/src/MediaTaskHandle.cpp | 5 +- .../MissionManager/src/MissionStateMachine.h | 2 + .../MissionManager/src/SdCardHandleState.cpp | 11 +++ .../MissionManager/src/SdCardHandleState.h | 1 + middleware/FilesManager/README.md | 29 +++++- .../FilesManager/include/IFilesManager.h | 7 ++ middleware/FilesManager/src/FilesDatabase.h | 1 + .../FilesManager/src/FilesManagerImpl.cpp | 4 + .../FilesManager/src/FilesManagerImpl.h | 1 + middleware/FilesManager/src/IFilesManager.cpp | 13 +++ .../src/sqlite3/FilesDatabase.cpp | 11 ++- .../FilesManager/src/sqlite3/SqliteHandle.cpp | 91 +++++++++++++++++-- .../FilesManager/src/sqlite3/SqliteHandle.h | 15 ++- .../MediaManager/include/IMediaManager.h | 1 + middleware/MediaManager/src/IMediaManager.cpp | 5 + .../StorageManager/include/IStorageManager.h | 2 + .../StorageManager/src/IStorageManager.cpp | 11 +++ middleware/StorageManager/src/StorageBase.cpp | 1 + .../StorageManager/src/StorageManagerImpl.cpp | 14 ++- .../StorageManager/src/StorageManagerImpl.h | 3 + utils/MediaBase/src/FfmpegMuxStream.cpp | 5 +- 25 files changed, 237 insertions(+), 19 deletions(-) diff --git a/application/MissionManager/src/IdleState.cpp b/application/MissionManager/src/IdleState.cpp index e4269bb..74bd9ef 100644 --- a/application/MissionManager/src/IdleState.cpp +++ b/application/MissionManager/src/IdleState.cpp @@ -16,11 +16,14 @@ #include "DataProcessing.h" #include "ILog.h" #include "IStateMachine.h" +#include "MissionStateMachine.h" +#include IdleState::IdleState() : State("IdleState") { // mEventHandle[InternalStateEvent::MEDIA_REPORT_EVENT] = std::bind(&IdleState::MediaReportHandle, this, _1); // mEventHandle[InternalStateEvent::SD_CARD_HANDLE_STATE_SD_STATUS_REPORTED] = // std::bind(&IdleState::SdCardEventHandle, this, _1); + mEventHandle[InternalStateEvent::RESET_KEY_MEDIA_TASK] = std::bind(&IdleState::ResetKeyMediaTaskHandle, this, _1); } void IdleState::GoInState() { @@ -33,4 +36,10 @@ void IdleState::GoOutState() bool IdleState::ExecuteStateMsg(VStateMachineData *msg) { return DataProcessing::EventHandle(msg); +} +bool IdleState::ResetKeyMediaTaskHandle(VStateMachineData *msg) +{ + MissionStateMachine::GetInstance()->DelayMessage(msg); + MissionStateMachine::GetInstance()->SwitchState(SystemState::STORAGE_HANDLE_STATE); + return EXECUTED; } \ No newline at end of file diff --git a/application/MissionManager/src/IdleState.h b/application/MissionManager/src/IdleState.h index f680ba0..0f35b69 100644 --- a/application/MissionManager/src/IdleState.h +++ b/application/MissionManager/src/IdleState.h @@ -25,6 +25,9 @@ public: void GoOutState() override; bool ExecuteStateMsg(VStateMachineData *msg) override; +private: + bool ResetKeyMediaTaskHandle(VStateMachineData *msg); + private: }; #endif \ No newline at end of file diff --git a/application/MissionManager/src/MediaTask.cpp b/application/MissionManager/src/MediaTask.cpp index 24071fa..4c38b06 100644 --- a/application/MissionManager/src/MediaTask.cpp +++ b/application/MissionManager/src/MediaTask.cpp @@ -16,9 +16,11 @@ #include "DataProcessing.h" #include "IMediaManager.h" #include +#include MediaTask::MediaTask(const MediaTaskType &type, const InternalStateEvent &bindEvent, - const std::weak_ptr &iniator) - : mType(type), mBindEvent(bindEvent), mIniator(iniator) + const std::weak_ptr &iniator, const unsigned long &serialNumber, + const std::string &savePath) + : mType(type), mBindEvent(bindEvent), mIniator(iniator), mSerialNumber(serialNumber), mSavePath(savePath) { mResponseData.reset(); } diff --git a/application/MissionManager/src/MediaTask.h b/application/MissionManager/src/MediaTask.h index 5eb77ae..2db036b 100644 --- a/application/MissionManager/src/MediaTask.h +++ b/application/MissionManager/src/MediaTask.h @@ -28,7 +28,8 @@ class MediaTask : public VMediaTask { public: MediaTask(const MediaTaskType &type, const InternalStateEvent &bindEvent, - const std::weak_ptr &iniator); + const std::weak_ptr &iniator, const unsigned long &serialNumber, + const std::string &savePath); virtual ~MediaTask() = default; virtual unsigned int GetTaskTimeOutMs(void); @@ -36,6 +37,8 @@ private: const MediaTaskType mType; const InternalStateEvent mBindEvent; const std::weak_ptr mIniator; + const unsigned long mSerialNumber; + const std::string mSavePath; bool mFinished = false; std::shared_ptr mResponseData; }; diff --git a/application/MissionManager/src/MediaTaskHandle.cpp b/application/MissionManager/src/MediaTaskHandle.cpp index 1658490..fb827fa 100644 --- a/application/MissionManager/src/MediaTaskHandle.cpp +++ b/application/MissionManager/src/MediaTaskHandle.cpp @@ -14,6 +14,7 @@ */ #include "MediaTaskHandle.h" #include "DataProcessing.h" +#include "IFilesManager.h" #include "ILog.h" #include "IMediaManager.h" #include "IMissionManager.h" @@ -38,7 +39,9 @@ void MediaTaskHandle::UnInit(void) void MediaTaskHandle::MakeSingleTask(const InternalStateEvent &bindEvent, const std::shared_ptr &iniator) { - std::shared_ptr task = std::make_shared(MediaTaskType::END, bindEvent, iniator); + InfoToBeSaved info = IFilesManager::GetInstance()->GetInfoForSavingFiles(1); + std::shared_ptr task = + std::make_shared(MediaTaskType::END, bindEvent, iniator, info.mSerialNumber, info.mSavingPath); if (!mMediaHandle) { LogError("MediaHandle is null"); return; diff --git a/application/MissionManager/src/MissionStateMachine.h b/application/MissionManager/src/MissionStateMachine.h index dc039bd..c466a9f 100644 --- a/application/MissionManager/src/MissionStateMachine.h +++ b/application/MissionManager/src/MissionStateMachine.h @@ -22,6 +22,8 @@ #include const bool NOT_EXECUTED = false; const bool EXECUTED = true; +constexpr bool FATHER_HANDLE_MESSAGE = NOT_EXECUTED; +constexpr bool HANDLE_HELPESS = EXECUTED; enum class SystemState { TOP_STATE = 0, diff --git a/application/MissionManager/src/SdCardHandleState.cpp b/application/MissionManager/src/SdCardHandleState.cpp index a86a24e..ab7c2c5 100644 --- a/application/MissionManager/src/SdCardHandleState.cpp +++ b/application/MissionManager/src/SdCardHandleState.cpp @@ -30,6 +30,8 @@ SdCardHandleState::SdCardHandleState() : State("SdCardHandleState"), mSdCardStat mEventHandle[InternalStateEvent::MEDIA_REPORT_EVENT] = std::bind(&SdCardHandleState::MediaReportHandle, this, _1); mEventHandle[InternalStateEvent::SD_CARD_HANDLE_STATE_SD_STATUS_REPORTED] = std::bind(&SdCardHandleState::SdCardEventHandle, this, _1); + mEventHandle[InternalStateEvent::RESET_KEY_MEDIA_TASK] = + std::bind(&SdCardHandleState::ResetKeyMediaTaskHandle, this, _1); } void SdCardHandleState::GoInState() { @@ -86,9 +88,18 @@ bool SdCardHandleState::SdCardEventHandle(VStateMachineData *msg) } mSdCardStatus = data->mData; if (StorageEvent::SD_CARD_INSERT == mSdCardStatus) { + IFilesManager::GetInstance()->Init(); std::shared_ptr message = std::make_shared(static_cast(InternalStateEvent::CHECK_UPGRADE_FILE)); MissionStateMachine::GetInstance()->SendStateMessage(message); } return EXECUTED; +} +bool SdCardHandleState::ResetKeyMediaTaskHandle(VStateMachineData *msg) +{ + if (StorageEvent::SD_CARD_INSERT == mSdCardStatus) { + return FATHER_HANDLE_MESSAGE; + } + LogWarning("Sd card is not inserted, ignore reset key media task.\n"); + return HANDLE_HELPESS; } \ No newline at end of file diff --git a/application/MissionManager/src/SdCardHandleState.h b/application/MissionManager/src/SdCardHandleState.h index c8eb7ef..adf67ba 100644 --- a/application/MissionManager/src/SdCardHandleState.h +++ b/application/MissionManager/src/SdCardHandleState.h @@ -31,6 +31,7 @@ public: protected: bool MediaReportHandle(VStateMachineData *msg); bool SdCardEventHandle(VStateMachineData *msg); + bool ResetKeyMediaTaskHandle(VStateMachineData *msg); private: StorageEvent mSdCardStatus; diff --git a/middleware/FilesManager/README.md b/middleware/FilesManager/README.md index eda0373..801d5a2 100644 --- a/middleware/FilesManager/README.md +++ b/middleware/FilesManager/README.md @@ -10,8 +10,27 @@ ### 1.2.1. 数据库表 +**文件保存表** + +| key | 路径 | 时间 | 类型 | 大小 | 状态 | +| ---- | ---- | ---- | ---- | ---- | ---- | +| 数据库键值 | 文件保存的相对路径 | 录制的时间
可能不准确 | 录制的类型:
PIR
手动
手机app
定时 | 文件大小 | 枚举:
正在拍摄
已完成拍摄
待上传
正在上传
上传完成 | + +**如何应对未知的数据表临加** + +解决基于一个已存在的数据库文件,临加数据元素。 + +拍摄流程: + +1. 拍摄前先创建数据,获取唯一自增键值; +2. 拍摄结束后,更新数据状态为已完成; + +**状态使用TEXT数据类型,如果使用枚举,可能会存在枚举值变化导致的bug。** + ## 1.3. 文件夹管理 +**目录树** + ``` DCIM/ // 根目录 ├── picture // 图片目录 @@ -25,10 +44,18 @@ DCIM/ // 根目录 └── xxx.MP4 ``` +**野数据** + +  插入一些非软件保存文件的sd卡时,忽略这些数据(不做任何处理)。 + ## 1.4. 文件命名规则 **文件类型** 1. PIR抓拍; 2. 定时抓拍; -3. 手动抓拍; \ No newline at end of file +3. 手动抓拍; + +**文件名命名规则** + +基于文件保存表的数据元素:类型+时间+key diff --git a/middleware/FilesManager/include/IFilesManager.h b/middleware/FilesManager/include/IFilesManager.h index 1e086bd..354fc77 100644 --- a/middleware/FilesManager/include/IFilesManager.h +++ b/middleware/FilesManager/include/IFilesManager.h @@ -21,6 +21,12 @@ typedef struct save_file_info save_file_info(const std::string &fileName); const std::string mFileName; } SaveFileInfo; +typedef struct info_to_be_saved +{ + info_to_be_saved(const unsigned long &serialNumber, const std::string mSavingPath); + const unsigned long mSerialNumber; + const std::string mSavingPath; +} InfoToBeSaved; bool CreateFilesManagerModule(void); bool DestroyFilesManagerModule(void); class IFilesManager @@ -32,5 +38,6 @@ public: virtual StatusCode Init(void); virtual StatusCode UnInit(void); virtual StatusCode SaveFile(const SaveFileInfo &fileInfo); + virtual InfoToBeSaved GetInfoForSavingFiles(const unsigned int &count); }; #endif \ No newline at end of file diff --git a/middleware/FilesManager/src/FilesDatabase.h b/middleware/FilesManager/src/FilesDatabase.h index 55b91c7..7cd3318 100644 --- a/middleware/FilesManager/src/FilesDatabase.h +++ b/middleware/FilesManager/src/FilesDatabase.h @@ -25,5 +25,6 @@ public: void Init(void); void UnInit(void); StatusCode DatabaseSaveFile(const SaveFileInfo &fileInfo); + InfoToBeSaved CreateInfoForSavingFiles(const unsigned int &count); }; #endif \ No newline at end of file diff --git a/middleware/FilesManager/src/FilesManagerImpl.cpp b/middleware/FilesManager/src/FilesManagerImpl.cpp index d459663..df6e86f 100644 --- a/middleware/FilesManager/src/FilesManagerImpl.cpp +++ b/middleware/FilesManager/src/FilesManagerImpl.cpp @@ -29,4 +29,8 @@ StatusCode FilesManagerImpl::UnInit(void) StatusCode FilesManagerImpl::SaveFile(const SaveFileInfo &fileInfo) { return FilesDatabase::DatabaseSaveFile(fileInfo); +} +InfoToBeSaved FilesManagerImpl::GetInfoForSavingFiles(const unsigned int &count) +{ + return FilesDatabase::CreateInfoForSavingFiles(count); } \ No newline at end of file diff --git a/middleware/FilesManager/src/FilesManagerImpl.h b/middleware/FilesManager/src/FilesManagerImpl.h index 114bee7..4a8b95c 100644 --- a/middleware/FilesManager/src/FilesManagerImpl.h +++ b/middleware/FilesManager/src/FilesManagerImpl.h @@ -27,5 +27,6 @@ protected: StatusCode Init(void) override; StatusCode UnInit(void) override; StatusCode SaveFile(const SaveFileInfo &fileInfo) override; + InfoToBeSaved GetInfoForSavingFiles(const unsigned int &count) override; }; #endif \ No newline at end of file diff --git a/middleware/FilesManager/src/IFilesManager.cpp b/middleware/FilesManager/src/IFilesManager.cpp index 1fa17a4..67956a5 100644 --- a/middleware/FilesManager/src/IFilesManager.cpp +++ b/middleware/FilesManager/src/IFilesManager.cpp @@ -20,6 +20,10 @@ save_file_info::save_file_info(const std::string &fileName) : mFileName(fileName) { } +info_to_be_saved::info_to_be_saved(const unsigned long &serialNumber, const std::string mSavingPath) + : mSerialNumber(serialNumber), mSavingPath(mSavingPath) +{ +} std::shared_ptr &IFilesManager::GetInstance(std::shared_ptr *impl) { static auto instance = std::make_shared(); @@ -36,13 +40,22 @@ std::shared_ptr &IFilesManager::GetInstance(std::shared_ptr +#define DATABASE_FILE_NAME "/files.db" void FilesDatabase::Init(void) { - SqliteHandle::GetInstance()->Init(); + std::string dbPath = IStorageManager::GetInstance()->GetFilesDatabasePath(); + LogInfo("Database path:%s\n", (dbPath + DATABASE_FILE_NAME).c_str()); + SqliteHandle::GetInstance()->Init(dbPath + DATABASE_FILE_NAME); } void FilesDatabase::UnInit(void) { @@ -42,4 +45,10 @@ StatusCode FilesDatabase::DatabaseSaveFile(const SaveFileInfo &fileInfo) return CreateStatusCode(STATUS_CODE_OK); } return CreateStatusCode(STATUS_CODE_NOT_OK); +} +InfoToBeSaved FilesDatabase::CreateInfoForSavingFiles(const unsigned int &count) +{ + const unsigned long key = SqliteHandle::GetInstance()->CreateFiles(count); + InfoToBeSaved info(key, "."); + return info; } \ No newline at end of file diff --git a/middleware/FilesManager/src/sqlite3/SqliteHandle.cpp b/middleware/FilesManager/src/sqlite3/SqliteHandle.cpp index 3d184c5..81b7a83 100644 --- a/middleware/FilesManager/src/sqlite3/SqliteHandle.cpp +++ b/middleware/FilesManager/src/sqlite3/SqliteHandle.cpp @@ -15,8 +15,24 @@ #include "SqliteHandle.h" #include "ILog.h" #include "sqlite3.h" +#include #include -#include +#include +#define FILES_TABLE "files" +#define TABLE_KEY "key" +#define FILE_PATH "path" +#define CREATE_TIME "time" +#define FILE_TYPE "type" +#define FILE_SIZE "size" +#define FILE_STATUS "status" +#define FILE_TYPE_BE_RECORDING "recording" +#define FILE_TYPE_COMPLETE_RECORD "complete_record" +#define FILE_TYPE_SHOULD_BE_UPLOADED "should_be_uploaded" +#define FILE_TYPE_UPLOADING "uploading" +#define FILE_TYPE_UPLOADED "uploaded" +SqliteHandle::SqliteHandle() : mDb(nullptr) +{ +} std::shared_ptr &SqliteHandle::GetInstance(std::shared_ptr *impl) { static auto instance = std::make_shared(); @@ -31,17 +47,76 @@ std::shared_ptr &SqliteHandle::GetInstance(std::shared_ptr int { + if (argc > 0) { + LogInfo("last_rowid = %s\n", argv[0]); + *(unsigned long int *)last_rowid = strtoul(argv[0], nullptr, 10); + } + return 0; + }; + unsigned long int last_rowid = 0; + const char *sql2 = "SELECT last_insert_rowid();"; + rc = sqlite3_exec(mDb, sql2, last_rowid_lambda, &last_rowid, &err_msg); + if (SQLITE_OK != rc) { + LogError("SQL error: %s\n", err_msg); + sqlite3_free(err_msg); + return 0; + } + return last_rowid - count + 1; } \ No newline at end of file diff --git a/middleware/FilesManager/src/sqlite3/SqliteHandle.h b/middleware/FilesManager/src/sqlite3/SqliteHandle.h index 2aae728..c197800 100644 --- a/middleware/FilesManager/src/sqlite3/SqliteHandle.h +++ b/middleware/FilesManager/src/sqlite3/SqliteHandle.h @@ -14,14 +14,25 @@ */ #ifndef SQLITE_HANDLE_H #define SQLITE_HANDLE_H +#include "sqlite3.h" #include +constexpr int SQLITE_UNDEFINE = -1; class SqliteHandle { public: - SqliteHandle() = default; + SqliteHandle(); virtual ~SqliteHandle() = default; static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); - void Init(void); + void Init(const std::string &dbFileName); void UnInit(void); + void DbInit(sqlite3 *db); + unsigned long int CreateFiles(const unsigned int &count); + bool Add(); + bool Remove(); + bool Modified(); + bool Serach(); + +private: + sqlite3 *mDb; }; #endif \ No newline at end of file diff --git a/middleware/MediaManager/include/IMediaManager.h b/middleware/MediaManager/include/IMediaManager.h index 097c8c8..4c982cc 100644 --- a/middleware/MediaManager/include/IMediaManager.h +++ b/middleware/MediaManager/include/IMediaManager.h @@ -56,6 +56,7 @@ public: VMediaTask() = default; virtual ~VMediaTask() = default; virtual const MediaTaskType GetTaskType(void); + virtual const std::string GetTargetNameForSaving(void); virtual void Response(const std::vector &response); virtual bool IsTaskFinished(void); virtual const signed int GetIsNight(void); diff --git a/middleware/MediaManager/src/IMediaManager.cpp b/middleware/MediaManager/src/IMediaManager.cpp index 68ee030..8bc1879 100644 --- a/middleware/MediaManager/src/IMediaManager.cpp +++ b/middleware/MediaManager/src/IMediaManager.cpp @@ -29,6 +29,11 @@ const MediaTaskType VMediaTask::GetTaskType(void) { return MediaTaskType::END; } +const std::string VMediaTask::GetTargetNameForSaving(void) +{ + const std::string fileName = "Undefined"; + return fileName; +} void VMediaTask::Response(const std::vector &response) { } diff --git a/middleware/StorageManager/include/IStorageManager.h b/middleware/StorageManager/include/IStorageManager.h index 126df99..7a19c73 100644 --- a/middleware/StorageManager/include/IStorageManager.h +++ b/middleware/StorageManager/include/IStorageManager.h @@ -16,6 +16,7 @@ #define I_STORAGE_MANAGER_H #include "StatusCode.h" #include +#include bool CreateStorageManagerModule(void); bool DestroyStorageManagerModule(void); enum class StorageEvent @@ -53,5 +54,6 @@ public: virtual StatusCode SaveFile(const std::string &sourceFile, const std::string &savePaht); virtual const char *PrintStringStorageEvent(const StorageEvent &event); virtual StatusCode GetSdCardInfo(SdCardInfo &info); + virtual std::string GetFilesDatabasePath(void); }; #endif \ No newline at end of file diff --git a/middleware/StorageManager/src/IStorageManager.cpp b/middleware/StorageManager/src/IStorageManager.cpp index 867ccbc..8247a1c 100644 --- a/middleware/StorageManager/src/IStorageManager.cpp +++ b/middleware/StorageManager/src/IStorageManager.cpp @@ -43,21 +43,32 @@ StatusCode IStorageManager::Init(void) } StatusCode IStorageManager::UnInit(void) { + LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n"); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } StatusCode IStorageManager::SetMonitor(std::shared_ptr &monitor) { + LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n"); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } StatusCode IStorageManager::SaveFile(const std::string &sourceFile, const std::string &savePaht) { + LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n"); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); } const char *IStorageManager::PrintStringStorageEvent(const StorageEvent &event) { + LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n"); return "STATUS_CODE_VIRTUAL_FUNCTION"; } StatusCode IStorageManager::GetSdCardInfo(SdCardInfo &info) { + LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n"); return CreateStatusCode(STATUS_CODE_VIRTUAL_FUNCTION); +} +std::string IStorageManager::GetFilesDatabasePath(void) +{ + LogWarning("STATUS_CODE_VIRTUAL_FUNCTION\n"); + std::string path = "undefined"; + return path; } \ No newline at end of file diff --git a/middleware/StorageManager/src/StorageBase.cpp b/middleware/StorageManager/src/StorageBase.cpp index 2320181..a8dc744 100644 --- a/middleware/StorageManager/src/StorageBase.cpp +++ b/middleware/StorageManager/src/StorageBase.cpp @@ -41,6 +41,7 @@ bool StorageBase::CheckDirectory(const char *filepath) } if (stat(path, &st) == -1) { if (errno == ENOENT) { + LogInfo("mkdir:%s\n", path); if (mkdir(path, 0755) == -1) { LogError("mkdir path failed:%s\n", path); free(path); diff --git a/middleware/StorageManager/src/StorageManagerImpl.cpp b/middleware/StorageManager/src/StorageManagerImpl.cpp index b1e3a9b..16430e6 100644 --- a/middleware/StorageManager/src/StorageManagerImpl.cpp +++ b/middleware/StorageManager/src/StorageManagerImpl.cpp @@ -13,13 +13,14 @@ * limitations under the License. */ #include "StorageManagerImpl.h" -// #include "ILog.h" +#include "ILog.h" #include "IStorageManager.h" #include "SdCardHandle.h" #include "StatusCode.h" #include "StorageBase.h" #include #include +#define SYSTEM_FILE_PATH "/system" StatusCode StorageManagerImpl::Init(void) { SdCardHandle::SdCardInit(); @@ -43,4 +44,15 @@ StatusCode StorageManagerImpl::SaveFile(const std::string &sourceFile, const std const char *StorageManagerImpl::PrintStringStorageEvent(const StorageEvent &event) { return StorageBase::PrintStringStorageEvent(event); +} +std::string StorageManagerImpl::GetFilesDatabasePath(void) +{ + std::string path = SD_CARD_MOUNT_PATH SYSTEM_FILE_PATH "/anyfile"; + bool directoryExist = StorageBase::CheckDirectory(path.c_str()); + if (false == directoryExist) { + LogError("Directory not exist.\n"); + path = "Unavailable"; + } + path = SD_CARD_MOUNT_PATH SYSTEM_FILE_PATH; + return path; } \ No newline at end of file diff --git a/middleware/StorageManager/src/StorageManagerImpl.h b/middleware/StorageManager/src/StorageManagerImpl.h index 689c617..acc3175 100644 --- a/middleware/StorageManager/src/StorageManagerImpl.h +++ b/middleware/StorageManager/src/StorageManagerImpl.h @@ -23,10 +23,13 @@ class StorageManagerImpl : public SdCardHandle, public EmmcHandle public: StorageManagerImpl() = default; virtual ~StorageManagerImpl() = default; + +protected: StatusCode Init(void) override; StatusCode UnInit(void) override; StatusCode SetMonitor(std::shared_ptr &monitor) override; StatusCode SaveFile(const std::string &sourceFile, const std::string &savePaht) override; const char *PrintStringStorageEvent(const StorageEvent &event) override; + std::string GetFilesDatabasePath(void) override; }; #endif \ No newline at end of file diff --git a/utils/MediaBase/src/FfmpegMuxStream.cpp b/utils/MediaBase/src/FfmpegMuxStream.cpp index e99f3f2..2a396eb 100644 --- a/utils/MediaBase/src/FfmpegMuxStream.cpp +++ b/utils/MediaBase/src/FfmpegMuxStream.cpp @@ -273,8 +273,8 @@ bool FfmpegMuxStream::add_stream(OutputStream *ost, AVFormatContext *oc, const A c->bit_rate = 400000; /* Resolution must be a multiple of two. */ - c->width = 352; - c->height = 288; + c->width = 1920; + c->height = 2160; /* timebase: This is the fundamental unit of time (in seconds) in terms * of which frame timestamps are represented. For fixed-fps content, * timebase should be 1/framerate and timestamp increments should be @@ -498,6 +498,7 @@ bool FfmpegMuxStream::InitCodecAudio(enum AVCodecID codecId, AVCodec **codec, AV { int ret = 0; *codec = (AVCodec *)avcodec_find_decoder(codecId); + // *codec = (AVCodec *)avcodec_find_encoder_by_name("libfdk_aac"); if (!(*codec)) { LogError("Codec not found\n"); return false;