Git Product home page Git Product logo

android-tvheadend's Introduction

Android TV + TVHeadend Live Channel

  • Master Build Status
  • Develop Build Status

Available on Google Play:

  1. Download from Google Play: https://play.google.com/store/apps/details?id=ie.macinnes.tvheadend

Sign up for Beta access (more frequent, bleeding edge releases):

  1. Join the beta community (required!) https://plus.google.com/communities/102705346691784371187
  2. Join the beta on Google Play: https://play.google.com/apps/testing/ie.macinnes.tvheadend
  3. Download from Google Play: https://play.google.com/store/apps/details?id=ie.macinnes.tvheadend

IRC Channel:

Join #android-tvheadend on Freenode - not a general support channel, used for chatting with developers around specific bugs etc

Guide Playback Overlay Guide Playback Genres

Build Properties

Build customization can be performed via a local-tvheadend.properties file, for example:

ie.macinnes.tvheadend.acraReportUri=https://crashreport.com/report/tvheadend
ie.macinnes.tvheadend.keystoreFile=keystore.jks
ie.macinnes.tvheadend.keystorePassword=MySecretPassword
ie.macinnes.tvheadend.keyAlias=My TVHeadend Key
ie.macinnes.tvheadend.keyPassword=MySecretPassword

android-tvheadend's People

Contributors

girlpunk avatar grahamhayes avatar kiall avatar stquinn avatar thediamondpicks avatar tunip avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-tvheadend's Issues

Cannot stop video (Mi Box)

I just found the TVH client for Live Channels (AWESOME!). However, is there a proper way to stop playback? I tried the Home button (the video continues to play in the background), the Back button (screen goes black for a second and playback continues)...pretty much everything...and can't find a way to stop the video. Am I missing something or is this a bug?

Is there any other info I can provide?

John

Playback freezes after a few seconds when using LibVLC

When using the LibVLC player, channels stream for about 10 seconds with some stuttering and then freeze completely. Switching to a different channel does not resolve the issue, however changing from LibVLC to 'Media Player' fixes the freeze and the stuttering (ExoPlayer won't even start, just shows the loading spinner)

Logs from tvheadend (below) show that the client unsubscribes at the same time as the freeze:

2016-11-01 10:35:53.709 subscription: 0EE3: "HTTP" subscribing on channel "BBC One", weight: 100, adapter: "Silicon Labs Si2168 : DVB-T #0", network: "UK Freeview", mux: "545.833MHz", service: "BBC ONE HD", profile="pass", hostname="172.16.2.170", username="room", client="android-tvheadend/0.2.50-SNAPSHOT (Linux;Android 5.1.1) VLC/3.0.0-git Vetinari LibVLC/3.0.0-git"
2016-11-01 10:36:19.214 subscription: 0EE3: "HTTP" unsubscribing from "BBC One", hostname="172.16.2.170", username="room", client="android-tvheadend/0.2.50-SNAPSHOT (Linux;Android 5.1.1) VLC/3.0.0-git Vetinari LibVLC/3.0.0-git"

Android logs, freeze happened at 10:47:53

11-01 10:47:28.921 15181-21291/ie.macinnes.tvheadend I/VLC: [ab24dbb4] mpeg4audio packetizer: AAC channels: 2 samplerate: 48000
11-01 10:47:28.942 15181-21291/ie.macinnes.tvheadend I/AudioTrack: set(): 0xab1ca390 streamType -1, sampleRate 48000, format 0x1, channelMask 0x3, frameCount 8192, flags #0, notificationFrames 0, sessionId 0, transferType 3
11-01 10:47:30.209 15181-21323/ie.macinnes.tvheadend I/OMXClient: Using client-side OMX mux.
11-01 10:47:30.234 15181-21323/ie.macinnes.tvheadend E/ACodec: [OMX.amlogic.avc.decoder.awesome] storeMetaDataInBuffers failed w/ err -2147483648
11-01 10:47:30.255 15181-21323/ie.macinnes.tvheadend W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 8 failed: -1010
11-01 10:47:30.255 15181-21323/ie.macinnes.tvheadend W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 7 failed: -1010
11-01 10:47:30.537 15181-21293/ie.macinnes.tvheadend W/AudioTrack: releaseBuffer() track 0xab1ca390 disabled due to previous underrun, restarting
11-01 10:47:53.343 15181-21290/ie.macinnes.tvheadend W/art: Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[34,tid=21290,Native,Thread*=0xab1c1350,peer=0x22e903a0,"mediacodec_jni"]
11-01 10:47:53.345 15181-21312/ie.macinnes.tvheadend E/NdkMediaCodec: sf error code: -38
11-01 10:47:53.441 15181-21312/ie.macinnes.tvheadend W/art: Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[37,tid=21312,Native,Thread*=0xab1686c0,peer=0x22e9f340,"VlcObject"]
11-01 10:47:53.583 15181-21291/ie.macinnes.tvheadend W/art: Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[31,tid=21291,Native,Thread*=0xab23b3a0,peer=0x22e2c0a0,"android_audiotrack"]
11-01 10:47:53.594 15181-21293/ie.macinnes.tvheadend W/art: Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[33,tid=21293,Native,Thread*=0xab1f1c80,peer=0x22e713a0,"android_audiotrack"]
11-01 10:47:53.594 15181-21278/ie.macinnes.tvheadend I/AudioTrack: ~AudioTrack, releasing session id from 15181 on behalf of 15181 mState/1
11-01 10:47:53.607 15181-21278/ie.macinnes.tvheadend W/art: Native thread exiting without having called DetachCurrentThread (maybe it's going to use a pthread_key_create destructor?): Thread[30,tid=21278,Native,Thread*=0xab210c68,peer=0x22e03100,"VlcObject"]

Automatic refresh rate switching

Some devices supported automatic refresh rate switching, identify how this app can/should interact with this, and implement it.

nVidia Shield is one such device.

HTSP Account Validation

Implement HTSP Account Validation, serves as the initial smoke test for the Library implemented in #53.

During the account addition flow, connect to and validate HTSP creds. Do not yet use HTSP for any other functionality, like EPG and Video.

Support anamorphic source video

Anamorphic broadcasts (typically 1440x1080 and 720x576 in Australia) need to be scaled horizontally for display. I'm not sure if this is the right way but it works for me. Hardware/software scaling may be dependent on the hardware the app runs on.

--- app/src/main/java/ie/macinnes/tvheadend/tvinput/DemoPlayerSession.java  (revision )
+++ app/src/main/java/ie/macinnes/tvheadend/tvinput/DemoPlayerSession.java  (revision )
@@ -204,7 +204,7 @@
                 TvTrackInfo.Builder builder = new TvTrackInfo.Builder(trackType, trackId);

                 if (trackType == DemoPlayer.TYPE_VIDEO) {
-                    builder.setVideoWidth(format.width);
+                    builder.setVideoWidth(Math.round(format.width * format.pixelWidthHeightRatio));
                     builder.setVideoHeight(format.height);
                 } else if (trackType == DemoPlayer.TYPE_AUDIO) {
                     builder.setAudioChannelCount(format.channelCount);

Amazon Fire TV Compability

Hi Kiall.
Are there any plans to make this little piece of gold working on an Amazon Fire TV?
Best,
H.

Logcat errors during EPG updates

When updating the EPG, the following error repeats in the logs:

11-01 10:42:49.061 15181-16513/ie.macinnes.tvheadend E/ie.macinnes.htsp.tasks.GetFileTask: Error handling a GetFileTask message
11-01 10:42:49.061 15181-16513/ie.macinnes.tvheadend W/ie.macinnes.tvheadend.sync.EpgSyncTask: Failed to fetch logo for content://android.media.tv/channel/203
11-01 10:42:49.068 15181-16513/ie.macinnes.tvheadend E/ie.macinnes.htsp.tasks.GetFileTask: Error handling a GetFileTask message
11-01 10:42:49.068 15181-16513/ie.macinnes.tvheadend W/ie.macinnes.tvheadend.sync.EpgSyncTask: Failed to fetch logo for content://android.media.tv/channel/205

This appears to repeat for each tvheadend channel. Channel logos show as normal, so I'm guessing this is related to the show logos?

EDIT: These are "correct", in that TVH believes there is a logo, but it doesn't actually exist. We should make this cleaner, and maybe stat the logo before attempting to open it.

Green beam on the right side

Hi,
i love this app. now my sony androidtv works really well. This app is awesome, great work guys.
But i see on the right side of the SD Picture a small green or violett beam. In HD Channels the beam disappears and the picture is absolutly great.

I think i know this behaviour from emby with my earlier firetv. there it was an issue with vlc. So i tried to change the player, but the other two players not working here. No Sound and Picture with the exo player and the media player raises an error.

I think that is a bug, what do you think?

kind regards
tom

Chromecast support ?

Hello !

Thanks for your works!
Do you plan to support Chromecast please?
I have a tvheadend server on a Raspberry Pi2 and I searching a solution to cast tvheadend streams to my chromecast device.

Best regards,

Sony: Sorting channels

Hi,

was sorting of channels changed? Because now it doesn't sort them by channel number or by name. They are sorted in not normal pattern, something random.

I tried sorting by number and name but it doesn't make a difference.

Version is: v0.2.54-3-g27b299e

Change of aspect ratio during playback is not detected

(minor issue for the sake of completeness - might also be a limitation of ExoPlayer)

Change of aspect ration during playback is not detected, i.e. when watching a 16:9 programme and a subsequent broadcast is in 4:3, the picture will get stretched and the AR indicator on the info bar still says "16:9". I guess it's the same the other way around (4:3 -> 16:9). Switching channels or stopping and restarting playback will fix this, so in general, aspect ratio detection is working fine.

Standalone XMLTV client

Hi,

Is it possible to use it as standalone IPTV client? I have paid m3u8 list with m3u streems and xml epg. I would like to use it with Google Live Channels.

Thanks.

Ability to change username\password

Currently there is no option to change username\password once your account is set up, selecting add account you are just told you can only have one account, and selecting the existing account doesn't give a change to modify username\password.

Missing EPG Data.

For some reason tonight I keep loosing EPG data from some of my channels, usually all from a single mux.

I have force closed the TVHeadend and Live Channel apps and the problem persists.

I reran the setup for TVHeadend app, and the data started showing from the first mux\channels I was having issues with, but at the same time I lost EPG for a different mux\channels.

rerunning setup again made no difference..

My EPG data is OTA data pulled from the muxes.
All Channels have EPG data on the tvheadend server.
Channel Icons are working for the problem channels.

No errors on the tvheadend server.

Let me know if I can do anything to help diagnose.

Recommendations do not display

I'm not seeing any recommendations appear for any tvheadend channels. I've confirmed that the EPG data is populated.

I think this may be caused by a lack of show images in the EPG data, as the issue to get recommendations working in the first place mentioned it.

EPG does not updates after initial load from server.

When I install the app and do the initial sync everything works fine, and I get a full EPG for 24 hours.

After this initial successful load the EPG no longer updates, and the EPG runs out after 24 hours.
RE-running the setup wizard does not help. Removing and re-adding the Tvheadend account does not help. Uninstalling the application and re-installing from scratch does work, and I am back to the beginning.

I attach a log file which contains what looks like an EPG sync in progress, but actually does not do anything.
androidtv_tvheadend.log.zip

If you need anything else dont hesitate to let me know.

Hardware: Nvidia Shield Android TV

java.lang.IllegalStateException: Multiple renderer media clocks enabled

01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: playerFailed [119.49]
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: com.google.android.exoplayer2.ExoPlaybackException
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at com.google.android.exoplayer2.ExoPlayerImplInternal.enableRenderers(ExoPlayerImplInternal.java:1372)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at com.google.android.exoplayer2.ExoPlayerImplInternal.setPlayingPeriodHolder(ExoPlayerImplInternal.java:1344)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at com.google.android.exoplayer2.ExoPlayerImplInternal.handlePeriodPrepared(ExoPlayerImplInternal.java:1274)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:331)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at android.os.Handler.dispatchMessage(Handler.java:100)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at android.os.Looper.loop(Looper.java:148)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at android.os.HandlerThread.run(HandlerThread.java:61)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	at com.google.android.exoplayer2.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: Caused by: java.lang.IllegalStateException: Multiple renderer media clocks enabled.
01-07 14:50:01.277 25153 25153 E ie.macinnes.tvheadend.player.EventLogger: 	... 8 more

No AC3 audio with VLC player

Watching a channel with Codec: A52 Audio (aka AC3) (a52 ) does not output any audio.

Channels with Codec: MPEG Audio layer 1/2 (mpga) are running fine.

Hardware:
Nvidia Shield 16GB
Player VLC

Edit: I will deliver some logs, but connecting with ADB to Nvidia Shield makes problems. Working on it!

Support Closed Caption

Now that we are able to do pass through, would it be possible to look into closed caption support?

Crashing with Sony Android 6

Tried to run the app on Android 6 sony zd9 the program guide is crashing instantly when the app configures everything. As well on every app start in a loop.
This is the TVH version running on my synology NAS HTS Tvheadend 4.1.2247. Tell me please how to provide logs from AndroidTV.

Attempt to invoke virtual method .. SocketChannel.register

01-20 11:11:59.551 21958-21958/? I/art: Late-enabling -Xcheck:jni
01-20 11:11:59.567 21958-21964/? E/art: Failed sending reply to debugger: Broken pipe
01-20 11:11:59.567 21958-21964/? I/art: Debugger is no longer active
01-20 11:11:59.597 21958-21958/? I/ie.macinnes.tvheadend.migrate.MigrateUtils: Migrate from 79 to 79
01-20 11:11:59.675 21958-21976/? I/OpenGLRenderer: Initialized EGL, version 1.4
01-20 11:12:21.001 21958-21958/ie.macinnes.tvheadend I/ie.macinnes.tvheadend.sync.EpgSyncService: Starting EPG Sync Service
01-20 11:12:21.009 21958-22332/ie.macinnes.tvheadend I/ie.macinnes.htsp.Connection: Opening HTSP Connection
01-20 11:12:23.019 21958-22332/ie.macinnes.tvheadend I/ie.macinnes.htsp.Connection: HTSP Connected
01-20 11:12:23.034 21958-22332/ie.macinnes.tvheadend I/ie.macinnes.htsp.Connection: HTSP Ready
01-20 11:12:23.050 21958-22331/ie.macinnes.tvheadend I/ie.macinnes.tvheadend.sync.EpgSyncTask: Enabling Async Metadata. Last Update: 1484910715, EPG max time: 1484914343
01-20 11:12:52.702 21958-21964/ie.macinnes.tvheadend W/art: Suspending all threads took: 8.349ms
01-20 11:12:55.214 21958-22331/ie.macinnes.tvheadend I/ie.macinnes.tvheadend.sync.EpgSyncTask: Initial sync completed
01-20 11:12:55.218 21958-22331/ie.macinnes.tvheadend E/ie.macinnes.htsp.tasks.GetFileTask: Error handling a GetFileTask message
01-20 11:12:55.219 21958-22331/ie.macinnes.tvheadend W/ie.macinnes.tvheadend.sync.EpgSyncTask: Failed to fetch logo for content://android.media.tv/channel/2433. This usually means TVHeadend doesn't have a logo for this channel.
01-20 11:12:55.220 21958-22331/ie.macinnes.tvheadend E/ie.macinnes.htsp.tasks.GetFileTask: Error handling a GetFileTask message
01-20 11:12:55.225 21958-22331/ie.macinnes.tvheadend W/ie.macinnes.tvheadend.sync.EpgSyncTask: Failed to fetch logo for content://android.media.tv/channel/2442. This usually means TVHeadend doesn't have a logo for this channel.
01-20 11:12:55.236 21958-22331/ie.macinnes.tvheadend E/ie.macinnes.htsp.tasks.GetFileTask: Error handling a GetFileTask message
01-20 11:12:55.236 21958-22331/ie.macinnes.tvheadend W/ie.macinnes.tvheadend.sync.EpgSyncTask: Failed to fetch logo for content://android.media.tv/channel/2456. This usually means TVHeadend doesn't have a logo for this channel.
01-20 11:12:55.246 21958-22332/ie.macinnes.tvheadend E/ie.macinnes.htsp.Connection: Something failed - shutting down
                                                                                    java.nio.channels.ClosedChannelException
                                                                                        at java.nio.SocketChannelImpl.checkOpenConnected(SocketChannelImpl.java:418)
                                                                                        at java.nio.SocketChannelImpl.write(SocketChannelImpl.java:357)
                                                                                        at ie.macinnes.htsp.Connection.processWritableSelectionKey(Connection.java:456)
                                                                                        at ie.macinnes.htsp.Connection.run(Connection.java:153)
                                                                                        at java.lang.Thread.run(Thread.java:818)
01-20 11:12:55.246 21958-22332/ie.macinnes.tvheadend I/ie.macinnes.htsp.Connection: Connection already closed, ignoring close request
01-20 11:12:55.248 21958-21958/ie.macinnes.tvheadend I/ie.macinnes.tvheadend.sync.EpgSyncService: Starting EPG Sync Service
01-20 11:12:55.248 21958-22331/ie.macinnes.tvheadend E/AndroidRuntime: FATAL EXCEPTION: EpgSyncService Handler Thread
                                                                       Process: ie.macinnes.tvheadend, PID: 21958
                                                                       java.lang.NullPointerException: Attempt to invoke virtual method 'java.nio.channels.SelectionKey java.nio.channels.SocketChannel.register(java.nio.channels.Selector, int)' on a null object reference
                                                                           at ie.macinnes.htsp.Connection.sendMessage(Connection.java:330)
                                                                           at ie.macinnes.htsp.Connection.sendMessage(Connection.java:341)
                                                                           at ie.macinnes.htsp.tasks.GetFileTask.sendFileRead(GetFileTask.java:152)
                                                                           at ie.macinnes.htsp.tasks.GetFileTask.sendFileRead(GetFileTask.java:135)
                                                                           at ie.macinnes.htsp.tasks.GetFileTask.onMessage(GetFileTask.java:101)
                                                                           at ie.macinnes.htsp.Connection$3.run(Connection.java:437)
                                                                           at android.os.Handler.handleCallback(Handler.java:742)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:97)
                                                                           at android.os.Looper.loop(Looper.java:148)
                                                                           at android.os.HandlerThread.run(HandlerThread.java:61)
01-20 11:12:55.261 21958-22839/ie.macinnes.tvheadend I/ie.macinnes.htsp.Connection: Opening HTSP Connection
01-20 11:12:57.266 21958-22839/ie.macinnes.tvheadend I/ie.macinnes.htsp.Connection: HTSP Connected
01-20 11:12:57.281 21958-22839/ie.macinnes.tvheadend I/ie.macinnes.htsp.Connection: HTSP Ready
01-20 11:12:57.974 21958-22837/ie.macinnes.tvheadend I/ie.macinnes.tvheadend.sync.EpgSyncTask: Enabling Async Metadata. Last Update: 1484910775, EPG max time: 1484953977

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.