About

The site is about collecting ideas to turn mini PCs and/or single-board computers into a simple and lightweight DVB-based media player in combination with a movie recommendation engine.

17 comments

  1. Arjen

    Very promising project.

    I downloaded the tar, unpacked, installed all required packages and compiled it successfully. However, when I start the program (with omx) I get ”Failed to extract A/V/ pids from MPEG-TS stream; aborting….”

    I have a working DVB-T dongle (tried it with XBMC and tvheadend)
    I purchased the MPEG2 license and it is installed.

    What could be the culpritt here?

    Regards
    Arjen

  2. bromfondel

    The time-out value for DVB-T might be too low. We already adjusted it to a higher value but that does not seem to work for all ‘environments’. I increased the value again (svn). The next daily snapshot will contain the patch which hopefully fixes the issue.

  3. Arjen

    I updated WSTATE=5000 in gnutv_data.c. Still no dice.
    But I remeber there was something with the PID in my DVB-T receiver (IT9135). I’ll try and find that.
    I’ll get back to you

  4. Arjen

    I tried loading the module with param ”pid=1”. But that did not solve it. Then i found out that I had to compile the stuff with Makefile.omx. So I changed the config.h accordingly, but now I am getting errors. At first I could solve a few by adding ”src/” in front of most c-files in the Makefile.omx . Now it starts to compile, but I am getting an error in gnutv_mpeg stating that typedef mpeg_audio_t is unknown. Ok that one is declared in gnutv_mpeg_h (in a ifdefined statement) but somehow that is not passed. Might it be that config.h is not called upon or after this .h file? Anyhow I think you should look at the Makefile.omx because it has some flaws now. (do not forget to enter a ”\” in the first CFLAGS line as well, it’s missing).

    I really like this to work for me. I have tried to write my own openmax based program and I could transcode a video, but not with the proper audio yet. This looks very promising. I’d like to add (or maybe one of you c-guru’s can cause I do know c-language but I am a messy programmer) the resizer component after the decoder component so that the stream can fit my limited upload bandwidth.

    If, or when, you have a new makefile pls email this to me.

  5. bromfondel

    The svn is in sync now and hopefully all issues are fixed.

    As I mentioned in the last article, we are currently rewriting the audio part to avoid any dependencies to external libraries. However, the code is not in the svn yet. If you are interested, I will create a new branch for the code.

  6. bromfondel

    I removed some cruft from the Makefile, which includes the reference to the lib. In a previous version this was the name of an internal library. We never used the one you mentioned

  7. Arjen

    So I removed the lib from the makefile, now I am getting a lot of errors like

    undefined reference to dvbdemux_open_dvr

    But there are a lot more undefined references.
    I cannot get it to list to a file

  8. bromfondel

    I modified the Makefile.omx but I have no Pi device around to test it right now. However, I tested the Makefile with the alsa sound and the video dummy module and the compilation worked.

    • Arjen

      Thanks for all the work, the program now compiles. However, I am stuck with the original failure during runtime:
      Failed to extract A/V pids from MPEG-TS stream; aborting…

      The program does not shut down, I have to give it a CTRL-c to abort.
      I increased the value of WSTATE to 10000, but that did not do the trick. I loaded module dvb_usb_v2 with param force_pid_filter_usage=0 and also with force_pid_filter_usage=1. Alas that did not work either. I then tried to startup tvheadend and I could watch TV on another computer over LAN, so the DVB_T dongle is working properly. The dmesg logs: dvb_usb_v2: pid_filter() failed=-945646388 (other numbers too).

      What could be the next step?

      • Arjen

        Guess what? It actually works. It Appeared my channel.conf had some definitions with poor quality video. So I changed that and now it works. Tried to save it to a file, worked! Try to stream it over LAN: Nop.

        There is some issue with lip-sync, but I saw that mentioned somewhere before. Maybe just a matter of slowing one down from the other with a fixed value?

        For now I am pretty impressed with the result. How many people have worked on this?

      • bromfondel

        Right now, there are no other permanent developers except me. However, I used the excellent work from the original gnutv application and the example code from the Rpi platform.

  9. Arjen

    I changed the omx_video.c source to output the video to a window smaller than fullscreen. Interested? It could be in the parameters e.g -out omxq1, omxq2, omxq3, omxq4, omxfullscreen. (output to quadrant1, 2, 3, or 4 or fullscreen) But than more code must be changed.

    My goal is to hardware accelerate the TV signal, transcode it to a smaller resolution and then stream it over the internet. This is feasible. To get it in sync though seems the hardest part.

    Could we possibly exchange email addresses without letting the world know?

    • bromfondel

      Yes, visit the project website (gna.org) and create an account there. This makes it much easier to communicate. Furthermore, we could exchange patches.

      And yes, I’m interested in your changes.

  10. Hans

    Hi there — i’m very interested in your project because I want to do a much simpler thing and would like to ask you for your opinion on that 🙂

    How would you setup a Raspberry with a USB DVB-S receiver to playback just a fixed radio station after booting? I will go for szap to tune in and use a “static” channels.conf.

    I don’t know how to playback the audio the easiest way — can you give some advice?

    Thanks in advance,
    Hans

    • bromfondel

      Hi Hans,

      if the DVB-S receiver is supported by the kernel, the hard part is already done. To check if it works, just use the vanilla gnutv and tune-in an arbitrary channel ‘gnutv CH_NAME’. If this works, you can redirect the output to a file ‘gnutv -out file your_name.mpeg CH_NAME’.

      The output is in MPEG-TS format and contains streams for audio/video. Frankly, I never tried, if you can use gnutv for radio, but if it works, you can playback directly the output file.

      But I guess you want to “stream” the data directly to an application. I would give ‘gnutv -out stdout CH_NAME|mplayer -‘ a try. If this works, you replace mplayer with your favorite sound app.

      It is also possible to create a named pipe (mkfifo) that can be used to emulate a file. Then your sound app does not have to read from stdin, but can read from the named pipe as it were an ordinary file.

      Hope this helps.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s