GithubHelp home page GithubHelp logo

linuxstb / pidvbip Goto Github PK

View Code? Open in Web Editor NEW
53.0 53.0 22.0 1.46 MB

tvheadend client for the Raspberry Pi

Home Page: http://www.pidvbip.org

License: GNU General Public License v2.0

C 97.90% Makefile 0.33% Shell 1.78%

pidvbip's People

Contributors

adamsutton avatar andyb2000 avatar eindano avatar jancona avatar linuxstb avatar saintdev 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

Watchers

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

pidvbip's Issues

Display is hard-coded to 1920x1080

Many thanks for the Pi client Dave.

Using with a Pi + Atrix Lapdock, I see only part of the video. The Lapdock display is 1366x768. A quick hack is to edit vcodex_omx.c and change each occurrence of

omx_set_display_region(pipe, 0, 0, 1920, 1080);
to omx_set_display_region(pipe, 0, 0, 1366, 768);
and
omx_set_display_region(pipe, 240, 0, 1440, 1080);
to omx_set_display_region(pipe, 171, 0, 1024, 768);

I guess on starting, pidvbip should read the current video mode and scale accordingly.

Custom remote control input codes

Hello!
Would it be possible to add custom remote control key input codes to pidvbip?

For example in the config file.

rc_enter=105 [remote enter key]
rc_channelup=110 [channel up]

And so on, only a basic number of options would be needed, up, down, left, right, enter, channel up, channel down, stop, play/pause, fast forward & rewind.

:)

No screenshot?

Hi,
Any chance we can see some screenshots of a client running 'pidvbip'?
Many thanks.

channels_getprev() returns wrong channel

If current channel is the first in the channel list channels_getprev() will not return the last channel in the list. Instead the next to last channel will be returned.

To fix this move channels_cache = p; statement out from the while loop.

Correct code:

int channels_getprev(int id)
{
struct channel_t* p = find_channel(id);

if (p==NULL) {
return channels_getfirst();
} else {
channels_cache = p->prev;
if (p->prev == NULL) {
p = channels;
while (p->next != NULL) {
//channels_cache = p; // remove this line
p = p->next;
}
channels_cache = p; // new line
}

return channels_cache->id;

}
}

./configure && make failing on pi2

i'm trying to compile pidvbip but it keeps failing over with the following message;

make -C libs/vgfont/ INCLUDES='-pipe -Wall -I. -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -mfloat-abi=hard -mfpu=vfp -DUSE_VCHIQ_ARM -DOMX_SKIP64BIT -O3 -DNDEBUG -I/usr/include/freetype2 -D_REENTRANT -I/pidvbip/build.linux'
make[1]: Entering directory '/pidvbip/libs/vgfont'
cc -D_HAVE_TIMER_T -DSTANDALONE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -Wall -g -DHAVE_LIBOPENMAX=2 -DOMX -DOMX_SKIP64BIT -ftree-vectorize -pipe -DUSE_EXTERNAL_OMX -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi -pipe -Wall -I. -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -mfloat-abi=hard -mfpu=vfp -DUSE_VCHIQ_ARM -DOMX_SKIP64BIT -O3 -DNDEBUG -I/usr/include/freetype2 -D_REENTRANT -I/pidvbip/build.linux -g -c font.c -o font.o -Wno-deprecated-declarations
../Makefile.include:9: recipe for target 'font.o' failed
make[1]: Leaving directory '/pidvbip/libs/vgfont'
Makefile:114: recipe for target '/pidvbip/libs/vgfont/libvgfont.a' failed

i have installed tvheadend and the libraries correctly so I'm not sure where I'm going wrong.

ALSA support

Has anybody got this to work with an external DAC please? I imagine this means enabling ALSA support. I'm using Raspbian and get picture but no sound. Thank you.

eindano's pidvbip fork creates channel.

Sorry for placing this here, I couldn't create an issue on eindano's fork.

After running eindano's fork of pidvbip it tries to stream "Channel 113", but TVH will also create this channel in the webui, there is no conf file being used and I'm not setting it, so I'm not sure where it's getting this from.

Segfault with avplay [Commit: 9226ae5116f67d975df1db517416e3d43d1ed77e]

When trying to playback a video file I get the following:-

Sent MSG_PLAY to avplay thread - next_url=./NCIS- Los Angeles - S03E23 - Sans Voir (1).mp4
avplay: waiting for playback mutex
avplay: gotplayback mutex
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './NCIS- Los Angeles - S03E23 - Sans Voir (1).mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isom
    creation_time   : 2012-05-14 18:19:51
  Duration: 01:25:15.11, start: 0.000000, bitrate: 1027 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 720x404, 902 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc
    Metadata:
      creation_time   : 2012-05-15 16:32:33
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 120 kb/s
    Metadata:
      creation_time   : 2012-05-14 18:19:58
video_stream_idx=0
audio_stream_idx=1
Mapping video codec ID 28 (1c)
vcodec=AVC
Mapping audio codec ID 86018 (15002)
acodec=AAC
sps_len=27
pps_len=6
annexb_extradata_size = 41
DTS discontinuity - DTS=-1, prev_DTS=2060000 (diff = -2060001)
[EVENT] OMX.broadcom.video_decode 0x3db4f00 port 131 settings changed.
video_decode port_settings_changed = 1
OMX_SetupTunnel(pipe->video_decode.h, 131, pipe->video_scheduler.h, 10) failed on line 221: 80001018

Can please explain, give a comparison for advantages over XBMC?

Hi again!
I am missing the reason why this project is better than XBMC.

So far, I can see that XBMC is missing these features:

  • Series Link recordings.
  • Pause / Resume.

Not that series link listed in pidvbip feature set either. But pause/resume it. Can you please explain what else may be better when using pidvbip? Or planned features?

Also:
How might an individual consumer purchase a hardware license for the decoder codec? Is it already included in the Raspberry Pi B+ hardware purchase?

Many thanks.

Lost connection to TVH, high CPU load

Cpu almost pegged out at 100% when TVH connection is lost for whatever reason.

Just tested: pidvbip idle (not subscribed), shutdown TVH daemon, cpu to 100% on pi and stays there. Start TVH daemon, pi still at 100% cpu load. Cannot restart subscription.

So need some form of hts timeout/socket timeout.
(noted here mainly to remind myself to look into it!)

./configure fails

Configure fails whith:

Checking support/features
checking for cc pthread.h ... ok
checking for cc fpu ... fail
checking for cc bcm_host ... fail
ERROR: Failed to locate bcm_host

Aspect ratio change detection

When viewing a channel that uses a mixture of 4:3 and 16:9 aspect ratios (e.g. during the programme and adverts), pidvbip will initially get the aspect ratio correct, but will not then detect any changes to the aspect ratio.

A workaround is to press "o" twice to restart the subscription, but this needs fixing (if possible).

Another Segmenation Fault

When I try to run a newly compiled pidvbip with a newly compiled tvheadend both on my Pi2 with latest Raspbian build, I get:

"Using host "127.0.0.1:9982"
host[1]=(null)
Using /dev/input/event0 - PixArt USB Optical Mouse
Connecting to 1 servers
Connecting to server 0 - 127.0.0.1
Starting vcodec_omx_thread
vcodec_omx_thread: next_channel
Connecting to server 0: 127.0.0.1 (127.0.0.1) port 9982...
2015-08-13 13:51:42.664 [ INFO] htsp: Got connection from 127.0.0.1
2015-08-13 13:51:42.664 [ INFO] htsp: 127.0.0.1: Welcomed client software: pidvbip (HTSPv1)
Initial sync completed
Startup stopped 0
Channels_getfirst
2015-08-13 13:51:42.724 [ INFO] htsp: 127.0.0.1 [ pidvbip ]: Disconnected
Segmentation fault"

with timed/dated entries coming from tvheadend rather than pidvbip. There is indeed an optical mouse connected, and tvheadend appears to work correctly because I can watch TV on my PC using VLC and the 9982 port on my Pi.

Any ideas what I am doing wrong?

Question about IR remote

Hi,

I am trying to get usb ir remote to work with pidvbip. I have tested mutiple remotes all with different results, mostly because i can't map keys from the remote to the remote-control-keys from the application.

My question, are you using a specific remote with the application? And if so would yo be willing to share brand/model so i can order the same? :-)

The other way would be to use lirc and use that to map my remote control keys to application specific commands.

Either way, feedback is welcome!

Thanks!
P

Feature requests!

Some more feature requests :)

  • An option to change opacity of the OSD :)
  • Display the date as well as the time with an option to change the display format dd/mm/yy mm/dd/yyyy etc.
  • View other channels now/next data without changing the current channel.
  • Display currently used server/receiving device (a status osd popup) with an option to change the current server (Say you're watching on Server A and it's glitching you could press this option to view the same channel on Server B).

Hope these are some good ideas :)

Resolving hostname fails

In file htsp.c, function get_ip() the buffer passed to inet_ntop() is one byte too short. If you are trying to connect to a host that has an IP-adress with all octets as 3 digits the program fails with a cryptic message:
Can't resolve host: No space left on device

The malloc() does account for the 15+1, but the inet_ntop() does not and passes 15 as length for the buffer.

After I changed:
if(inet_ntop(AF_INET, (void *)hent->h_addr_list[0], ip, iplen) == NULL)
into:
if(inet_ntop(AF_INET, (void *)hent->h_addr_list[0], ip, iplen+1) == NULL)
it now works for me.

(I know, I should really learn how to supply proper patches...)

Segmentation fault

Hi,

Starting pidvbip causes a segmentation fault.
Output from gdb:

Program received signal SIGSEGV, Segmentation fault.
0x0001a728 in gx_priv_save (state=0xbefff09c, res=0xb6f0930c) at graphics.c:250
250 res->context_bound = 1;

Environment:
Raspbian Wheezy 2013-02-09
Tvheadend 3.3.525

If I disconnect the HDMI cabel pidvbip starts and the channel list is downloaded.

Any clue what the problem can be?

Failed to make in arch linux

any ideas?

avplay.c:60:28: warning: ‘enum CodecID’ declared inside parameter list will not be visible outside of this definition or declaration
static int map_vcodec(enum CodecID id)
^~~~~~~
avplay.c:60:36: error: parameter 1 (‘id’) has incomplete type
static int map_vcodec(enum CodecID id)
^~
avplay.c: In function ‘map_vcodec’:
avplay.c:64:13: error: ‘CODEC_ID_MPEG2VIDEO’ undeclared (first use in this function)
case CODEC_ID_MPEG2VIDEO:
^~~~~~~~~~~~~~~~~~~
avplay.c:64:13: note: each undeclared identifier is reported only once for each function it appears in
avplay.c:65:13: error: ‘CODEC_ID_MPEG2VIDEO_XVMC’ undeclared (first use in this function)
case CODEC_ID_MPEG2VIDEO_XVMC:
^~~~~~~~~~~~~~~~~~~~~~~~
avplay.c:68:13: error: ‘CODEC_ID_H264’ undeclared (first use in this function)
case CODEC_ID_H264:
^~~~~~~~~~~~~
avplay.c: At top level:
avplay.c:81:28: warning: ‘enum CodecID’ declared inside parameter list will not be visible outside of this definition or declaration
static int map_acodec(enum CodecID id)
^~~~~~~
avplay.c:81:36: error: parameter 1 (‘id’) has incomplete type
static int map_acodec(enum CodecID id)
^~
avplay.c: In function ‘map_acodec’:
avplay.c:85:13: error: ‘CODEC_ID_MP2’ undeclared (first use in this function)
case CODEC_ID_MP2:
^~~~~~~~~~~~
avplay.c:86:13: error: ‘CODEC_ID_MP3’ undeclared (first use in this function)
case CODEC_ID_MP3:
^~~~~~~~~~~~
avplay.c:89:13: error: ‘CODEC_ID_AC3’ undeclared (first use in this function)
case CODEC_ID_AC3:
^~~~~~~~~~~~
avplay.c:92:13: error: ‘CODEC_ID_AAC’ undeclared (first use in this function)
case CODEC_ID_AAC:
^~~~~~~~~~~~
avplay.c: In function ‘avplay_thread’:
avplay.c:137:12: warning: return makes pointer from integer without a cast [-Wint-conversion]
return 1;
^
avplay.c:176:62: error: ‘CODEC_ID_AAC’ undeclared (first use in this function)
if (fmt_ctx->streams[audio_stream_idx]->codec->codec_id == CODEC_ID_AAC) {
^~~~~~~~~~~~
avplay.c:326:5: warning: ‘av_free_packet’ is deprecated [-Wdeprecated-declarations]
av_free_packet(&pkt);
^~~~~~~~~~~~~~
In file included from /usr/include/libavformat/avformat.h:318:0,
from avplay.c:25:
/usr/include/libavcodec/avcodec.h:4040:6: note: declared here
void av_free_packet(AVPacket pkt);
^~~~~~~~~~~~~~
make: *
* [Makefile:117: /root/pidvbip/build.linux/avplay.o] Error 1

Segmentation fault

Hello !
I'm a little helpless...It works for an unpredictable time period fine but then I always get an segmentation fault and can't find a reason.
I'm on latest raspbian stretch light, I tried gpu_mem with 128/192/256MB but no difference. I even tried it with a higher bash stack limit (16.386 Kb and 32.768 Kb) also no difference.
Am I missing something or is this a known problem ? I tried to find answers on google but wasn't that succesfull....I'm stuck.

Any advice or help is very appreciated :)

omx pipeline symbol lookup error.

pidvbip fails to setup omx pipeline.

symbol lookup error: /opt/vc/lib/libopenmaxil.so: undefined symbol: sem_getvalue, version GLIBC_2.4

Edit:
It would appear that this is caused by not having the video codec license keys and/or gpu_mem < 128.

Feel free to close this - hopefully it'll help those who come across this error in future!

blank username/password loop.

When connecting to a server which requires authorisation to access services and the username and password isn't supplied, pidvbip doesn't deal with it, it instead goes into a continuous "Waiting for HSTP to start.." loop.

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.