New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

android.os.TransactionTooLargeException when restoring saved instance state #108

Closed
tjg1 opened this Issue Mar 29, 2017 · 1 comment

Comments

Projects
None yet
1 participant
@tjg1
Owner

tjg1 commented Mar 29, 2017

Nori crashes on restoring the saved instance state when the saved SearchResult object is too large. This is essentially the same issue that occurred in the past when passing large SearchResults via Intents. See: #31

The real underlying issue is that keeping such large objects in memory at all times is bad practice. Whenever Nori tries to restore them from an instance Bundle or pass them as a Parcelable via an Intent/Broadcast to another part of the app, another copy of the huge object has to be re-created from scratch. (The reason it doesn't simply create a reference to the existing object is that it's getting serialised and deserialised along the way).

There are three approaches to fixing this issue.

  1. The quick and easy way: Simply limit the number of Image objects that get serialised to a single result page, the same way I fixed the Intent issue. This is a dirty hack that would probably also break infinite scrolling.
  2. The time-consuming, hard way: Store the retrieved SearchResults on disk and pass a file handle between Activities and saved instance Bundles. This would most likely use an ephemeral SQLite database (either on disk or a shared in-memory one) that would be erased each time Nori is opened "from scratch". Would require re-working large parts of the app.
  3. The middle-of-the-road way: Leave the SearchResult implementation largely as it is (see below), but instead of saving them to Bundles or passing them between Activities, re-download them from the server as needed. With caching this could be just as efficient as the second solution.

I also think that the current approach of extending existing SearchResults with more Images during infinite scrolling is not ideal and we should break them up into a set of smaller SearchResult objects (for each page offset) instead. This would allow us to easily recycle old (scrolled off the screen) SearchResult objects when memory gets low.

Crash log

Package: io.github.tjg1.nori
Version: 10
Flavor: fdroid
Android: 7.1.1
Manufacturer: Wileyfox
Model: Wileyfox Swift
Date: 2017-03-29T10:49:59+0000

java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 622212 bytes
	at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3781)
	at android.os.Handler.handleCallback(Handler.java:751)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6126)
	at java.lang.reflect.Method.invoke(Method.java)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: android.os.TransactionTooLargeException: data parcel size 622212 bytes
	at android.os.BinderProxy.transactNative(BinderProxy.java)
	at android.os.BinderProxy.transact(BinderProxy.java:615)
	at android.app.ActivityManagerProxy.activityStopped(ActivityManagerProxy.java:3636)
	at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3773)
	... 7 more
android.os.TransactionTooLargeException: data parcel size 622212 bytes
	at android.os.BinderProxy.transactNative(BinderProxy.java)
	at android.os.BinderProxy.transact(BinderProxy.java:615)
	at android.app.ActivityManagerProxy.activityStopped(ActivityManagerProxy.java:3636)
	at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3773)
	at android.os.Handler.handleCallback(Handler.java:751)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6126)
	at java.lang.reflect.Method.invoke(Method.java)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

REPORT_ID: 5deaac97-0e64-4073-99f4-c5419461585d
APP_VERSION_CODE: 10
APP_VERSION_NAME: 2017.04
PACKAGE_NAME: io.github.tjg1.nori
PHONE_MODEL: Wileyfox Swift
ANDROID_VERSION: 7.1.1
BUILD: {"BOARD":"MSM8916","BOOTLOADER":"crackling-13-ge86e772","BRAND":"Wileyfox","CPU_ABI":"arm64-v8a","CPU_ABI2":"","DEVICE":"crackling","DISPLAY":"Swift-userdebug 7.1.1 NOF27B 8083050d68","FINGERPRINT":"Wileyfox\/Swift\/crackling:7.1.1\/NOF27B\/8083050d68:userdebug\/release-keys","HARDWARE":"qcom","HOST":"phenom.zifnab.net","ID":"NOF27B","IS_DEBUGGABLE":true,"IS_EMULATOR":false,"MANUFACTURER":"Wileyfox","MODEL":"Wileyfox Swift","PERMISSIONS_REVIEW_REQUIRED":false,"PRODUCT":"Swift","RADIO":"unknown","SERIAL":"8266c285","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":["arm64-v8a"],"SUPPORTED_ABIS":["arm64-v8a","armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1490657970000,"TYPE":"userdebug","UNKNOWN":"unknown","USER":"jenkins","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"8083050d68","PREVIEW_SDK_INT":0,"RELEASE":"7.1.1","RESOURCES_SDK_INT":25,"SDK":"25","SDK_INT":25,"SECURITY_PATCH":"2017-03-05"}}
BRAND: Wileyfox
PRODUCT: Swift
TOTAL_MEM_SIZE: 12952186880
AVAILABLE_MEM_SIZE: 7106998272
BUILD_CONFIG: {}
CUSTOM_DATA: {}
INITIAL_CONFIGURATION: {"compatScreenHeightDp":517,"compatScreenWidthDp":320,"compatSmallestScreenWidthDp":320,"densityDpi":256,"fontScale":1,"hardKeyboardHidden":"HARDKEYBOARDHIDDEN_YES","keyboard":"KEYBOARD_NOKEYS","keyboardHidden":"KEYBOARDHIDDEN_NO","locale":"en_GB","mcc":234,"mnc":10,"navigation":"NAVIGATION_NONAV","navigationHidden":"NAVIGATIONHIDDEN_YES","orientation":"ORIENTATION_PORTRAIT","screenHeightDp":728,"screenLayout":"SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES+SCREENLAYOUT_LAYOUTDIR_LTR+SCREENLAYOUT_ROUND_NO","screenWidthDp":450,"seq":9,"smallestScreenWidthDp":450,"touchscreen":"TOUCHSCREEN_FINGER","uiMode":"UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO","userSetLocale":false}
CRASH_CONFIGURATION: {"compatScreenHeightDp":517,"compatScreenWidthDp":320,"compatSmallestScreenWidthDp":320,"densityDpi":256,"fontScale":1,"hardKeyboardHidden":"HARDKEYBOARDHIDDEN_YES","keyboard":"KEYBOARD_NOKEYS","keyboardHidden":"KEYBOARDHIDDEN_NO","locale":"en_GB","mcc":234,"mnc":10,"navigation":"NAVIGATION_NONAV","navigationHidden":"NAVIGATIONHIDDEN_YES","orientation":"ORIENTATION_PORTRAIT","screenHeightDp":728,"screenLayout":"SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES+SCREENLAYOUT_LAYOUTDIR_LTR+SCREENLAYOUT_ROUND_NO","screenWidthDp":450,"seq":9,"smallestScreenWidthDp":450,"touchscreen":"TOUCHSCREEN_FINGER","uiMode":"UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO","userSetLocale":false}
DISPLAY: {"0":{"currentSizeRange":{"smallest":[720,682],"largest":[1203,1165]},"flags":"FLAG_SUPPORTS_PROTECTED_BUFFERS+FLAG_SECURE","metrics":{"density":1.600000023841858,"densityDpi":256,"scaledDensity":"x1.6","widthPixels":720,"heightPixels":1203,"xdpi":294.9670104980469,"ydpi":295.56298828125},"realMetrics":{"density":1.600000023841858,"densityDpi":256,"scaledDensity":"x1.6","widthPixels":720,"heightPixels":1280,"xdpi":294.9670104980469,"ydpi":295.56298828125},"name":"Built-in Screen","realSize":[720,1280],"rectSize":[0,0,720,1203],"size":[720,1203],"rotation":"ROTATION_0","isValid":true,"orientation":0,"refreshRate":60,"height":1203,"width":720,"pixelFormat":1}}
USER_COMMENT: 
USER_APP_START_DATE: 2017-03-29T10:58:44.079+01:00
USER_CRASH_DATE: 2017-03-29T11:17:12.862+01:00
IS_SILENT: false
INSTALLATION_ID: 0cf73e35-a43a-4b6a-a89b-ae2396bf6960
USER_EMAIL: 
DEVICE_FEATURES: {"android.hardware.sensor.proximity":true,"android.hardware.sensor.accelerometer":true,"android.hardware.faketouch":true,"org.cyanogenmod.appsuggest":true,"android.hardware.usb.accessory":true,"android.hardware.telephony.cdma":true,"android.software.backup":true,"android.hardware.touchscreen":true,"android.hardware.touchscreen.multitouch":true,"android.software.print":true,"org.cyanogenmod.partner":true,"org.cyanogenmod.telephony":true,"android.software.voice_recognizers":true,"android.hardware.sensor.gyroscope":true,"android.hardware.audio.low_latency":true,"android.hardware.bluetooth":true,"android.hardware.camera.autofocus":true,"com.google.android.feature.GOOGLE_BUILD":true,"android.hardware.telephony.gsm":true,"android.software.sip.voip":true,"org.cyanogenmod.profiles":true,"com.cyanogenmod.android":true,"android.hardware.audio.output":true,"android.hardware.camera.flash":true,"android.hardware.camera.front":true,"android.hardware.screen.portrait":true,"org.cyanogenmod.audio":true,"org.cyanogenmod.theme":true,"android.software.home_screen":true,"android.hardware.microphone":true,"org.cyanogenmod.statusbar":true,"com.google.android.feature.PIXEL_EXPERIENCE":true,"android.hardware.bluetooth_le":true,"android.hardware.sensor.compass":true,"android.hardware.touchscreen.multitouch.jazzhand":true,"android.software.app_widgets":true,"android.software.input_methods":true,"android.hardware.sensor.light":true,"android.software.device_admin":true,"android.hardware.camera":true,"org.cyanogenmod.hardware":true,"android.hardware.screen.landscape":true,"org.cyanogenmod.weather":true,"org.cyanogenmod.performance":true,"android.software.managed_users":true,"android.software.webview":true,"org.cyanogenmod.livedisplay":true,"android.hardware.camera.any":true,"android.software.connectionservice":true,"android.hardware.touchscreen.multitouch.distinct":true,"android.hardware.location.network":true,"android.software.sip":true,"android.hardware.wifi.direct":true,"android.software.live_wallpaper":true,"com.google.android.feature.GOOGLE_EXPERIENCE":true,"com.google.android.feature.EXCHANGE_6_2":true,"org.cyanogenmod.theme.v1":true,"org.cyanogenmod.livelockscreen":true,"android.hardware.location.gps":true,"android.software.midi":true,"android.hardware.wifi":true,"android.hardware.location":true,"android.hardware.telephony":true,"glEsVersion":"3.0"}
ENVIRONMENT: {"getDataDirectory":"\/data","getDataMiscDirectory":"\/data\/misc","getDataPreloadsAppsDirectory":"\/data\/preloads\/apps","getDataPreloadsDemoDirectory":"\/data\/preloads\/demo","getDataPreloadsDirectory":"\/data\/preloads","getDataPreloadsMediaDirectory":"\/data\/preloads\/media","getDataSystemCeDirectory":"\/data\/system_ce","getDataSystemDeDirectory":"\/data\/system_de","getDataSystemDirectory":"\/data\/system","getDownloadCacheDirectory":"\/cache","getExpandDirectory":"\/mnt\/expand","getExternalStorageDirectory":"\/storage\/emulated\/0","getExternalStorageState":"mounted","getLegacyExternalStorageDirectory":"\/sdcard","getLegacyExternalStorageObbDirectory":"\/sdcard\/Android\/obb","getOdmDirectory":"\/odm","getOemDirectory":"\/oem","getRootDirectory":"\/system","getStorageDirectory":"\/storage","getVendorDirectory":"\/vendor","isExternalStorageEmulated":true,"isExternalStorageRemovable":true}
MEDIA_CODEC_LIST: {"0":{"name":"OMX.google.mp3.decoder","isEncoder":false,"supportedTypes":{"audio\/mpeg":{}}},"1":{"name":"OMX.google.amrnb.decoder","isEncoder":false,"supportedTypes":{"audio\/3gpp":{}}},"2":{"name":"OMX.google.amrwb.decoder","isEncoder":false,"supportedTypes":{"audio\/amr-wb":{}}},"3":{"name":"OMX.google.aac.decoder","isEncoder":false,"supportedTypes":{"audio\/mp4a-latm":{"profileLevels":["AACObjectLC","AACObjectHE","AACObjectHE_PS","AACObjectLD","AACObjectELD"]}}},"4":{"name":"OMX.google.g711.alaw.decoder","isEncoder":false,"supportedTypes":{"audio\/g711-alaw":{}}},"5":{"name":"OMX.google.g711.mlaw.decoder","isEncoder":false,"supportedTypes":{"audio\/g711-mlaw":{}}},"6":{"name":"OMX.google.vorbis.decoder","isEncoder":false,"supportedTypes":{"audio\/vorbis":{}}},"7":{"name":"OMX.google.opus.decoder","isEncoder":false,"supportedTypes":{"audio\/opus":{}}},"8":{"name":"OMX.google.raw.decoder","isEncoder":false,"supportedTypes":{"audio\/raw":{}}},"9":{"name":"OMX.google.aac.encoder","isEncoder":true,"supportedTypes":{"audio\/mp4a-latm":{"profileLevels":["AACObjectLC","AACObjectHE","AACObjectHE_PS","AACObjectLD","AACObjectELD"]}}},"10":{"name":"OMX.google.amrnb.encoder","isEncoder":true,"supportedTypes":{"audio\/3gpp":{}}},"11":{"name":"OMX.google.amrwb.encoder","isEncoder":true,"supportedTypes":{"audio\/amr-wb":{}}},"12":{"name":"OMX.google.flac.encoder","isEncoder":true,"supportedTypes":{"audio\/flac":{}}},"13":{"name":"OMX.google.gsm.decoder","isEncoder":false,"supportedTypes":{"audio\/gsm":{}}},"14":{"name":"OMX.qcom.video.encoder.avc","isEncoder":true,"supportedTypes":{"video\/avc":{"colorFormats":[null,"COLOR_FormatSurface","COLOR_FormatYUV420Flexible","COLOR_FormatYUV420SemiPlanar"],"profileLevels":["1AVCProfileBaseline-AVCLevel4","2AVCProfileMain-AVCLevel4","8AVCProfileHigh-AVCLevel4","2130706433null-AVCLevel4"]}}},"15":{"name":"OMX.qcom.video.encoder.mpeg4","isEncoder":true,"supportedTypes":{"video\/mp4v-es":{"colorFormats":[null,"COLOR_FormatSurface","COLOR_FormatYUV420Flexible","COLOR_FormatYUV420SemiPlanar"],"profileLevels":["MPEG4ProfileSimple-MPEG4Level5","MPEG4ProfileAdvancedSimple-MPEG4Level5"]}}},"16":{"name":"OMX.qcom.video.encoder.h263","isEncoder":true,"supportedTypes":{"video\/3gpp":{"colorFormats":[null,"COLOR_FormatSurface","COLOR_FormatYUV420Flexible","COLOR_FormatYUV420SemiPlanar"],"profileLevels":["H263ProfileBaseline-H263Level70"]}}},"17":{"name":"OMX.qcom.video.encoder.vp8","isEncoder":true,"supportedTypes":{"video\/x-vnd.on2.vp8":{"colorFormats":[null,"COLOR_FormatSurface","COLOR_FormatYUV420Flexible","COLOR_FormatYUV420SemiPlanar"],"profileLevels":[47]}}},"18":{"name":"OMX.qcom.video.decoder.avc","isEncoder":false,"supportedTypes":{"video\/avc":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null],"profileLevels":["1AVCProfileBaseline-AVCLevel4","2AVCProfileMain-AVCLevel4","8AVCProfileHigh-AVCLevel4"]}}},"19":{"name":"OMX.qcom.video.decoder.avc.secure","isEncoder":false,"supportedTypes":{"video\/avc":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null],"profileLevels":["1AVCProfileBaseline-AVCLevel4","2AVCProfileMain-AVCLevel4","8AVCProfileHigh-AVCLevel4"]}}},"20":{"name":"OMX.qcom.video.decoder.mpeg2","isEncoder":false,"supportedTypes":{"video\/mpeg2":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null],"profileLevels":[48]}}},"21":{"name":"OMX.qcom.video.decoder.mpeg2.secure","isEncoder":false,"supportedTypes":{"video\/mpeg2":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null],"profileLevels":[48]}}},"22":{"name":"OMX.qcom.video.decoder.mpeg4","isEncoder":false,"supportedTypes":{"video\/mp4v-es":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null],"profileLevels":["MPEG4ProfileSimple-MPEG4Level5","MPEG4ProfileAdvancedSimple-MPEG4Level5"]}}},"23":{"name":"OMX.qcom.video.decoder.h263","isEncoder":false,"supportedTypes":{"video\/3gpp":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null],"profileLevels":["H263ProfileBaseline-H263Level70"]}}},"24":{"name":"OMX.qcom.video.decoder.vc1","isEncoder":false,"supportedTypes":{"video\/x-ms-wmv":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null]}}},"25":{"name":"OMX.qcom.video.decoder.divx","isEncoder":false,"supportedTypes":{"video\/divx":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null]}}},"26":{"name":"OMX.qcom.video.decoder.divx311","isEncoder":false,"supportedTypes":{"video\/divx311":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null]}}},"27":{"name":"OMX.qcom.video.decoder.divx4","isEncoder":false,"supportedTypes":{"video\/divx4":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null]}}},"28":{"name":"OMX.qcom.video.decoder.vp8","isEncoder":false,"supportedTypes":{"video\/x-vnd.on2.vp8":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420SemiPlanar","COLOR_FormatYUV420Planar",null]}}},"29":{"name":"OMX.qcom.video.decoder.hevcswvdec","isEncoder":false,"supportedTypes":{"video\/hevc":{"colorFormats":["COLOR_FormatYUV420Flexible",null,"COLOR_FormatYUV420Planar"],"profileLevels":[302]}}},"30":{"name":"OMX.google.mpeg4.decoder","isEncoder":false,"supportedTypes":{"video\/mp4v-es":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"],"profileLevels":["MPEG4ProfileSimple-MPEG4Level0","MPEG4ProfileSimple-MPEG4Level0b","MPEG4ProfileSimple-MPEG4Level1","MPEG4ProfileSimple-MPEG4Level2","MPEG4ProfileSimple-MPEG4Level3"]}}},"31":{"name":"OMX.google.h263.decoder","isEncoder":false,"supportedTypes":{"video\/3gpp":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"],"profileLevels":["H263ProfileBaseline-H263Level10","H263ProfileBaseline-H263Level20","H263ProfileBaseline-H263Level30","H263ProfileBaseline-H263Level45","H263ProfileISWV2-H263Level10","H263ProfileISWV2-H263Level20","H263ProfileISWV2-H263Level30","H263ProfileISWV2-H263Level45"]}}},"32":{"name":"OMX.google.h264.decoder","isEncoder":false,"supportedTypes":{"video\/avc":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"],"profileLevels":["1AVCProfileBaseline-AVCLevel1","1AVCProfileBaseline-AVCLevel1b","1AVCProfileBaseline-AVCLevel11","1AVCProfileBaseline-AVCLevel12","1AVCProfileBaseline-AVCLevel13","1AVCProfileBaseline-AVCLevel2","1AVCProfileBaseline-AVCLevel21","1AVCProfileBaseline-AVCLevel22","1AVCProfileBaseline-AVCLevel3","1AVCProfileBaseline-AVCLevel31","1AVCProfileBaseline-AVCLevel32","1AVCProfileBaseline-AVCLevel4","1AVCProfileBaseline-AVCLevel41","1AVCProfileBaseline-AVCLevel42","1AVCProfileBaseline-AVCLevel5","1AVCProfileBaseline-AVCLevel51","1AVCProfileBaseline-AVCLevel52","2AVCProfileMain-AVCLevel1","2AVCProfileMain-AVCLevel1b","2AVCProfileMain-AVCLevel11","2AVCProfileMain-AVCLevel12","2AVCProfileMain-AVCLevel13","2AVCProfileMain-AVCLevel2","2AVCProfileMain-AVCLevel21","2AVCProfileMain-AVCLevel22","2AVCProfileMain-AVCLevel3","2AVCProfileMain-AVCLevel31","2AVCProfileMain-AVCLevel32","2AVCProfileMain-AVCLevel4","2AVCProfileMain-AVCLevel41","2AVCProfileMain-AVCLevel42","2AVCProfileMain-AVCLevel5","2AVCProfileMain-AVCLevel51"]}}},"33":{"name":"OMX.google.hevc.decoder","isEncoder":false,"supportedTypes":{"video\/hevc":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"],"profileLevels":[47]}}},"34":{"name":"OMX.google.vp8.decoder","isEncoder":false,"supportedTypes":{"video\/x-vnd.on2.vp8":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}},"35":{"name":"OMX.google.vp9.decoder","isEncoder":false,"supportedTypes":{"video\/x-vnd.on2.vp9":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"],"profileLevels":[302]}}},"36":{"name":"OMX.google.h263.encoder","isEncoder":true,"supportedTypes":{"video\/3gpp":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar","COLOR_FormatYUV420SemiPlanar","COLOR_FormatSurface"],"profileLevels":["H263ProfileBaseline-H263Level45"]}}},"37":{"name":"OMX.google.h264.encoder","isEncoder":true,"supportedTypes":{"video\/avc":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar","COLOR_FormatYUV420SemiPlanar","COLOR_FormatSurface"],"profileLevels":["1AVCProfileBaseline-AVCLevel1","1AVCProfileBaseline-AVCLevel1b","1AVCProfileBaseline-AVCLevel11","1AVCProfileBaseline-AVCLevel12","1AVCProfileBaseline-AVCLevel13","1AVCProfileBaseline-AVCLevel2","1AVCProfileBaseline-AVCLevel21","1AVCProfileBaseline-AVCLevel22","1AVCProfileBaseline-AVCLevel3","1AVCProfileBaseline-AVCLevel31","1AVCProfileBaseline-AVCLevel32","1AVCProfileBaseline-AVCLevel4","1AVCProfileBaseline-AVCLevel41","2AVCProfileMain-AVCLevel1","2AVCProfileMain-AVCLevel1b","2AVCProfileMain-AVCLevel11","2AVCProfileMain-AVCLevel12","2AVCProfileMain-AVCLevel13","2AVCProfileMain-AVCLevel2","2AVCProfileMain-AVCLevel21","2AVCProfileMain-AVCLevel22","2AVCProfileMain-AVCLevel3","2AVCProfileMain-AVCLevel31","2AVCProfileMain-AVCLevel32","2AVCProfileMain-AVCLevel4","2AVCProfileMain-AVCLevel41"]}}},"38":{"name":"OMX.google.mpeg4.encoder","isEncoder":true,"supportedTypes":{"video\/mp4v-es":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar","COLOR_FormatYUV420SemiPlanar","COLOR_FormatSurface"],"profileLevels":["MPEG4ProfileCore-MPEG4Level2"]}}},"39":{"name":"OMX.google.vp8.encoder","isEncoder":true,"supportedTypes":{"video\/x-vnd.on2.vp8":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar","COLOR_FormatYUV420SemiPlanar","COLOR_FormatSurface"],"profileLevels":[47]}}},"40":{"name":"OMX.ffmpeg.aac.decoder","isEncoder":false,"supportedTypes":{"audio\/mp4a-latm":{}}},"41":{"name":"OMX.ffmpeg.alac.decoder","isEncoder":false,"supportedTypes":{"audio\/alac":{}}},"42":{"name":"OMX.ffmpeg.ape.decoder","isEncoder":false,"supportedTypes":{"audio\/x-ape":{}}},"43":{"name":"OMX.ffmpeg.atrial.decoder","isEncoder":false,"supportedTypes":{"audio\/ffmpeg":{}}},"44":{"name":"OMX.ffmpeg.dts.decoder","isEncoder":false,"supportedTypes":{"audio\/dts":{}}},"45":{"name":"OMX.ffmpeg.flac.decoder","isEncoder":false,"supportedTypes":{"audio\/flac":{}}},"46":{"name":"OMX.ffmpeg.mp2.decoder","isEncoder":false,"supportedTypes":{"audio\/mpeg-L2":{}}},"47":{"name":"OMX.ffmpeg.ra.decoder","isEncoder":false,"supportedTypes":{"audio\/vnd.rn-realaudio":{}}},"48":{"name":"OMX.ffmpeg.wma.decoder","isEncoder":false,"supportedTypes":{"audio\/x-ms-wma":{}}},"49":{"name":"OMX.ffmpeg.divx.decoder","isEncoder":false,"supportedTypes":{"video\/divx":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}},"50":{"name":"OMX.ffmpeg.flv1.decoder","isEncoder":false,"supportedTypes":{"video\/x-flv":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}},"51":{"name":"OMX.ffmpeg.mpeg2.decoder","isEncoder":false,"supportedTypes":{"video\/mpeg2":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}},"52":{"name":"OMX.ffmpeg.mpeg4.decoder","isEncoder":false,"supportedTypes":{"video\/mp4v-es":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"],"profileLevels":["MPEG4ProfileSimple-MPEG4Level5","MPEG4ProfileAdvancedSimple-MPEG4Level5"]}}},"53":{"name":"OMX.ffmpeg.rv.decoder","isEncoder":false,"supportedTypes":{"video\/vnd.rn-realvideo":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}},"54":{"name":"OMX.ffmpeg.vc1.decoder","isEncoder":false,"supportedTypes":{"video\/vc1":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}},"55":{"name":"OMX.ffmpeg.vtrial.decoder","isEncoder":false,"supportedTypes":{"video\/ffmpeg":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}},"56":{"name":"OMX.ffmpeg.wmv.decoder","isEncoder":false,"supportedTypes":{"video\/x-ms-wmv":{"colorFormats":["COLOR_FormatYUV420Flexible","COLOR_FormatYUV420Planar"]}}}}
THREAD_DETAILS: {"id":1,"name":"main","priority":5,"groupName":"main"}
@tjg1

This comment has been minimized.

Show comment
Hide comment
@tjg1

tjg1 Jun 6, 2017

Owner

Partial fix done the "quick and easy" way in 9f74fc7, until we can implement a more permanent solution. Needs more testing.

Owner

tjg1 commented Jun 6, 2017

Partial fix done the "quick and easy" way in 9f74fc7, until we can implement a more permanent solution. Needs more testing.

@tjg1 tjg1 closed this in 9f74fc7 Jun 6, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment