diff options
Diffstat (limited to 'inc/profiles')
-rw-r--r-- | inc/profiles/aac.h | 36 | ||||
-rw-r--r-- | inc/profiles/ac3.h | 24 | ||||
-rw-r--r-- | inc/profiles/amr.h | 17 | ||||
-rw-r--r-- | inc/profiles/atrac3plus.h | 16 | ||||
-rw-r--r-- | inc/profiles/container.h | 47 | ||||
-rw-r--r-- | inc/profiles/jpeg.h | 24 | ||||
-rw-r--r-- | inc/profiles/lpcm.h | 16 | ||||
-rw-r--r-- | inc/profiles/mpa.h | 25 | ||||
-rw-r--r-- | inc/profiles/mpeg1.h | 16 | ||||
-rw-r--r-- | inc/profiles/mpeg2.h | 68 | ||||
-rw-r--r-- | inc/profiles/mpeg4_p10.h | 153 | ||||
-rw-r--r-- | inc/profiles/mpeg4_p2.h | 80 | ||||
-rw-r--r-- | inc/profiles/png.h | 22 | ||||
-rw-r--r-- | inc/profiles/profile_data.h | 213 | ||||
-rw-r--r-- | inc/profiles/wma.h | 18 | ||||
-rw-r--r-- | inc/profiles/wmv9.h | 24 |
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 */ + |