Loading media/libstagefright/MediaExtractorFactory.cpp +22 −1 Original line number Diff line number Diff line Loading @@ -146,9 +146,14 @@ struct ExtractorPlugin : public RefBase { MediaExtractor::ExtractorDef def; void *libHandle; String8 libPath; String8 uuidString; ExtractorPlugin(MediaExtractor::ExtractorDef definition, void *handle, String8 &path) : def(definition), libHandle(handle), libPath(path) { } : def(definition), libHandle(handle), libPath(path) { for (size_t i = 0; i < sizeof MediaExtractor::ExtractorDef::extractor_uuid; i++) { uuidString.appendFormat("%02x", def.extractor_uuid.b[i]); } } ~ExtractorPlugin() { if (libHandle != nullptr) { ALOGV("closing handle for %s %d", libPath.c_str(), def.extractor_version); Loading Loading @@ -307,4 +312,20 @@ void MediaExtractorFactory::UpdateExtractors(const char *newUpdateApkPath) { gPluginsRegistered = true; } status_t MediaExtractorFactory::dump(int fd, const Vector<String16>&) { Mutex::Autolock autoLock(gPluginMutex); String8 out; out.append("Available extractors:\n"); for (auto it = gPlugins->begin(); it != gPlugins->end(); ++it) { out.appendFormat(" %25s: uuid(%s), version(%u), path(%s)\n", (*it)->def.extractor_name, (*it)->uuidString.c_str(), (*it)->def.extractor_version, (*it)->libPath.c_str()); } write(fd, out.string(), out.size()); return OK; } } // namespace android media/libstagefright/include/media/stagefright/MediaExtractorFactory.h +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ public: static sp<IMediaExtractor> CreateFromService( const sp<DataSource> &source, const char *mime = NULL); static void LoadPlugins(const ::std::string& apkPath); static status_t dump(int fd, const Vector<String16>& args); private: static Mutex gPluginMutex; Loading services/mediaextractor/MediaExtractorService.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ sp<IDataSource> MediaExtractorService::makeIDataSource(int fd, int64_t offset, i } status_t MediaExtractorService::dump(int fd, const Vector<String16>& args) { return dumpExtractors(fd, args); return MediaExtractorFactory::dump(fd, args) || dumpExtractors(fd, args); } status_t MediaExtractorService::onTransact(uint32_t code, const Parcel& data, Parcel* reply, Loading Loading
media/libstagefright/MediaExtractorFactory.cpp +22 −1 Original line number Diff line number Diff line Loading @@ -146,9 +146,14 @@ struct ExtractorPlugin : public RefBase { MediaExtractor::ExtractorDef def; void *libHandle; String8 libPath; String8 uuidString; ExtractorPlugin(MediaExtractor::ExtractorDef definition, void *handle, String8 &path) : def(definition), libHandle(handle), libPath(path) { } : def(definition), libHandle(handle), libPath(path) { for (size_t i = 0; i < sizeof MediaExtractor::ExtractorDef::extractor_uuid; i++) { uuidString.appendFormat("%02x", def.extractor_uuid.b[i]); } } ~ExtractorPlugin() { if (libHandle != nullptr) { ALOGV("closing handle for %s %d", libPath.c_str(), def.extractor_version); Loading Loading @@ -307,4 +312,20 @@ void MediaExtractorFactory::UpdateExtractors(const char *newUpdateApkPath) { gPluginsRegistered = true; } status_t MediaExtractorFactory::dump(int fd, const Vector<String16>&) { Mutex::Autolock autoLock(gPluginMutex); String8 out; out.append("Available extractors:\n"); for (auto it = gPlugins->begin(); it != gPlugins->end(); ++it) { out.appendFormat(" %25s: uuid(%s), version(%u), path(%s)\n", (*it)->def.extractor_name, (*it)->uuidString.c_str(), (*it)->def.extractor_version, (*it)->libPath.c_str()); } write(fd, out.string(), out.size()); return OK; } } // namespace android
media/libstagefright/include/media/stagefright/MediaExtractorFactory.h +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ public: static sp<IMediaExtractor> CreateFromService( const sp<DataSource> &source, const char *mime = NULL); static void LoadPlugins(const ::std::string& apkPath); static status_t dump(int fd, const Vector<String16>& args); private: static Mutex gPluginMutex; Loading
services/mediaextractor/MediaExtractorService.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ sp<IDataSource> MediaExtractorService::makeIDataSource(int fd, int64_t offset, i } status_t MediaExtractorService::dump(int fd, const Vector<String16>& args) { return dumpExtractors(fd, args); return MediaExtractorFactory::dump(fd, args) || dumpExtractors(fd, args); } status_t MediaExtractorService::onTransact(uint32_t code, const Parcel& data, Parcel* reply, Loading