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(...)
   {
   }
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
std::string Platform::OpenGLExt() {
	return GetVideoInfo(VIDEO_EXT);
}
Exemplo n.º 5
0
std::string Platform::OpenGLVersion() {
	return GetVideoInfo(VIDEO_VERSION);
}
Exemplo n.º 6
0
std::string Platform::OpenGLRenderer() {
	return GetVideoInfo(VIDEO_RENDERER);
}
Exemplo n.º 7
0
std::string Platform::OpenGLVendor() {
	return GetVideoInfo(VIDEO_VENDOR);
}