Page 1 of 1
Capture using EyeTV plugin gives playback with artifacts
Posted: 19 Jun 2009 08:16
by tchristensen
Hi
I have a working EyeTV installation that receives DVB-T streams which I wanted to play in VLC instead for later transcode and retransmission. I have installed EyeTV Capture Plugin and can start the playback (without transcoding etc just to test). The images however, are filled with artifacts and the log is filled with "libdvbpsi error (PSI decoder): TS discontinuity (received 12, expected 11) for PID 18" or similar statements. Sound is chubby too.
I'm using the VLC wizard to open the EyeTV Capture plugin with "eyetv:// :eyetv-channel=1" as arguments. The stream received is an mpeg-ts with mpeg2/mpega content. When I look at the mediainfo page, codec details I see all the programms that are available in the stream from the mux with EPG data etc. Could it be that the many PID's are the source of the problem?
Here is a screen dump of what I'm looking at it is available on
http://yfrog.com/5gvlcsnap1779668p
Best regards
Thomas
Specs:
Mac OSX 10.5.7
VLC 0.9.9a
EyeTV 3.1 (4515)
EyeTV Capture Plugin (no version number) as of 19 June 2009
3.06 GHz with 4 GB Ram
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 19 Jun 2009 13:13
by ajmas
DVB-T streams are all 'over-the-air' if I understand correctly, so I am assuming this is the case for you. The sort of artifacting you see is most probably due to noise in the incoming signal, which is causing decoding issues in the digital stream. I experienced the same issues when using
TNT (French terminology for the same thing) in France, and experienced similar issues. If someone knows otherwise, then please correct me.
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 19 Jun 2009 13:27
by tchristensen
The DVB-T signals are played nicely using EyeTV directly so the streams must be ok.
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 19 Jun 2009 15:56
by The DJ
EyeTV probably does some reordering and reconstructing when packets are lost.
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 20 Jun 2009 09:59
by tchristensen
EyeTV probably does some reordering and reconstructing when packets are lost.
I believe you are correct. I checked Elgatos description of the EyeTV API and it reads
Note that the plug-in is called before EyeTV looks at the packets, so it is even possible to modify the data.
I guess that means that what ever errors that are in the stream is probably fixed after the plugin is called.
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 25 Jul 2009 16:34
by masinisa
Dears,
Where can I find the EyeTV Capture plugin arguments syntax?
I need to capture the whole multiplex, but the only documented argument (from this mail) is for one service/channel ("eyetv:// :eyetv-channel=1" as argument)
Hamid
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 26 Jul 2009 15:53
by fkuehne
Capturing an entire multiplex is not supported as far as I know. As my testing device does only deliver the TS stream of the currently selected channel for performance reasons, I can't check for you whether it might work.
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 26 Jul 2009 17:35
by ajmas
What would be interesting to see, is if there are any other open source projects that have better error correction of the incoming stream. Maybe there are even some documented algorithms?
I did a look around, but didn't find anything satisfactory. Some links:
-
http://en.wikipedia.org/wiki/DVB-T
-
Broadcast engineer's reference book
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 27 Jul 2009 16:53
by masinisa
that's a pity...
Means I will need to get a new DTT device
But still wondering where the documented argument came from (eyetv:// :eyetv-channel=1)?
Or was it a post from the plugin writer himself, with no reference to a doc?
H
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 27 Jul 2009 18:34
by fkuehne
These options were probably taken from VLC's command-line or Quovodis or me posted them somewhere. Can't remember...
EyeTV input (access_eyetv)
--eyetv-channel <integer> Channel number
--eyetv-caching <integer> Caching value in ms
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 04 Apr 2011 09:52
by cbscpe
I think I have found one reason why you get a lot of the error messages like
libdvbpsi error (PSI decoder): TS discontinuity (received 12, expected 11) for PID 18
and hence a lot of artifacts when using the EyeTV plugin. In the code of eyetvplugin.c (as in the tarball of VLC 1.1.8 ) you have the following logic to flush the buffer from eyeTV to VLC
Code: Select all
if( packetBufferSize <= (sizeof(packetBuffer)-sizeof(TransportStreamPacket)) )
{
/* copy packet in our buffer */
memcpy(packetBuffer+packetBufferSize, *packets, sizeof(TransportStreamPacket));
packetBufferSize += sizeof(TransportStreamPacket);
}
else
{
/* flush buffer to VLC */
ssize_t sent = write(i_vlcSock, packetBuffer, packetBufferSize);
if( sent != packetBufferSize )
{
if( sent == -1 )
printf("data sending failed (errno=%d)\n", errno);
else
printf("data sending incomplete (sent=%d)\n", sent);
close(i_vlcSock);
i_vlcSock = -1;
return 0;
}
packetBufferSize = 0;
}
so if packetBuffer gets full you only flush the current buffer but don't copy the packet. So whenever you receive more then 20 packets (constant used to set the size of packetBuffer) from EyeTV when VLCEyeTVPluginPacketsArrived is called you skip one MPEG Transport Stream Packet. You should change the logic to also include this packet
Regards
Peter
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 04 Apr 2011 16:14
by fkuehne
As said in my PM, I've submitted your patch to the code repository and will release an updated version of the plugin as soon as I've got my testing device back (so later this week).
Thanks a lot for your contribution!
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 19 Apr 2011 01:58
by rael
Hi Felix,
Were you able to update the plugin with these changes? I'd be happy to test.
Thanks
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 17 May 2011 08:46
by miah
Felix,
I'd like to report success using new code for the EyeTV plugin and it's actually solved an annoying problem that I've been having since I bought the thing 6 months ago. I live on the campus of the University of Colorado at Boulder (USA) and my digital cable is weird, such that I get a black screen when I try to watch the digital channels (or recordings of them) in the EyeTV application. I can however watch the recording files in VLC. Elgato support has been unable to help me solve this, and I had tried previously to get the VLC plugin to work, which resulted in an unwatchable amount of screen artifacts and sound stuttering.
Today I grabbed the source of VLC from git and compiled (just) the EyeTV plugin from the current source, this results in perfect live video and audio from my digital channels.
Thanks for updating this, it's made this device a lot more worth while for me.
Jeremiah McConnell
Re: Capture using EyeTV plugin gives playback with artifacts
Posted: 31 Aug 2011 07:04
by mike9285
Jeremiah, can you post the updated plugin? I can't seem to get it to compile.