Intel® WiDi Technology: Technical Overview Enabling Dual Screen Apps Steve Barile – WiDi Dual Screen Application Evangelist, Intel CRIS002 Agenda • • • • • • • • 2 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Agenda • • • • • • • • 3 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Intel® WiDi Technology Overview… What is Miracast*? Infrastructure Spec ONLY 2012 Wi-Fi Alliance Miracast Spec A Wi-Fi Alliance* specification - ONLY defines: Network Discovery & Streaming Video Pipe …for all devices (PC, Tablet Phone, Blu-ray*, NAS…) - Network Discovery • Wi-Fi Direct - Peer-to-Peer Wi-Fi Connection • 802.11n, WPA2 (WiFi Protected Setup) - Streaming Video Pipe (h.264 / RTP / UDP) • Frame Rate (FPS) • Frame Dimensions (W & H) • Audio Format 1, 2, 5.1 CH & Codec) • Link/Content Protection (HDCP 2.1/2) 4 Wi-Fi Direct WiFi Protected Setup Streaming Video MPEG4 RTSP Intel® WiDi Technology Overview… What Miracast* is NOT! Not an application… Not PC screen sharing… Not phone screen mirroring… Not just for computing devices… 5 Applications Based on Miracast* Source to Sink Source Sink Miracast* 6 Applications Based on Miracast* Play Blu-ray* video on TV Sink Source Miracast* Miracast makes no assumptions about Video Source 7 Applications Based on Miracast* Duplicate Phone screen to TV via Adapter Source Miracast* Sink Miracast makes no assumptions about Video Source 8 Applications Based on Miracast* Display a PC screen on the TV Source Sink Miracast* WiDi is a screen sharing Windows* Application based on the Miracast Spec Miracast makes no assumptions about Video Source 9 Miracast* Data Flow SOURCE Audio Samples Video Frames 10 SINK Video Render Audio Render Video Encode Audio Encode Video Decode Audio Decode Packetize Packetize De-Packetize De-Packetize Link Content Protection Encrypt (Optional) Link Content Protection Decrypt (Optional) AV Mux AV DeMux Transport Transport LLC LLC Wi-Fi* MAC (Direct Link) Wi-Fi MAC (Direct Link) Wi-Fi PHY Wi-Fi PHY Agenda • • • • • • • • 11 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Intel® WiDi Technology Use Case: Same screen on both monitors – Dual Screen Interaction 12 Duplicate mode: Same app & UI on both screens TV Easy to understand duplicate mode even at 2.5m away! Intel® WiDi Technology Use Case: Dual monitors for docking – Dual Screen Interaction 13 Extended mode: Different app on each screen Easy to Understand “Docking” : side-by-side monitors in extended mode Intel® WiDi Technology – Dual Screen Interaction Use Case: Playing Video Clips Extended mode: 14 Different app on each screen TV Extended mode on TV (2.5m away): Hard to understand… Hard to Drag apps to display! Intel® WiDi Technology – Dual Screen Interaction Use Case: Playing Video Clips Extended mode: Different app on each screen TV Extended mode on TV: Very hard to mouse at 2.5m away! Cannot click to maximize window Cannot click to play-pause… 15 Intel® WiDi Technology Use Case: Microsoft Power Point – Dual Screen Interaction 16 Extended mode: EXAMPLE: MS PowerPoint TV Current Slide (window 2) Presentation view (window 1) Current slide + thumbnails + note taking Intel® WiDi Technology – Dual Screen Interaction Use Case: Playing Video Clips Extended mode: 17 App UI has 2 parts: - Select & Play content - View content TV ISV has new opportunities to innovate and differentiate with dual screen apps! Intel® WiDi Technology - Two Screen Interaction Use Case: Playing Video Clips Extended mode: 18 Separate the two parts - Select & Play at 0.5m - View at 2.5m TV Media Player (window 2) Full screen content Media Player (window 1) Video controls ( “”/ “||”) & media browsing Intel® WiDi Media Share & Other Dual Screen Application Examples… 19 A Dual Screen Application Intel® WiDi Media Share: Uses both screens for maximum user experience… Search, Select, and Control Media on 1st screen 20 View HD Media on 2nd screen A Dual Screen Application Select Media FLICK UP Search Media 21 Control Media A Dual Screen Application Search, Select, and Control Media on 1st screen View HD Media on 2nd screen 22 MTV* Music Experience ≥ 55” Live concert video Top music acts 5 decodes + 1 encode Touch / Mouse KB Window #1 Select one-of-five cameras to show on TV on 2-in-1 or Tablet Window #2 View content full screen on TV 2-in-1 or Tablet 23 Requires Core CPU/GPU edjing* Music App Touch UI music DJ Artist/Track info Real time data visualization ≥ 55” Window #1 Edjing* Performance software Window #2 Fun Data Visualization And song info 24 Facebook* Project to TV Dual Scrn app Photo & Caption + Comments 23 people like this. Shashi… Feb. 5 So Portland Startup Weekend: Women's Edition might actually become a thing. We just need to assemble an organizing team. Arwa, Gene, & Jessica expressed interest. Anyone else in? 3 photos 18 comments Jehn Dove OOOOH! So fun! February 5 at 1:43pm ◦ Like 4 Cory Cats We need more designers to join. February 5 at 1:51pm ◦ Like 2 5 hours ago 25 Double tap write a comment… Intel® WiDi Technology – Dual Screen Concept app Multi-video User configured Application 97 MPH App Window #1 Configure and add select content on 0.5m screen Clear All Load Layout 111 MPH Driver #8- Car Cam MPH / POS LIVE FEED Driver #99- Car Cam MPH / POS MPH //POS Layout 2 Layout 3 Driver #10 – Follow the Car Track Cam Driver Tweet s Car Race Main Live Feed Location Tweet Feeds…. 14 POS TURN 7 Layout 1 Driver #48- Car Cam Live Feed 26 8 POS Save Layout Follow Driver Driver Stats 107 MPH THE RACE EXTREME Content Driver Locati on 4 POS Layout 4 App Window #2 View multi-angle Videos & more on 2m large screen One application, pulling content from one site, driving two screens! Agenda • • • • • • • • 27 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Dual Screen Apps - User Mode Vectors 28 Interactive Content from any Source Multiple Content Streams Multitasking Passive / Interactive Dual Screen Apps - User Mode Vectors - Interactive Search, Choose, & Control on 1st screen - View on 2nd screen 29 Dual Screen Apps - User Mode Vectors - Content from any Source Web content (un/protected) or Local content Web Content Local Storage Intel GPU Transcode any video 30 Dual Screen Apps - User Mode Vectors - Multiple Content Streams Configure Content on 1st screen View Multiple content on 2nd screen 97 MPH Web Content 4 POS 107 MPH 8 POS 111 MPH 14 POS TURN 7 LIVE FEED THE RACE EXTREME Content Clear All Load Layout Save Layout Follow Driver Driver Locati on Layout 1 Driver #48- Car Cam Driver #8- Car Cam MPH / POS Driver #99- Car Cam MPH / POS Live Feed Car Race Main Live Feed Location Tweet Feeds…. 31 Layout 2 Layout 3 Driver #10 – Follow the Car Track Cam Driver Tweet s Driver Stats MPH //POS Layout 4 Dual Screen Apps - User Mode Vectors - Multitasking Run apps (Facebook*) on 1st screen - Watch video on 2nd screen 32 Dual Screen Apps - User Mode Vectors - Passive / Interactive Do little or nothing on 1st screen - Content auto refreshes on 2nd screen 23 people like this. Shashi… Feb. 5 So Portland Startup Weekend: Women's Edition might actually become a thing. We just need to assemble an organizing team. Arwa, Gene, & Jessica expressed interest. Anyone else in? 3 photos 18 comments Jehn Dove OOOOH! So fun! February 5 at 1:43pm ◦ Like 4 Cory Cats We need more designers to join. February 5 at 1:51pm ◦ Like 2 5 hours ago 33 Double tap write a comment… Agenda • • • • • • • • 34 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Intel® WiDi Technology – now in Windows* 8.1 !!! In Windows*: WiDi == HDMI* cable !!! Intel Gfx Driver + Intel® WiDi DLLs Miracast* Implementation Intel® Graphics Driver Intel/3rd P Wi-Fi* Driver To Receiver Intel HW Encode 35 Intel® WiDi Technology – now in Windows* 8.1 – Manual Connection Method Swipe Manual flow 3 steps… 1 swipe – 3 taps then then Tap 36 Swipe - Tap Tap Show Project Menu via “+Shift+Ctrl+F21” Intel® WiDi Technology – now in Windows* 8.1 – Implementation App Launch Windows* 8.1 uses standard Windows Display Driver Model (WDDM) APIs: 1. Use QueryDeviceConfig to determine topology and connection type. 2. Use SetDeviceConfig to put user control window on small screen, and content on the big screen. Note - new monitor type: “Miracast*” 2nd monitor connected N Is Miracast on Sys Y Y Set Extended mode Show the Windows charms “Project” menu User plugs in 2nd monitor via wire N Win+Shift+Ctrl+F21 STOP User connects via Project menu 2nd Get monitor details (x,y) etc nd 2Y window visible Y 37 Microsoft* message path WM_ DISPLAY CHANGE event Use 2nd window as needed N Show (via user request) 2nd window on 2nd monitor Use this logo to Toggle dual screen mode. Contact your Intel field rep for details. Intel® WiDi Technology – now in Windows* 8.1 Use “Win+Shift+Cntl+F21” to show Charms/Project connection menu 1) 2) 3) 38 + Make connection to TV + Make 2nd window & position on TV Windows* Desktop APIs (C/C++) Steps: • Monitor Connection / Disconnection • Get / Set Monitor Topology • Create & Position 2nd Window • Audio Follows Application Location 39 Monitor Connection / Disconnection Application must have a message handler for: • WM_DISPLAYCHANGE - notifies any changes to monitor topology • In the message handler query the number of monitors • int nMonitors = GetSystemMetrics(SM_CMONITORS) • Used to use EnumDisplayDevices / EnumDisplaySettings for resolution, etc. +/- 40 Get / Set Monitor Topology • QueryDisplayConfig shows for each monitor: – Display Mode: internal only, duplicate, extended, or external – Position: Position of the origin in the mutli-monitor plane – Size: X & Y resolution – Connection type: Internal, external_port, HDMI*, DVI, VGA, Miracast*, etc. • SetDisplayConfig can set non-fixed parameters Keep track of connection type to know which monitor to locate the two windows 41 Creating / Position 2nd Window Once the 2nd monitor is available: • Enable user in the UI to use dual screen mode OR • Automatically create the secondary window Either choice: Create, show/hide a second window (using Windows* APIs) • Position the main window on the internal monitor • Position the secondary window on external monitor 1st Monitor 42 2nd Monitor Locate search, control and media rendering containers as needed in main and secondary window’s client area Audio Follows Application Location A WiDi connection makes a new audio device. Ex: … and marks it as the DEFAULT audio device. OLD DEFAULT Headphone (RTC) (IDT High Definition Audio CODEC) NEW DEFAULT Speakers / HP (IDT High Definition Audio CODEC) Speakers / Intel® WiDi This will automatically route most sounds to the “TV” But all applications can choose the audio device they use! 43 • Calls: MMDeviceEnumerator, CPolicyConfig, and IMMDevice COM interface • Before connection you must identify the default audio device • You can switch between any audio device programmatically Agenda • • • • • • • • 44 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Windows* Store Apps (C#) Steps: • Poll for ProjectionAvailable • Create a new View (2nd Window) • Change UI for the first screen • Send info between pages INTEL CONFIDENTIAL Dual Screen Implementation – Windows* 8.1 Metro App App Launch 2nd monitor connected N Y Create View Show 2nd window on 2nd monitor N Y Use View (2nd window) as needed Inform User no 2nd Monitor available… use charms to connect STOP VIEW 2nd Window visible Y 46 Microsoft* message path Projection DisplayAvailable Changed event User plugs in 2nd monitor via wire User connects via Project menu Detect Second Display Availability Detect display topology… • Add event handler to catch ProjectionDisplayAvailableChanged event from Projection Manager public async void ProjectionManager_ProjectionDisplayAvailableChanged( object sender, object e) { if (ProjectionManager.ProjectionDisplayAvailable) { } } ProjectionManager.ProjectionDisplayAvailableChanged += ProjectionManager_ProjectionDisplayAvailableChanged; 47 Create New View (2nd Window – by default on 2nd monitor) async void StartProjecting() { int thisViewId = ApplicationVie`w.GetForCurrentView().Id; CoreDispatcher presentationDispatcher = await ((App)App.Current).CreateNewView(); await presentationDispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { projectionViewId = ApplicationView.GetApplicationViewIdForWindow(CoreWindow.GetForCurrentThread()); var rootFrame = new Frame(); rootFrame.Navigate(typeof(ProjectionPage), null); Window.Current.Content = rootFrame; }); await ProjectionManager.StartProjectingAsync(projectionViewId, thisViewId); } 48 Send Content to 2nd Window • Using a struct (or class) to contain the data you want to pass • Pass it through when you call the Navigate function public struct MediaInfo { public StorageFile file; public CoreDispatcher dis; } var rootFrame = new Frame(); rootFrame.Navigate(typeof(ProjectionPage), new MediaInfo()); 49 Projection Page • Create a new Page and override the OnNavigatedTo function • Called when navigated to, such as having a frame use the Navigate function • The argument will contain what you passed through described in the previous slide protected override async void OnNavigatedTo(NavigationEventArgs e) { MediaInfo input = (MediaInfo)e.Parameter; } 50 Demo Screen Shot Source code available on IDZ 51 Agenda • • • • • • • • 52 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Android* Secondary Display API Android* added Second-Screen support via the Presentation class in Android 4.2 (API Level 17), allowing you to: • Implement support for a second screen in your applications without having to worry about the way the displays are connected (Display agnostic) • Works with MHL*, HDMI*, SlimPort* & Miracast* compatible devices • You can control the output on the remote (second) screen independently of the phone screen 53 The Presentation Object • Presentation is the based class and should be extended: public class DemoPresentation extends Presentation { • Needs to be associated with a Display at creation time • Presentation inherits from Dialog, and as for a Dialog its lifecycle is bound to an Activity Dialog Presentation 54 You need to have a fragment based navigation if you want to keep it running while navigating in the app. The activity should take care of pausing and resuming whatever content is playing within the presentation whenever the activity itself is paused or resumed. Using the Presentation API Before showing a Presentation you need to select a Display, this can be done in 2 ways: 1. MediaRouter API (in API 16): system will decide the best display for you! // Get the MediaRouter service MediaRouter mMediaRouter = (MediaRouter)getSystemService(Context.MEDIA_ROUTER_SERVICE); // Care only about routes that have full video support. MediaRouter.RouteInfo mRouteInfo = mMediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO); Display presentationDisplay = mRouteInfo.getPresentationDisplay(); 2. Display Manager API (in API 17): Enumeration of displays // Get the DisplayManager service. DisplayManager mDisplayManager = (DisplayManager)getSystemService(Context.DISPLAY_SERVICE); // enumerate the displays Display[] presentationDisplays = mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION); 55 Presentation API How to get a Presentation displayed: MediaRouter. getSelectedRoute (ROUTE_TYPE_LIVE_VIDEO) MediaRouter. routeInfo new Presentation (activityContext, display) .show() getPresentationDisplay() Then, using MediaRouter.addCallback, you have to monitor: • onRouteUnselected • onRouteSelected • onRoutePresentationDisplayChanged And inside the activity owning the Presentation: • onResume • onPause 56 Designing Layout for the Presentation Use a layout the same way as with a Dialog. Display properties are the same than with Google* TV: TV setting Addressable screen size Density Identifier Screen Density Display Resolution Screen size identifier 720p 1280 x 720 px tvdpi 213 dp 960 x 540 dp large 1080p 1920 x 1080 px xhdpi 320 dp 960 x 540 dp large source: https://developers.google.com/tv/android/docs/gtv_android_patterns The TV display is bigger than a phone but the user sits further way so the screen density is comparable. Default theme is Holo Dark: light text on dark background is easier to read on TV. Orientation is always… landscape! 57 Wi-Fi* Display APIs - Android* 4.2/4.3 • All of the below APIs are internal as of Android* 4.2/4.3 • They are part of AOSP and publicly exposed, but not part of the framework so are not guaranteed to work android.provider.Settings android.hardware.display. WifiDisplayStatus … String ACTION_WIFI_DISPLAY_SETTINGS String getDeviceAlias() String getFriendlyDisplayName() int getFeatureState() int getScanState() int getActiveDisplayState() WifiDisplay getActiveDisplay() android.hardware.display.DisplayManager WifiDisplay[] getAvailableDisplays() … WifiDisplay[] getRememberedDisplays() String ACTION_WIFI_DISPLAY_STATUS_CHANGED WifiDisplayStatus getWifiDisplayStatus() void scanWifiDisplays() void connectWifiDisplay(String deviceAdress)¹ void disconnectWifiDisplay()² void forgetWifiDisplay(String address)² android.hardware.display.WifiDisplay String getDeviceAddress() String getDeviceName() String getDeviceAlias() String getFriendlyDisplayName() void renameWifiDisplay(String address, String alias)² ¹android.permission.CONFIGURE_WIFI_DISPLAY required for unknown devices ²android.permission.CONFIGURE_WIFI_DISPLAY always required 58 Adding a MediaRouteButton In res/menu/default.xml: <item android:title="Media Route Settings" android:actionProviderClass="android.app.MediaRouteActionProvider" android:showAsAction="always" /> //Sets Media Route Button to second screen mode mediaRouteActionProvider.setRouteTypes (MediaRouter.ROUTE_TYPE_LIVE_VIDEO); 59 Agenda • • • • • • • • 60 Intel® WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows Store applications (metro app) Android* applications Useful links Conclusion/Call to Action Intel® WiDi Technology - Links and Resources Intel.com Intel® WiDi Technology page (Intel® WiDi Media Share…) http://www.intel.com/go/widi Intel® Developer Zone page for Intel® WiDi Technology: http://software.intel.com/en-us/intel-widi PDF of this presentation is available from our Technical Session Catalog: www.intel.com/idfsessionsSZ. The URL is on top of Session Agenda Pages in Pocket Guide. 61 Agenda • • • • • • • • 62 WiDi Overview Definition: Dual Screen Application Generic App Flow Windows* Desktop applications Windows* Store applications (metro app) Android applications Useful links Conclusion/Call to Action In Conclusion… • Users are already using two screens to consume TV and other content. Smart Phones and Tablets are a constant companion. – from WiDi and other end user research • The Miracast* specification is in place and part of Android* 4.2.2, Windows* 8.1 Desktop, and Windows 8.1 “Metro”. There is clearly a broad acceptance of Miracast* from all OS’s and form factors. • Dual screen apps can perform better on Intel processors because of CPU & GPU performance • Dual screen apps are a hot new usage! This is a great differentiator! • Look for ways to implement dual screen aware applications. There a many new ways to be unique! 63 Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined". Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm Intel, Core, Look Inside and the Intel logo are trademarks of Intel Corporation in the United States and other countries. *Other names and brands may be claimed as the property of others. Copyright ©2014 Intel Corporation. 64 Legal Disclaimer • Intel® WiDi Technology requires an Intel® Wireless Display enabled system, compatible adapter and TV. 1080p and Blu-Ray* or other protected content playback only available on select Intel® Core™ processor-based systems with built-in visuals enabled, a compatible adapter and media player, and supporting Intel WiDi software and graphics driver installed. Consult your PC manufacturer. For more information, see www.intel.com/go/widi. • Software Source Code Disclaimer: Any software source code reprinted in this document is furnished under a software license and may only be used or copied in accordance with the terms of that license. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 65 Risk Factors The above statements and any others in this document that refer to plans and expectations for the first quarter, the year and the future are forward-looking statements that involve a number of risks and uncertainties. Words such as “anticipates,” “expects,” “intends,” “plans,” “believes,” “seeks,” “estimates,” “may,” “will,” “should” and their variations identify forward-looking statements. Statements that refer to or are based on projections, uncertain events or assumptions also identify forward-looking statements. Many factors could affect Intel’s actual results, and variances from Intel’s current expectations regarding such factors could cause actual results to differ materially from those expressed in these forward-looking statements. Intel presently considers the following to be the important factors that could cause actual results to differ materially from the company’s expectations. Demand could be different from Intel's expectations due to factors including changes in business and economic conditions; customer acceptance of Intel’s and competitors’ products; supply constraints and other disruptions affecting customers; changes in customer order patterns including order cancellations; and changes in the level of inventory at customers. Uncertainty in global economic and financial conditions poses a risk that consumers and businesses may defer purchases in response to negative financial events, which could negatively affect product demand and other related matters. Intel operates in intensely competitive industries that are characterized by a high percentage of costs that are fixed or difficult to reduce in the short term and product demand that is highly variable and difficult to forecast. Revenue and the gross margin percentage are affected by the timing of Intel product introductions and the demand for and market acceptance of Intel's products; actions taken by Intel's competitors, including product offerings and introductions, marketing programs and pricing pressures and Intel’s response to such actions; and Intel’s ability to respond quickly to technological developments and to incorporate new features into its products. The gross margin percentage could vary significantly from expectations based on capacity utilization; variations in inventory valuation, including variations related to the timing of qualifying products for sale; changes in revenue levels; segment product mix; the timing and execution of the manufacturing ramp and associated costs; start-up costs; excess or obsolete inventory; changes in unit costs; defects or disruptions in the supply of materials or resources; product manufacturing quality/yields; and impairments of long-lived assets, including manufacturing, assembly/test and intangible assets. Intel's results could be affected by adverse economic, social, political and physical/infrastructure conditions in countries where Intel, its customers or its suppliers operate, including military conflict and other security risks, natural disasters, infrastructure disruptions, health concerns and fluctuations in currency exchange rates. Expenses, particularly certain marketing and compensation expenses, as well as restructuring and asset impairment charges, vary depending on the level of demand for Intel's products and the level of revenue and profits. Intel’s results could be affected by the timing of closing of acquisitions and divestitures. Intel's results could be affected by adverse effects associated with product defects and errata (deviations from published specifications), and by litigation or regulatory matters involving intellectual property, stockholder, consumer, antitrust, disclosure and other issues, such as the litigation and regulatory matters described in Intel's SEC reports. An unfavorable ruling could include monetary damages or an injunction prohibiting Intel from manufacturing or selling one or more products, precluding particular business practices, impacting Intel’s ability to design its products, or requiring other remedies such as compulsory licensing of intellectual property. A detailed discussion of these and other factors that could affect Intel’s results is included in Intel’s SEC filings, including the company’s most recent reports on Form 10-Q, Form 10-K and earnings release. Rev. 1/16/14 66
© Copyright 2024