[vdr] Small VDR-streamdev patch for Popcorn Hour NMT

jori.hamalainen at teliasonera.com jori.hamalainen at teliasonera.com
Tue Nov 4 11:59:10 CET 2008


Hi,

directly Popcorn cannot stream from vdr-streamdev because streamdev server
does not provide necessary info by default. I used 0.3.4 as a basis - I
believe this patch would work for 0.4 without modification.

With this patch I've been able to stream SD stuff. Need more investigating
for HD H.264 stuff, I can hear sound but no picture.

More info about NMT (Networked media tank) devices etc:
http://www.networkedmediatank.com/wiki/index.php/Main_Page

What is done on this patch:
- Add remote control shortcuts (red, green, yellow and blue) to select
wanted stream format (Yellow worked for me with PCH)
- Added automated audio track selection to default URL (+1)
- Added suffix for URL (TS w/ "C-123-123-123.ts or S-12-123-123.ts", ".ps",
".vdr" for PES and ".mpeg" for ES, extern no suffix)
- Added 5000000 bytes prebuf-tag to shorten prebuffer time
- Added remove control shortcut for selecting channels (channel number <
1000)
- Added "vod" tag for PCH to recognize "video-on-demand"

These small enhancements are inside anchor tag and they do not affect other
browsers, just MSP-compatible browsers - so in theory this patch could be
built-in for streamdev. But naturally my vision is to have own GUI for MSP.
But first need to verify that streaming works - and it does. Just some HD
fix is needed.

On PCH menu set Webservices URL: http://[your.VDR]:3000/PES/all.html
(This should be the default - you can change formats easily with RGYB
buttons)

Actual web page is not beautiful compared what you can do with MSP plugins -
but this is a start.

Best regards,
Jori

-----------
vdr server # diff /usr/src/vdr/PLUGINS/src/streamdev/server/menuHTTP.c
/usr/src/vdr_plugins/streamdev-0.3.4/server/menuHTTP.c
201c201
<                       (std::string) "[<a href=\"/TS/" + self + "\"
TVID=\"RED\">TS</a>] ");
---
>                       (std::string) "[<a href=\"/TS/" + self + "\">TS</a>]
");
203c203
<                       (std::string) "[<a href=\"/PS/" + self + "\"
TVID=\"GREEN\">PS</a>] ");
---
>                       (std::string) "[<a href=\"/PS/" + self + "\">PS</a>]
");
205c205
<                       (std::string) "[<a href=\"/PES/" + self + "\"
TVID=\"YELLOW\">PES</a>] ");
---
>                       (std::string) "[<a href=\"/PES/" + self +
"\">PES</a>] ");
207c207
<                       (std::string) "[<a href=\"/ES/" + self + "\"
TVID=\"BLUE\">ES</a>] ");
---
>                       (std::string) "[<a href=\"/ES/" + self + "\">ES</a>]
");
339,349d338
<       std::string suffix;
<
<       switch (streamType) {
<               case stTS: suffix = (std::string) ".ts"; break;
<               case stPS: suffix = (std::string) ".ps"; break;
<               case stPES: suffix = (std::string) ".vdr"; break;
<               case stES: suffix = (std::string) ".mpeg"; break;
<               default:
<               case stExtern: suffix = (std::string) ""; break;
<       }
<
351,357c340,341
<       line += (std::string) "<A href=\"" + (std::string)
current->GetChannelID().ToString() + "+1" + suffix  + "\" vod
prebuf=5000000";
<
<       if (current->Number() < 1000) {
<               line += " TVID=\"" + (std::string) (const char*)
itoa(current->Number()) + "\"";
<       }
<
<       line += (std::string) ">" + current->Name() + "</A>";
---
>       line += (std::string) "<a href=\"" + (std::string)
current->GetChannelID().ToString() + "\">" +
>               current->Name() + "</a>";
370c354
<                                       "+" + (const char*)itoa(index) +
suffix + "\" class=\"apid\" vod>" + current->Alang(i) + "</a>";
---
>                                       "+" + (const char*)itoa(index) + "\"
class=\"apid\">" + current->Alang(i) + "</a>";
374c358
<                                       "+" + (const char*)itoa(index) +
suffix + "\" class=\"dpid\" vod>" + current->Dlang(i) + "</a>";
---
>                                       "+" + (const char*)itoa(index) + "\"
class=\"dpid\">" + current->Dlang(i) + "</a>";
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5933 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/vdr/attachments/20081104/97be49f3/attachment-0001.bin 


More information about the vdr mailing list