From 9d11b08ad61b1f0d6d7023ce403285d8662efaed Mon Sep 17 00:00:00 2001 From: manuel Date: Wed, 4 Mar 2015 00:23:39 +0100 Subject: sync with upstream --- .../dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp | 153 --------------------- 1 file changed, 153 deletions(-) delete mode 100644 xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp (limited to 'xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp') diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp deleted file mode 100644 index f909c32..0000000 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDFactoryDemuxer.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2005-2013 Team XBMC - * http://xbmc.org - * - * This Program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This Program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with XBMC; see the file COPYING. If not, see - * . - * - */ - -#include "system.h" -#include "DVDFactoryDemuxer.h" - -#include "DVDInputStreams/DVDInputStream.h" -#include "DVDInputStreams/DVDInputStreamHttp.h" -#include "DVDInputStreams/DVDInputStreamPVRManager.h" - -#include "DVDDemuxFFmpeg.h" -#include "DVDDemuxShoutcast.h" -#ifdef HAS_FILESYSTEM_HTSP -#include "DVDDemuxHTSP.h" -#endif -#include "DVDDemuxBXA.h" -#include "DVDDemuxCDDA.h" -#include "DVDDemuxPVRClient.h" -#include "pvr/PVRManager.h" -#include "pvr/addons/PVRClients.h" - -using namespace std; -using namespace PVR; - -CDVDDemux* CDVDFactoryDemuxer::CreateDemuxer(CDVDInputStream* pInputStream, bool fileinfo) -{ - if (!pInputStream) - return NULL; - - // Try to open the AirTunes demuxer - if (pInputStream->IsStreamType(DVDSTREAM_TYPE_FILE) && pInputStream->GetContent().compare("audio/x-xbmc-pcm") == 0 ) - { - // audio/x-xbmc-pcm this is the used codec for AirTunes - // (apples audio only streaming) - unique_ptr demuxer(new CDVDDemuxBXA()); - if(demuxer->Open(pInputStream)) - return demuxer.release(); - else - return NULL; - } - - // Try to open CDDA demuxer - if (pInputStream->IsStreamType(DVDSTREAM_TYPE_FILE) && pInputStream->GetContent().compare("application/octet-stream") == 0) - { - std::string filename = pInputStream->GetFileName(); - if (filename.substr(0, 7) == "cdda://") - { - CLog::Log(LOGDEBUG, "DVDFactoryDemuxer: Stream is probably CD audio. Creating CDDA demuxer."); - - unique_ptr demuxer(new CDVDDemuxCDDA()); - if (demuxer->Open(pInputStream)) - { - return demuxer.release(); - } - } - } - - if (pInputStream->IsStreamType(DVDSTREAM_TYPE_HTTP)) - { - CDVDInputStreamHttp* pHttpStream = (CDVDInputStreamHttp*)pInputStream; - CHttpHeader *header = pHttpStream->GetHttpHeader(); - - /* check so we got the meta information as requested in our http header */ - if( header->GetValue("icy-metaint").length() > 0 ) - { - unique_ptr demuxer(new CDVDDemuxShoutcast()); - if(demuxer->Open(pInputStream)) - return demuxer.release(); - else - return NULL; - } - } - -#ifdef HAS_FILESYSTEM_HTSP - if (pInputStream->IsStreamType(DVDSTREAM_TYPE_HTSP)) - { - unique_ptr demuxer(new CDVDDemuxHTSP()); - if(demuxer->Open(pInputStream)) - return demuxer.release(); - else - return NULL; - } -#endif - - bool streaminfo = true; /* Look for streams before playback */ - if (pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER)) - { - CDVDInputStreamPVRManager* pInputStreamPVR = (CDVDInputStreamPVRManager*)pInputStream; - CDVDInputStream* pOtherStream = pInputStreamPVR->GetOtherStream(); - - /* Don't parse the streaminfo for some cases of streams to reduce the channel switch time */ - bool useFastswitch = URIUtils::IsUsingFastSwitch(pInputStream->GetFileName()); - streaminfo = !useFastswitch; - - if(pOtherStream) - { - /* Used for MediaPortal PVR addon (uses PVR otherstream for playback of rtsp streams) */ - if (pOtherStream->IsStreamType(DVDSTREAM_TYPE_FFMPEG)) - { - unique_ptr demuxer(new CDVDDemuxFFmpeg()); - if(demuxer->Open(pOtherStream, streaminfo)) - return demuxer.release(); - else - return NULL; - } - } - - /* Use PVR demuxer only for live streams */ - if (URIUtils::IsPVRChannel(pInputStream->GetFileName())) - { - std::shared_ptr client; - if (g_PVRClients->GetPlayingClient(client) && - client->HandlesDemuxing()) - { - unique_ptr demuxer(new CDVDDemuxPVRClient()); - if(demuxer->Open(pInputStream)) - return demuxer.release(); - else - return NULL; - } - } - } - - if (pInputStream->IsStreamType(DVDSTREAM_TYPE_FFMPEG)) - { - bool useFastswitch = URIUtils::IsUsingFastSwitch(pInputStream->GetFileName()); - streaminfo = !useFastswitch; - } - - unique_ptr demuxer(new CDVDDemuxFFmpeg()); - if(demuxer->Open(pInputStream, streaminfo, fileinfo)) - return demuxer.release(); - else - return NULL; -} - -- cgit v1.2.3