summaryrefslogtreecommitdiff
path: root/inc/profiles
diff options
context:
space:
mode:
Diffstat (limited to 'inc/profiles')
-rw-r--r--inc/profiles/aac.h36
-rw-r--r--inc/profiles/ac3.h24
-rw-r--r--inc/profiles/amr.h17
-rw-r--r--inc/profiles/atrac3plus.h16
-rw-r--r--inc/profiles/container.h47
-rw-r--r--inc/profiles/jpeg.h24
-rw-r--r--inc/profiles/lpcm.h16
-rw-r--r--inc/profiles/mpa.h25
-rw-r--r--inc/profiles/mpeg1.h16
-rw-r--r--inc/profiles/mpeg2.h68
-rw-r--r--inc/profiles/mpeg4_p10.h153
-rw-r--r--inc/profiles/mpeg4_p2.h80
-rw-r--r--inc/profiles/png.h22
-rw-r--r--inc/profiles/profile_data.h213
-rw-r--r--inc/profiles/wma.h18
-rw-r--r--inc/profiles/wmv9.h24
16 files changed, 799 insertions, 0 deletions
diff --git a/inc/profiles/aac.h b/inc/profiles/aac.h
new file mode 100644
index 0000000..e3f4dab
--- /dev/null
+++ b/inc/profiles/aac.h
@@ -0,0 +1,36 @@
+/*
+ * File: profiles_aac.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:31
+ */
+
+#ifndef _PROFILES_AAC_H
+#define _PROFILES_AAC_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_AAC_ADTS; ///< AAC ADTS
+extern DLNAProfile DLNA_PROFILE_AAC_ADTS_320; ///< AAC ADTS
+extern DLNAProfile DLNA_PROFILE_AAC_ISO; ///< AAC ISO (iTunes)
+extern DLNAProfile DLNA_PROFILE_AAC_ISO_320; ///< AAC ISO
+extern DLNAProfile DLNA_PROFILE_AAC_LTP_ISO; ///< AAC LTP ISO
+extern DLNAProfile DLNA_PROFILE_AAC_LTP_MULT5_ISO; ///< AAC LTP Multi 5.1 ISO
+extern DLNAProfile DLNA_PROFILE_AAC_LTP_MULT7_ISO; ///< AAC LTP Multi 7.1 ISO
+extern DLNAProfile DLNA_PROFILE_AAC_MULT5_ADTS; ///< AAC Multi 5.1 ADTS
+extern DLNAProfile DLNA_PROFILE_AAC_MULT5_ISO; ///< AAC Multi 5.1 ISO
+
+extern DLNAProfile DLNA_PROFILE_HEAAC_L2_ADTS; ///< AAC Radio Broadcasts ADTS L2
+extern DLNAProfile DLNA_PROFILE_HEAAC_L2_ISO; ///< AAC Radio Broadcasts ISO L2
+extern DLNAProfile DLNA_PROFILE_HEAAC_L3_ADTS; ///< AAC Radio Broadcasts ADTS L3
+extern DLNAProfile DLNA_PROFILE_HEAAC_L3_ISO; ///< AAC Radio Broadcasts ISO L3
+extern DLNAProfile DLNA_PROFILE_HEAAC_MULT5_ADTS; ///< AAC Music Track 5.1 ADTS
+extern DLNAProfile DLNA_PROFILE_HEAAC_MULT5_ISO; ///< AAC Music Track 5.1 ISO
+extern DLNAProfile DLNA_PROFILE_HEAAC_L2_ADTS_320; ///< AAC Radio Broadcasts ADTS 320 L2
+extern DLNAProfile DLNA_PROFILE_HEAAC_L2_ISO_320; ///< AAC Radio Broadcasts ISO 320 L2
+
+extern DLNAProfile DLNA_PROFILE_BSAC_ISO; ///< BSAC ISO
+extern DLNAProfile DLNA_PROFILE_BSAC_MULT5_ISO; ///< BSAC ISO 5.1
+
+#endif /* _PROFILES_AAC_H */
+
diff --git a/inc/profiles/ac3.h b/inc/profiles/ac3.h
new file mode 100644
index 0000000..1d1ccf2
--- /dev/null
+++ b/inc/profiles/ac3.h
@@ -0,0 +1,24 @@
+/*
+ * File: profiles_ac3.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:04
+ */
+
+#ifndef _PROFILES_AC3_H
+#define _PROFILES_AC3_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_AC3; ///< DLNA AC3
+
+class cAC3Profiler : public cDLNAProfiler, public cAudioProfiler {
+public:
+ virtual DLNAProfile* probeDLNAProfile(AVFormatContext* FormatCtx);
+ virtual AudioPortionProfile probeAudioProfile(AVFormatContext* FormatCtx);
+};
+
+extern cAC3Profiler AC3Profiler;
+
+#endif /* _PROFILES_AC3_H */
+
diff --git a/inc/profiles/amr.h b/inc/profiles/amr.h
new file mode 100644
index 0000000..73cc9ee
--- /dev/null
+++ b/inc/profiles/amr.h
@@ -0,0 +1,17 @@
+/*
+ * File: profiles_amr.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:05
+ */
+
+#ifndef _PROFILES_AMR_H
+#define _PROFILES_AMR_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_AMR_3GPP; ///< AMR 3GPP, cell phones
+extern DLNAProfile DLNA_PROFILE_AMR_WBPlus; ///< AMR WB+
+
+#endif /* _PROFILES_AMR_H */
+
diff --git a/inc/profiles/atrac3plus.h b/inc/profiles/atrac3plus.h
new file mode 100644
index 0000000..64f7c15
--- /dev/null
+++ b/inc/profiles/atrac3plus.h
@@ -0,0 +1,16 @@
+/*
+ * File: profiles_atrac3plus.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:06
+ */
+
+#ifndef _PROFILES_ATRAC3PLUS_H
+#define _PROFILES_ATRAC3PLUS_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_ATRAC3Plus; ///< Atrac 3+
+
+#endif /* _PROFILES_ATRAC3PLUS_H */
+
diff --git a/inc/profiles/container.h b/inc/profiles/container.h
new file mode 100644
index 0000000..26cec8e
--- /dev/null
+++ b/inc/profiles/container.h
@@ -0,0 +1,47 @@
+/*
+ * File: container.h
+ * Author: savop
+ *
+ * Created on 8. Januar 2010, 10:45
+ */
+
+#ifndef _CONTAINER_H
+#define _CONTAINER_H
+
+#include "profile_data.h"
+
+extern "C" {
+#include <libavcodec/avcodec.h>
+#include <libavformat/avformat.h>
+}
+
+class cContainerDetector {
+public:
+ static VideoContainerProfile detect(AVFormatContext* Ctx);
+private:
+ /**
+ * MPEG1
+ */
+ static VideoContainerProfile detectMPEG1Container(AVFormatContext* Ctx);
+ /**
+ * MPEG2-PS
+ * MPEG2-TS
+ * MPEG2-TS-DLNA
+ * MPEG2-TS-DLNA-T
+ */
+ static VideoContainerProfile detectMPEG2Container(AVFormatContext* Ctx);
+ /**
+ * 3GPP
+ * MP4
+ */
+ static VideoContainerProfile detectMP4Container(AVFormatContext* Ctx);
+#ifdef WITH_WINDOWS_MEDIA
+ /**
+ * ASF
+ */
+ static VideoContainerProfile detectWMFContainer(AVFormatContext* Ctx);
+#endif
+};
+
+#endif /* _CONTAINER_H */
+
diff --git a/inc/profiles/jpeg.h b/inc/profiles/jpeg.h
new file mode 100644
index 0000000..42d2420
--- /dev/null
+++ b/inc/profiles/jpeg.h
@@ -0,0 +1,24 @@
+/*
+ * File: profiles_jpeg.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 12:59
+ */
+
+#ifndef _PROFILES_JPEG_H
+#define _PROFILES_JPEG_H
+
+#include "profile_data.h"
+
+/* Images */
+extern DLNAProfile DLNA_PROFILE_JPEG_SM; ///< JPEG small resolution
+extern DLNAProfile DLNA_PROFILE_JPEG_MED; ///< JPEG medium resolution
+extern DLNAProfile DLNA_PROFILE_JPEG_LRG; ///< JPEG high resolution
+
+/* Icons */
+extern DLNAIconProfile DLNA_ICON_JEPG_TN; ///< DLNA jpeg thumbnail profile of images
+extern DLNAIconProfile DLNA_ICON_JPEG_SM_24; ///< DLNA icon profile of small jpeg images
+extern DLNAIconProfile DLNA_ICON_JPEG_LRG_24; ///< DLNA icon profile of large jpeg images
+
+#endif /* _PROFILES_JPEG_H */
+
diff --git a/inc/profiles/lpcm.h b/inc/profiles/lpcm.h
new file mode 100644
index 0000000..0643b77
--- /dev/null
+++ b/inc/profiles/lpcm.h
@@ -0,0 +1,16 @@
+/*
+ * File: profiles_lpcm.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:07
+ */
+
+#ifndef _PROFILES_LPCM_H
+#define _PROFILES_LPCM_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_LPCM; ///< LPCM Audio
+
+#endif /* _PROFILES_LPCM_H */
+
diff --git a/inc/profiles/mpa.h b/inc/profiles/mpa.h
new file mode 100644
index 0000000..9110bc0
--- /dev/null
+++ b/inc/profiles/mpa.h
@@ -0,0 +1,25 @@
+/*
+ * File: profiles_mp3.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:08
+ */
+
+#ifndef _PROFILES_MP3_H
+#define _PROFILES_MP3_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_MP3; ///< DLNA MP3
+extern DLNAProfile DLNA_PROFILE_MP3X; ///< MP3x
+
+class cMPEGAudioProfiler : public cDLNAProfiler, public cAudioProfiler {
+public:
+ virtual AudioPortionProfile probeAudioProfile(AVFormatContext* FormatCtx);
+ virtual DLNAProfile* probeDLNAProfile(AVFormatContext* FormatCtx);
+};
+
+extern cMPEGAudioProfiler MPEGAudioProfiler;
+
+#endif /* _PROFILES_MP3_H */
+
diff --git a/inc/profiles/mpeg1.h b/inc/profiles/mpeg1.h
new file mode 100644
index 0000000..7e7637e
--- /dev/null
+++ b/inc/profiles/mpeg1.h
@@ -0,0 +1,16 @@
+/*
+ * File: profiles_mpeg1.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:34
+ */
+
+#ifndef _PROFILES_MPEG1_H
+#define _PROFILES_MPEG1_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_MPEG1; ///< MPEG 1
+
+#endif /* _PROFILES_MPEG1_H */
+
diff --git a/inc/profiles/mpeg2.h b/inc/profiles/mpeg2.h
new file mode 100644
index 0000000..6abbbb5
--- /dev/null
+++ b/inc/profiles/mpeg2.h
@@ -0,0 +1,68 @@
+/*
+ * File: profiles_mpeg2.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:35
+ */
+
+#ifndef _PROFILES_MPEG2_H
+#define _PROFILES_MPEG2_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_MPEG_PS_NTSC; ///< MPEG 2 PS NTSC
+extern DLNAProfile DLNA_PROFILE_MPEG_PS_NTSC_XAC3; ///< MPEG 2 PS NTSC AC3
+extern DLNAProfile DLNA_PROFILE_MPEG_PS_PAL; ///< MPEG 2 PS PAL
+extern DLNAProfile DLNA_PROFILE_MPEG_PS_PAL_XAC3; ///< MPEG 2 PS PAL AC3
+
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA; ///< MPEG 2 TS North America
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_T; ///< MPEG 2 TS North America with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_ISO; ///< MPEG 2 TS North America without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA; ///< MPEG 2 TS North America HD
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_T; ///< MPEG 2 TS North America with time stamp HD
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_ISO; ///< MPEG 2 TS North America without time stamp HD
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_XAC3; ///< MPEG 2 TS North America AC3
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_XAC3_T; ///< MPEG 2 TS North America AC3 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_NA_XAC3_ISO; ///< MPEG 2 TS North America AC3 without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_XAC3; ///< MPEG 2 TS North America AC3 HD
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_XAC3_T; ///< MPEG 2 TS North America AC3 with time stamp HD
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_NA_XAC3_ISO; ///< MPEG 2 TS North America AC3 without time stamp HD
+
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_EU; ///< MPEG 2 TS Europe
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_EU_T; ///< MPEG 2 TS Europe with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_EU_ISO; ///< MPEG 2 TS Europe without time stamp
+
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO; ///< MPEG 2 TS Korea
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_T; ///< MPEG 2 TS Korea with time stamp
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_ISO; ///< MPEG 2 TS Korea without time stamp
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO; ///< MPEG 2 TS Korea HD
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_T; ///< MPEG 2 TS Korea with time stamp HD
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_ISO; ///< MPEG 2 TS Korea without time stamp HD
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_XAC3; ///< MPEG 2 TS Korea AC3
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_XAC3_T; ///< MPEG 2 TS Korea AC3 with time stamp
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_SD_KO_XAC3_ISO; ///< MPEG 2 TS Korea AC3 without time stamp
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_XAC3; ///< MPEG 2 TS Korea AC3 HD
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_XAC3_T; ///< MPEG 2 TS Korea AC3 with time stamp HD
+//extern DLNAProfile DLNA_PROFILE_MPEG_TS_HD_KO_XAC3_ISO; ///< MPEG 2 TS Korea AC3 without time stamp HD
+
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_MP_LL_AAC; ///< Low Level with AAC Audio
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_MP_LL_AAC_T; ///< Low level with AAC Audio with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG_TS_MP_LL_AAC_ISO; ///< Low level with AAC Audio without time stamp
+
+//extern DLNAProfile DLNA_PROFILE_MPEG_ES_PAL; ///< PAL ES over RTP
+//extern DLNAProfile DLNA_PROFILE_MPEG_ES_NTSC; ///< NTSC ES over RTP
+//extern DLNAProfile DLNA_PROFILE_MPEG_ES_PAL_XAC3; ///< PAL AC3 ES over RTP
+//extern DLNAProfile DLNA_PROFILE_MPEG_ES_NTSC_XAC3; ///< NTSC AC3 ES over RTP
+
+class cMPEG2Profiler : public cDLNAProfiler, public cVideoProfiler, public cAudioProfiler {
+public:
+ virtual VideoContainerProfile probeContainerProfile(AVFormatContext* FormatCtx);
+ virtual VideoPortionProfile probeVideoProfile(AVFormatContext* FormatCtx);
+ virtual AudioPortionProfile probeAudioProfile(AVFormatContext* FormatCtx);
+ virtual DLNAProfile* probeDLNAProfile(AVFormatContext* FormatCtx);
+};
+
+extern cMPEG2Profiler MPEG2Profiler;
+
+#endif /* _PROFILES_MPEG2_H */
+
diff --git a/inc/profiles/mpeg4_p10.h b/inc/profiles/mpeg4_p10.h
new file mode 100644
index 0000000..f58ac43
--- /dev/null
+++ b/inc/profiles/mpeg4_p10.h
@@ -0,0 +1,153 @@
+/*
+ * File: profiles_mpeg4_p10.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:38
+ */
+
+#ifndef _PROFILES_MPEG4_P10_H
+#define _PROFILES_MPEG4_P10_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_MULT5; ///< AVC main profile AAC 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_MULT5_T; ///< AVC main profile AAC 5.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_MULT5_ISO; ///< AVC main profile AAC 5.1 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_HEAAC_L2; ///< AVC main profile HEAAC L2
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_HEAAC_L2_T; ///< AVC main profile HEAAC L2 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_HEAAC_L2_ISO; ///< AVC main profile HEAAC L2 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_MPEG1_L3; ///< AVC main profile MP3
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_MPEG1_L3_T; ///< AVC main profile MP3 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_MPEG1_L3_ISO; ///< AVC main profile MP3 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AC3; ///< AVC main profile AC3
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AC3_T; ///< AVC main profile AC3 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AC3_ISO; ///< AVC main profile AC3 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP; ///< AVC main profile AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_T; ///< AVC main profile AAC LTP with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_ISO; ///< AVC main profile AAC LTP without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT5; ///< AVC main profile AAC LTP 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT5_T; ///< AVC main profile AAC LTP 5.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT5_ISO; ///< AVC main profile AAC LTP 5.1 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT7; ///< AVC main profile AAC LTP 7.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT7_T; ///< AVC main profile AAC LTP 7.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_AAC_LTP_MULT7_ISO; ///< AVC main profile AAC LTP 7.1 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_BSAC; ///< AVC main profile BSAC
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_BSAC_T; ///< AVC main profile BSAC with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_SD_BSAC_ISO; ///< AVC main profile BSAC without time stamp
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_MULT5; ///< AVC main profile MP4 AAC 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_HEAAC_L2; ///< AVC main profile MP4 HEAAC L2
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_MPEG1_L3; ///< AVC main profile MP4 MP3
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AC3; ///< AVC main profile MP4 AC3
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_LTP; ///< AVC main profile MP4 AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_LTP_MULT5; ///< AVC main profile MP4 AAC LTP 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_AAC_LTP_MULT7; ///< AVC main profile MP4 AAC LTP 7.1
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_ATRAC3plus; ///< AVC main profile MP4 ATRAC3+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_MP_SD_BSAC; ///< AVC main profile MP4 BSAC
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BP_L3L_SD_AAC; ///< AVC baseline profile MP4 AAC
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BP_L3L_SD_HEAAC; ///< AVC baseline profile MP4 HEAAC
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BP_L3_SD_AAC; ///< AVC baseline profile standard MP4 AAC
+
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_MULT5; ///< AVC CIF30 baseline profile AAC 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_MULT5_T; ///< AVC CIF30 baseline profile AAC 5.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_MULT5_ISO; ///< AVC CIF30 baseline profile AAC 5.1 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_HEAAC_L2; ///< AVC CIF30 baseline profile HEAAC L2
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_HEAAC_L2_T; ///< AVC CIF30 baseline profile HEAAC L2 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_HEAAC_L2_ISO; ///< AVC CIF30 baseline profile HEAAC L2 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_MPEG1_L3; ///< AVC CIF30 baseline profile MP3
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_MPEG1_L3_T; ///< AVC CIF30 baseline profile MP3 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_MPEG1_L3_ISO; ///< AVC CIF30 baseline profile MP3 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AC3; ///< AVC CIF30 baseline profile AC3
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AC3_T; ///< AVC CIF30 baseline profile AC3 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AC3_ISO; ///< AVC CIF30 baseline profile AC3 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP; ///< AVC CIF30 baseline profile AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_T; ///< AVC CIF30 baseline profile AAC LTP with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_ISO; ///< AVC CIF30 baseline profile AAC LTP without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_MULT5; ///< AVC CIF30 baseline profile AAC LTP 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_MULT5_T; ///< AVC CIF30 baseline profile AAC LTP 5.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_LTP_MULT5_ISO; ///< AVC CIF30 baseline profile AAC LTP 5.1 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_940; ///< AVC CIF30 baseline profile AAC 940
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_940_T; ///< AVC CIF30 baseline profile AAC 940 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF30_AAC_940_ISO; ///< AVC CIF30 baseline profile AAC 940 without time stamp
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AAC_MULT5; ///< AVC CIF30 baseline profile MP4 AAC 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_HEAAC_L2; ///< AVC CIF30 baseline profile MP4 HEAAC L2
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_MPEG1_L3; ///< AVC CIF30 baseline profile MP4 MP3
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AC3; ///< AVC CIF30 baseline profile MP4 AC3
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AAC_LTP; ///< AVC CIF30 baseline profile MP4 AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_AAC_LTP_MULT5; ///< AVC CIF30 baseline profile MP4 AAC LTP 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_BSAC; ///< AVC CIF30 baseline profile BSAC
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF30_BSAC_MULT5; ///< AVC CIF30 baseline profile BSAC 5.1
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_L2_CIF30_AAC; ///< AVC CIF30 baseline profile L2 AAC
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_HEAAC; ///< AVC CIF15 baseline profile HEAAC
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AMR; ///< AVC CIF15 baseline profile AMR
+
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_MULT5; ///< AVC main profile AAC 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_MULT5_T; ///< AVC main profile AAC 5.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_MULT5_ISO; ///< AVC main profile AAC 5.1 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_HEAAC_L2; ///< AVC main profile HEAAC L2
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_HEAAC_L2_T; ///< AVC main profile HEAAC L2 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_HEAAC_L2_ISO; ///< AVC main profile HEAAC L2 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_MPEG1_L3; ///< AVC main profile MP3
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_MPEG1_L3_T; ///< AVC main profile MP3 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_MPEG1_L3_ISO; ///< AVC main profile MP3 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AC3; ///< AVC main profile AC3
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AC3_T; ///< AVC main profile AC3 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AC3_ISO; ///< AVC main profile AC3 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC; ///< AVC main profile AAC
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_T; ///< AVC main profile AAC with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_ISO; ///< AVC main profile AAC without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP; ///< AVC main profile AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_T; ///< AVC main profile AAC LTP with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_ISO; ///< AVC main profile AAC LTP without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT5; ///< AVC main profile AAC LTP 5.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT5_T; ///< AVC main profile AAC LTP 5.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT5_ISO; ///< AVC main prpfile AAC LTP 5.1 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT7; ///< AVC main profile AAC LTP 7.1
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT7_T; ///< AVC main profile AAC LTP 7.1 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_MP_HD_AAC_LTP_MULT7_ISO; ///< AVC main prpfile AAC LTP 7.1 without time stamp
+
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC; ///< AVC baseline profile AAC
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_T; ///< AVC baseline profile AAC with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_ISO; ///< AVC baseline profile AAC without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_540; ///< AVC baseline profile AAC 540
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_540_T; ///< AVC baseline profile AAC 540 with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_540_ISO; ///< AVC baseline profile AAC 540 without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_LTP; ///< AVC baseline profile AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_LTP_T; ///< AVC baseline profile AAC LTP with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_AAC_LTP_IS0; ///< AVC baseline profile AAC LTP without time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_BSAC; ///< AVC baseline profile BSAC
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_BSAC_T; ///< AVC baseline profile BSAC with time stamp
+extern DLNAProfile DLNA_PROFILE_AVC_TS_BL_CIF15_BSAC_ISO; ///< AVC baseline profile BSAC without time stamp
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC; ///< AVC baseline profile AAC
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC_520; ///< AVC baseline profile AAC 520
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC_LTP; ///< AVC baseline profile AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_AAC_LTP_520; ///< AVC baseline profile AAC LTP 520
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_CIF15_BSAC; ///< AVC baseline profile BSAC
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_L12_CIF15_HEAAC; ///< AVC baseline profile HEAAC
+
+extern DLNAProfile DLNA_PROFILE_AVC_MP4_BL_L1B_QCIF15_HEAAC; ///< AVC baseline profile QCIF15
+
+extern DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_CIF30_AMR_WBplus; ///< AVC 3GPP baseline profile CIF30 AMR WB+
+extern DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_CIF15_AMR_WBplus; ///< AVC 3GPP baseline profile CIF15 AMR WB+
+
+extern DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AAC; ///< AVC 3GPP baseline profile QCIF15 AAC
+extern DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AAC_LTP; ///< AVC 3GPP baseline profile QCIF15 AAC LTP
+extern DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_HEAAC; ///< AVC 3GPP baseline profile QCIF15 HEAAC
+extern DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AMR_WBplus; ///< AVC 3GPP baseline profile QCIF15 AMR WB+
+extern DLNAProfile DLNA_PROFILE_AVC_3GPP_BL_QCIF15_AMR; ///< AVC 3GPP baseline profile QCIF15 AMR
+
+extern DLNAProfile DLNA_PROFILE_AVC_TS_HD_EU; ///< DLNA Profile for HD DVB Television broadcasts
+extern DLNAProfile DLNA_PROFILE_AVC_TS_HD_EU_T;
+extern DLNAProfile DLNA_PROFILE_AVC_TS_HD_EU_ISO; ///< DLNA Profile for HD DVB Television broadcasts without timestamp
+
+extern DLNAVideoMapping MPEG4_P10_VIDEO_MAP[];
+
+#endif /* _PROFILES_MPEG4_P10_H */
+
diff --git a/inc/profiles/mpeg4_p2.h b/inc/profiles/mpeg4_p2.h
new file mode 100644
index 0000000..7437afd
--- /dev/null
+++ b/inc/profiles/mpeg4_p2.h
@@ -0,0 +1,80 @@
+/*
+ * File: profiles_mpeg4_p2.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:36
+ */
+
+#ifndef _PROFILES_MPEG4_P2_H
+#define _PROFILES_MPEG4_P2_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_AAC; ///< MPEG 4 Part 2 Simple Profile AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_HEAAC; ///< MPEG 4 Part 2 Simple Profile HEAAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_ATRAC3plus; ///< MPEG 4 Part 2 Simple Profile ATRAC3+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_AAC_LTP; ///< MPEG 4 Part 2 Simple Profile AAC LTP
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_L2_AAC; ///< MPEG 4 Part 2 Simple Profile L2 AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_L2_AMR; ///< MPEG 4 Part 2 Simple Profile L2 AMR
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_VGA_AAC; ///< MPEG 4 Part 2 Simple Profile MP4 VGA AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_SP_VGA_HEAAC; ///< MPEG 4 Part 2 Simple Profile MP4 VGA HEAAC
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_AAC; ///< MPEG 4 Part 2 Advanced Simple Profile AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_HEAAC; ///< MPEG 4 Part 2 Advanded Simple Profile HEAAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_HEAAC_MULT5; ///< MPEG 4 Part 2 Advanced Simple Profile HEAAC 5.1
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_ATRAC3plus; ///< MPEG 4 Part 2 Advanced Simple Profile Atrac3+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_AAC; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_HEAAC; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 HEAAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_HEAAC_MULT5; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 HEAAC 5.1
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L5_SO_G726; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 G726
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_AAC; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_HEAAC; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 HEAAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_HEAAC_MULT5; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 HEAAC 5.1
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_MP4_ASP_L4_SO_G726; ///< MPEG 4 Part 2 Advanced Simple Profile Simple Object < Level 5 G726
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AAC; ///< MPEG 4 Part 2 Simple Profile AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AAC_T; ///< MPEG 4 Part 2 Simple Profile AAC with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AAC_ISO; ///< MPEG 4 Part 2 Simple Profile AAC without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3; ///< MPEG 4 Part 2 Simple Profile MP3
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3_T; ///< MPEG 4 Part 2 Simple Profile MP3 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG1_L3_ISO; ///< MPEG 4 Part 2 Simple Profile MP3 without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AC3; ///< MPEG 4 Part 2 Simple Profile AC3
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AC3_T; ///< MPEG 4 Part 2 Simple Profile AC3 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_AC3_ISO; ///< MPEG 4 Part 2 Simple Profile AC3 without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2; ///< MPEG 4 Part 2 Simple Profile MP2 1/2
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2_T; ///< MPEG 4 Part 2 Simple Profile MP2 1/2 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_SP_MPEG2_L2_IS0; ///< MPEG 4 Part 2 Simple Profile MP2 1/2 without time stamp
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_AC3; ///< MPEG 4 Part 2 Core AC3
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_AC3_T; ///< MPEG 4 Part 2 Core AC3 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_AC3_ISO; ///< MPEG 4 Part 2 Core AC3 without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2; ///< MPEG 4 Part 2 Core MPEG 2 1/2
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2_T; ///< MPEG 4 Part 2 Core MPEG 2 1/2 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_CO_MPEG2_L2_ISO; ///< MPEG 4 Part 2 Core MPEG 2 1/2 without time stamp
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC; ///< MPEG 4 Part 2 Advanced Simple Profile AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC_T; ///< MPEG 4 Part 2 Advanced Simple Profile AAC with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AAC_ISO; ///< MPEG 4 Part 2 Advanced Simple Profile AAC without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3; ///< MPEG 4 Part 2 Advanced Simple Profile MP3
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3_T; ///< MPEG 4 Part 2 Advanced Simple Profile MP3 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_MPEG1_L3_ISO; ///< MPEG 4 Part 2 Advanced Simple Profile MP3 without time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3; ///< MPEG 4 Part 2 Advanced Simple Profile AC3
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3_T; ///< MPEG 4 Part 2 Advanced Simple Profile AC3 with time stamp
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_TS_ASP_AC3_ISO; ///< MPEG 4 Part 2 Advanced Simple Profile AC3 without time stamp
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_ASF_SP_G726; ///< ASF Simple Profile G726
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_ASF_ASP_L5_SO_G726; ///< ASF Advanced Simple Prpfile G726 < Level 5
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_ASF_ASP_L4_SO_G726; ///< ASF Advanced Simple Prpfile G726 < Level 4
+
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_H263_MP4_P0_L10_AAC; ///< H263 Profile 0 Level 10 AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_H263_MP4_P0_L10_AAC_LTP; ///< H263 Profile 0 Level 10 AAC LTP
+extern DLNAProfile DLNA_PROFILE_MPEG4_H263_3GPP_P0_L10_AMR_WBplus; ///< H263 3GPP Profile 0 Level 10 AMR-WB+
+extern DLNAProfile DLNA_PROFILE_MPEG4_H263_3GPP_P3_L10_AMR; ///< H263 Profile 3 Level 10 AMR
+
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_3GPP_SP_L0B_AAC; ///< MPEG 4 Part 2 3GPP Simple Profile Level 0b AAC
+extern DLNAProfile DLNA_PROFILE_MPEG4_P2_3GPP_SP_L0B_AMR; ///< MPEG 4 Part 2 3GPP Simple Profile Level 0b AMR
+
+extern DLNAVideoMapping MPEG4_P2_VIDEO_MAP[];
+#endif /* _PROFILES_MPEG4_P2_H */
+
diff --git a/inc/profiles/png.h b/inc/profiles/png.h
new file mode 100644
index 0000000..69d4bcd
--- /dev/null
+++ b/inc/profiles/png.h
@@ -0,0 +1,22 @@
+/*
+ * File: profiles_png.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:01
+ */
+
+#ifndef _PROFILES_PNG_H
+#define _PROFILES_PNG_H
+
+#include "profile_data.h"
+
+/* Images */
+extern DLNAProfile DLNA_PROFILE_PNG_LRG; ///< PNG high resolution
+
+/* Icons */
+extern DLNAIconProfile DLNA_ICON_PNG_SM_24A; ///< DLNA icon profile of small png images
+extern DLNAIconProfile DLNA_ICON_PNG_LRG_24A; ///< DLNA icon profile of large png images
+extern DLNAIconProfile DLNA_ICON_PNG_TN; ///< DLNA png thumbnail profile of images
+
+#endif /* _PROFILES_PNG_H */
+
diff --git a/inc/profiles/profile_data.h b/inc/profiles/profile_data.h
new file mode 100644
index 0000000..7ae01d2
--- /dev/null
+++ b/inc/profiles/profile_data.h
@@ -0,0 +1,213 @@
+/*
+ * File: profile_data.h
+ * Author: savop
+ *
+ * Created on 5. Januar 2010, 12:27
+ */
+
+#ifndef _PROFILE_DATA_H
+#define _PROFILE_DATA_H
+
+#ifdef __cplusplus
+#include <vdr/tools.h>
+extern "C" {
+#include <libavformat/avformat.h>
+#include <libavcodec/avcodec.h>
+}
+#endif
+
+#define MAX_BITRATES 32 ///< maximum amount of different CBR bitrates
+#define MAX_CHANNEL_LAYOUTS 20 ///< maximum amount of different channel layout modes
+#define MAX_SAMPLE_RATES 16 ///< maximum amount of different sampling rates
+
+#define Kbps(x) x*1000 ///< Kbit per second
+#define Mbps(x) x*1000*1000 ///< Mbit per second
+#define KHz(x) x*1000
+#define MHz(x) x*1000*1000
+
+#define CHANNEL_LAYOUT_10 CH_LAYOUT_MONO ///< 1/0 1
+#define CHANNEL_LAYOUT_10_1 (CHANNEL_LAYOUT_10|CH_LOW_FREQUENCY)///< 1/0 1.1 (incl. LFE)
+#define CHANNEL_LAYOUT_20 CH_LAYOUT_STEREO ///< 2/0 2
+#define CHANNEL_LAYOUT_20_1 (CHANNEL_LAYOUT_20|CH_LOW_FREQUENCY)///< 2/0 2.1 (incl. LFE)
+#define CHANNEL_LAYOUT_21 (CH_LAYOUT_STEREO|CH_BACK_CENTER) ///< 2/1 3
+#define CHANNEL_LAYOUT_21_1 (CHANNEL_LAYOUT_21|CH_LOW_FREQUENCY)///< 2/1 3.1 (incl. LFE)
+#define CHANNEL_LAYOUT_22 CH_LAYOUT_QUAD ///< 2/2 4
+#define CHANNEL_LAYOUT_22_1 (CHANNEL_LAYOUT_22|CH_LOW_FREQUENCY)///< 2/2 4.1 (incl. LFE)
+#define CHANNEL_LAYOUT_30 CH_LAYOUT_SURROUND ///< 3/0 3
+#define CHANNEL_LAYOUT_30_1 (CHANNEL_LAYOUT_30|CH_LOW_FREQUENCY)///< 3/0 3.1 (incl. LFE)
+#define CHANNEL_LAYOUT_31 (CH_LAYOUT_SURROUND|CH_BACK_CENTER) ///< 3/1 4
+#define CHANNEL_LAYOUT_31_1 (CHANNEL_LAYOUT_31|CH_LOW_FREQUENCY)///< 3/1 4.1 (incl. LFE)
+#define CHANNEL_LAYOUT_32 CH_LAYOUT_5POINT0 ///< 3/2 5
+#define CHANNEL_LAYOUT_5_1 CH_LAYOUT_5POINT1 ///< 5.1 5.1 (incl. LFE)
+#define CHANNEL_LAYOUT_7_1 CH_LAYOUT_7POINT1 ///< 7.1 7.1 (incl. LFE)
+
+/**
+ * The combination of DLNA profile ID and the corresponding mime type
+ *
+ * This complies with the DLNA media format guidelines. Though this is very
+ * similar to the profile structure of libdlna, it comes without the additional
+ * label field as it seams to be not needed.
+ */
+struct DLNAProfile {
+ const char* ID; ///< the DLNA profile ID
+ const char* mime; ///< the mime type of the resource
+};
+
+/**
+ * The DLNA profile for a icon image
+ *
+ * This complies with the DLNA media format guidelines. It contains a valid
+ * mime type, the resolution of the image and the corresponding bit depth
+ */
+struct DLNAIconProfile {
+ const char* mime; ///< the mime type of the image
+ unsigned short width; ///< image width in pixel
+ unsigned short height; ///< image height in pixel
+ unsigned char bitDepth; ///< bit depth in bits per pixel
+};
+
+enum VideoContainerProfile {
+ DLNA_VCP_UNKNOWN=-1,
+ DLNA_VCP_MPEG1=0,
+ DLNA_VCP_MPEG2_PS,
+ DLNA_VCP_MPEG2_TS,
+ DLNA_VCP_MPEG2_TS_T,
+ DLNA_VCP_MPEG2_TS_ISO,
+ DLNA_VCP_MP4,
+ DLNA_VCP_3GPP,
+ DLNA_VCP_ASF,
+};
+
+enum VideoPortionProfile {
+ DLNA_VPP_UNKNOWN=-1,
+ DLNA_VPP_MPEG1=0,
+ DLNA_VPP_MPEG2_PAL_SD,
+ DLNA_VPP_MPEG2_PAL_HD,
+ DLNA_VPP_MPEG2_NTSC_SD,
+ DLNA_VPP_MPEG2_NTSC_HD,
+ DLNA_VPP_MPEG2_SP,
+ DLNA_VPP_MPEG2_MP_LL,
+ DLNA_VPP_MPEG4_P2_SP_L0B,
+ DLNA_VPP_MPEG4_P2_SP_L2,
+ DLNA_VPP_MPEG4_P2_SP_L3,
+ DLNA_VPP_MPEG4_P2_SP_L3_VGA,
+ DLNA_VPP_MPEG4_P2_ASP_L5,
+ DLNA_VPP_MPEG4_P2_ASP_L5_SO,
+ DLNA_VPP_MPEG4_P2_ASP_L4_SO,
+ DLNA_VPP_MPEG4_P2_H263_P0_L10,
+ DLNA_VPP_MPEG4_P2_H263_P3_L10,
+ DLNA_VPP_MPEG4_P2_CO,
+ DLNA_VPP_MPEG4_P10_MP_SD,
+ DLNA_VPP_MPEG4_P10_MP_HD,
+ DLNA_VPP_MPEG4_P10_BL_L3_SD,
+ DLNA_VPP_MPEG4_P10_BL_L3L_SD,
+ DLNA_VPP_MPEG4_P10_BL_CIF30,
+ DLNA_VPP_MPEG4_P10_BL_L2_CIF30,
+ DLNA_VPP_MPEG4_P10_BL_CIF15,
+ DLNA_VPP_MPEG4_P10_BL_L12_CIF15,
+ DLNA_VPP_MPEG4_P10_BL_L1B_QCIF
+};
+
+enum AudioPortionProfile {
+ DLNA_APP_UNKNOWN=-1,
+ DLNA_APP_LPCM=0,
+ DLNA_APP_MPEG1_L1,
+ DLNA_APP_MPEG1_L2,
+ DLNA_APP_MPEG1_L3,
+ DLNA_APP_MPEG1_L3X,
+ DLNA_APP_MPEG2_L2, //TODO: Distinguish MPEG1 oder MPEG2 audio with FFMPEG
+ DLNA_APP_AAC,
+ DLNA_APP_AAC_MULT5,
+ DLNA_APP_AAC_LTP,
+ DLNA_APP_AAC_LTP_MULT5,
+ DLNA_APP_AAC_LTP_MULT7,
+ DLNA_APP_HEAAC,
+ DLNA_APP_HEAAC_L2,
+ DLNA_APP_HEAAC_MULT5,
+ DLNA_APP_ATRAC3plus,
+ DLNA_APP_AC3,
+ DLNA_APP_XAC3,
+ DLNA_APP_G726,
+ DLNA_APP_AMR,
+ DLNA_APP_AMR_WBplus,
+ DLNA_APP_BL_QCIF15,
+ DLNA_APP_BSAC,
+ DLNA_APP_BSAC_MULT5
+};
+
+struct DLNAVideoMapping {
+ DLNAProfile* Profile;
+ VideoContainerProfile VideoContainer;
+ VideoPortionProfile VideoProfile;
+ AudioPortionProfile AudioProfile;
+};
+
+struct AcceptedBitrates {
+ /**
+ * <b>true</b> if VBR, <b>false</b> otherwise
+ */
+ bool VBR;
+ /**
+ * list of valid bitrates.
+ *
+ * if VBR is true, the array must contain exactly two items.
+ * The first item is the minimum and the second item is the maximum bitrate
+ *
+ * The bitrate unit is bps. So, if you have 15bps, it is 15000000bps
+ */
+ int bitrates[MAX_BITRATES];
+};
+
+struct AcceptedResolution {
+ /**
+ * Screen width
+ */
+ int width;
+ /**
+ * Screen height
+ */
+ int height;
+ /**
+ * Frames per second
+ *
+ * this value may contain a higher value which is divided by the multiplier
+ * given in <b>multiplier</b>
+ */
+ int fps;
+ /**
+ * Multiplier for calculating FPS
+ *
+ * The multiplier typically contains values like 1 or 1001 to calculate
+ * the exact frame rate of 29,97 FPS in most NTSC systems
+ */
+ int multiplier;
+};
+
+struct AcceptedAudioChannels {
+ int max_channels;
+ int64_t layouts[MAX_CHANNEL_LAYOUTS];
+ bool supportsLFE;
+};
+
+struct AcceptedSamplingRates {
+ int rates[MAX_SAMPLE_RATES];
+};
+
+class cDLNAProfiler {
+public:
+ virtual DLNAProfile* probeDLNAProfile(AVFormatContext* FormatCtx) = 0;
+};
+
+class cAudioProfiler {
+public:
+ virtual AudioPortionProfile probeAudioProfile(AVFormatContext* FormatCtx) = 0;
+};
+
+class cVideoProfiler {
+public:
+ virtual VideoPortionProfile probeVideoProfile(AVFormatContext* FormatCtx) = 0;
+ virtual VideoContainerProfile probeContainerProfile(AVFormatContext* FormatCtx) = 0;
+};
+
+#endif /* _PROFILE_DATA_H */
+
diff --git a/inc/profiles/wma.h b/inc/profiles/wma.h
new file mode 100644
index 0000000..80e25ec
--- /dev/null
+++ b/inc/profiles/wma.h
@@ -0,0 +1,18 @@
+/*
+ * File: profiles_wma.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 13:32
+ */
+
+#ifndef _PROFILES_WMA_H
+#define _PROFILES_WMA_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_WMABASE; ///< WMA with less than 193Kbit/s
+extern DLNAProfile DLNA_PROFILE_WMAFULL; ///< WMA
+extern DLNAProfile DLNA_PROFILE_WMAPRO; ///< WMA Professional
+
+#endif /* _PROFILES_WMA_H */
+
diff --git a/inc/profiles/wmv9.h b/inc/profiles/wmv9.h
new file mode 100644
index 0000000..fd69499
--- /dev/null
+++ b/inc/profiles/wmv9.h
@@ -0,0 +1,24 @@
+/*
+ * File: profiles_wmv9.h
+ * Author: savop
+ *
+ * Created on 7. Dezember 2009, 14:53
+ */
+
+#ifndef _PROFILES_WMV9_H
+#define _PROFILES_WMV9_H
+
+#include "profile_data.h"
+
+extern DLNAProfile DLNA_PROFILE_WMVMED_BASE; ///< WMV medium resolution baseline audio
+extern DLNAProfile DLNA_PROFILE_WMVMED_FULL; ///< WMV medium resolution full audio
+extern DLNAProfile DLNA_PROFILE_WMVMED_PRO; ///< WMV medium resolution professional audio
+extern DLNAProfile DLNA_PROFILE_WMVHIGH_FULL; ///< WMV high resolution full audio
+extern DLNAProfile DLNA_PROFILE_WMVHIGH_PRO; ///< WMV high resolution professional audio
+extern DLNAProfile DLNA_PROFILE_WMVHM_BASE; ///< WMV HighMAT profile
+extern DLNAProfile DLNA_PROFILE_WMVSPLL_BASE; ///< WMV Low resolution simple profile low level
+extern DLNAProfile DLNA_PROFILE_WMVSPML_BASE; ///< WMV Low resolution simple profile medium level
+extern DLNAProfile DLNA_PROFILE_WMVSPML_MP3; ///< WMV Low resolution simple profile medium level MP3 audio
+
+#endif /* _PROFILES_WMV9_H */
+