linuxstb / pidvbip Goto Github PK
View Code? Open in Web Editor NEWtvheadend client for the Raspberry Pi
Home Page: http://www.pidvbip.org
License: GNU General Public License v2.0
tvheadend client for the Raspberry Pi
Home Page: http://www.pidvbip.org
License: GNU General Public License v2.0
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.
Build in cec with libcec for easy stb control from tv
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.
:)
Hi,
Any chance we can see some screenshots of a client running 'pidvbip'?
Many thanks.
Build small Linux distro with pidvbip inside to make install easy
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;
}
}
Some sort of enigma 2 channel list for the osd. Easy to navigate in large channel lists
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.
I did a fresh install of 2012-10-28-wheezy-raspbian and successfully compiled pidvbip. When I try to run it I get:
assertion failure:graphics.c:269:gx_priv_restore():egl_result
What am I doing wrong?
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.
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.
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
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:
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.
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 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
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).
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?
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
Some more feature requests :)
Hope these are some good ideas :)
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...)
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?
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
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 :)
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!
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.