Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: talk/examples/objc/AppRTCDemo/ARDAppClient.m

Issue 1187573004: iOS HW H264 support. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Move unittest file. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 24 matching lines...) Expand all
35 #import "RTCMediaStream.h" 35 #import "RTCMediaStream.h"
36 #import "RTCPair.h" 36 #import "RTCPair.h"
37 #import "RTCPeerConnectionInterface.h" 37 #import "RTCPeerConnectionInterface.h"
38 #import "RTCVideoCapturer.h" 38 #import "RTCVideoCapturer.h"
39 #import "RTCAVFoundationVideoSource.h" 39 #import "RTCAVFoundationVideoSource.h"
40 40
41 #import "ARDAppEngineClient.h" 41 #import "ARDAppEngineClient.h"
42 #import "ARDCEODTURNClient.h" 42 #import "ARDCEODTURNClient.h"
43 #import "ARDJoinResponse.h" 43 #import "ARDJoinResponse.h"
44 #import "ARDMessageResponse.h" 44 #import "ARDMessageResponse.h"
45 #import "ARDSDPUtils.h"
45 #import "ARDSignalingMessage.h" 46 #import "ARDSignalingMessage.h"
46 #import "ARDUtilities.h" 47 #import "ARDUtilities.h"
47 #import "ARDWebSocketChannel.h" 48 #import "ARDWebSocketChannel.h"
48 #import "RTCICECandidate+JSON.h" 49 #import "RTCICECandidate+JSON.h"
49 #import "RTCSessionDescription+JSON.h" 50 #import "RTCSessionDescription+JSON.h"
50 51
51 52
52 static NSString * const kARDDefaultSTUNServerUrl = 53 static NSString * const kARDDefaultSTUNServerUrl =
53 @"stun:stun.l.google.com:19302"; 54 @"stun:stun.l.google.com:19302";
54 // TODO(tkchin): figure out a better username for CEOD statistics. 55 // TODO(tkchin): figure out a better username for CEOD statistics.
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 NSDictionary *userInfo = @{ 338 NSDictionary *userInfo = @{
338 NSLocalizedDescriptionKey: @"Failed to create session description.", 339 NSLocalizedDescriptionKey: @"Failed to create session description.",
339 }; 340 };
340 NSError *sdpError = 341 NSError *sdpError =
341 [[NSError alloc] initWithDomain:kARDAppClientErrorDomain 342 [[NSError alloc] initWithDomain:kARDAppClientErrorDomain
342 code:kARDAppClientErrorCreateSDP 343 code:kARDAppClientErrorCreateSDP
343 userInfo:userInfo]; 344 userInfo:userInfo];
344 [_delegate appClient:self didError:sdpError]; 345 [_delegate appClient:self didError:sdpError];
345 return; 346 return;
346 } 347 }
348 // Prefer H264 if available.
349 RTCSessionDescription *sdpPreferringH264 =
350 [ARDSDPUtils descriptionForDescription:sdp
351 preferredVideoCodec:@"H264"];
347 [_peerConnection setLocalDescriptionWithDelegate:self 352 [_peerConnection setLocalDescriptionWithDelegate:self
348 sessionDescription:sdp]; 353 sessionDescription:sdpPreferringH264];
349 ARDSessionDescriptionMessage *message = 354 ARDSessionDescriptionMessage *message =
350 [[ARDSessionDescriptionMessage alloc] initWithDescription:sdp]; 355 [[ARDSessionDescriptionMessage alloc]
356 initWithDescription:sdpPreferringH264];
351 [self sendSignalingMessage:message]; 357 [self sendSignalingMessage:message];
352 }); 358 });
353 } 359 }
354 360
355 - (void)peerConnection:(RTCPeerConnection *)peerConnection 361 - (void)peerConnection:(RTCPeerConnection *)peerConnection
356 didSetSessionDescriptionWithError:(NSError *)error { 362 didSetSessionDescriptionWithError:(NSError *)error {
357 dispatch_async(dispatch_get_main_queue(), ^{ 363 dispatch_async(dispatch_get_main_queue(), ^{
358 if (error) { 364 if (error) {
359 NSLog(@"Failed to set session description. Error: %@", error); 365 NSLog(@"Failed to set session description. Error: %@", error);
360 [self disconnect]; 366 [self disconnect];
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 // Processes the given signaling message based on its type. 440 // Processes the given signaling message based on its type.
435 - (void)processSignalingMessage:(ARDSignalingMessage *)message { 441 - (void)processSignalingMessage:(ARDSignalingMessage *)message {
436 NSParameterAssert(_peerConnection || 442 NSParameterAssert(_peerConnection ||
437 message.type == kARDSignalingMessageTypeBye); 443 message.type == kARDSignalingMessageTypeBye);
438 switch (message.type) { 444 switch (message.type) {
439 case kARDSignalingMessageTypeOffer: 445 case kARDSignalingMessageTypeOffer:
440 case kARDSignalingMessageTypeAnswer: { 446 case kARDSignalingMessageTypeAnswer: {
441 ARDSessionDescriptionMessage *sdpMessage = 447 ARDSessionDescriptionMessage *sdpMessage =
442 (ARDSessionDescriptionMessage *)message; 448 (ARDSessionDescriptionMessage *)message;
443 RTCSessionDescription *description = sdpMessage.sessionDescription; 449 RTCSessionDescription *description = sdpMessage.sessionDescription;
450 // Prefer H264 if available.
451 RTCSessionDescription *sdpPreferringH264 =
452 [ARDSDPUtils descriptionForDescription:description
453 preferredVideoCodec:@"H264"];
444 [_peerConnection setRemoteDescriptionWithDelegate:self 454 [_peerConnection setRemoteDescriptionWithDelegate:self
445 sessionDescription:description]; 455 sessionDescription:sdpPreferringH264];
446 break; 456 break;
447 } 457 }
448 case kARDSignalingMessageTypeCandidate: { 458 case kARDSignalingMessageTypeCandidate: {
449 ARDICECandidateMessage *candidateMessage = 459 ARDICECandidateMessage *candidateMessage =
450 (ARDICECandidateMessage *)message; 460 (ARDICECandidateMessage *)message;
451 [_peerConnection addICECandidate:candidateMessage.candidate]; 461 [_peerConnection addICECandidate:candidateMessage.candidate];
452 break; 462 break;
453 } 463 }
454 case kARDSignalingMessageTypeBye: 464 case kARDSignalingMessageTypeBye:
455 // Other client disconnected. 465 // Other client disconnected.
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 code:kARDAppClientErrorInvalidRoom 643 code:kARDAppClientErrorInvalidRoom
634 userInfo:@{ 644 userInfo:@{
635 NSLocalizedDescriptionKey: @"Invalid room.", 645 NSLocalizedDescriptionKey: @"Invalid room.",
636 }]; 646 }];
637 break; 647 break;
638 } 648 }
639 return error; 649 return error;
640 } 650 }
641 651
642 @end 652 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698