summaryrefslogtreecommitdiff
path: root/dlna
diff options
context:
space:
mode:
authormethodus <methodus@web.de>2012-09-15 23:44:19 +0200
committermethodus <methodus@web.de>2012-09-15 23:44:19 +0200
commit159592eaa3b7ba9135bf01b4015af0d7914805bf (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /dlna
parent15139183fdea8f65af5a7dbfd354bcedf5886e80 (diff)
downloadvdr-plugin-upnp-159592eaa3b7ba9135bf01b4015af0d7914805bf.tar.gz
vdr-plugin-upnp-159592eaa3b7ba9135bf01b4015af0d7914805bf.tar.bz2
Master geleert
Diffstat (limited to 'dlna')
-rw-r--r--dlna/avdetector.cpp378
-rw-r--r--dlna/dlna.cpp197
-rw-r--r--dlna/profiles/aac.cpp8
-rw-r--r--dlna/profiles/ac3.cpp85
-rw-r--r--dlna/profiles/amr.cpp8
-rw-r--r--dlna/profiles/atrac3plus.cpp8
-rw-r--r--dlna/profiles/container.cpp117
-rw-r--r--dlna/profiles/jpeg.cpp11
-rw-r--r--dlna/profiles/lpcm.cpp8
-rw-r--r--dlna/profiles/mpa.cpp121
-rw-r--r--dlna/profiles/mpeg1.cpp15
-rw-r--r--dlna/profiles/mpeg2.cpp216
-rw-r--r--dlna/profiles/mpeg4_p10.cpp148
-rw-r--r--dlna/profiles/mpeg4_p2.cpp129
-rw-r--r--dlna/profiles/png.cpp11
-rw-r--r--dlna/profiles/wma.cpp8
-rw-r--r--dlna/profiles/wmv9.cpp8
17 files changed, 0 insertions, 1476 deletions
diff --git a/dlna/avdetector.cpp b/dlna/avdetector.cpp
deleted file mode 100644
index 461b375..0000000
--- a/dlna/avdetector.cpp
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * File: avdetector.cpp
- * Author: savop
- *
- * Created on 26. Oktober 2009, 13:01
- */
-
-#include "avdetector.h"
-#include "profiles/container.h"
-#include "object.h"
-#include <sys/stat.h>
-
-cAudioVideoDetector::cAudioVideoDetector(const char* Filename) : mResourceType(UPNP_RESOURCE_FILE) {
- this->mResource.Filename = Filename;
- this->init();
-}
-
-cAudioVideoDetector::cAudioVideoDetector(const cChannel* Channel) : mResourceType(UPNP_RESOURCE_CHANNEL) {
- this->mResource.Channel = Channel;
- this->init();
-}
-
-cAudioVideoDetector::cAudioVideoDetector(const cRecording* Recording) : mResourceType(UPNP_RESOURCE_RECORDING) {
- this->mResource.Recording = Recording;
- this->init();
-}
-
-cAudioVideoDetector::~cAudioVideoDetector(){
- this->uninit();
-}
-
-void cAudioVideoDetector::init(){
- this->mBitrate = 0;
- this->mBitsPerSample = 0;
- this->mColorDepth = 0;
- this->mDLNAProfile = NULL;
- this->mDuration = 0;
- this->mHeight = 0;
- this->mNrAudioChannels = 0;
- this->mSampleFrequency = 0;
- this->mSize = 0;
- this->mWidth = 0;
-}
-
-void cAudioVideoDetector::uninit(){
- this->mBitrate = 0;
- this->mBitsPerSample = 0;
- this->mColorDepth = 0;
- this->mDLNAProfile = NULL;
- this->mDuration = 0;
- this->mHeight = 0;
- this->mNrAudioChannels = 0;
- this->mSampleFrequency = 0;
- this->mSize = 0;
- this->mWidth = 0;
-}
-
-int cAudioVideoDetector::detectProperties(){
- int ret = 0;
- switch(this->mResourceType){
- case UPNP_RESOURCE_CHANNEL:
- ret = this->detectChannelProperties();
- break;
- case UPNP_RESOURCE_RECORDING:
- ret = this->detectRecordingProperties();
- break;
- case UPNP_RESOURCE_FILE:
- ret = this->detectFileProperties();
- break;
- default:
- WARNING("This resource type is not yet implemented.");
- ret = -1;
- break;
- }
-
- return ret;
-}
-
-int cAudioVideoDetector::detectChannelProperties(){
- MESSAGE(VERBOSE_METADATA, "Detecting channel properties");
-
- this->mBitrate = 0;
- this->mBitsPerSample = 0;
- this->mColorDepth = 0;
- this->mDuration = 0;
- this->mHeight = 0;
- this->mNrAudioChannels = 0;
- this->mSampleFrequency = 0;
- this->mSize = (off64_t)-1;
- this->mWidth = 0;
-
- switch(this->mResource.Channel->Vtype()){
- case 0x02:
- // MPEG2 Video
- this->mDLNAProfile = &DLNA_PROFILE_MPEG_TS_SD_EU_ISO;
- break;
- case 0x1B:
- this->mDLNAProfile = &DLNA_PROFILE_AVC_TS_HD_EU_ISO;
- break;
- default:
- ERROR("Unknown video type %d for channel %s!", this->mResource.Channel->Vtype(), this->mResource.Channel->Name());
- this->mDLNAProfile = NULL;
- return -1;
- }
-
- return 0;
-}
-
-int cAudioVideoDetector::detectRecordingProperties(){
-
- if(this->mResource.Recording->IsPesRecording()){
- ERROR("Sorry, PES Recordings are not supported");
- return -1;
- }
-
- int ret = 0;
- AVFormatContext *FormatCtx = NULL;
-
- cIndexFile* Index = new cIndexFile(this->mResource.Recording->FileName(), false, this->mResource.Recording->IsPesRecording());
- cFileName* RecFile = new cFileName(this->mResource.Recording->FileName(), false, false, this->mResource.Recording->IsPesRecording());
- if(Index && Index->Ok()){
- this->mDuration = (off64_t) (Index->Last() * AVDETECTOR_TIME_BASE / SecondsToFrames(1, this->mResource.Recording->FramesPerSecond()));
- MESSAGE(VERBOSE_METADATA,"Record length: %llds", this->mDuration);
-
- uint16_t FileNumber = 0;
- off_t FileOffset = 0;
-
- if(Index->Get(Index->Last()-1, &FileNumber, &FileOffset))
- for(int i = 0; i < FileNumber; i++){
- struct stat Stats;
- RecFile->SetOffset(i+1);
- stat(RecFile->Name(),&Stats);
- this->mSize += (off64_t) Stats.st_size;
- }
-
- av_register_all();
-
- if(!(ret = av_open_input_file(&FormatCtx, RecFile->Name(), NULL, 0, NULL))){
- if((ret = av_find_stream_info(FormatCtx))<0){
- ERROR("AVDetector: Cannot find the stream information");
- }
- else {
- if((ret = this->analyseVideo(FormatCtx))<0){
- ERROR("AVDetector: Error while analysing video");
- }
- if((ret = this->analyseAudio(FormatCtx))<0){
- ERROR("AVDetector: Error while analysing audio");
- }
- if((ret = this->detectDLNAProfile(FormatCtx)<0)){
- ERROR("AVDetector: Error while detecting DLNA Profile");
- }
- }
- }
- }
- else {
- ret = -1;
- }
-
- if(ret != 0){
- ERROR("Error occured while detecting properties");
- }
-
- delete RecFile;
- delete Index;
- av_free(FormatCtx);
-
- return ret;
-}
-
-int cAudioVideoDetector::detectFileProperties(){
- av_register_all();
-
- int ret = 0;
-
- AVFormatContext *FormatCtx = NULL;
-
- if(av_open_input_file(&FormatCtx, this->mResource.Filename, NULL, 0, NULL)){
- ERROR("AVDetector: Error while opening file %s", this->mResource.Filename);
- return -1;
- }
- else {
- if(av_find_stream_info(FormatCtx)<0){
- ERROR("AVDetector: Cannot find the stream information");
- return -1;
- }
- else {
- this->mSize = FormatCtx->file_size;
- this->mDuration = FormatCtx->duration;
-
- MESSAGE(VERBOSE_METADATA, "Format properties: %lld and %lld Bytes", this->mDuration, this->mSize);
-
- if((ret = this->analyseVideo(FormatCtx))<0){
- ERROR("AVDetector: Error while analysing video");
- return ret;
- }
- if((ret = this->analyseAudio(FormatCtx))<0){
- ERROR("AVDetector: Error while analysing audio");
- return ret;
- }
- if((ret = this->detectDLNAProfile(FormatCtx)<0)){
- ERROR("AVDetector: Error while detecting DLNA Profile");
- return ret;
- }
-
- return 0;
- }
- }
-}
-
-int cAudioVideoDetector::analyseVideo(AVFormatContext* FormatCtx)
-{
- AVCodecContext* VideoCodec = cCodecToolKit::getFirstCodecContext(FormatCtx, CODEC_TYPE_VIDEO);
-
- if(!VideoCodec){
- ERROR("AVDetector: codec not found");
- return -1;
- }
-
- AVCodec* Codec = avcodec_find_decoder(VideoCodec->codec_id);
-
- this->mWidth = VideoCodec->width;
- this->mHeight = VideoCodec->height;
- this->mBitrate = VideoCodec->bit_rate;
- this->mSampleFrequency = VideoCodec->sample_rate;
- this->mBitsPerSample = VideoCodec->bits_per_raw_sample;
-
- // TODO: what's the color depth of the stream
-
- const char* codecName = (Codec)?Codec->name:"unknown";
-
- MESSAGE(VERBOSE_METADATA, "AVDetector: %s-stream %dx%d at %d bit/s", codecName, this->mWidth, this->mHeight, this->mBitrate);
-
- return 0;
-}
-
-int cAudioVideoDetector::analyseAudio(AVFormatContext* FormatCtx){
- AVCodecContext* AudioCodec = cCodecToolKit::getFirstCodecContext(FormatCtx, CODEC_TYPE_AUDIO);
-
- if(!AudioCodec){
- ERROR("AVDetector: codec not found");
- return -1;
- }
-
- AVCodec* Codec = avcodec_find_decoder(AudioCodec->codec_id);
-
- this->mNrAudioChannels = AudioCodec->channels;
-
- const char* codecName = (Codec)?Codec->name:"unknown";
-
- MESSAGE(VERBOSE_METADATA, "AVDetector: %s-stream at %d bit/s", codecName, AudioCodec->bit_rate);
-
- return 0;
-}
-
-int cAudioVideoDetector::detectDLNAProfile(AVFormatContext* FormatCtx){
- DLNAProfile* Profile = MPEG2Profiler.probeDLNAProfile(FormatCtx);
- if(Profile!=NULL){
- this->mDLNAProfile = Profile;
- return 0;
- }
- return -1;
-}
-
-AVCodecContext* cCodecToolKit::getFirstCodecContext(AVFormatContext* FormatCtx, CodecType Type){
- return cCodecToolKit::getFirstStream(FormatCtx, Type)->codec;
-}
-
-AVStream* cCodecToolKit::getFirstStream(AVFormatContext* FormatCtx, CodecType Type){
- int Stream = -1; unsigned int i;
- for(i = 0; i < FormatCtx->nb_streams; i++){
- if(FormatCtx->streams[i]->codec->codec_type == Type){
- Stream = i;
- break;
- }
- }
- if(Stream == -1){
- ERROR("AVDetector: No matching stream found");
- return NULL;
- }
-
- return FormatCtx->streams[Stream];
-}
-
-bool cCodecToolKit::matchesAcceptedBitrates(AcceptedBitrates Bitrates, AVCodecContext* Codec){
- if(Codec){
- if(Bitrates.VBR){
- if(Bitrates.bitrates[0] <= Codec->bit_rate && Codec->bit_rate <= Bitrates.bitrates[1] ){
- return true;
- }
- else {
- return false;
- }
- }
- else {
- for(int i=0; Bitrates.bitrates[i]; i++){
- if(Codec->bit_rate == Bitrates.bitrates[i]){
- return true;
- }
- }
- return false;
- }
- }
-
- return false;
-}
-
-bool cCodecToolKit::matchesAcceptedSystemBitrate(AcceptedBitrates Bitrate, AVFormatContext* Format){
- if(Format){
- if(Bitrate.VBR){
- if(Bitrate.bitrates[0] <= Format->bit_rate && Format->bit_rate <= Bitrate.bitrates[1] ){
- return true;
- }
- else {
- return false;
- }
- }
- else {
- for(int i=0; Bitrate.bitrates[i]; i++){
- if(Format->bit_rate == Bitrate.bitrates[i]){
- return true;
- }
- }
- return false;
- }
- }
-
- return false;
-}
-
-bool cCodecToolKit::matchesAcceptedAudioChannels(AcceptedAudioChannels Channels, AVCodecContext* Codec){
- if(Codec){
- if(Codec->channels <= Channels.max_channels){
- if(Codec->channel_layout){
- for(int i=0; Channels.layouts[i]; i++){
- if(Channels.supportsLFE && Codec->channel_layout == (Channels.layouts[i]|CH_LOW_FREQUENCY)){
- return true;
- }
- else if(Codec->channel_layout == Channels.layouts[i]){
- return true;
- }
- }
- }
- else {
- return true;
- }
- }
- }
-
- return false;
-}
-
-bool cCodecToolKit::matchesAcceptedSamplingRates(AcceptedSamplingRates SamplingRates, AVCodecContext* Codec){
- if(Codec){
- for(int i=0; SamplingRates.rates[i]; i++){
- if(Codec->sample_rate == SamplingRates.rates[i]){
- return true;
- }
- }
- }
-
- return false;
-}
-
-bool cCodecToolKit::matchesAcceptedResolutions(AcceptedResolution *Resolutions, int Count, AVStream* Stream){
- if(Stream && Resolutions && Stream->codec){
- for(int i=0; i < Count; i++){
- if( Stream->codec->width == Resolutions[i].width &&
- Stream->codec->height == Resolutions[i].height &&
- Stream->r_frame_rate.num == Resolutions[i].fps &&
- Stream->r_frame_rate.den == Resolutions[i].multiplier
- ){
- return true;
- }
- }
- }
-
- return false;
-} \ No newline at end of file
diff --git a/dlna/dlna.cpp b/dlna/dlna.cpp
deleted file mode 100644
index 24da1be..0000000
--- a/dlna/dlna.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * File: dlna.cpp
- * Author: savop
- *
- * Created on 18. April 2009, 23:27
- */
-
-#include <stdio.h>
-#include <vdr/tools.h>
-#include "upnp/dlna.h"
-
-cDlna* cDlna::mInstance = NULL;
-
-cDlna* cDlna::getInstance(void){
- if(cDlna::mInstance == NULL)
- cDlna::mInstance = new cDlna;
-
- if(cDlna::mInstance != NULL)
- return cDlna::mInstance;
- else return NULL;
-}
-
-cDlna::cDlna() {
- this->mRegisteredProfiles.clear();
- this->init();
-}
-
-cDlna::~cDlna() {
- this->mRegisteredProfiles.clear();
-}
-
-
-void cDlna::init(void){
- this->registerProfiles();
-}
-
-void cDlna::registerProfile(DLNAProfile* Profile){
- this->mRegisteredProfiles.push_back(Profile);
-}
-
-void cDlna::registerProfiles(){
- this->registerProfile(&DLNA_PROFILE_MPEG_TS_SD_EU);
- this->registerProfile(&DLNA_PROFILE_AVC_TS_HD_EU);
- this->registerProfile(&DLNA_PROFILE_MPEG_TS_SD_EU_ISO);
- this->registerProfile(&DLNA_PROFILE_AVC_TS_HD_EU_ISO);
-}
-
-const char* cDlna::getSupportedProtocols(){
- cString Protocols;
- list<DLNAProfile*>::iterator it;
- for(it=this->mRegisteredProfiles.begin(); it!=this->mRegisteredProfiles.end(); it++){
- Protocols = cString::sprintf("%s%s%s",(*Protocols)?*Protocols:"",(*Protocols)?",":"",this->getProtocolInfo(*it, DLNA_SUPPORTED_FLAGS));
- }
- return Protocols;
-}
-
-const char* cDlna::getProtocolInfo(DLNAProfile *Profile, int Op, const char* Ps, int Ci, unsigned int Flags){
- cString DLNA4thField = NULL;
- DLNA4thField = cString::sprintf("DLNA.ORG_PN=%s", Profile->ID);
- if(Op != -1)
- DLNA4thField = cString::sprintf("%s;DLNA.ORG_OP=%d",*DLNA4thField,Op);
- if(Ps != NULL)
- DLNA4thField = cString::sprintf("%s;DLNA.ORG_PS=%s",*DLNA4thField,Ps);
- if(Ci != -1)
- DLNA4thField = cString::sprintf("%s;DLNA.ORG_CI=%d",*DLNA4thField,Ci);
- if(Flags != 0)
- DLNA4thField = cString::sprintf("%s;DLNA.ORG_FLAGS=%.8x%.24x",*DLNA4thField,Flags,0);
-
- char* Protocol = strdup(cString::sprintf("http-get:*:%s:%s", Profile->mime, *DLNA4thField));
- return Protocol;
-}
-
-const char* cDlna::getDeviceDescription(const char* URLBase){
- cString description = cString::sprintf(
- "<?xml version = \"1.0\" encoding = \"utf-8\"?> \
- <root xmlns=\"%s\" xmlns:%s=\"%s\"> \
- <specVersion> \
- <major>1</major> \
- <minor>0</minor> \
- </specVersion> \
- <URLBase>%s</URLBase> \
- <device> \
- <deviceType>%s</deviceType> \
- <friendlyName>%s</friendlyName> \
- <manufacturer>%s</manufacturer> \
- <manufacturerURL>%s</manufacturerURL> \
- <modelDescription>%s</modelDescription> \
- <modelName>%s</modelName> \
- <modelNumber>%s</modelNumber> \
- <modelURL>%s</modelURL> \
- <serialNumber>%s</serialNumber> \
- <UDN>%s</UDN> \
- <iconList> \
- <icon> \
- <mimetype>%s</mimetype> \
- <width>%d</width> \
- <height>%d</height> \
- <depth>%d</depth> \
- <url>%s</url> \
- </icon> \
- <icon> \
- <mimetype>%s</mimetype> \
- <width>%d</width> \
- <height>%d</height> \
- <depth>%d</depth> \
- <url>%s</url> \
- </icon> \
- <icon> \
- <mimetype>%s</mimetype> \
- <width>%d</width> \
- <height>%d</height> \
- <depth>%d</depth> \
- <url>%s</url> \
- </icon> \
- <icon> \
- <mimetype>%s</mimetype> \
- <width>%d</width> \
- <height>%d</height> \
- <depth>%d</depth> \
- <url>%s</url> \
- </icon> \
- </iconList> \
- <presentationURL>%s</presentationURL> \
- <%s:X_DLNADOC>%s</dlna:X_DLNADOC> \
- <serviceList> \
- <service> \
- <serviceType>%s</serviceType> \
- <serviceId>%s</serviceId> \
- <SCPDURL>%s</SCPDURL> \
- <controlURL>%s</controlURL> \
- <eventSubURL>%s</eventSubURL> \
- </service> \
- <service> \
- <serviceType>%s</serviceType> \
- <serviceId>%s</serviceId> \
- <SCPDURL>%s</SCPDURL> \
- <controlURL>%s</controlURL> \
- <eventSubURL>%s</eventSubURL> \
- </service> \
- </serviceList> \
- </device> \
- </root>",
- UPNP_XMLNS_UPNP_DEV, // UPnP Device Namespace (2)
- UPNP_XMLNS_PREFIX_DLNA, // DLNA Namespace prefix (2)
- UPNP_XMLNS_DLNA_DEV, // DLNA Device Namespace (2)
- URLBase, // URLBase (IP:PORT) (7)
- UPNP_DEVICE_TYPE, // UPnP Device Type (MediaServer:1) (9)
- UPNP_DEVICE_FRIENDLY_NAME, // UPnP Device Friendly Name (10)
- UPNP_DEVICE_MANUFACTURER, // UPnP Device Manufacturer (11)
- UPNP_DEVICE_MANUFACTURER_URL, // UPnP Device Manufacturer URL (12)
- UPNP_DEVICE_MODEL_DESCRIPTION, // UPnP Device Model Description (13)
- UPNP_DEVICE_MODEL_NAME, // UPnP Device Model Name (14)
- UPNP_DEVICE_MODEL_NUMBER, // UPnP Device Model Number (15)
- UPNP_DEVICE_MODEL_URL, // UPnP Device Model URL (16)
- UPNP_DEVICE_SERIAL_NUMBER, // UPnP Device Serialnumber (17)
- UPNP_DEVICE_UDN, // UPnP Device UDN (18)
- DLNA_ICON_JPEG_LRG_24.mime, // UPnP Device Large Icon JPEG Mimetype (21)
- DLNA_ICON_JPEG_LRG_24.width, // UPnP Device Large Icon Width (22)
- DLNA_ICON_JPEG_LRG_24.height, // UPnP Device Large Icon Height (23)
- DLNA_ICON_JPEG_LRG_24.bitDepth, // UPnP Device Large Icon Bit Depth (24)
- UPNP_DEVICE_ICON_JPEG_LRG, // UPnP Device Large Icon Path (25)
- DLNA_ICON_JPEG_SM_24.mime, // UPnP Device Small Icon JPEG Mimetype (28)
- DLNA_ICON_JPEG_SM_24.width, // UPnP Device Small Icon Width (29)
- DLNA_ICON_JPEG_SM_24.height, // UPnP Device Small Icon Height (30)
- DLNA_ICON_JPEG_SM_24.bitDepth, // UPnP Device Small Icon Bit Depth (31)
- UPNP_DEVICE_ICON_JPEG_SM, // UPnP Device Small Icon Path (32)
- DLNA_ICON_PNG_SM_24A.mime, // UPnP Device Small Icon PNG Mimetype (35)
- DLNA_ICON_PNG_SM_24A.width, // UPnP Device Small Icon Width (36)
- DLNA_ICON_PNG_SM_24A.height, // UPnP Device Small Icon Height (37)
- DLNA_ICON_PNG_SM_24A.bitDepth, // UPnP Device Small Icon Bit Depth (38)
- UPNP_DEVICE_ICON_PNG_SM, // UPnP Device Small Icon Path (39)
- DLNA_ICON_PNG_LRG_24A.mime, // UPnP Device Large Icon PNG Mimetype (42)
- DLNA_ICON_PNG_LRG_24A.width, // UPnP Device Large Icon Width (43)
- DLNA_ICON_PNG_LRG_24A.height, // UPnP Device Large Icon Height (44)
- DLNA_ICON_PNG_LRG_24A.bitDepth, // UPnP Device Large Icon Bit Depth (45)
- UPNP_DEVICE_ICON_PNG_LRG, // UPnP Device Large Icon Path (46)
- UPNP_WEB_PRESENTATION_URL, // UPnP Presentation URL (49)
- UPNP_XMLNS_PREFIX_DLNA, // DLNA Namespace prefix (50)
- DLNA_DEVICE_DMS_1_5, // DLNA Device Type/Version (50)
- UPNP_CMS_SERVICE_TYPE, // UPnP CMS Service Type
- UPNP_CMS_SERVICE_ID, // UPnP CMS Service ID
- UPNP_CMS_SCPD_URL, // UPnP CMS Service Description
- UPNP_CMS_CONTROL_URL, // UPnP CMS Control URL
- UPNP_CMS_EVENT_URL, // UPnP CMS Event URL
- UPNP_CDS_SERVICE_TYPE, // UPnP CDS Service Type
- UPNP_CDS_SERVICE_ID, // UPnP CDS Service ID
- UPNP_CDS_SCPD_URL, // UPnP CDS Service Description
- UPNP_CDS_CONTROL_URL, // UPnP CDS Control URL
- UPNP_CDS_EVENT_URL // UPnP CDS Event URL
-// UPNP_AVT_SERVICE_TYPE, // UPnP AVT Service Type
-// UPNP_AVT_SERVICE_ID, // UPnP AVT Service ID
-// UPNP_AVT_SCPD_URL, // UPnP AVT Service Description
-// UPNP_AVT_CONTROL_URL, // UPnP AVT Control URL
-// UPNP_AVT_EVENT_URL // UPnP AVT Event URL
- );
- return strdup0(*description);
-} \ No newline at end of file
diff --git a/dlna/profiles/aac.cpp b/dlna/profiles/aac.cpp
deleted file mode 100644
index e2b77e2..0000000
--- a/dlna/profiles/aac.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: profiles_aac.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:31
- */
-
-#include "profiles/aac.h"
diff --git a/dlna/profiles/ac3.cpp b/dlna/profiles/ac3.cpp
deleted file mode 100644
index 0b7841e..0000000
--- a/dlna/profiles/ac3.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * File: profiles_ac3.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:04
- */
-
-#include "profiles/ac3.h"
-#include "util.h"
-#include "avdetector.h"
-
-DLNAProfile DLNA_PROFILE_AC3 = { "AC3" , "audio/vnd.dolby.dd-raw" };
-
-/**
- * Accepted audio bitrates
- *
- * This are all accepted audio bitrates of this profile
- * The standard says 64Kbps - 640Kbps. However, 32Kbps is used as
- * lower limit to accept low bitrate streams in ATSC and DVB broadcast streams.
- */
-AcceptedBitrates DLNA_BITRATES_AC3 = { true, {Kbps(32), Kbps(448)}};
-AcceptedBitrates DLNA_BITRATES_XAC3 = { true, {Kbps(64), Kbps(640)}};
-
-/**
- * Accepted audio channel layouts
- *
- * This are all accepted audio channel layouts including LFE.
- * Though the LFE is optional and not explicitly mentioned in the documents to be supported
- * by this profile, it is supported by this plugin as it makes no sense to do not.
- * However, this may result in difficulties on some players if they follow the standard correctly
- *
- */
-AcceptedAudioChannels DLNA_AUDIOCHANNELS_AC3 = { 5, { CHANNEL_LAYOUT_10, CHANNEL_LAYOUT_20, CHANNEL_LAYOUT_21,
- CHANNEL_LAYOUT_22, CHANNEL_LAYOUT_30, CHANNEL_LAYOUT_31,
- CHANNEL_LAYOUT_32, CHANNEL_LAYOUT_10_1, CHANNEL_LAYOUT_20_1,
- CHANNEL_LAYOUT_21_1, CHANNEL_LAYOUT_22_1, CHANNEL_LAYOUT_30_1,
- CHANNEL_LAYOUT_31_1, CHANNEL_LAYOUT_5_1
- }, true };
-
-/**
- * Accepted audio sample rates
- *
- * This are all accepted audio sample rates
- * In ATSC systems only 48kHz are supported, the other two sample rates were
- * removed from standard. However, I do not specialice here if there is no
- * real reason for.
- */
-AcceptedSamplingRates DLNA_SAMPLINGRATES_AC3 = {{ KHz(32), KHz(44.1), KHz(48) }};
-AcceptedSamplingRates DLNA_SAMPLINGRATES_XAC3 = {{ KHz(48) }};
-
-AudioPortionProfile cAC3Profiler::probeAudioProfile(AVFormatContext* FormatCtx){
- AVCodecContext* AudioCodec = cCodecToolKit::getFirstCodecContext(FormatCtx, CODEC_TYPE_AUDIO);
-
- if(AudioCodec->codec_id == CODEC_ID_AC3){
- // VBR
- if(cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_AC3, AudioCodec) &&
- cCodecToolKit::matchesAcceptedAudioChannels(DLNA_AUDIOCHANNELS_AC3, AudioCodec) &&
- cCodecToolKit::matchesAcceptedSamplingRates(DLNA_SAMPLINGRATES_AC3, AudioCodec)){
- return DLNA_APP_AC3;
- }
- else if(cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_XAC3, AudioCodec) &&
- cCodecToolKit::matchesAcceptedAudioChannels(DLNA_AUDIOCHANNELS_AC3, AudioCodec) &&
- cCodecToolKit::matchesAcceptedSamplingRates(DLNA_SAMPLINGRATES_XAC3, AudioCodec)){
- return DLNA_APP_XAC3;
- }
- else {
- return DLNA_APP_UNKNOWN;
- }
- }
- else {
- return DLNA_APP_UNKNOWN;
- }
-}
-
-DLNAProfile* cAC3Profiler::probeDLNAProfile(AVFormatContext* FormatCtx){
- AudioPortionProfile Profile = AC3Profiler.probeAudioProfile(FormatCtx);
- if(Profile==DLNA_APP_AC3 || Profile==DLNA_APP_XAC3){
- return &DLNA_PROFILE_AC3;
- }
- else {
- return NULL;
- }
-}
-
-cAC3Profiler AC3Profiler; \ No newline at end of file
diff --git a/dlna/profiles/amr.cpp b/dlna/profiles/amr.cpp
deleted file mode 100644
index 8c7696f..0000000
--- a/dlna/profiles/amr.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: profiles_amr.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:05
- */
-
-#include "profiles/amr.h"
diff --git a/dlna/profiles/atrac3plus.cpp b/dlna/profiles/atrac3plus.cpp
deleted file mode 100644
index 95f28fd..0000000
--- a/dlna/profiles/atrac3plus.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: profiles_atrac3plus.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:06
- */
-
-#include "profiles/atrac3plus.h" \ No newline at end of file
diff --git a/dlna/profiles/container.cpp b/dlna/profiles/container.cpp
deleted file mode 100644
index a4418ef..0000000
--- a/dlna/profiles/container.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * File: container.cpp
- * Author: savop
- *
- * Created on 8. Januar 2010, 11:45
- */
-
-#include "profiles/container.h"
-#include "../../common.h"
-#include <vdr/remux.h>
-
-#define DLNA_MPEG_TS_SIZE_ISO TS_SIZE
-#define DLNA_MPEG_TS_SIZE 192
-
-enum VideoFormats {
- FORMAT_MPEG1,
- FORMAT_MPEG2,
- FORMAT_MP4,
-#ifdef WITH_WINDOWS_MEDIA
- FORMAT_WMF,
-#endif
-};
-
-static const struct VideoFormatMapping {
- const char* name;
- VideoFormats format;
-} VideoFormatMap[] = {
- { "mpeg", FORMAT_MPEG2 },
- { "mpegts", FORMAT_MPEG2 },
-#ifdef WITH_WINDOWS_MEDIA
- { "asf", FORMAT_WMF }
-#endif
-};
-
-VideoContainerProfile cContainerDetector::detect(AVFormatContext* Ctx){
- if(Ctx && Ctx->iformat){
- for(int i=0; VideoFormatMap[i].name; i++){
- if(!strcasecmp(VideoFormatMap[i].name,Ctx->iformat->name))
- switch(VideoFormatMap[i].format){
- case FORMAT_MPEG1:
- return cContainerDetector::detectMPEG1Container(Ctx);
- case FORMAT_MPEG2:
- return cContainerDetector::detectMPEG2Container(Ctx);
- case FORMAT_MP4:
- return cContainerDetector::detectMP4Container(Ctx);
-#ifdef WITH_WINDOWS_MEDIA
- case FORMAT_WMF:
- return cContainerDetector::detectWMFContainer(Ctx);
-#endif
- default:
- break;
- }
- }
- ERROR("AVDetector: Unsupported input format \"%s\"", Ctx->iformat->name);
- }
- else {
- ERROR("AVDetector: Input format not found");
- }
- return DLNA_VCP_UNKNOWN;
-}
-
-VideoContainerProfile cContainerDetector::detectMPEG2Container(AVFormatContext* Ctx){
-
- uint8_t buf[5*1024];
- int len;
- int64_t pos;
- int PaketSize = 0;
- VideoContainerProfile VCP = DLNA_VCP_UNKNOWN;
-
- /* read the first 1024 bytes to get packet size */
- pos = url_ftell(Ctx->pb);
- len = get_buffer(Ctx->pb, buf, sizeof(buf));
- if (len != sizeof(buf)) PaketSize = 0;
-
- for(int i = 0; i<DLNA_MPEG_TS_SIZE; i++){
- if(buf[i]==0x47 && buf[i+DLNA_MPEG_TS_SIZE_ISO]==0x47){
- MESSAGE(VERBOSE_METADATA, "AVDetector: MPEG TS ISO Video container found");
- PaketSize = DLNA_MPEG_TS_SIZE_ISO;
- VCP = DLNA_VCP_MPEG2_TS_ISO;
- break;
- }
- else if(buf[i+4]==0x47 && buf[i+DLNA_MPEG_TS_SIZE]==0x47){
- PaketSize = DLNA_MPEG_TS_SIZE;
- if(buf[i]==0x00 && buf[i+1]==0x00 && buf[i+1]==0x00 && buf[i+1]==0x00){
- MESSAGE(VERBOSE_METADATA, "AVDetector: MPEG TS DLNA with zero value time stamp found");
- VCP = DLNA_VCP_MPEG2_TS_T;
- break;
- }
- else {
- MESSAGE(VERBOSE_METADATA, "AVDetector: MPEG TS DLNA with non-zero value time stamp found");
- VCP = DLNA_VCP_MPEG2_TS;
- break;
- }
- }
- else {
- VCP = DLNA_VCP_UNKNOWN;
- }
- }
-
- // TODO: MPEG-PS-Header
-
- return VCP;
-}
-
-VideoContainerProfile cContainerDetector::detectMPEG1Container(AVFormatContext* ){
- return DLNA_VCP_UNKNOWN;
-}
-
-VideoContainerProfile cContainerDetector::detectMP4Container(AVFormatContext* ){
- return DLNA_VCP_UNKNOWN;
-}
-
-#ifdef WITH_WINDOWS_MEDIA
-VideoContainerProfile cContainerDetector::detectWMFContainer(AVFormatContext* ){
- return DLNA_VCP_UNKNOWN;
-}
-#endif \ No newline at end of file
diff --git a/dlna/profiles/jpeg.cpp b/dlna/profiles/jpeg.cpp
deleted file mode 100644
index 61e1149..0000000
--- a/dlna/profiles/jpeg.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * File: profiles_jpeg.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 12:59
- */
-
-#include "profiles/jpeg.h"
-
-DLNAIconProfile DLNA_ICON_JPEG_SM_24 = { "image/jpeg", 48, 48, 24 };
-DLNAIconProfile DLNA_ICON_JPEG_LRG_24 = { "image/jpeg", 120, 120, 24 };
diff --git a/dlna/profiles/lpcm.cpp b/dlna/profiles/lpcm.cpp
deleted file mode 100644
index d80b259..0000000
--- a/dlna/profiles/lpcm.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: profiles_lpcm.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:07
- */
-
-#include "profiles/lpcm.h" \ No newline at end of file
diff --git a/dlna/profiles/mpa.cpp b/dlna/profiles/mpa.cpp
deleted file mode 100644
index 09ba77b..0000000
--- a/dlna/profiles/mpa.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * File: profiles_mp3.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:08
- */
-
-#include "profiles/mpa.h"
-#include "profiles/profile_data.h"
-#include "avdetector.h"
-
-DLNAProfile DLNA_PROFILE_MP3 = { "MP3" , "audio/mpeg" };
-DLNAProfile DLNA_PROFILE_MP3X = { "MP3X" , "audio/mpeg" };
-
-AcceptedBitrates DLNA_BITRATES_MPEG1_L1_DVB = { true, { Kbps(32), Kbps(448) }};
-AcceptedBitrates DLNA_BITRATES_MPEG1_L2_DVB = { true, { Kbps(32), Kbps(384) }};
-AcceptedBitrates DLNA_BITRATES_MPEG1_L3_VBR = { true, { Kbps(32), Kbps(320) }};
-AcceptedBitrates DLNA_BITRATES_MPEG1_L3_CBR = { false, { Kbps(32), Kbps(40),
- Kbps(48), Kbps(56),
- Kbps(64), Kbps(80),
- Kbps(96), Kbps(112),
- Kbps(128), Kbps(160),
- Kbps(192), Kbps(224),
- Kbps(256), Kbps(320)}};
-AcceptedBitrates DLNA_BITRATES_MPEG1_L3X_VBR = { true, { Kbps(8), Kbps(320) }};
-AcceptedBitrates DLNA_BITRATES_MPEG1_L3X_CBR = { false, { Kbps(8), Kbps(16), Kbps(24),
- Kbps(32), Kbps(40),
- Kbps(48), Kbps(56),
- Kbps(64), Kbps(80),
- Kbps(96), Kbps(112),
- Kbps(128), Kbps(160),
- Kbps(192), Kbps(224),
- Kbps(256), Kbps(320)}};
-AcceptedBitrates DLNA_BITRATES_MPEG1_L2 = { true, { Kbps(32), Kbps(384) }};
-
-AcceptedSamplingRates DLNA_SAMPLINGRATES_MPEG1_L1_DVB = {{ KHz(16), KHz(22.05), KHz(24),
- KHz(32), KHz(44.1), KHz(48) }};
-AcceptedSamplingRates DLNA_SAMPLINGRATES_MPEG1_L2 = {{ KHz(32), KHz(44.1), KHz(48) }};
-AcceptedSamplingRates DLNA_SAMPLINGRATES_MPEG1_L2_DVB = {{ KHz(16), KHz(22.05), KHz(24),
- KHz(32), KHz(44.1), KHz(48) }};
-AcceptedSamplingRates DLNA_SAMPLINGRATES_MPEG1_L3 = {{ KHz(32), KHz(44.1), KHz(48) }};
-AcceptedSamplingRates DLNA_SAMPLINGRATES_MPEG1_L3X = {{ KHz(16), KHz(22.05), KHz(24),
- KHz(32), KHz(44.1), KHz(48) }};
-
-AcceptedAudioChannels DLNA_AUDIOCHANNELS_MPEG1_L1_DVB = { 6, { CHANNEL_LAYOUT_10, CHANNEL_LAYOUT_20,
- CHANNEL_LAYOUT_21, CHANNEL_LAYOUT_22,
- CHANNEL_LAYOUT_30, CHANNEL_LAYOUT_31,
- CHANNEL_LAYOUT_32, }, false };
-AcceptedAudioChannels DLNA_AUDIOCHANNELS_MPEG1_L2_DVB = { 6, { CHANNEL_LAYOUT_10, CHANNEL_LAYOUT_20,
- CHANNEL_LAYOUT_21, CHANNEL_LAYOUT_22,
- CHANNEL_LAYOUT_30, CHANNEL_LAYOUT_31,
- CHANNEL_LAYOUT_32, }, false };
-
-AcceptedAudioChannels DLNA_AUDIOCHANNELS_MPEG1_L2 = { 2, { CHANNEL_LAYOUT_10, CHANNEL_LAYOUT_20 }, false };
-AcceptedAudioChannels DLNA_AUDIOCHANNELS_MPEG1_L3 = { 2, { CHANNEL_LAYOUT_10, CHANNEL_LAYOUT_20 }, false };
-AcceptedAudioChannels DLNA_AUDIOCHANNELS_MPEG1_L3X = { 2, { CHANNEL_LAYOUT_10, CHANNEL_LAYOUT_20 }, false };
-
-AudioPortionProfile cMPEGAudioProfiler::probeAudioProfile(AVFormatContext* FormatCtx){
- AVCodecContext* AudioCodec = cCodecToolKit::getFirstCodecContext(FormatCtx, CODEC_TYPE_AUDIO);
-
- if(AudioCodec->codec_id == CODEC_ID_MP1){
- if(cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_MPEG1_L1_DVB, AudioCodec) &&
- cCodecToolKit::matchesAcceptedSamplingRates(DLNA_SAMPLINGRATES_MPEG1_L1_DVB, AudioCodec) &&
- cCodecToolKit::matchesAcceptedAudioChannels(DLNA_AUDIOCHANNELS_MPEG1_L1_DVB, AudioCodec)){
- return DLNA_APP_MPEG1_L1;
- }
- else {
- return DLNA_APP_UNKNOWN;
- }
- }
- else if(AudioCodec->codec_id == CODEC_ID_MP2){
- if(cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_MPEG1_L2, AudioCodec) &&
- cCodecToolKit::matchesAcceptedSamplingRates(DLNA_SAMPLINGRATES_MPEG1_L2, AudioCodec) &&
- cCodecToolKit::matchesAcceptedAudioChannels(DLNA_AUDIOCHANNELS_MPEG1_L2, AudioCodec)){
- return DLNA_APP_MPEG1_L2;
- }
- else if(cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_MPEG1_L2_DVB, AudioCodec) &&
- cCodecToolKit::matchesAcceptedSamplingRates(DLNA_SAMPLINGRATES_MPEG1_L2_DVB, AudioCodec) &&
- cCodecToolKit::matchesAcceptedAudioChannels(DLNA_AUDIOCHANNELS_MPEG1_L2_DVB, AudioCodec)){
- return DLNA_APP_MPEG1_L2;
- }
- else {
- return DLNA_APP_UNKNOWN;
- }
- }
- else if(AudioCodec->codec_id == CODEC_ID_MP3){
- if((cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_MPEG1_L3_VBR, AudioCodec) ||
- cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_MPEG1_L3_CBR, AudioCodec)) &&
- cCodecToolKit::matchesAcceptedSamplingRates(DLNA_SAMPLINGRATES_MPEG1_L3, AudioCodec) &&
- cCodecToolKit::matchesAcceptedAudioChannels(DLNA_AUDIOCHANNELS_MPEG1_L3, AudioCodec)){
- return DLNA_APP_MPEG1_L3;
- }
- else if((cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_MPEG1_L3X_VBR, AudioCodec) ||
- cCodecToolKit::matchesAcceptedBitrates(DLNA_BITRATES_MPEG1_L3X_CBR, AudioCodec)) &&
- cCodecToolKit::matchesAcceptedSamplingRates(DLNA_SAMPLINGRATES_MPEG1_L3X, AudioCodec) &&
- cCodecToolKit::matchesAcceptedAudioChannels(DLNA_AUDIOCHANNELS_MPEG1_L3X, AudioCodec)){
- return DLNA_APP_MPEG1_L3X;
- }
- else {
- return DLNA_APP_UNKNOWN;
- }
- }
- else {
- return DLNA_APP_UNKNOWN;
- }
-}
-
-DLNAProfile* cMPEGAudioProfiler::probeDLNAProfile(AVFormatContext* FormatCtx){
- AudioPortionProfile Profile = MPEGAudioProfiler.probeAudioProfile(FormatCtx);
- if(Profile == DLNA_APP_MPEG1_L3){
- return &DLNA_PROFILE_MP3;
- }
- else if(Profile == DLNA_APP_MPEG1_L3X){
- return &DLNA_PROFILE_MP3X;
- }
- else {
- return NULL;
- }
-}
-
-cMPEGAudioProfiler MPEGAudioProfiler; \ No newline at end of file
diff --git a/dlna/profiles/mpeg1.cpp b/dlna/profiles/mpeg1.cpp
deleted file mode 100644
index 9f2d67b..0000000
--- a/dlna/profiles/mpeg1.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * File: profiles_mpeg1.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:34
- */
-
-#include "profiles/mpeg1.h"
-
-DLNAProfile DLNA_PROFILE_MPEG1 = { "MPEG1", "video/mpeg" };
-
-DLNAVideoMapping MPEG1_VIDEO_MAP[] =
-{
- { &DLNA_PROFILE_MPEG1, DLNA_VCP_MPEG1, DLNA_VPP_MPEG1, DLNA_APP_MPEG1_L2 }
-}; \ No newline at end of file
diff --git a/dlna/profiles/mpeg2.cpp b/dlna/profiles/mpeg2.cpp
deleted file mode 100644
index 2816095..0000000
--- a/dlna/profiles/mpeg2.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * File: profiles_mpeg2.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:35
- */
-
-#include "profiles/mpeg2.h"
-#include "profiles/container.h"
-#include "util.h"
-#include "profiles/ac3.h"
-#include "avdetector.h"
-
-AcceptedBitrates DLNA_VIDEOBITRATES_MPEG2_TS_NA_SYSTEM = { true, {1, Mbps(19.3927)}};
-AcceptedBitrates DLNA_VIDEOBITRATES_MPEG2_TS_EU = { true, {1, Mbps(15)}};
-AcceptedBitrates DLNA_VIDEOBITRATES_MPEG2_PS = { true, {1, Mbps(9.80)}};
-
-AcceptedResolution DLNA_RESOLUTIONS_MPEG2_PAL[] = { { 720, 576, 25, 1 },
- { 704, 576, 25, 1 }, ///< compatibility mode for PAL
- { 544, 576, 25, 1 },
- { 480, 576, 25, 1 },
- { 352, 576, 25, 1 },
- { 352, 288, 25, 1 } };
-AcceptedResolution DLNA_RESOLUTIONS_MPEG2_NTSC_SD[] = { { 720, 480, 30, 1001},
- { 704, 480, 30, 1001},
- { 704, 480, 30, 1},
- { 704, 480, 24, 1001},
- { 704, 480, 24, 1},
- { 640, 480, 30, 1001},
- { 640, 480, 30, 1},
- { 640, 480, 24, 1001},
- { 640, 480, 24, 1},
- { 544, 480, 30, 1001},
- { 480, 480, 30, 1001},
- { 352, 480, 30, 1001} };
-AcceptedResolution DLNA_RESOLUTIONS_MPEG2_NTSC_HD[] = { { 1920, 1080, 30, 1001},
- { 1920, 1080, 30, 1},
- { 1920, 1080, 24, 1001},
- { 1920, 1080, 24, 1},
- { 1280, 720, 30, 1001},
- { 1280, 720, 30, 1},
- { 1280, 720, 24, 1001},
- { 1280, 720, 24, 1},
- { 1440, 1080, 30, 1001},
- { 1440, 1080, 30, 1},
- { 1440, 1080, 24, 1001},
- { 1440, 1080, 24, 1},
- { 1280, 1080, 30, 1001},
- { 1280, 1080, 30, 1},
- { 1280, 1080, 24, 1001},
- { 1280, 1080, 24, 1} };
-
-DLNAProfile DLNA_PROFILE_MPEG_PS_NTSC = { "MPEG_PS_NTSC", "video/mpeg" };
-DLNAProfile DLNA_PROFILE_MPEG_PS_NTSC_XAC3 = { "MPEG_PS_NTSC_XAC3", "video/mpeg" };
-DLNAProfile DLNA_PROFILE_MPEG_PS_PAL = { "MPEG_PS_PAL", "video/mpeg" };
-DLNAProfile DLNA_PROFILE_MPEG_PS_PAL_XAC3 = { "MPEG_PS_PAL_XAC3", "video/mpeg"};
-
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA = { "MPEG_TS_SD_NA", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_T = { "MPEG_TS_SD_NA_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_ISO = { "MPEG_TS_SD_NA_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA = { "MPEG_TS_HD_NA", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_T = { "MPEG_TS_HD_NA_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_ISO = { "MPEG_TS_HD_NA_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_XAC3 = { "MPEG_TS_SD_NA_XAC3", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_XAC3_T = { "MPEG_TS_SD_NA_XAC3_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_XAC3_ISO = { "MPEG_TS_SD_NA_XAC3_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_XAC3 = { "MPEG_TS_HD_NA_XAC3", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_XAC3_T = { "MPEG_TS_HD_NA_XAC3_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_XAC3_ISO = { "MPEG_TS_HD_NA_XAC3_ISO", "video/mpeg"};
-
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_EU = { "MPEG_TS_SD_EU", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_EU_T = { "MPEG_TS_SD_EU_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_SD_EU_ISO = { "MPEG_TS_SD_EU_ISO", "video/mpeg"};
-
-// The Korean profiles are almost identical to the north american profiles.
-//DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO = { "MPEG_TS_SD_KO", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_T = { "MPEG_TS_SD_KO_T", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_ISO = { "MPEG_TS_SD_KO_ISO", "video/mpeg"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO = { "MPEG_TS_HD_KO", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_T = { "MPEG_TS_HD_KO_T", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_ISO = { "MPEG_TS_HD_KO_ISO", "video/mpeg"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_XAC3 = { "MPEG_TS_SD_KO_XAC3", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_XAC3_T = { "MPEG_TS_SD_KO_XAC3_T", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_XAC3_ISO = { "MPEG_TS_SD_KO_XAC3_ISO", "video/mpeg"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_XAC3 = { "MPEG_TS_HD_KO_XAC3", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_XAC3_T = { "MPEG_TS_HD_KO_XAC3_T", "video/vnd.dlna.mpeg-tts"};
-//DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_XAC3_ISO = { "MPEG_TS_HD_KO_XAC3_ISO", "video/mpeg"};
-
-DLNAProfile DLNA_PROFILE_MPEG_TS_MP_LL_AAC = { "MPEG_TS_MP_LL_AAC", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_MP_LL_AAC_T = { "MPEG_TS_MP_LL_AAC_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG_TS_MP_LL_AAC_ISO = { "MPEG_TS_MP_LL_AAC_ISO", "video/mpeg"};
-
-// The Elementary Stream profiles are currently not supported as they are only supported within RTP streaming
-//DLNAProfile DLNA_PROFILE_MPEG_ES_PAL = { "MPEG_ES_PAL", "video/mpeg"};
-//DLNAProfile DLNA_PROFILE_MPEG_ES_NTSC = { "MPEG_ES_NTSC", "video/mpeg"};
-//DLNAProfile DLNA_PROFILE_MPEG_ES_PAL_XAC3 = { "MPEG_ES_PAL_XAC3", "video/mpeg"};
-//DLNAProfile DLNA_PROFILE_MPEG_ES_NTSC_XAC3 = { "MPEG_ES_NTSC_XAC3", "video/mpeg"};
-
-DLNAVideoMapping MPEG2_VIDEO_MAP[] = {
- { &DLNA_PROFILE_MPEG_PS_NTSC, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_LPCM},
- { &DLNA_PROFILE_MPEG_PS_NTSC, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_MPEG1_L2},
- { &DLNA_PROFILE_MPEG_PS_NTSC, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_MPEG2_L2},
- { &DLNA_PROFILE_MPEG_PS_NTSC, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_PS_NTSC_XAC3, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_PS_PAL, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_LPCM},
- { &DLNA_PROFILE_MPEG_PS_PAL, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG1_L2},
- { &DLNA_PROFILE_MPEG_PS_PAL, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG2_L2},
- { &DLNA_PROFILE_MPEG_PS_PAL, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_PS_PAL_XAC3, DLNA_VCP_MPEG2_PS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_TS_SD_NA, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_SD_NA_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_SD_NA_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_SD_NA_XAC3, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_TS_SD_NA_XAC3_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_TS_SD_NA_XAC3_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_NTSC_SD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_TS_HD_NA, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_NTSC_HD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_HD_NA_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_NTSC_HD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_HD_NA_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_NTSC_HD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_HD_NA_XAC3, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_NTSC_HD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_TS_HD_NA_XAC3_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_NTSC_HD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_TS_HD_NA_XAC3_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_NTSC_HD, DLNA_APP_XAC3},
- { &DLNA_PROFILE_MPEG_TS_SD_EU, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG1_L1},
- { &DLNA_PROFILE_MPEG_TS_SD_EU, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG1_L2},
- { &DLNA_PROFILE_MPEG_TS_SD_EU, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG2_L2},
- { &DLNA_PROFILE_MPEG_TS_SD_EU, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG1_L1},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG1_L2},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG2_L2},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG1_L1},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG1_L2},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_MPEG2_L2},
- { &DLNA_PROFILE_MPEG_TS_SD_EU_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_PAL_SD, DLNA_APP_AC3},
- { &DLNA_PROFILE_MPEG_TS_MP_LL_AAC, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG2_MP_LL, DLNA_APP_AAC},
- { &DLNA_PROFILE_MPEG_TS_MP_LL_AAC_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG2_MP_LL, DLNA_APP_AAC},
- { &DLNA_PROFILE_MPEG_TS_MP_LL_AAC_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG2_MP_LL, DLNA_APP_AAC},
-
-};
-
-DLNAProfile* cMPEG2Profiler::probeDLNAProfile(AVFormatContext* FormatCtx){
- VideoContainerProfile VCP = MPEG2Profiler.probeContainerProfile(FormatCtx);
- VideoPortionProfile VPP = MPEG2Profiler.probeVideoProfile(FormatCtx);
- AudioPortionProfile APP = MPEG2Profiler.probeAudioProfile(FormatCtx);
-
- MESSAGE(VERBOSE_METADATA, "VCP: %d, VPP: %d, APP: %d", VCP, VPP, APP);
-
- for(int i=0; i < (int) (sizeof(MPEG2_VIDEO_MAP)/sizeof(DLNAVideoMapping)); i++){
- if( MPEG2_VIDEO_MAP[i].VideoContainer == VCP &&
- MPEG2_VIDEO_MAP[i].VideoProfile == VPP &&
- MPEG2_VIDEO_MAP[i].AudioProfile == APP){
- return MPEG2_VIDEO_MAP[i].Profile;
- }
- }
-
- return NULL;
-}
-
-VideoPortionProfile cMPEG2Profiler::probeVideoProfile(AVFormatContext* FormatCtx){
- AVCodecContext* VideoCodec = cCodecToolKit::getFirstCodecContext(FormatCtx, CODEC_TYPE_VIDEO);
- AVStream* VideoStream = cCodecToolKit::getFirstStream(FormatCtx, CODEC_TYPE_VIDEO);
-
- MESSAGE(VERBOSE_METADATA, "Codec-ID: %d", VideoCodec->codec_id);
- MESSAGE(VERBOSE_METADATA, "Codec-Name: %s", VideoCodec->codec_name);
- MESSAGE(VERBOSE_METADATA, "Codec Bitrate: %d", VideoCodec->bit_rate);
- MESSAGE(VERBOSE_METADATA, "Codec width: %d", VideoCodec->coded_width);
- MESSAGE(VERBOSE_METADATA, "Codec height: %d", VideoCodec->coded_height);
- MESSAGE(VERBOSE_METADATA, "Codec Profile: %d", VideoCodec->profile);
- MESSAGE(VERBOSE_METADATA, "Codec Level: %d", VideoCodec->level);
- MESSAGE(VERBOSE_METADATA, "Codec Chroma: %d", VideoCodec->pix_fmt);
- MESSAGE(VERBOSE_METADATA, "Stream aspect ratio %d:%d", VideoStream->sample_aspect_ratio.num, VideoStream->sample_aspect_ratio.den);
- MESSAGE(VERBOSE_METADATA, "Stream fps %2.3f", av_q2d(VideoStream->r_frame_rate));
-
- if(VideoCodec->codec_id == CODEC_ID_MPEG2VIDEO){
- if(cCodecToolKit::matchesAcceptedResolutions(DLNA_RESOLUTIONS_MPEG2_PAL,
- (int) (sizeof(DLNA_RESOLUTIONS_MPEG2_PAL)/sizeof(AcceptedResolution)) , VideoStream) &&
- (cCodecToolKit::matchesAcceptedBitrates(DLNA_VIDEOBITRATES_MPEG2_TS_EU, VideoCodec) ||
- cCodecToolKit::matchesAcceptedBitrates(DLNA_VIDEOBITRATES_MPEG2_PS, VideoCodec))){
- return DLNA_VPP_MPEG2_PAL_SD;
- }
- else if(cCodecToolKit::matchesAcceptedResolutions(DLNA_RESOLUTIONS_MPEG2_NTSC_SD,
- (int) (sizeof(DLNA_RESOLUTIONS_MPEG2_NTSC_SD)/sizeof(AcceptedResolution)), VideoStream) &&
- (cCodecToolKit::matchesAcceptedSystemBitrate(DLNA_VIDEOBITRATES_MPEG2_TS_NA_SYSTEM, FormatCtx) ||
- cCodecToolKit::matchesAcceptedBitrates(DLNA_VIDEOBITRATES_MPEG2_PS, VideoCodec))) {
- return DLNA_VPP_MPEG2_NTSC_SD;
- }
- else if(cCodecToolKit::matchesAcceptedResolutions(DLNA_RESOLUTIONS_MPEG2_NTSC_HD,
- (int) (sizeof(DLNA_RESOLUTIONS_MPEG2_NTSC_HD)/sizeof(AcceptedResolution)), VideoStream) &&
- cCodecToolKit::matchesAcceptedSystemBitrate(DLNA_VIDEOBITRATES_MPEG2_TS_NA_SYSTEM, FormatCtx)) {
- return DLNA_VPP_MPEG2_NTSC_HD;
- }
- }
-
- return DLNA_VPP_UNKNOWN;
-}
-
-AudioPortionProfile cMPEG2Profiler::probeAudioProfile(AVFormatContext* FormatCtx){
- AudioPortionProfile Profile;
- if((Profile = AC3Profiler.probeAudioProfile(FormatCtx)) != DLNA_APP_UNKNOWN){
- MESSAGE(VERBOSE_METADATA, "AC3: %d", Profile);
- return Profile;
- }
- // First codec is not AC3... trying other codecs
- else if((Profile = MPEGAudioProfiler.probeAudioProfile(FormatCtx)) != DLNA_APP_UNKNOWN){
- MESSAGE(VERBOSE_METADATA, "MPA: %d", Profile);
- return Profile;
- }
- else {
- return DLNA_APP_UNKNOWN;
- }
-}
-
-VideoContainerProfile cMPEG2Profiler::probeContainerProfile(AVFormatContext* FormatCtx){
- return cContainerDetector::detect(FormatCtx);
-}
-
-cMPEG2Profiler MPEG2Profiler; \ No newline at end of file
diff --git a/dlna/profiles/mpeg4_p10.cpp b/dlna/profiles/mpeg4_p10.cpp
deleted file mode 100644
index 80e91b4..0000000
--- a/dlna/profiles/mpeg4_p10.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * File: profiles_mpeg4_p10.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:38
- */
-
-#include "profiles/mpeg4_p10.h"
-
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_MULT5 = {"AVC_TS_MP_SD_AAC_MULT5", ""}; ///< AVC main profile AAC 5.1
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_MULT5_T = {"AVC_TS_MP_SD_AAC_MULT5_T", ""}; ///< AVC main profile AAC 5.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_MULT5_ISO = {"AVC_TS_MP_SD_AAC_MULT5_ISO", ""}; ///< AVC main profile AAC 5.1 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_HEAAC_L2 = {"AVC_TS_MP_SD_HEAAC_L2", ""}; ///< AVC main profile HEAAC L2
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_HEAAC_L2_T = {"AVC_TS_MP_SD_HEAAC_L2_T", ""}; ///< AVC main profile HEAAC L2 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_HEAAC_L2_ISO = {"AVC_TS_MP_SD_HEAAC_L2_ISO", ""}; ///< AVC main profile HEAAC L2 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_MPEG1_L3 = {"AVC_TS_MP_SD_MPEG1_L3", ""}; ///< AVC main profile MP3
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_MPEG1_L3_T = {"AVC_TS_MP_SD_MPEG1_L3_T", ""}; ///< AVC main profile MP3 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_MPEG1_L3_ISO = {"AVC_TS_MP_SD_MPEG1_L3_ISO", ""}; ///< AVC main profile MP3 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AC3 = {"AVC_TS_MP_SD_AC3", ""}; ///< AVC main profile AC3
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AC3_T = {"AVC_TS_MP_SD_AC3_T", ""}; ///< AVC main profile AC3 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AC3_ISO = {"AVC_TS_MP_SD_AC3_ISO", ""}; ///< AVC main profile AC3 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP = {"AVC_TS_MP_SD_AAC_LTP", ""}; ///< AVC main profile AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_T = {"AVC_TS_MP_SD_AAC_LTP_T", ""}; ///< AVC main profile AAC LTP with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_ISO = {"AVC_TS_MP_SD_AAC_LTP_ISO", ""}; ///< AVC main profile AAC LTP without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT5 = {"AVC_TS_MP_SD_AAC_LTP_MULT5", ""}; ///< AVC main profile AAC LTP 5.1
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT5_T = {"AVC_TS_MP_SD_AAC_LTP_MULT5_T", ""}; ///< AVC main profile AAC LTP 5.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT5_ISO = {"AVC_TS_MP_SD_AAC_LTP_MULT5_ISO", ""}; ///< AVC main profile AAC LTP 5.1 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT7 = {"AVC_TS_MP_SD_AAC_LTP_MULT7", ""}; ///< AVC main profile AAC LTP 7.1
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT7_T = {"AVC_TS_MP_SD_AAC_LTP_MULT7_T", ""}; ///< AVC main profile AAC LTP 7.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT7_ISO = {"AVC_TS_MP_SD_AAC_LTP_MULT7_ISO", ""}; ///< AVC main profile AAC LTP 7.1 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_BSAC = {"AVC_TS_MP_SD_BSAC", ""}; ///< AVC main profile BSAC
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_BSAC_T = {"AVC_TS_MP_SD_BSAC_T", ""}; ///< AVC main profile BSAC with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_BSAC_ISO = {"AVC_TS_MP_SD_BSAC_ISO", ""}; ///< AVC main profile BSAC without time stamp
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_MULT5 = {"AVC_MP4_MP_SD_AAC_MULT5", ""}; ///< AVC main profile MP4 AAC 5.1
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_HEAAC_L2 = {"AVC_MP4_MP_SD_HEAAC_L2", ""}; ///< AVC main profile MP4 HEAAC L2
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_MPEG1_L3 = {"AVC_MP4_MP_SD_MPEG1_L3", ""}; ///< AVC main profile MP4 MP3
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AC3 = {"AVC_MP4_MP_SD_AC3", ""}; ///< AVC main profile MP4 AC3
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_LTP = {"AVC_MP4_MP_SD_AAC_LTP", ""}; ///< AVC main profile MP4 AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_LTP_MULT5 = {"AVC_MP4_MP_SD_AAC_LTP_MULT5", ""}; ///< AVC main profile MP4 AAC LTP 5.1
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_LTP_MULT7 = {"AVC_MP4_MP_SD_AAC_LTP_MULT7", ""}; ///< AVC main profile MP4 AAC LTP 7.1
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_ATRAC3plus = {"AVC_MP4_MP_SD_ATRAC3plus", ""}; ///< AVC main profile MP4 ATRAC3+
-DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_BSAC = {"AVC_MP4_MP_SD_BSAC", ""}; ///< AVC main profile MP4 BSAC
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BP_L3L_SD_AAC = {"AVC_MP4_BP_L3L_SD_AAC", ""}; ///< AVC baseline profile MP4 AAC
-DLNAProfile DLNA_PROFILE_AVC_MP4_BP_L3L_SD_HEAAC = {"AVC_MP4_BP_L3L_SD_HEAAC", ""}; ///< AVC baseline profile MP4 HEAAC
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BP_L3_SD_AAC = {"AVC_MP4_BP_L3_SD_AAC", ""}; ///< AVC baseline profile standard MP4 AAC
-
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_MULT5 = {"AVC_TS_BL_CIF30_AAC_MULT5", ""}; ///< AVC CIF30 baseline profile AAC 5.1
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_MULT5_T = {"AVC_TS_BL_CIF30_AAC_MULT5_T", ""}; ///< AVC CIF30 baseline profile AAC 5.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_MULT5_ISO = {"AVC_TS_BL_CIF30_AAC_MULT5_ISO", ""}; ///< AVC CIF30 baseline profile AAC 5.1 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_HEAAC_L2 = {"AVC_TS_BL_CIF30_HEAAC_L2", ""}; ///< AVC CIF30 baseline profile HEAAC L2
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_HEAAC_L2_T = {"AVC_TS_BL_CIF30_HEAAC_L2_T", ""}; ///< AVC CIF30 baseline profile HEAAC L2 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_HEAAC_L2_ISO = {"AVC_TS_BL_CIF30_HEAAC_L2_ISO", ""}; ///< AVC CIF30 baseline profile HEAAC L2 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_MPEG1_L3 = {"AVC_TS_BL_CIF30_MPEG1_L3", ""}; ///< AVC CIF30 baseline profile MP3
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_MPEG1_L3_T = {"AVC_TS_BL_CIF30_MPEG1_L3_T", ""}; ///< AVC CIF30 baseline profile MP3 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_MPEG1_L3_ISO = {"AVC_TS_BL_CIF30_MPEG1_L3_ISO", ""}; ///< AVC CIF30 baseline profile MP3 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AC3 = {"AVC_TS_BL_CIF30_AC3", ""}; ///< AVC CIF30 baseline profile AC3
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AC3_T = {"AVC_TS_BL_CIF30_AC3_T", ""}; ///< AVC CIF30 baseline profile AC3 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AC3_ISO = {"AVC_TS_BL_CIF30_AC3_ISO", ""}; ///< AVC CIF30 baseline profile AC3 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP = {"AVC_TS_BL_CIF30_AAC_LTP", ""}; ///< AVC CIF30 baseline profile AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_T = {"AVC_TS_BL_CIF30_AAC_LTP_T", ""}; ///< AVC CIF30 baseline profile AAC LTP with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_ISO = {"AVC_TS_BL_CIF30_AAC_LTP_ISO", ""}; ///< AVC CIF30 baseline profile AAC LTP without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_MULT5 = {"AVC_TS_BL_CIF30_AAC_LTP_MULT5", ""}; ///< AVC CIF30 baseline profile AAC LTP 5.1
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_MULT5_T = {"AVC_TS_BL_CIF30_AAC_LTP_MULT5_T", ""}; ///< AVC CIF30 baseline profile AAC LTP 5.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_MULT5_ISO = {"AVC_TS_BL_CIF30_AAC_LTP_MULT5_ISO", ""}; ///< AVC CIF30 baseline profile AAC LTP 5.1 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_940 = {"AVC_TS_BL_CIF30_AAC_940", ""}; ///< AVC CIF30 baseline profile AAC 940
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_940_T = {"AVC_TS_BL_CIF30_AAC_940_T", ""}; ///< AVC CIF30 baseline profile AAC 940 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_940_ISO = {"AVC_TS_BL_CIF30_AAC_940_ISO", ""}; ///< AVC CIF30 baseline profile AAC 940 without time stamp
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AAC_MULT5 = {"AVC_MP4_BL_CIF30_AAC_MULT5", ""}; ///< AVC CIF30 baseline profile MP4 AAC 5.1
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_HEAAC_L2 = {"AVC_MP4_BL_CIF30_HEAAC_L2", ""}; ///< AVC CIF30 baseline profile MP4 HEAAC L2
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_MPEG1_L3 = {"AVC_MP4_BL_CIF30_MPEG1_L3", ""}; ///< AVC CIF30 baseline profile MP4 MP3
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AC3 = {"AVC_MP4_BL_CIF30_AC3", ""}; ///< AVC CIF30 baseline profile MP4 AC3
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AAC_LTP = {"AVC_MP4_BL_CIF30_AAC_LTP", ""}; ///< AVC CIF30 baseline profile MP4 AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AAC_LTP_MULT5 = {"AVC_MP4_BL_CIF30_AAC_LTP_MULT5", ""}; ///< AVC CIF30 baseline profile MP4 AAC LTP 5.1
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_BSAC = {"AVC_MP4_BL_CIF30_BSAC", ""}; ///< AVC CIF30 baseline profile BSAC
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_BSAC_MULT5 = {"AVC_MP4_BL_CIF30_BSAC_MULT5", ""}; ///< AVC CIF30 baseline profile BSAC 5.1
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_L2_CIF30_AAC = {"AVC_MP4_BL_L2_CIF30_AAC", ""}; ///< AVC CIF30 baseline profile L2 AAC
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_HEAAC = {"AVC_MP4_BL_CIF15_HEAAC", ""}; ///< AVC CIF15 baseline profile HEAAC
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AMR = {"AVC_MP4_BL_CIF15_AMR", ""}; ///< AVC CIF15 baseline profile AMR
-
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_MULT5 = {"AVC_TS_MP_HD_AAC_MULT5", ""}; ///< AVC main profile AAC 5.1
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_MULT5_T = {"AVC_TS_MP_HD_AAC_MULT5_T", ""}; ///< AVC main profile AAC 5.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_MULT5_ISO = {"AVC_TS_MP_HD_AAC_MULT5_ISO", ""}; ///< AVC main profile AAC 5.1 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_HEAAC_L2 = {"AVC_TS_MP_HD_HEAAC_L2", ""}; ///< AVC main profile HEAAC L2
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_HEAAC_L2_T = {"AVC_TS_MP_HD_HEAAC_L2_T", ""}; ///< AVC main profile HEAAC L2 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_HEAAC_L2_ISO = {"AVC_TS_MP_HD_HEAAC_L2_ISO", ""}; ///< AVC main profile HEAAC L2 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_MPEG1_L3 = {"AVC_TS_MP_HD_MPEG1_L3", ""}; ///< AVC main profile MP3
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_MPEG1_L3_T = {"AVC_TS_MP_HD_MPEG1_L3_T", ""}; ///< AVC main profile MP3 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_MPEG1_L3_ISO = {"AVC_TS_MP_HD_MPEG1_L3_ISO", ""}; ///< AVC main profile MP3 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AC3 = {"AVC_TS_MP_HD_AC3", ""}; ///< AVC main profile AC3
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AC3_T = {"AVC_TS_MP_HD_AC3_T", ""}; ///< AVC main profile AC3 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AC3_ISO = {"AVC_TS_MP_HD_AC3_ISO", ""}; ///< AVC main profile AC3 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC = {"AVC_TS_MP_HD_AAC", ""}; ///< AVC main profile AAC
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_T = {"AVC_TS_MP_HD_AAC_T", ""}; ///< AVC main profile AAC with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_ISO = {"AVC_TS_MP_HD_AAC_ISO", ""}; ///< AVC main profile AAC without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP = {"AVC_TS_MP_HD_AAC_LTP", ""}; ///< AVC main profile AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_T = {"AVC_TS_MP_HD_AAC_LTP_T", ""}; ///< AVC main profile AAC LTP with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_ISO = {"AVC_TS_MP_HD_AAC_LTP_ISO", ""}; ///< AVC main profile AAC LTP without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT5 = {"AVC_TS_MP_HD_AAC_LTP_MULT5", ""}; ///< AVC main profile AAC LTP 5.1
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT5_T = {"AVC_TS_MP_HD_AAC_LTP_MULT5_T", ""}; ///< AVC main profile AAC LTP 5.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT5_ISO = {"AVC_TS_MP_HD_AAC_LTP_MULT5_ISO", ""}; ///< AVC main prpfile AAC LTP 5.1 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT7 = {"AVC_TS_MP_HD_AAC_LTP_MULT7", ""}; ///< AVC main profile AAC LTP 7.1
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT7_T = {"AVC_TS_MP_HD_AAC_LTP_MULT7_T", ""}; ///< AVC main profile AAC LTP 7.1 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT7_ISO = {"AVC_TS_MP_HD_AAC_LTP_MULT7_ISO", ""}; ///< AVC main prpfile AAC LTP 7.1 without time stamp
-
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC = {"AVC_TS_BL_CIF15_AAC", ""}; ///< AVC baseline profile AAC
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_T = {"AVC_TS_BL_CIF15_AAC_T", ""}; ///< AVC baseline profile AAC with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_ISO = {"AVC_TS_BL_CIF15_AAC_ISO", ""}; ///< AVC baseline profile AAC without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_540 = {"AVC_TS_BL_CIF15_AAC_540", ""}; ///< AVC baseline profile AAC 540
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_540_T = {"AVC_TS_BL_CIF15_AAC_540_T", ""}; ///< AVC baseline profile AAC 540 with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_540_ISO = {"AVC_TS_BL_CIF15_AAC_540_ISO", ""}; ///< AVC baseline profile AAC 540 without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_LTP = {"AVC_TS_BL_CIF15_AAC_LTP", ""}; ///< AVC baseline profile AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_LTP_T = {"AVC_TS_BL_CIF15_AAC_LTP_T", ""}; ///< AVC baseline profile AAC LTP with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_LTP_IS0 = {"AVC_TS_BL_CIF15_AAC_LTP_IS0", ""}; ///< AVC baseline profile AAC LTP without time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_BSAC = {"AVC_TS_BL_CIF15_BSAC", ""}; ///< AVC baseline profile BSAC
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_BSAC_T = {"AVC_TS_BL_CIF15_BSAC_T", ""}; ///< AVC baseline profile BSAC with time stamp
-DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_BSAC_ISO = {"AVC_TS_BL_CIF15_BSAC_ISO", ""}; ///< AVC baseline profile BSAC without time stamp
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC = {"AVC_MP4_BL_CIF15_AAC", ""}; ///< AVC baseline profile AAC
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC_520 = {"AVC_MP4_BL_CIF15_AAC_520", ""}; ///< AVC baseline profile AAC 520
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC_LTP = {"AVC_MP4_BL_CIF15_AAC_LTP", ""}; ///< AVC baseline profile AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC_LTP_520 = {"AVC_MP4_BL_CIF15_AAC_LTP_520", ""}; ///< AVC baseline profile AAC LTP 520
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_BSAC = {"AVC_MP4_BL_CIF15_BSAC", ""}; ///< AVC baseline profile BSAC
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_L12_CIF15_HEAAC = {"AVC_MP4_BL_L12_CIF15_HEAAC", ""}; ///< AVC baseline profile HEAAC
-
-DLNAProfile DLNA_PROFILE_AVC_MP4_BL_L1B_QCIF15_HEAAC = {"AVC_MP4_BL_L1B_QCIF15_HEAAC", ""}; ///< AVC baseline profile QCIF15
-
-DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_CIF30_AMR_WBplus = {"AVC_3GPP_BL_CIF30_AMR_WBplus", ""}; ///< AVC 3GPP baseline profile CIF30 AMR WB+
-DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_CIF15_AMR_WBplus = {"AVC_3GPP_BL_CIF15_AMR_WBplus", ""}; ///< AVC 3GPP baseline profile CIF15 AMR WB+
-
-DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AAC = {"AVC_3GPP_BL_QCIF15_AAC", ""}; ///< AVC 3GPP baseline profile QCIF15 AAC
-DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AAC_LTP = {"AVC_3GPP_BL_QCIF15_AAC_LTP", ""}; ///< AVC 3GPP baseline profile QCIF15 AAC LTP
-DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_HEAAC = {"AVC_3GPP_BL_QCIF15_HEAAC", ""}; ///< AVC 3GPP baseline profile QCIF15 HEAAC
-DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AMR_WBplus = {"AVC_3GPP_BL_QCIF15_AMR_WBplus", ""}; ///< AVC 3GPP baseline profile QCIF15 AMR WB+
-DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AMR = {"AVC_3GPP_BL_QCIF15_AMR", ""}; ///< AVC 3GPP baseline profile QCIF15 AMR
-
-DLNAProfile DLNA_PROFILE_AVC_TS_HD_EU = {"AVC_TS_HD_EU", "video/vnd.dlna.mpeg-tts"}; ///< DLNA Profile for HD DVB Television broadcasts
-DLNAProfile DLNA_PROFILE_AVC_TS_HD_EU_T = {"AVC_TS_HD_EU_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_AVC_TS_HD_EU_ISO = {"AVC_TS_HD_EU_ISO", "video/mpeg"}; ///< DLNA Profile for HD DVB Television broadcasts without timestamp
-
-DLNAVideoMapping MPEG4_P10_VIDEO_MAP[] = {
-}; \ No newline at end of file
diff --git a/dlna/profiles/mpeg4_p2.cpp b/dlna/profiles/mpeg4_p2.cpp
deleted file mode 100644
index 5ed58ab..0000000
--- a/dlna/profiles/mpeg4_p2.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * File: profiles_mpeg4_p2.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:36
- */
-
-#include "profiles/mpeg4_p2.h"
-
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_AAC = { "MPEG4_P2_MP4_SP_AAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_HEAAC = { "MPEG4_P2_MP4_SP_HEAAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_ATRAC3plus = { "MPEG4_P2_MP4_SP_ATRAC3plus", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_AAC_LTP = { "MPEG4_P2_MP4_SP_AAC_LTP", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_L2_AAC = { "MPEG4_P2_MP4_SP_L2_AAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_L2_AMR = { "MPEG4_P2_MP4_SP_L2_AMR", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_VGA_AAC = { "MPEG4_P2_MP4_SP_VGA_AAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_VGA_HEAAC = { "MPEG4_P2_MP4_SP_VGA_HEAAC", "video/mp4"};
-
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_AAC = { "MPEG4_P2_MP4_ASP_AAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_HEAAC = { "MPEG4_P2_MP4_ASP_HEAAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_HEAAC_MULT5 = { "MPEG4_P2_MP4_ASP_HEAAC_MULT5", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_ATRAC3plus = { "MPEG4_P2_MP4_ASP_ATRAC3plus", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_AAC = { "MPEG4_P2_MP4_ASP_L5_SO_AAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_HEAAC = { "MPEG4_P2_MP4_ASP_L5_SO_HEAAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_HEAAC_MULT5 = { "MPEG4_P2_MP4_ASP_L5_SO_HEAAC_MULT5", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_G726 = { "MPEG4_P2_MP4_ASP_L5_SO_G726", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_AAC = { "MPEG4_P2_MP4_ASP_L4_SO_AAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_HEAAC = { "MPEG4_P2_MP4_ASP_L4_SO_HEAAC", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_HEAAC_MULT5 = { "MPEG4_P2_MP4_ASP_L4_SO_HEAAC_MULT5", "video/mp4"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_G726 = { "MPEG4_P2_MP4_ASP_L4_SO_G726", "video/mp4"};
-
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AAC = { "MPEG4_P2_TS_SP_AAC", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AAC_T = { "MPEG4_P2_TS_SP_AAC_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AAC_ISO = { "MPEG4_P2_TS_SP_AAC_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3 = { "MPEG4_P2_TS_SP_MPEG1_L3", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3_T = { "MPEG4_P2_TS_SP_MPEG1_L3_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3_ISO = { "MPEG4_P2_TS_SP_MPEG1_L3_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AC3 = { "MPEG4_P2_TS_SP_AC3", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AC3_T = { "MPEG4_P2_TS_SP_AC3_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AC3_ISO = { "MPEG4_P2_TS_SP_AC3_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2 = { "MPEG4_P2_TS_SP_MPEG2_L2", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2_T = { "MPEG4_P2_TS_SP_MPEG2_L2_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2_IS0 = { "MPEG4_P2_TS_SP_MPEG2_L2_IS0", "video/mpeg"};
-
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_AC3 = { "MPEG4_P2_TS_CO_AC3", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_AC3_T = { "MPEG4_P2_TS_CO_AC3_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_AC3_ISO = { "MPEG4_P2_TS_CO_AC3_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2 = { "MPEG4_P2_TS_CO_MPEG2_L2", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2_T = { "MPEG4_P2_TS_CO_MPEG2_L2_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2_ISO = { "MPEG4_P2_TS_CO_MPEG2_L2_ISO", "video/mpeg"};
-
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC = { "MPEG4_P2_TS_ASP_AAC", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC_T = { "MPEG4_P2_TS_ASP_AAC_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC_ISO = { "MPEG4_P2_TS_ASP_AAC_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3 = { "MPEG4_P2_TS_ASP_MPEG1_L3", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3_T = { "MPEG4_P2_TS_ASP_MPEG1_L3_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3_ISO = { "MPEG4_P2_TS_ASP_MPEG1_L3_ISO", "video/mpeg"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3 = { "MPEG4_P2_TS_ASP_AC3", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3_T = { "MPEG4_P2_TS_ASP_AC3_T", "video/vnd.dlna.mpeg-tts"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3_ISO = { "MPEG4_P2_TS_ASP_AC3_ISO", "video/mpeg"};
-
-DLNAProfile DLNA_PROFILE_MPEG4_P2_ASF_SP_G726 = { "MPEG4_P2_ASF_SP_G726", "video/x-ms-asf"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_ASF_ASP_L5_SO_G726 = { "MPEG4_P2_ASF_ASP_L5_SO_G726", "video/x-ms-asf"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_ASF_ASP_L4_SO_G726 = { "MPEG4_P2_ASF_ASP_L4_SO_G726", "video/x-ms-asf"};
-
-DLNAProfile DLNA_PROFILE_MPEG4_H263_MP4_P0_L10_AAC = { "MPEG4_H263_MP4_P0_L10_AAC", "video/3gpp"};
-DLNAProfile DLNA_PROFILE_MPEG4_H263_MP4_P0_L10_AAC_LTP = { "MPEG4_H263_MP4_P0_L10_AAC_LTP", "video/3gpp"};
-DLNAProfile DLNA_PROFILE_MPEG4_H263_3GPP_P0_L10_AMR_WBplus = { "MPEG4_H263_3GPP_P0_L10_AMR_WBplus", "video/3gpp"};
-DLNAProfile DLNA_PROFILE_MPEG4_H263_3GPP_P3_L10_AMR = { "MPEG4_H263_3GPP_P3_L10_AMR", "video/3gpp"};
-
-DLNAProfile DLNA_PROFILE_MPEG4_P2_3GPP_SP_L0B_AAC = { "MPEG4_P2_3GPP_SP_L0B_AAC", "video/3gpp"};
-DLNAProfile DLNA_PROFILE_MPEG4_P2_3GPP_SP_L0B_AMR = { "MPEG4_P2_3GPP_SP_L0B_AMR", "video/3gpp"};
-
-DLNAVideoMapping MPEG4_P2_VIDEO_MAP[] = {
- { &DLNA_PROFILE_MPEG4_P2_3GPP_SP_L0B_AAC, DLNA_VCP_3GPP, DLNA_VPP_MPEG4_P2_SP_L0B, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_3GPP_SP_L0B_AMR, DLNA_VCP_3GPP, DLNA_VPP_MPEG4_P2_SP_L0B, DLNA_APP_AMR },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_L2_AAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L2, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_L2_AMR, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L2, DLNA_APP_AMR },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_AAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_HEAAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_HEAAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_ATRAC3plus, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_ATRAC3plus },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_AAC_LTP, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AAC_LTP },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_AAC, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_AAC_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_AAC_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_MPEG1_L3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_MPEG1_L3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_MPEG1_L3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_MPEG2_L2 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_MPEG2_L2 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2_IS0, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_MPEG2_L2 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_AC3, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_AC3_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_SP_AC3_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_ASF_SP_G726, DLNA_VCP_ASF, DLNA_VPP_MPEG4_P2_SP_L3, DLNA_APP_G726 },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_VGA_AAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L3_VGA, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_SP_VGA_HEAAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_SP_L3_VGA, DLNA_APP_HEAAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_AAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_HEAAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_HEAAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_HEAAC_MULT5, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_HEAAC_MULT5 },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_ATRAC3plus, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_ATRAC3plus },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_MPEG1_L3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_MPEG1_L3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_MPEG1_L3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_ASP_L5, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_AAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5_SO, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_HEAAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5_SO, DLNA_APP_HEAAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_HEAAC_MULT5, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5_SO, DLNA_APP_HEAAC_MULT5 },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_G726, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L5_SO, DLNA_APP_G726 },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_AAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L4_SO, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_HEAAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L4_SO, DLNA_APP_HEAAC },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_HEAAC_MULT5, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L4_SO, DLNA_APP_HEAAC_MULT5 },
- { &DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_G726, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_ASP_L4_SO, DLNA_APP_G726 },
- { &DLNA_PROFILE_MPEG4_H263_MP4_P0_L10_AAC, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_H263_P0_L10, DLNA_APP_AAC },
- { &DLNA_PROFILE_MPEG4_H263_MP4_P0_L10_AAC_LTP, DLNA_VCP_MP4, DLNA_VPP_MPEG4_P2_H263_P0_L10, DLNA_APP_AAC_LTP },
- { &DLNA_PROFILE_MPEG4_H263_3GPP_P3_L10_AMR, DLNA_VCP_3GPP, DLNA_VPP_MPEG4_P2_H263_P3_L10, DLNA_APP_AMR },
- { &DLNA_PROFILE_MPEG4_H263_3GPP_P0_L10_AMR_WBplus, DLNA_VCP_3GPP, DLNA_VPP_MPEG4_P2_H263_P0_L10, DLNA_APP_AMR_WBplus },
- { &DLNA_PROFILE_MPEG4_P2_TS_CO_AC3, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_CO, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_CO_AC3_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_CO, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_CO_AC3_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_CO, DLNA_APP_AC3 },
- { &DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2, DLNA_VCP_MPEG2_TS, DLNA_VPP_MPEG4_P2_CO, DLNA_APP_MPEG2_L2 },
- { &DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2_T, DLNA_VCP_MPEG2_TS_T, DLNA_VPP_MPEG4_P2_CO, DLNA_APP_MPEG2_L2 },
- { &DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2_ISO, DLNA_VCP_MPEG2_TS_ISO, DLNA_VPP_MPEG4_P2_CO, DLNA_APP_MPEG2_L2 }
-}; \ No newline at end of file
diff --git a/dlna/profiles/png.cpp b/dlna/profiles/png.cpp
deleted file mode 100644
index 46ccc24..0000000
--- a/dlna/profiles/png.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * File: profiles_png.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:01
- */
-
-#include "profiles/png.h"
-
-DLNAIconProfile DLNA_ICON_PNG_SM_24A = { "image/png", 48, 48, 24 };
-DLNAIconProfile DLNA_ICON_PNG_LRG_24A = { "image/png", 120, 120, 24 };
diff --git a/dlna/profiles/wma.cpp b/dlna/profiles/wma.cpp
deleted file mode 100644
index 3956d4c..0000000
--- a/dlna/profiles/wma.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: profiles_wma.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 13:32
- */
-
-#include "profiles/wma.h" \ No newline at end of file
diff --git a/dlna/profiles/wmv9.cpp b/dlna/profiles/wmv9.cpp
deleted file mode 100644
index 02e8de4..0000000
--- a/dlna/profiles/wmv9.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * File: profiles_wmv9.cpp
- * Author: savop
- *
- * Created on 7. Dezember 2009, 14:53
- */
-
-#include "profiles/wmv9.h" \ No newline at end of file