2015-03-06, 07:16
Yeah well, speculation is fine, it'll be interesting to see how it turns out. As they say "the proof of the pudding is in the eating"
(2015-03-06, 05:41)Ned Scott Wrote: It's possible to get that output, but sometimes it's not a standard Android feature/API/whatever. So sometimes companies have to make their own specific hacks or whatever to get the proper output/feature.
(2015-03-06, 07:16)nickr Wrote: Yeah well, speculation is fine, it'll be interesting to see how it turns out. As they say "the proof of the pudding is in the eating"
(2015-03-06, 08:08)Tinwarble Wrote: [
(2015-03-06, 07:16)nickr Wrote: Yeah well, speculation is fine, it'll be interesting to see how it turns out. As they say "the proof of the pudding is in the eating"
That's all I'm saying. All we have to go by now are the specs, anything else is speculation. I just don't think that anything can be counted out right now.
I do think though, that this is still something to be a little excited about.
(2015-03-06, 08:08)Tinwarble Wrote:For the record, Google did state that Android 5.0 "Lollipop" (and Android TV based on that) would supposedly add support automatic frame-rate switching and 24p output.(2015-03-06, 05:41)Ned Scott Wrote: It's possible to get that output, but sometimes it's not a standard Android feature/API/whatever. So sometimes companies have to make their own specific hacks or whatever to get the proper output/feature.But isn't that the case for pretty much all devices, or at the least all SoCs. From my limited knowledge of Android it's my understanding that Google supplies the base code, the foundation if you will. Then the SoC manufacture takes that code and cooks the ROM to work with their chip by adding their own APIs/drivers/whatever (at least to some extent).
(2014-10-22, 14:43)RockerC Wrote:(2014-10-22, 12:43)dkaneva Wrote:I actually believe that it is now more than just wishful thinking based on rumors, most if these are now confirmed facts.(2014-08-26, 20:21)Hedda Wrote: Worth noting is that most of these limitations are issues with current Android 4.4 KitKat and older releases.No where in any press snippet have I seen any of these issues addressed with lollipop. Wishful thinking I guess!
Many of these issues are said to be addressed in the next major Android release, L Developer Preview, which is rumoured to become Android 5.0 Lollipop.
However questions remains if XBMC can actually take advantage of all those new features available in Android 5.0 (Lollipop) and to apps running on it.
Anyway, for starters see the full official changelog for Android 5.0 (Lollipop) on Google's official android.com website
http://www.android.com/versions/lollipop-5-0/
Media
Lower latency audio input ensuring that music and communication applications that have strict delay requirements provide an amazing realtime experience
Multi-channel audio stream mixing means professional audio applications can now mix up to eight channels including 5.1 and 7.1 channels
USB Audio support means you can plug USB microphones, speakers, and a myriad of other USB audio devices like amplifiers and mixers into your Android device
Capture full resolution frames around 30 fps
Support raw formats like YUV and Bayer RAW
State of the art video technology with support for HEVC main profile to allow for UHD 4K 10-bit video playback, tunneled hardware video decoding to save power and improved HLS support for streaming
Android TV
Support for living room devices
User interface adapted for the living room
Less browsing, more watching with personalized recommendations for content like movies and TV shows
Voice search for Google Play, YouTube and supported apps so you can just say what you want to see
Console-style Android gaming on your TV with a gamepad
Cast your favorite entertainment apps to your big screen with Google Cast support for Android TV devices
Runtime and Performance
A faster, smoother and more powerful computing experience
ART, an entirely new Android runtime, improves application performance and responsiveness
Up to 4x performance improvements
Compacting backgrounded apps and services so you can do more at once
Support for 64 bit devices, like the Nexus 9, brings desktop class CPUs to Android
Support for 64-bit SoCs using ARM, x86, and MIPS-based cores
Shipping 64-bit native apps like Chrome, Gmail, Calendar, Google Play Music, and more
Also checkout this other thread: http://forum.xbmc.org/showthread.php?tid=204551
Android SDK Tools Revision 23.0.5 and NDK Revision 10c have also now been released with Google's announcement of Android 5.0 (Lollipop)
https://developer.android.com/tools/sdk/...notes.html
https://developer.android.com/tools/sdk/ndk/index.html
This is the first SDK and NDK revisions to officially have support for making apps for Android TV, as such they include many new APIs just as Android 5.0 contain new features
http://developer.android.com/training/tv...index.html
http://developer.android.com/training/tv/index.html
Because Kodi is a native C++ application that uses the NDK, the most interesting stuff in Android 5.0 (Lollipop) for Kodi developers is probably the new APIs in API Level: 21
http://developer.android.com/about/versi...d-5.0.html
Android 5.0 APIs
API Level: 21
If you haven't tested your app against the new Android Runtime (ART)...
The 4.4 release introduced a new, experimental Android runtime, ART. Under 4.4, ART was optional, and the default runtime remained Dalvik. With Android 5.0, ART is now the default runtime.
For an overview of ART's new features, see Introducing ART. Some of the major new features are:Most Android apps should just work without any changes under ART. However, some techniques that work on Dalvik do not work on ART. For information about the most important issues, see Verifying App Behavior on the Android Runtime (ART). Pay particular attention if:
- Ahead-of-time (AOT) compilation
- Improved garbage collection (GC)
- Improved debugging support
- Your app uses Java Native Interface (JNI) to run C/C++ code.
- You use development tools that generate non-standard code (such as some obfuscators).
- You use techniques that are incompatible with compacting garbage collection. (ART does not currently implement compacting GC, but compacting GC is under development in the Android Open Source Project.)
If your app uses RemoteControlClient...
The RemoteControlClient class is now deprecated. Switch to the new MediaSession API as soon as possible.
To display media playback controls if your app is running on the Android TV or Wear platform, implement the MediaSession class. You should also implement MediaSession if your app needs to receive media button events on Android devices.
If you are using the Android Native Development Kit (NDK)...
Android 5.0 introduces support for 64-bit systems. The 64-bit enhancement increases address space and improves performance, while still supporting existing 32-bit apps fully. The 64-bit support also improves the performance of OpenSSL for cryptography. In addition, this release introduces new native media NDK APIs, as well as native OpenGL ES (GLES) 3.1 support.
To use the 64-bit support provided in Android 5.0, download and install NDK Revision 10c from the Android NDK page. Refer to the Revision 10c release notes for more information about important changes and bug fixes to the NDK.
If your app binds to a Service...
The Context.bindService() method now requires an explicit Intent, and throws an exception if given an implicit intent. To ensure your app is secure, use an explicit intent when starting or binding your Service, and do not declare intent filters for the service.
If your app binds to a Service...
The Context.bindService() method now requires an explicit Intent, and throws an exception if given an implicit intent. To ensure your app is secure, use an explicit intent when starting or binding your Service, and do not declare intent filters for the service.
Audio playback
This release includes the following changes to AudioTrack:
- Your app can now supply audio data in floating-point format (ENCODING_PCM_FLOAT). This permits greater dynamic range, more consistent precision, and greater headroom. Floating-point arithmetic is especially useful during intermediate calculations. Playback endpoints use integer format for audio data, and with lower bit depth. (In Android 5.0, portions of the internal pipeline are not yet floating point.)
- Your app can now supply audio data as a ByteBuffer, in the same format as provided by MediaCodec.
- The WRITE_NON_BLOCKING option can simplify buffering and multithreading for some apps.
Media playback control
Use the new notification and media APIs to ensure that the system UI knows about your media playback and can extract and show album art. Controlling media playback across a UI and a service is now easier with the new MediaSession and MediaController classes.
The new MediaSession class replaces the deprecated RemoteControlClient class and provides a single set of callback methods for handling transport controls and media buttons. If your app provides media playback and runs on the Android TV or Wear platform, use the MediaSession class to handle your transport controls using the same callback methods.
You can now build your own media controller app with the new MediaController class. This class provides a thread-safe way to monitor and control media playback from your app's UI process. When creating a controller, specify a MediaSession.Token object so that your app can interact with the given MediaSession. By using the MediaController.TransportControls methods, you can send commands such as play(), stop(), skipToNext(), and setRating() to control media playback on that session. With the controller, you can also register a MediaController.Callback object to listen for metadata and state changes on the session.
In addition, you can create rich notifications that allow playback control tied to a media session with the new Notification.MediaStyle class.
Media browsing
Android 5.0 introduces the ability for apps to browse the media content library of another app, through the new android.media.browse API. To expose the media content in your app, extend the MediaBrowserService class. Your implementation of MediaBrowserService should provide access to a MediaSession.Token so that apps can play media content provided through your service.
To interact with a media browser service, use the MediaBrowser class. Specify the component name for a MediaSession when you create an MediaBrowser instance. Using that browser instance, your app can then connect to the associated service and obtain a MediaSession.Token object to play content exposed through that service.
Storage - Directory selection
Android 5.0 extends the Storage Access Framework to let users select an entire directory subtree, giving apps read/write access to all contained documents without requiring user confirmation for each item.
To select a directory subtree, build and send an OPEN_DOCUMENT_TREE intent. The system displays all DocumentsProvider instances that support subtree selection, letting the user browse and select a directory. The returned URI represents access to the selected subtree. You can then use buildChildDocumentsUriUsingTree() and buildDocumentUriUsingTree() along with query() to explore the subtree.
The new createDocument() method lets you create new documents or directories anywhere under the subtree. To manage existing documents, use renameDocument() and deleteDocument(). Check COLUMN_FLAGS to verify provider support for these calls before issuing them.
If you're implementing a DocumentsProvider and want to support subtree selection, implement isChildDocument() and include FLAG_SUPPORTS_IS_CHILD in your COLUMN_FLAGS.
Android 5.0 also introduces new package-specific directories on shared storage where your app can place media files for inclusion in MediaStore. The new getExternalMediaDirs() returns paths to these directories on all shared storage devices. Similarly to getExternalFilesDir(), no additional permissions are needed by your app to access the returned paths. The platform periodically scans for new media in these directories, but you can also use MediaScannerConnection to explicitly scan for new content.
Wireless & Connectivity - Multiple network connections
Android 5.0 provides new multi-networking APIs that let your app dynamically scan for available networks with specific capabilities, and establish a connection to them. This functionality is useful when your app requires a specialized network, such as an SUPL, MMS, or carrier-billing network, or if you want to send data using a particular type of transport protocol.
To select and connect to a network dynamically from your app, follow these steps:
Create a ConnectivityManager.
Use the NetworkRequest.Builder class to create an NetworkRequest object and specify the network features and transport type your app is interested in.
To scan for suitable networks, call requestNetwork() or registerNetworkCallback(), and pass in the NetworkRequest object and an implementation of ConnectivityManager.NetworkCallback. Use the requestNetwork() method if you want to actively switch to a suitable network once it’s detected; to receive only notifications for scanned networks without actively switching, use the registerNetworkCallback() method instead.
When the system detects a suitable network, it connects to the network and invokes the onAvailable() callback. You can use the Network object from the callback to get additional information about the network, or to direct traffic to use the selected network.
Scheduling jobs
Android 5.0 provides a new JobScheduler API that lets you optimize battery life by defining jobs for the system to run asynchronously at a later time or under specified conditions (such as when the device is charging). Job scheduling is useful in such situations as:
- The app has non-user-facing work that you can defer.
- The app has work you'd prefer to do when the unit is plugged in.
- The app has a task that requires network access or a Wi-Fi connection.
- The app has a number of tasks that you want to run as a batch on a regular schedule.
A unit of work is encapsulated by a JobInfo object. This object specifies the scheduling criteria.
Use the JobInfo.Builder class to configure how the scheduled task should run. You can schedule the task to run under specific conditions, such as:
- Start when the device is charging
- Start when the device is connected to an unmetered network
- Start when the device is idle
- Finish before a certain deadline or with a minimum delay
Testing and accessibility improvements - Android 5.0 adds the following support for testing and accessibility:
The new getWindowAnimationFrameStats() and getWindowContentFrameStats() methods capture frame statistics for window animations and content. These methods let you write instrumentation tests to evaluate whether an app is rendering frames at a sufficient refresh frequency to provide a smooth user experience.
The new executeShellCommand() method lets you execute shell commands from your instrumentation test. The command execution is similar to running adb shell from a host connected to the device, allowing you to use shell-based tools such as dumpsys, am, content, and pm.
Accessibility services and test tools that use the accessibility APIs (such as UiAutomator) can now retrieve detailed information about the properties of windows on the screen that sighted users can interact with. To retrieve a list of AccessibilityWindowInfo objects, call the new getWindows() method.
The new AccessibilityNodeInfo.AccessibilityAction class lets you define standard or customized actions to perform on an AccessibilityNodeInfo. The new AccessibilityNodeInfo.AccessibilityAction class replaces the actions-related APIs previously found in AccessibilityNodeInfo.
Android 5.0 provides finer-grain control over text-to-speech synthesis in your app. The new Voice class allows your app to use voice profiles associated with specific locales, quality and latency rating, and text-to-speech engine-specific parameters.
Manifest Declarations - Declarable required features
The following values are now supported in the <uses-feature> element, so you can ensure that your app is installed only on devices that provide the features your app needs.
- FEATURE_AUDIO_OUTPUT
- FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING
- FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR
- FEATURE_CAMERA_CAPABILITY_RAW
- FEATURE_CAMERA_LEVEL_FULL
- FEATURE_GAMEPAD
- FEATURE_LIVE_TV
- FEATURE_MANAGED_USERS
- FEATURE_LEANBACK
- FEATURE_OPENGLES_EXTENSION_PACK
- FEATURE_SECURELY_REMOVES_USERS
- FEATURE_SENSOR_AMBIENT_TEMPERATURE
- FEATURE_SENSOR_RELATIVE_HUMIDITY
- FEATURE_VERIFIED_BOOT
- FEATURE_WEBVIEW
(2015-03-05, 19:49)Tinwarble Wrote: Again, I think your missing the point, no, to use your analogy, you can't compare a Range Rover to a Ford Focus or a Honda Civic. But then they are designed to do different things.
Yes, they all are vehicles, but if you want something that you can go off road and still take the kids to school then you get the Range Rover, if all you need is something to get you back and forth to work and around town then you go for the Ford Focus or a Honda Civic. You wouldn't take a Focus to traverse the jungles of Africa or to drive through the Sahara.
And I think you're reading too much into that graph that they had. For one, it was showing the power of the Shield with the Grid against other devices and it was in reference to gaming. I mean, they also had an image up that compared it to a Xbox 360.
As for the "broad market", it's the same market that would by a FireTV or such device and wants a better experience (like having 4K Netflix streams) and to gamers and casual gamers. There is more than just a niche market for it.
(2015-03-06, 08:08)Tinwarble Wrote: EDIT: And just FYI, I did put in a request about getting info on whether it will support 24p and/or auto frame rate switching. I was told they'll contact me be e-mail when they have some info, so I'll update with what ever response I get.
(2015-03-06, 18:16)Tinwarble Wrote: I'm not going to read all that!
I will be short and sweet. Whether there is a large market for the Shield at the price point (even if it is weird), well........we'll just have to disagree. And it really doesn't matter as it is what it is, as is the price.
I do think you're way low on your estimation of what the remote will be. The Fire TV remote is $30, and it isn't rechargeable, nor does it have a touch capabilities. So you are looking at it being probably at least $30, and if I had to take a guess, it will probably be closer to the $40 range. So even if it were bundled with a remote rather than the controller you are still not looking a that big of a difference in savings.
Your argument would also have more validity if you actually need the remote. But since the Shield comes with a IR receiver built in and you can use it with a Harmony IR remote out of the box (which many people already have) it's unnecessary. As well, you can probably just pick up a Fire TV Stick remote for $15 or some other cheap BT remote that will work. The only reason to have the Shield remote is if you want a "matching set".
You also have to keep in mind that Nvidia is leveraging the Shield against their new Grid services. So having a controller bundled with it makes more sense.
(2015-03-06, 19:23)ozkhan1 Wrote: I dont get it.
People dont mind spending 2-5 thousand dollars on TVs they really like. Because it has this feature or that, quality looks good, etc
Why would you not want to spend $200 for a box that can be a potential replacement for your streaming box, potentially replace your DVR, Blu ray disc player, and act as a gaming console all at the same time?
(2015-03-06, 19:48)Topken Wrote: I see this as a media/emulation box personally. So that $200 is justifiable for me with the controller in tow. That the Shield Remote is about the only one to have the built in headphone port besides the roku 3 remote. So that in of itself is a great reason to pick up the remote.
(2015-03-06, 19:55)Tinwarble Wrote:(2015-03-06, 19:48)Topken Wrote: I see this as a media/emulation box personally. So that $200 is justifiable for me with the controller in tow. That the Shield Remote is about the only one to have the built in headphone port besides the roku 3 remote. So that in of itself is a great reason to pick up the remote.
Except the controller has the headphone jack built in also, so again you don't really need the remote.
(2015-03-06, 19:56)Topken Wrote: With the power of the X1 it should even handle Dolphin as well for Wii/Gamecube emulation.