Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: BUG: vdr-streamdev



C.Y.M <syphir@syphir.sytes.net> wrote:
> hm@seneca.muc.de wrote:
> > The reason is a string comparison using == does not work. 
> > 
> > if (String == channel->Name()) {
> > 
> > should be replaced by
> > 
> > if (strncasecmp (String, channel->Name(), strlen (channel->Name())) == 0) 

> This patch breaks streaming live video.  Tested against vdr-1.3.15, 
> streamdev-0.3.3-pre3-geni, and VLC 0.0.8.  Please reconsider this patch.

I re-checked the source code again, and I can't see how the above patch
could possibly break live video streaming. 

ChannelFromString(arg) works (should work) as follows: 
- if the arg is a number, return the corresponding cChannel*
- else check if the arg is a channelID (S19.2E-0-11597-10023 and such). 
  - If yes, return the corresponding cChannel*
  - if not, assume we've got a channel station name, and scan the entire
    channel list for a matching channel, and return its cChannel*. If
    nothing is found, return NULL. 

The only difference my patch makes is replace the never working

if (String == channel->Name()) 

by a string comparison that works. If the function gets a numerical or
channelID arg, nothing changes. 

Now what exactly do the functions cConnectionVTP::CmdPROV() and
cConnectionVTP::CmdTUNE() send to ChannelFromString()?  As you can see in
client/socket.c cClientSocket::ProvidesChannel(), they send a channelID. So
this is not affected by the above patch. Same with
cClientSocket::SetChannelDevice(). 

So if something broke your live streaming video, it was not the patch
above. Or I am missing something here... 

-- 
After living in New York, you trust nobody, but you believe
everything.  Just in case.




Home | Main Index | Thread Index