void TemporaryPlaylistProvider::Save() { try { Stream::TextFileStream fs(GetTemporaryPlaylistFilename(), Stream::FileStream::modeCreate, Stream::FileStream::accessWrite, Stream::FileStream::shareRead); boost::shared_ptr<IPlaylist> spIPlaylist = GetCurrentPlaylist(); boost::shared_ptr<Playlist> spPlaylist = boost::dynamic_pointer_cast<Playlist>(spIPlaylist); Playlist& playlist = *spPlaylist; for (size_t i=0,iMax=playlist.GetSize(); i<iMax; i++) { const PlaylistEntry& entry = playlist.GetEntry(i); const VideoInfo& info = GetVideoInfo(entry.m_iId); fs.Write(info.Address()); fs.Write(_T(" ")); fs.Write(info.Name()); fs.WriteEndline(); } } catch(...) { } }
std::string CSysInfo::GetAllInfo (void) { struct sInfo { map<string, string> * pMap; string Part; }; sInfo Infos[ ] = { {&m_mapCPU , "CPU" }, {&m_mapOS , "OS" }, {&m_mapVideo, "Video" }, {&m_mapDisc , "Disk" }, {&m_mapMem , "Memory"} }; std::map<string, string>::iterator im; GetCpuInfo (); GetDiskInfo (); GetOSInfo (); GetVideoInfo (); GetMemInfo (); string strInfo; for(int i = 0; i < sizeof (Infos) / sizeof (sInfo); i++) { strInfo += "[ "; strInfo += Infos[ i ].Part + " ]\n"; for(im = Infos[ i ].pMap->begin (); im != Infos[ i ].pMap->end (); im++) { strInfo += im->first; strInfo += " : "; strInfo += im->second; strInfo += "\n"; } } return strInfo; }
bool MP4MediaFormat::MakeAllStreams(std::shared_ptr<Aka4Splitter>& core) { auto p = core->GetTracks(); if (p->GetCount() > MAX_MP4_STREAM_COUNT) return false; for (unsigned i = 0;i < p->GetCount();i++) { auto t = p->Get(i); if (t->Type != Aka4Splitter::TrackInfo::TrackType_Audio && t->Type != Aka4Splitter::TrackInfo::TrackType_Video && t->Type != Aka4Splitter::TrackInfo::TrackType_Subtitle) continue; auto s = std::make_shared<MP4MediaStream>(t,_stream_count); switch (t->Type) { case Aka4Splitter::TrackInfo::TrackType_Audio: if (!s->ProbeAudio(core)) continue; break; case Aka4Splitter::TrackInfo::TrackType_Video: if (!s->ProbeVideo(core,_force_avc1)) continue; break; case Aka4Splitter::TrackInfo::TrackType_Subtitle: if (!s->ProbeText(core, t->Codec.CodecId.CodecFcc != ISOM_FCC('tx3g') && t->Codec.CodecId.CodecFcc != ISOM_FCC('text'))) continue; break; default: continue; } //bitrate if (t->BitratePerSec > 128) { if (s->GetMainType() == MEDIA_MAIN_TYPE_AUDIO) { AudioBasicDescription audio = {}; if (s->GetAudioInfo()->GetAudioDescription(&audio)) { if (audio.bitrate == 0) UpdateAudioDescriptionBitrate(s->GetAudioInfo(),t->BitratePerSec); } }else if (s->GetMainType() == MEDIA_MAIN_TYPE_VIDEO) { VideoBasicDescription video = {}; if (s->GetVideoInfo()->GetVideoDescription(&video)) { if (video.bitrate == 0) { video.bitrate = t->BitratePerSec; s->GetVideoInfo()->ExternalUpdateVideoDescription(&video); } } } } _streams[_stream_count] = std::move(s); _stream_count++; } return true; }
std::string Platform::OpenGLExt() { return GetVideoInfo(VIDEO_EXT); }
std::string Platform::OpenGLVersion() { return GetVideoInfo(VIDEO_VERSION); }
std::string Platform::OpenGLRenderer() { return GetVideoInfo(VIDEO_RENDERER); }
std::string Platform::OpenGLVendor() { return GetVideoInfo(VIDEO_VENDOR); }