author | Sampo Huttunen <sampo.huttunen@nokia.com> |
Wed, 03 Nov 2010 12:18:00 +0200 | |
branch | IOP_Improvements |
changeset 41 | b4d83ea1d6e2 |
parent 38 | 5360b7ddc251 |
permissions | -rw-r--r-- |
38
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
1 |
/* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
2 |
* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
3 |
* All rights reserved. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
4 |
* This component and the accompanying materials are made available |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
5 |
* under the terms of "Eclipse Public License v1.0" |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
6 |
* which accompanies this distribution, and is available |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
8 |
* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
9 |
* Initial Contributors: |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
10 |
* Nokia Corporation - initial contribution. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
11 |
* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
12 |
* Contributors: |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
13 |
* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
14 |
* Description: Implementation of base DLNA profile resolver class for av |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
15 |
* files. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
16 |
* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
17 |
*/ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
18 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
19 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
20 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
21 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
22 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
23 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
24 |
// includes |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
25 |
#include <badesca.h> // CDesC16ArrayFlat |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
26 |
#include <3gplibrary/mp4lib.h> |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
27 |
#include "upnpavsolverbase.h" |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
28 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
29 |
_LIT( KComponentLogfile, "dlnaprofiler.txt"); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
30 |
#include "upnplog.h" |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
31 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
32 |
// constants |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
33 |
_LIT8( KVideoMp4, "video/mp4" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
34 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
35 |
_LIT( KMpeg4_p2_mp4_sp_l2_aac, "MPEG4_P2_MP4_SP_L2_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
36 |
_LIT( KMpeg4_p2_mp4_sp_aac, "MPEG4_P2_MP4_SP_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
37 |
_LIT( KMpeg4_p2_mp4_sp_vga_aac, "MPEG4_P2_MP4_SP_VGA_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
38 |
_LIT( KMpeg4_p2_mp4_asp_l4_so_aac, "MPEG4_P2_MP4_ASP_L4_SO_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
39 |
_LIT( KMpeg4_p2_mp4_sp_l5_aac, "MPEG4_P2_MP4_SP_L5_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
40 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
41 |
_LIT( KAvc_mp4_bl_cif15_aac, "AVC_MP4_BL_CIF15_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
42 |
_LIT( KAvc_mp4_bl_cif15_aac_520, "AVC_MP4_BL_CIF15_AAC_520" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
43 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
44 |
_LIT( KAvc_mp4_mp_hd_720p_aac, "AVC_MP4_MP_HD_720p_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
45 |
_LIT( KAvc_mp4_hp_hd_aac, "AVC_MP4_HP_HD_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
46 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
47 |
_LIT( KAvc_mp4_bl_l31_hd_aac, "AVC_MP4_BL_L31_HD_AAC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
48 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
49 |
const TUint32 KSimpleProfileLevel2 = 0x02; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
50 |
const TUint32 KSimpleProfileLevel3 = 0x03; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
51 |
const TUint32 KSimpleProfileLevel4 = 0x04; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
52 |
const TUint32 KSimpleProfileLevel5 = 0x05; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
53 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
54 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
55 |
const mp4_u32 KMaxXResolutionCif = 352; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
56 |
const mp4_u32 KMaxYResolutionCif = 288; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
57 |
const mp4_u32 KMaxXResolutionVga = 640; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
58 |
const mp4_u32 KMaxYResolutionVga = 480; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
59 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
60 |
const TUint32 KAvcLevel31 = 31; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
61 |
const TUint32 KAvcLevel40 = 40; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
62 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
63 |
//const TInt KBitrateAverageToMaxFactor = 20; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
64 |
//const mp4_u32 KMaxBitrateCif520 = 520; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
65 |
//const mp4_u32 KMaxBitrateCif = 384; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
66 |
//const TUint32 KAdvancedSimpleProfileLevel1 = 0x91; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
67 |
//const TUint32 KAdvancedSimpleProfileLevel2 = 0x92; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
68 |
//const TUint32 KAdvancedSimpleProfileLevel3 = 0x93; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
69 |
//const TUint32 KAdvancedSimpleProfileLevel4 = 0x94; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
70 |
//const TUint32 KAvcBaseline1_2 = 12; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
71 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
72 |
/* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
73 |
=========================================================================== |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
74 |
Codec-specific details are explained here |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
75 |
(for the part that is currently required by upnp framework) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
76 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
77 |
MPEG4 part2 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
78 |
------------ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
79 |
see ISO/IEC 14496-2, chapter 6.2.2 and annex G |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
80 |
(http://akuvian.org/src/x264/ISO-IEC-14496-2_2001_MPEG4_Visual.pdf.gz) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
81 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
82 |
32 bit: visual_object_sequence_start_code (not interesting) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
83 |
8 bit: profile_and_level_indication, where: |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
84 |
0x02 = simple profile, level 2 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
85 |
0x03 = simple profile, level 3 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
86 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
87 |
0x04 = simple profile, level 4a |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
88 |
0x05 = simple profile, level 5 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
89 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
90 |
0x91 = advanced simple profile, level 1 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
91 |
0x92 = advanced simple profile, level 2 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
92 |
0x93 = advanced simple profile, level 3 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
93 |
0x94 = advanced simple profile, level 4 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
94 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
95 |
... |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
96 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
97 |
MPEG4 part 10 (AVC) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
98 |
------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
99 |
see ISO/IEC 14496-15, chapter 5.2.4.1.1 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
100 |
(http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=43178) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
101 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
102 |
8 bit: version (not interesting) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
103 |
8 bit: AVC profile indication, where |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
104 |
0x42 = AVC baseline |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
105 |
0x4D = AVC main |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
106 |
0x58 = AVC extended |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
107 |
8 bit: compatibility flags (not interesting) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
108 |
8 bit: AVC level indication, where |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
109 |
10 = baseline level 1.0 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
110 |
11 = baseline level 1.1 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
111 |
12 = baseline level 1.2 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
112 |
13 = baseline level 1.3 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
113 |
20 = baseline level 2.0 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
114 |
21 = baseline level 2.1 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
115 |
22 = baseline level 2.2 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
116 |
30 = baseline level 3.0 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
117 |
... |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
118 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
119 |
=========================================================================== |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
120 |
*/ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
121 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
122 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
123 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
124 |
// CUpnpAvSolverBase C++ constructor |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
125 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
126 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
127 |
CUpnpAvSolverBase::CUpnpAvSolverBase() |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
128 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
129 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase constructor" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
130 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
131 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
132 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
133 |
// CUpnpAvSolverBase::ConstructL |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
134 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
135 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
136 |
void CUpnpAvSolverBase::ConstructL() |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
137 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
138 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase::ConstructL" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
139 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
140 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
141 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
142 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
143 |
// CUpnpAvSolverBase::NewL |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
144 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
145 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
146 |
CUpnpAvSolverBase* CUpnpAvSolverBase::NewL() |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
147 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
148 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase::NewL" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
149 |
CUpnpAvSolverBase* self = CUpnpAvSolverBase::NewLC(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
150 |
CleanupStack::Pop( self ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
151 |
return self; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
152 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
153 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
154 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
155 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
156 |
// CUpnpAvSolverBase::NewLC |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
157 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
158 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
159 |
CUpnpAvSolverBase* CUpnpAvSolverBase::NewLC() |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
160 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
161 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase::NewLC" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
162 |
CUpnpAvSolverBase* self = new( ELeave ) CUpnpAvSolverBase; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
163 |
CleanupStack::PushL( self ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
164 |
self->ConstructL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
165 |
return self; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
166 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
167 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
168 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
169 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
170 |
// CUpnpAvSolverBase destructor |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
171 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
172 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
173 |
CUpnpAvSolverBase::~CUpnpAvSolverBase() |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
174 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
175 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase destructor" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
176 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
177 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
178 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
179 |
// From class MUpnpProfiler. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
180 |
// SupportedProfilesL returns DLNA profiles that are currently supported. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
181 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
182 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
183 |
TInt CUpnpAvSolverBase::SupportedProfilesL( |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
184 |
CDesC16ArrayFlat* aProfiles ) const |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
185 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
186 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase::SupportedProfilesL" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
187 |
TInt retval = KErrNone; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
188 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
189 |
if ( !aProfiles ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
190 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
191 |
// Invalid parameter |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
192 |
retval = KErrArgument; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
193 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
194 |
else |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
195 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
196 |
// append all new profiles recognized by this solver |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
197 |
// do not allow duplicates |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
198 |
TInt tempPos = KErrNotFound; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
199 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
200 |
if ( aProfiles->Find( KMpeg4_p2_mp4_sp_l2_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
201 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
202 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
203 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
204 |
aProfiles->AppendL( KMpeg4_p2_mp4_sp_l2_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
205 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
206 |
if ( aProfiles->Find( KMpeg4_p2_mp4_sp_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
207 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
208 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
209 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
210 |
aProfiles->AppendL( KMpeg4_p2_mp4_sp_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
211 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
212 |
if ( aProfiles->Find( KMpeg4_p2_mp4_sp_vga_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
213 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
214 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
215 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
216 |
aProfiles->AppendL( KMpeg4_p2_mp4_sp_vga_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
217 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
218 |
if ( aProfiles->Find( KMpeg4_p2_mp4_asp_l4_so_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
219 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
220 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
221 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
222 |
aProfiles->AppendL( KMpeg4_p2_mp4_asp_l4_so_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
223 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
224 |
if ( aProfiles->Find( KMpeg4_p2_mp4_sp_l5_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
225 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
226 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
227 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
228 |
aProfiles->AppendL( KMpeg4_p2_mp4_sp_l5_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
229 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
230 |
if ( aProfiles->Find( KAvc_mp4_bl_cif15_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
231 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
232 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
233 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
234 |
aProfiles->AppendL( KAvc_mp4_bl_cif15_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
235 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
236 |
if ( aProfiles->Find( KAvc_mp4_bl_cif15_aac_520(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
237 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
238 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
239 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
240 |
aProfiles->AppendL( KAvc_mp4_bl_cif15_aac_520() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
241 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
242 |
if ( aProfiles->Find( KAvc_mp4_mp_hd_720p_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
243 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
244 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
245 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
246 |
aProfiles->AppendL( KAvc_mp4_mp_hd_720p_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
247 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
248 |
if ( aProfiles->Find( KAvc_mp4_hp_hd_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
249 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
250 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
251 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
252 |
aProfiles->AppendL( KAvc_mp4_hp_hd_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
253 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
254 |
if ( aProfiles->Find( KAvc_mp4_bl_l31_hd_aac(), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
255 |
tempPos, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
256 |
ECmpFolded ) ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
257 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
258 |
aProfiles->AppendL( KAvc_mp4_bl_l31_hd_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
259 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
260 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
261 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
262 |
return retval; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
263 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
264 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
265 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
266 |
// From class MUpnpProfiler. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
267 |
// ProfileForFileL is for resolving a DLNA profile of a given file. Besides |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
268 |
// of file name, also mime type of the file is passed as a parameter in order |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
269 |
// to avoid re-opening the file. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
270 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
271 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
272 |
HBufC* CUpnpAvSolverBase::ProfileForFileL( const TDesC& /*aFilename*/, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
273 |
const TDesC8& aMimetype, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
274 |
RFile& aFile ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
275 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
276 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase::ProfileForFileL" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
277 |
HBufC* retval = NULL; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
278 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
279 |
if ( aMimetype.Compare( KVideoMp4() ) == 0 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
280 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
281 |
GetVideoFileInformationL( aFile ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
282 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
283 |
__LOG2( "[UPnPDlnaProfiler] CUpnpAvSolverBase::ProfileForFileL: Video type = 0x%x, Audio type = 0x%x", |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
284 |
iVideoType, iAudioType ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
285 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
286 |
if ( iVideoType == MP4_TYPE_MPEG4_VIDEO && |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
287 |
iAudioType == MP4_TYPE_MPEG4_AUDIO ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
288 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
289 |
// MPEG4 level 2 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
290 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
291 |
TUint32 level = iCodecInfo.iData[1] & 0x000000FF; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
292 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
293 |
__LOG1( "[CUpnpAvSolverBase] CUpnpAvSolverBase::\ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
294 |
GetVideoFileInformationL level %d", level ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
295 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
296 |
if ( level == KSimpleProfileLevel2 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
297 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
298 |
// Simple profile level 2 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
299 |
retval = KMpeg4_p2_mp4_sp_l2_aac().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
300 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
301 |
else if ( level == KSimpleProfileLevel3 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
302 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
303 |
// Simple profile level 3 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
304 |
if ( iVideoResolutionX <= KMaxXResolutionCif && |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
305 |
iVideoResolutionY <= KMaxYResolutionCif ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
306 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
307 |
// resolution below CIF standard |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
308 |
retval = KMpeg4_p2_mp4_sp_aac().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
309 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
310 |
else if ( iVideoResolutionX <= KMaxXResolutionVga && |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
311 |
iVideoResolutionY <= KMaxYResolutionVga ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
312 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
313 |
// resolution below VGA standard |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
314 |
retval = KMpeg4_p2_mp4_sp_vga_aac().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
315 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
316 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
317 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
318 |
else if ( level == KSimpleProfileLevel4 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
319 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
320 |
// Simple profile level 4a |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
321 |
retval = KMpeg4_p2_mp4_asp_l4_so_aac().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
322 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
323 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
324 |
else if ( level == KSimpleProfileLevel5 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
325 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
326 |
// Simple profile level 5 |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
327 |
retval = KMpeg4_p2_mp4_sp_l5_aac().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
328 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
329 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
330 |
/* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
331 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
332 |
Not needed yet: |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
333 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
334 |
else if ( level == KAdvancedSimpleProfileLevel1 || |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
335 |
level == KAdvancedSimpleProfileLevel2 || |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
336 |
level == KAdvancedSimpleProfileLevel3 || |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
337 |
level == KAdvancedSimpleProfileLevel4 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
338 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
339 |
// Advanced simple profile (levels 1-4) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
340 |
retval = HBufC::NewL( KMpeg4_p2_mp4_sp_l5_aac().Length() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
341 |
retval->Des().Append( KMpeg4_p2_mp4_sp_l5_aac() ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
342 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
343 |
*/ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
344 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
345 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
346 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
347 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
348 |
/* |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
349 |
Temporary solution, based on AVC video resolution. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
350 |
iLevel should be used instead, see above Mp4 P2. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
351 |
*/ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
352 |
else if ( iVideoType == MP4_TYPE_AVC_PROFILE_BASELINE && |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
353 |
iAudioType == MP4_TYPE_MPEG4_AUDIO ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
354 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
355 |
// MPEG4 part 10 (AVC) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
356 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
357 |
if (iVideoResolutionX <= KMaxXResolutionCif && |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
358 |
iVideoResolutionY <= KMaxYResolutionCif ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
359 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
360 |
retval = KAvc_mp4_bl_cif15_aac_520().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
361 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
362 |
else |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
363 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
364 |
TUint32 level = (iCodecInfo.iData[0] & 0xFF000000) >> 24; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
365 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
366 |
__LOG1( "[UPnPDlnaProfiler] CUpnpAvSolverBase::ProfileForFileL: Level = %d", level ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
367 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
368 |
if ( level == KAvcLevel31 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
369 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
370 |
retval = KAvc_mp4_bl_l31_hd_aac().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
371 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
372 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
373 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
374 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
375 |
else if ( iVideoType == MP4_TYPE_AVC_PROFILE_MAIN && |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
376 |
iAudioType == MP4_TYPE_MPEG4_AUDIO ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
377 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
378 |
TUint32 level = (iCodecInfo.iData[0] & 0xFF000000) >> 24; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
379 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
380 |
if ( level == KAvcLevel31 ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
381 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
382 |
retval = KAvc_mp4_mp_hd_720p_aac().AllocL(); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
383 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
384 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
385 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
386 |
return retval; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
387 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
388 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
389 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
390 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
391 |
// GetVideoFileInformationL is for resolving audio file attributes by using |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
392 |
// CMdaAudioConvertUtility. |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
393 |
// -------------------------------------------------------------------------- |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
394 |
// |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
395 |
TInt CUpnpAvSolverBase::GetVideoFileInformationL( RFile& aFile ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
396 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
397 |
__LOG( "[UPnPDlnaProfiler] CUpnpAvSolverBase::GetVideoFileInformationL" ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
398 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
399 |
TInt retval = KErrNone; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
400 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
401 |
// video description |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
402 |
mp4_u32 videolength; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
403 |
mp4_u32 videotimescale; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
404 |
// audio params |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
405 |
mp4_u32 audiolength = 0; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
406 |
mp4_u8 audioframes = 0; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
407 |
mp4_u32 audiotimescale = 0; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
408 |
mp4_u32 audiobitrate = 0; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
409 |
// stream params |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
410 |
mp4_u32 streamsize = 0; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
411 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
412 |
// reset old values |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
413 |
iStreamAverageBitrate = 0; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
414 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
415 |
MP4Handle myMp4Handle; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
416 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
417 |
// try open mp4 file handle |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
418 |
MP4Err openerr = MP4ParseOpenFileHandle( &myMp4Handle, &aFile ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
419 |
if ( openerr == MP4_OK ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
420 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
421 |
MP4Err requesterr = MP4ParseRequestVideoDescription( |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
422 |
myMp4Handle, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
423 |
&videolength, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
424 |
&iVideoFramerate, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
425 |
&iVideoType, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
426 |
&iVideoResolutionX, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
427 |
&iVideoResolutionY, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
428 |
&videotimescale ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
429 |
if ( requesterr != MP4_OK ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
430 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
431 |
MP4ParseClose( myMp4Handle ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
432 |
User::Leave( KErrGeneral ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
433 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
434 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
435 |
requesterr = MP4ParseRequestAudioDescription( |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
436 |
myMp4Handle, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
437 |
&audiolength, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
438 |
&iAudioType, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
439 |
&audioframes, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
440 |
&audiotimescale, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
441 |
&audiobitrate ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
442 |
if ( requesterr != MP4_OK ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
443 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
444 |
MP4ParseClose( myMp4Handle ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
445 |
User::Leave( KErrGeneral ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
446 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
447 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
448 |
requesterr = MP4ParseRequestStreamDescription( |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
449 |
myMp4Handle, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
450 |
&streamsize, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
451 |
&iStreamAverageBitrate ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
452 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
453 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
454 |
if ( requesterr != MP4_OK ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
455 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
456 |
MP4ParseClose( myMp4Handle ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
457 |
User::Leave( KErrGeneral ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
458 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
459 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
460 |
TMP4DecoderSpecificInfo iDecoderInfo; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
461 |
mp4_u32 decoderInfoSize; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
462 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
463 |
requesterr = MP4ParseReadVideoDecoderSpecificInfo( |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
464 |
myMp4Handle, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
465 |
(mp4_u8*)&iDecoderInfo, |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
466 |
sizeof( iDecoderInfo ), |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
467 |
&decoderInfoSize ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
468 |
if ( requesterr != MP4_OK ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
469 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
470 |
MP4ParseClose( myMp4Handle ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
471 |
User::Leave( KErrGeneral ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
472 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
473 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
474 |
iCodecInfo = iDecoderInfo; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
475 |
// close mp4 file handle |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
476 |
MP4Err closeerr = MP4ParseClose( myMp4Handle ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
477 |
if ( closeerr ) |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
478 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
479 |
User::Leave( KErrGeneral ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
480 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
481 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
482 |
else |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
483 |
{ |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
484 |
// can not open file |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
485 |
User::Leave( KErrBadHandle ); |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
486 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
487 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
488 |
return retval; |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
489 |
} |
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
490 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
491 |
|
5360b7ddc251
New development branch with e.g. rendering state machine and a simple Qt example application using it.
samhuttu
parents:
0
diff
changeset
|
492 |
// end of file |