44using Microsoft . Extensions . Logging ;
55using SharpOnvifCommon ;
66using SharpOnvifCommon . PTZ ;
7+ using SharpOnvifServer ;
78using SharpOnvifServer . Media ;
89using System ;
910using System . Collections . Generic ;
@@ -50,41 +51,35 @@ public MediaImpl(IServer server, ILogger<MediaImpl> logger, IConfiguration confi
5051
5152 public override GetAudioSourcesResponse GetAudioSources ( GetAudioSourcesRequest request )
5253 {
53- if ( Profiles == null )
54- return new GetAudioSourcesResponse ( ) ;
55-
5654 return new GetAudioSourcesResponse ( )
5755 {
58- AudioSources = Profiles . Values . Select ( GetMyAudioSource ) . ToArray ( )
56+ AudioSources = Profiles ? . Values . Select ( GetMyAudioSource ) . ToArray ( )
5957 } ;
6058 }
6159
6260 public override GetProfilesResponse GetProfiles ( GetProfilesRequest request )
6361 {
64- if ( Profiles == null )
65- return new GetProfilesResponse ( ) ;
66-
6762 return new GetProfilesResponse ( )
6863 {
69- Profiles = Profiles . Values . Select ( CreateProfile ) . ToArray ( )
64+ Profiles = Profiles ? . Values . Select ( CreateMyProfile ) . ToArray ( )
7065 } ;
7166 }
7267
7368 [ return : MessageParameter ( Name = "Profile" ) ]
7469 public override Profile GetProfile ( string ProfileToken )
7570 {
7671 if ( Profiles == null || ! Profiles . ContainsKey ( ProfileToken ) )
77- return new Profile ( ) ;
72+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
7873
79- return CreateProfile ( Profiles [ ProfileToken ] ) ;
74+ return CreateMyProfile ( Profiles [ ProfileToken ] ) ;
8075 }
8176
8277 public override MediaUri GetSnapshotUri ( string ProfileToken )
8378 {
8479 Uri endpointUri = OperationContext . Current . IncomingMessageProperties . Via ;
8580
8681 if ( Profiles == null || ! Profiles . ContainsKey ( ProfileToken ) )
87- return new MediaUri ( ) ;
82+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
8883
8984 return new MediaUri ( )
9085 {
@@ -95,7 +90,7 @@ public override MediaUri GetSnapshotUri(string ProfileToken)
9590 public override MediaUri GetStreamUri ( StreamSetup StreamSetup , string ProfileToken )
9691 {
9792 if ( Profiles == null || ! Profiles . ContainsKey ( ProfileToken ) )
98- return new MediaUri ( ) ;
93+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
9994
10095 return new MediaUri ( )
10196 {
@@ -105,20 +100,17 @@ public override MediaUri GetStreamUri(StreamSetup StreamSetup, string ProfileTok
105100
106101 public override GetVideoSourcesResponse GetVideoSources ( GetVideoSourcesRequest request )
107102 {
108- if ( Profiles == null )
109- return new GetVideoSourcesResponse ( ) ;
110-
111103 return new GetVideoSourcesResponse ( )
112104 {
113- VideoSources = Profiles . Values . Select ( CreateMyVideoSource ) . ToArray ( )
105+ VideoSources = Profiles ? . Values . Select ( CreateMyVideoSource ) . ToArray ( )
114106 } ;
115107 }
116108
117109 [ return : MessageParameter ( Name = "Configuration" ) ]
118110 public override VideoSourceConfiguration GetVideoSourceConfiguration ( string ConfigurationToken )
119111 {
120112 if ( ConfigurationToken == null || Profiles == null || Profiles . Values . FirstOrDefault ( x => x . VideoSourceToken == ConfigurationToken ) == null )
121- return new VideoSourceConfiguration ( ) ;
113+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
122114
123115 return GetMyVideoSourceConfiguration ( Profiles . Values . First ( x => x . VideoSourceToken == ConfigurationToken ) ) ;
124116 }
@@ -127,16 +119,16 @@ public override VideoSourceConfiguration GetVideoSourceConfiguration(string Conf
127119 public override VideoEncoderConfiguration GetVideoEncoderConfiguration ( string ConfigurationToken )
128120 {
129121 if ( ConfigurationToken == null || Profiles == null || Profiles . Values . FirstOrDefault ( x => x . VideoEncoderToken == ConfigurationToken ) == null )
130- return new VideoEncoderConfiguration ( ) ;
122+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
131123
132124 return GetMyVideoEncoderConfiguration ( Profiles . Values . First ( x => x . VideoEncoderToken == ConfigurationToken ) ) ;
133125 }
134126
135127 [ return : MessageParameter ( Name = "Options" ) ]
136128 public override VideoEncoderConfigurationOptions GetVideoEncoderConfigurationOptions ( string ConfigurationToken , string ProfileToken )
137129 {
138- if ( Profiles == null || ! Profiles . ContainsKey ( ProfileToken ) )
139- return new VideoEncoderConfigurationOptions ( ) ;
130+ if ( Profiles == null || ! Profiles . ContainsKey ( ProfileToken ) || Profiles . Values . FirstOrDefault ( x => x . VideoEncoderToken == ConfigurationToken ) == null )
131+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
140132
141133 return new VideoEncoderConfigurationOptions ( )
142134 {
@@ -163,56 +155,44 @@ public override VideoEncoderConfigurationOptions GetVideoEncoderConfigurationOpt
163155 [ return : MessageParameter ( Name = "Configurations" ) ]
164156 public override GetAudioEncoderConfigurationsResponse GetAudioEncoderConfigurations ( GetAudioEncoderConfigurationsRequest request )
165157 {
166- if ( Profiles == null )
167- return new GetAudioEncoderConfigurationsResponse ( ) ;
168-
169158 return new GetAudioEncoderConfigurationsResponse ( )
170159 {
171- Configurations = Profiles . Values . Select ( GetMyAudioEncoderConfiguration ) . ToArray ( )
160+ Configurations = Profiles ? . Values . Select ( GetMyAudioEncoderConfiguration ) . ToArray ( )
172161 } ;
173162 }
174163
175164 [ return : MessageParameter ( Name = "Configurations" ) ]
176165 public override GetAudioSourceConfigurationsResponse GetAudioSourceConfigurations ( GetAudioSourceConfigurationsRequest request )
177166 {
178- if ( Profiles == null )
179- return new GetAudioSourceConfigurationsResponse ( ) ;
180-
181167 return new GetAudioSourceConfigurationsResponse ( )
182168 {
183- Configurations = Profiles . Values . Select ( GetMyAudioSourceConfiguration ) . ToArray ( )
169+ Configurations = Profiles ? . Values . Select ( GetMyAudioSourceConfiguration ) . ToArray ( )
184170 } ;
185171 }
186172
187173 [ return : MessageParameter ( Name = "Configurations" ) ]
188174 public override GetVideoEncoderConfigurationsResponse GetVideoEncoderConfigurations ( GetVideoEncoderConfigurationsRequest request )
189175 {
190- if ( Profiles == null )
191- return new GetVideoEncoderConfigurationsResponse ( ) ;
192-
193176 return new GetVideoEncoderConfigurationsResponse ( )
194177 {
195- Configurations = Profiles . Values . Select ( GetMyVideoEncoderConfiguration ) . ToArray ( )
178+ Configurations = Profiles ? . Values . Select ( GetMyVideoEncoderConfiguration ) . ToArray ( )
196179 } ;
197180 }
198181
199182 [ return : MessageParameter ( Name = "Configurations" ) ]
200183 public override GetVideoSourceConfigurationsResponse GetVideoSourceConfigurations ( GetVideoSourceConfigurationsRequest request )
201184 {
202- if ( Profiles == null )
203- return new GetVideoSourceConfigurationsResponse ( ) ;
204-
205185 return new GetVideoSourceConfigurationsResponse ( )
206186 {
207- Configurations = Profiles . Values . Select ( GetMyVideoSourceConfiguration ) . ToArray ( )
187+ Configurations = Profiles ? . Values . Select ( GetMyVideoSourceConfiguration ) . ToArray ( )
208188 } ;
209189 }
210190
211191 [ return : MessageParameter ( Name = "Options" ) ]
212192 public override VideoSourceConfigurationOptions GetVideoSourceConfigurationOptions ( string ConfigurationToken , string ProfileToken )
213193 {
214- if ( Profiles == null || ! Profiles . ContainsKey ( ProfileToken ) )
215- return new VideoSourceConfigurationOptions ( ) ;
194+ if ( Profiles == null || ! Profiles . ContainsKey ( ProfileToken ) || Profiles . Values . FirstOrDefault ( x => x . VideoSourceToken == ConfigurationToken ) == null )
195+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
216196
217197 return new VideoSourceConfigurationOptions ( )
218198 {
@@ -243,7 +223,7 @@ public override VideoSourceConfigurationOptions GetVideoSourceConfigurationOptio
243223 public override GetCompatibleVideoEncoderConfigurationsResponse GetCompatibleVideoEncoderConfigurations ( GetCompatibleVideoEncoderConfigurationsRequest request )
244224 {
245225 if ( Profiles == null )
246- return new GetCompatibleVideoEncoderConfigurationsResponse ( ) ;
226+ OnvifErrors . ReturnSenderInvalidArg ( ) ;
247227
248228 return new GetCompatibleVideoEncoderConfigurationsResponse ( )
249229 {
@@ -256,16 +236,7 @@ public override GetCompatibleAudioDecoderConfigurationsResponse GetCompatibleAud
256236 {
257237 return new GetCompatibleAudioDecoderConfigurationsResponse ( )
258238 {
259- Configurations = Profiles . Values . Select ( CreateMyAudioDecoderConfiguration ) . ToArray ( )
260- } ;
261- }
262-
263- private AudioDecoderConfiguration CreateMyAudioDecoderConfiguration ( MediaProfile profile )
264- {
265- return new AudioDecoderConfiguration ( )
266- {
267- token = profile . AudioDecoderToken ,
268- Name = profile . AudioDecoderToken ,
239+ Configurations = Profiles ? . Values . Select ( CreateMyAudioDecoderConfiguration ) . ToArray ( )
269240 } ;
270241 }
271242
@@ -315,7 +286,16 @@ public override void AddAudioDecoderConfiguration(string ProfileToken, string Co
315286 _logger . LogInformation ( "MediaImpl: AddAudioDecoderConfiguration" ) ;
316287 }
317288
318- private static Profile CreateProfile ( MediaProfile profile )
289+ private AudioDecoderConfiguration CreateMyAudioDecoderConfiguration ( MediaProfile profile )
290+ {
291+ return new AudioDecoderConfiguration ( )
292+ {
293+ token = profile . AudioDecoderToken ,
294+ Name = profile . AudioDecoderToken ,
295+ } ;
296+ }
297+
298+ private static Profile CreateMyProfile ( MediaProfile profile )
319299 {
320300 return new Profile ( )
321301 {
0 commit comments