Initial delete section code
[pyTivo.git] / plugins / admin / templates / settings.tmpl
blob64feea03ff8ba5f2636acebc1844cc84a935d5b9
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
2 <html>\r
3 <head>\r
4 \r
5   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r
6   <title>pyTivo Web Configuration</title>\r
7 \r
8 \r
9   <script language="javascript" type="text/javascript">\r
10 function fillBlank(){\r
11 var texts=document.getElementsByTagName('input')\r
12 for (var i_tem = 0; i_tem < texts.length; i_tem++)\r
13 if (texts[i_tem].value=='')\r
14 texts[i_tem].value=' '\r
15 }\r
17 function switchDiv(pass, type){ hideallids(type);\r
18 showDiv(pass);\r
19 }\r
20 function hideallids(type){\r
21 //loop through the array and hide each element by id\r
22 var divs = document.getElementsByTagName('div');\r
23 for (var i=0;i<divs.length;i++){\r
24 if(divs[i].id.match(type)){\r
25 hideDiv(divs[i].id);\r
26 }\r
27 } }\r
28 function hideDiv(pass) {\r
29 var divs = document.getElementsByTagName('div');\r
30 for(i=0;i<divs.length;i++){\r
31 if(divs[i].id.match(pass)){//if they are 'see' divs\r
32 if (document.getElementById) // DOM3 = IE5, NS6\r
33 divs[i].style.visibility="hidden";// show/hide\r
34 else\r
35 if (document.layers) // Netscape 4\r
36 document.layers[divs[i]].display = 'hidden';\r
37 else // IE 4\r
38 document.all.hideshow.divs[i].visibility = 'hidden';\r
39 }\r
40 }\r
41 }\r
42 function showDiv(pass) {\r
43 var divs = document.getElementsByTagName('div');\r
44 for(i=0;i<divs.length;i++){\r
45 if(divs[i].id == pass){\r
46 if (document.getElementById)\r
47 divs[i].style.visibility="";\r
48 else\r
49 if (document.layers) // Netscape 4\r
50 document.layers[divs[i]].display = '';\r
51 else // IE 4\r
52 document.all.hideshow.divs[i].visibility = '';\r
53 }\r
54 }\r
55 }\r
56 function deleteSection(id){\r
57 var answer = confirm("Are you sure you wish to delete the '" + select_section.section.options[id].text + "' Section?")\r
58 if (answer){\r
59         switchDiv('set-delete', 'set-');\r
60         select_section.section.options[id] = null;\r
61         // add stuff here to populate title with 'Delete_Me'\r
62         return true;\r
63 }\r
64 else{\r
65         //Don't delete\r
66 }\r
67 }\r
68   </script>\r
69 </head>\r
72 <body style="background-color: rgb(250, 250, 250);">\r
74 <p align="center"><font size="6">pyTivo Web\r
75 Configuration</font> <a href="#">help</a></p>\r
76 <center>\r
77 <table style="border: 1px solid rgb(220, 220, 220);background-color: rgb(255, 255, 255);text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="0" cellspacing="4">\r
79   <tbody>\r
81     <tr>\r
83       <td style="border-right: 1px dotted rgb(153, 153, 153); vertical-align: top;">\r
84       <div id="leftframe" style="position: relative; text-align: center; width: 200px;">\r
85       <form name="select_section">Sections\r
86         <select name="section" size="7">\r
87         <option value="set-server">Global Server Settings</option>\r
88 #for $name, $data in $shares_data\r
89         <option value="set-share-$name">$name</option>\r
90 #end for\r
91 #for $name, $data in $tivos_data\r
92         <option value="set-tivo-$name">$name</option>\r
93 #end for\r
94         </select>\r
96         <input name="B3" value="Edit Section" type="button" onclick="switchDiv(select_section.section.options[select_section.section.selectedIndex].value, 'set-');return true;"> \r
97         <input name="B1" value="Delete Section" type="button" onclick="deleteSection(select_section.section.selectedIndex)">\r
98         <input name="B2" value="Add Section" type="button"onfocus="switchDiv('set-add', 'set-');return true;"></form>\r
100       <hr>Administration\r
101       <form method="post">\r
102         <p align="center"><input name="B1" value="Save Changes" type="button" onclick="fillBlank();document.config.submit();return true;"><input name="B2" value="Soft Reset pyTivo" type="button"></p>\r
104       </form>\r
106 View Raw File </div>\r
108       </td>\r
110       <td style="vertical-align: top;">\r
111       <div id="settings" style="width: 300px; overflow: scroll; height: 450px; position: relative;">\r
112       <form name="config" method="GET" action="TiVoConnect" onsubmit="fillBlank()">\r
113       <input type="hidden" name="Command" value="UpdateSettings">\r
114       <input type="hidden" name="Container" value="$container">\r
115 <div id="set-server" style="width: 280px; text-align: center;position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
116         <b>Global Server Settings</b><br>\r
117         <hr style="width: 100%; height: 2px;"> \r
118         <table align="center">\r
119 #set $i = 0\r
120 #for $key in $server_known\r
121 #set $i += 1\r
122 #if $i%2\r
123 <tr style="background-color: rgb(250, 250, 250);">\r
124 #else\r
125 <tr>\r
126 #end if\r
127 <td>\r
128 #if $key in $server_data\r
129         $key :</td><td><input size="20" name="Server.$key" value="$server_data[$key]" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
131 #else\r
132         $key :</td><td><input size="20" name="Server.$key" value="" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
134 #end if\r
135 </td></tr>\r
136 #end for\r
137 <tr><td colspan="2" align="center" style="border-bottom: 1px solid rgb(153, 153, 153);">User Defined Settings:</td></tr>        \r
138 #set $i = 0\r
139 #for $key in $server_data \r
140         #if not $key in $server_known\r
141                 #set $i += 1\r
142                 #if $i%2\r
143                         <tr style="background-color: rgb(250, 250, 250);">\r
144                 #else\r
145                         <tr>\r
146                 #end if\r
147                 <td>         $key :</td><td>\r
148                 <input size="20" name="Server.$key" value="$server_data[$key]" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
149                 </td></tr>\r
150         #end if \r
151 #end for \r
152         </table>\r
153         <div style="width: 280px; position: relative;">\r
154                 <div id="add-server-button" style="width: 280px; position: absolute; position: absolute; left: 0px; top: 0px;">\r
155                         <br>\r
156                         <center>\r
157                         <input type="button" value="Add Setting" onclick="switchDiv('add-server-field', 'add-server-');return true;">\r
158                         </center>\r
159                 </div>\r
160                 <div id="add-server-field" style="position: absolute; position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
161                         <table style="width: 265px;">\r
162                         <tr><td colspan="2" align="center" style="border-bottom: 1px solid rgb(153, 153, 153);">Add a Setting</td></tr>\r
163                         <tr><td>Setting Name:</td><td>Setting Value:</td></tr>\r
164                         <tr><td><input size="16" name="Server.new__setting" type="text" value=""></td><td><input size="16" type="text" name="Server.new__value" value=""></td></tr>\r
165                         </table>\r
166                 </div>\r
167         </div>\r
168 </div>\r
169 #set $section_count = 0\r
170 #set $section_map = ''\r
171 #for $name, $data in $shares_data\r
172         #set $section_count += 1\r
173         #set $section_number = 'section-' + str($section_count)\r
174         #set $section_map += $section_number + ':' + $name + '/'\r
175         <div id="set-share-$name" style="text-align: center;position: absolute; left: 0px; top: 0px; visibility: hidden;">[<input size="20" name="$section_number" value="$name">]<br>\r
176         <hr style="width: 100%; height: 2px;"><table align="center">\r
177         #set $i = 0\r
178         #for $key in $shares_known\r
179                 #set $i += 1\r
180                 #if $i%2\r
181                         <tr style="background-color: rgb(250, 250, 250);">\r
182                 #else\r
183                         <tr>\r
184                 #end if\r
185                 #if $key in $data\r
186                         <td>$key :</td><td><input size="20" name="$section_number.$key" value="$data[$key]" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
187                         </td>\r
188                 #else\r
189                         <td>$key : </td><td><input size="20" name="$section_number.$key" value="" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
190                         </td>\r
191                 #end if\r
192                 </tr>\r
193         #end for\r
195         <tr><td colspan="2" align="center" style="border-bottom: 1px solid rgb(153, 153, 153);">User Defined Settings:</td></tr> \r
196         #set $i = 0\r
197         #for $key in $data \r
198                 #if not $key in $shares_known\r
199                         #set $i += 1\r
200                         #if $i%2\r
201                                 <tr style="background-color: rgb(250, 250, 250);">\r
202                         #else\r
203                                 <tr>\r
204                         #end if\r
205                         <td> $key : </td><td>\r
206                         <input size="20" name="$section_number.$key" value="$data[$key]" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
207                         </td></tr>\r
208                 #end if \r
209         #end for\r
210         </table>\r
211                 <div style="position: relative;">\r
212                         <div id="add-$name-button" style="width: 280px; position: absolute; position: absolute; left: 0px; top: 0px;">\r
213                                 <br>\r
214                                 <center>\r
215                                 <input type="button" value="Add Setting" onclick="switchDiv('add-$name-field', 'add-$name-');return true;">\r
216                                 </center>\r
217                         </div>\r
218                         <div id="add-$name-field" style="position: absolute; position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
219                                 <table style="width: 265px;">\r
220                                 <tr><td colspan="2" align="center" style="border-bottom: 1px solid rgb(153, 153, 153);">Add a Setting</td></tr>\r
221                                 <tr><td>Setting Name:</td><td>Setting Value:</td></tr>\r
222                                 <tr><td><input size="16" name="$(section_number).new__setting" type="text" value=""></td><td><input size="16" type="text" name="$(section_number).new__value" value=""></td></tr>\r
223                                 </table>\r
224                         </div>\r
225                 </div>\r
226         </div>\r
227 #end for\r
229 #for $name, $data in $tivos_data\r
230         #set $section_count += 1\r
231         #set $section_number = 'section-' + str($section_count)\r
232         #set $section_map += $section_number + ':' + $name + '/'\r
233         <div id="set-tivo-$name" style="text-align: center;position: absolute; left: 0px; top: 0px; visibility: hidden;">[<input size="20" name="$section_number" value="$name">]<br>\r
234         <hr style="width: 100%; height: 2px;"><table align="center">\r
235         #set $i = 0\r
236         #for $key in $tivos_known\r
237                 #set $i += 1\r
238                 #if $i%2\r
239                         <tr style="background-color: rgb(250, 250, 250);">\r
240                 #else\r
241                         <tr>\r
242                 #end if\r
243                 #if $key in $data\r
244                         <td>$key :</td><td><input size="20" name="$section_number.$key" value="$data[$key]" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
245                         </td>\r
246                 #else\r
247                         <td>$key :</td><td><input size="20" name="$section_number.$key" value="" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
248                         </td>\r
249                 #end if\r
250                 </tr>\r
251         #end for\r
253         <tr><td colspan="2" align="center" style="border-bottom: 1px solid rgb(153, 153, 153);">User Defined Settings:</td></tr> \r
254         #set $i = 0\r
255         #for $key in $data \r
256                 #if not $key in $tivos_known\r
257                         #set $i += 1\r
258                         #if $i%2\r
259                                 <tr style="background-color: rgb(250, 250, 250);">\r
260                         #else\r
261                                 <tr>\r
262                         #end if\r
263                         <td> $key :</td><td> \r
264                         <input size="20" name="$section_number.$key" value="$data[$key]" onfocus="switchDiv('help-$key', 'help-');return true;" type="text">\r
265                         </td></tr>\r
266                 #end if \r
267         #end for\r
268         </table>\r
269                 <div style="position: relative;">\r
270                         <div id="add-$name-button" style="width: 280px; position: absolute; position: absolute; left: 0px; top: 0px;">\r
271                                 <br>\r
272                                 <center>\r
273                                 <input type="button" value="Add Setting" onclick="switchDiv('add-$name-field', 'add-$name-');return true;">\r
274                                 </center>\r
275                         </div>\r
276                         <div id="add-$name-field" style="position: absolute; position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
277                                 <table style="width: 265px;">\r
278                                 <tr><td colspan="2" align="center" style="border-bottom: 1px solid rgb(153, 153, 153);">Add a Setting</td></tr>\r
279                                 <tr><td>Setting Name:</td><td>Setting Value:</td></tr>\r
280                                 <tr><td><input size="16" name="$(section_number).new__setting" type="text" value=""></td><td><input size="16" type="text" name="$(section_number).new__value" value=""></td></tr>\r
281                                 </table>\r
282                         </div>\r
283                 </div>\r
284         </div>\r
285 #end for\r
286 <div id="set-add" style="text-align: center;position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
287         Add a New Section\r
288         <hr>\r
289         <table>\r
290         <tr>\r
291         <td> Section Name :</td><td> \r
292                 <input size="20" name="new_Section" value="" onfocus="switchDiv('help-add', 'help-');return true;">\r
293         </td></tr></table>\r
294 </div>\r
295 <div id="set-delete" style="text-align: center;position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
296         Delete a Section\r
297         <hr>\r
298         <br>\r
299         The Section has been marked for deletion. However it will not be actually deleted until you click the <b>Save Changes</b> button.\r
300 </div>\r
301 <input type="hidden" name="Section_Map" value="$section_map">\r
302       </form>\r
304       </div>\r
306       </td>\r
308       <td style="border-left: 1px dotted rgb(153, 153, 153); vertical-align: top;">\r
309       <div id="sidesections" style="width: 400px; position: relative;"><!-- HELP SECTIONS -->\r
310       <div id="help-instructions" style="position: absolute; left: 0px; top: 0px; visibility: visible;">\r
311       <p align="center"><strong>Instructions</strong>\r
312       </p>\r
314 Instructions and sample settings will appear here when you click on the\r
315 settings boxes</div>\r
317         <div id="help-add" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
318       <p align="center"><strong>Add a New Section</strong> </p>\r
320       <p> Add the name of a new section.<br>\r
322       Remember if you want to add TiVo section remember it must start with _tivo_<br>\r
324       You must save your settings before the new section will be editable.<br>\r
325         </p>\r
327       </div>\r
329       <div id="help-port" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
330       <p align="center"><strong>port</strong> </p>\r
332       <p> <strong>Default Setting:</strong> None,\r
333 must be entered. Distributed conf file uses 9032<br>\r
335       <strong>Valid Entries:</strong> Valid port number<br>\r
337       <strong>Required:</strong> Yes, without a port\r
338 setting in the conf file pyTivo will not start.<br>\r
340       <strong>Skill:</strong> Basic<br>\r
342       <strong>Description:</strong> The port which pyTivo\r
343 uses to serve your files. Can be changed if it conflicts with another\r
344 program. It is reported on Ubuntu that this port is already used so you\r
345 may need to change it to something like port=9254.<br>\r
347       <strong>Example Settings:</strong> 9032 </p>\r
349       </div>\r
351       <div id="help-guid" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
352       <p align="center"><strong>guid</strong> </p>\r
354       <p> <strong>Default Setting:</strong> 123456<br>\r
356       <strong>Valid Entries:</strong> Any 6 digit number<br>\r
358       <strong>Required:</strong> Generally NO, will default\r
359 to '123456' if left blank. If you use more than one pyTivo server on\r
360 the same network a different random number is required here.<br>\r
362       <strong>Skill:</strong> Advanced<br>\r
364       <strong>Description:</strong> A unique identifier\r
365 used in the beacon to identify this server. If you have 2 or more\r
366 pyTivo servers on one network each server must use its own unique\r
367 identifier.<br>\r
369       <strong>Example Settings:</strong> Any 6 digit\r
370 number. </p>\r
372       </div>\r
374       <div id="help-ffmpeg" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
375       <p align="center"><strong>ffmpeg</strong>\r
376       </p>\r
378       <p> <strong>Default Setting:</strong> There is\r
379 none.<br>\r
381       <strong>Valid Entries:</strong> Operating system path<br>\r
383       <strong>Required:</strong> Yes! <br>\r
385       <strong>Skill:</strong> Basic<br>\r
387       <strong>Description:</strong> This is the full path\r
388 to your ffmpeg binary. For windows users ffmpeg is distributed with\r
389 pyTivo and is in the plugins/video folder<br>\r
391       <strong>Example Settings:</strong> <span class="underline">Linux</span> = /usr/bin/ffmpeg | <span class="underline">Windows</span> = c:\Program\r
392 Files\pyTivo\plugins\video\ffmpeg_mp2.exe </p>\r
394       </div>\r
396       <div id="help-beacon" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
397       <p align="center"><strong>beacon</strong>\r
398       </p>\r
400       <p> <strong>Default Setting:</strong>\r
401 255.255.255.255<br>\r
403       <strong>Valid Entries:</strong> A Subnet or Listen<br>\r
405       <strong>Required:</strong> No, defaults to\r
406 255.255.255.255<br>\r
408       <strong>Skill:</strong> Advanced<br>\r
410       <strong>Description:</strong> The subnet which the\r
411 beacon should broadcast on. Most people can leave this at the default\r
412 setting. If set to listen will accept incoming TCP requests.<br>\r
414       <strong>Example Settings:</strong> 255.255.255.255 </p>\r
416       </div>\r
418       <div id="help-hack83" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
419       <p align="center"><strong>hack83</strong>\r
420       </p>\r
422       <p> <strong>Default Setting:</strong> False<br>\r
424       <strong>Valid Entries:</strong> True/False<br>\r
426       <strong>Required:</strong> No<br>\r
428       <strong>Skill:</strong> Moderate<br>\r
430       <strong>Description:</strong> Available in the <a class="wiki" href="/wiki/SubFoldersBranch">SubFoldersBranch</a>.\r
431 Allows TiVos with software 8.3 and above to display subfolders as users\r
432 are accustomed too prior to the 8.3Software glitch. If you use this\r
433 then you don't need to use <a href="http://pytivo.armooo.net/wiki/ConfigurepyTivo#auto_subshares">auto_subshares</a>.\r
434       <strong>Warning:</strong> navigating folders too fast\r
435 with this setting enabled may cause <a class="wiki" href="/wiki/TiVo">TiVo</a> to reboot. <br>\r
437       <strong>Example Settings:</strong> True/False </p>\r
439       </div>\r
441       <div id="help-debug" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
442       <p align="center"><strong>debug</strong>\r
443       </p>\r
445       <p> <strong>Default Setting:</strong> False<br>\r
447       <strong>Valid Entries:</strong> True/False<br>\r
449       <strong>Required:</strong> No<br>\r
451       <strong>Skill:</strong> Advanced<br>\r
453       <strong>Description:</strong> Will create a file\r
454 named debug.txt in the base folder of pyTivo. This file will contain\r
455 debug information helpful in diagnosing problems. Generally only\r
456 necessary if you are having a problem and the information is requested\r
457 by support staff.<br>\r
459       <strong>Example Settings:</strong> True/False </p>\r
461       </div>\r
463       <div id="help-optres" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
464       <p align="center"><strong>optres</strong>\r
465       </p>\r
467       <p> <strong>Default Setting:</strong> False<br>\r
469       <strong>Valid Entries:</strong> True/False<br>\r
471       <strong>Required:</strong> No<br>\r
473       <strong>Skill:</strong> Moderate<br>\r
475       <strong>Description:</strong> Allows for the use of\r
476 the Optimal Resolution in transcoding. By setting optes = true pyTivo\r
477 will treat the <a href="http://pytivo.armooo.net/wiki/ConfigurepyTivo#height">height</a>\r
478 and <a href="http://pytivo.armooo.net/wiki/ConfigurepyTivo#width">width</a>\r
479 settings in the conf file as a maximum. If the video to be transcoded\r
480 has smaller dimensions that are closer to other acceptable TiVo\r
481 dimensions then pyTivo will use these dimensions. This allows for\r
482 faster transcoding and small files when the initial video is a lower\r
483 quality.<br>\r
485       <strong>Example Settings:</strong> True/False </p>\r
487       </div>\r
489       <div id="help-audio_br" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
490       <p align="center"><strong>audio_br</strong>\r
491       </p>\r
493       <p> <strong>Default Setting:</strong> 192K<br>\r
495       <strong>Valid Entries:</strong> Any valid Bit rate.\r
496 Up to 384K for SD TiVos. Up to 448K for HD TiVos.<br>\r
498       <strong>Required:</strong> No<br>\r
500       <strong>Skill:</strong> Advanced<br>\r
502       <strong>Description:</strong> This allows you to\r
503 choose the default server audio bit rate used in transcoding. The\r
504 default is likely fine for most users. Users with HD units and high\r
505 quality videos to transcode will want to use higher value. Higher\r
506 values may slow down transcoding and will increase the file size.\r
507 Increased file sizes take up more room on the <a class="wiki" href="/wiki/TiVo">TiVo</a> and take longer to transfer\r
508 over the network.<br>\r
510       <strong>Example Settings:</strong> 192K, 384K, 448K. </p>\r
512       </div>\r
514       <div id="help-max_audio_br" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
515       <p align="center"><strong>max_audio_br</strong>\r
516       </p>\r
518       <p> <strong>Default Setting:</strong> 448K<br>\r
520       <strong>Valid Entries:</strong> Any valid Bit rate. <br>\r
522       <strong>Required:</strong> No<br>\r
524       <strong>Skill:</strong> Advanced<br>\r
526       <strong>Description:</strong> This sets the maximum\r
527 audio bit rate that can be sent to the <a class="wiki" href="/wiki/TiVo">TiVo</a>. Files having a higher bit\r
528 rate will be transcoded to ensure <a class="wiki" href="/wiki/TiVo">TiVo</a> compatibilty. <br>\r
530       <strong>Example Settings:</strong> 384K, 448K. </p>\r
532       </div>\r
534       <div id="help-video_br" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
535       <p align="center"><strong>video_br</strong>\r
536       </p>\r
538       <p> <strong>Default Setting:</strong> 4096K\r
539 for SD <a class="wiki" href="/wiki/TiVo">TiVo</a>'s,\r
540 8192K for HD <a class="wiki" href="/wiki/TiVo">TiVo</a>'s<br>\r
542       <strong>Valid Entries:</strong> Any valid Bit rate.\r
543 1024K = 1Mi<br>\r
545       <strong>Required:</strong> No<br>\r
547       <strong>Skill:</strong> Advanced<br>\r
549       <strong>Description:</strong> This allows you to\r
550 choose the default server video bit rate used in transcoding. FFmpeg\r
551 does not strictly follow this bit rate, there is a certain level of\r
552 tolerance that is allowed. Also a low quality file will always have a\r
553 low bit rate. The default is likely fine for most users. Higher values\r
554 may slow down transcoding and will increase the file size. Increased\r
555 file sizes take up more room on the <a class="wiki" href="/wiki/TiVo">TiVo</a> and take longer to transfer\r
556 over the network.<br>\r
558       <strong>Example Settings:</strong> 4096K, 8Mi, 12Mi </p>\r
560       </div>\r
562       <div id="help-max_video_br" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
563       <p align="center"><strong>max_video_br</strong>\r
564       </p>\r
566       <p> <strong>Default Setting:</strong> 17408k<br>\r
568       <strong>Valid Entries:</strong> Any valid Bit rate.\r
569 1024K = 1Mi<br>\r
571       <strong>Required:</strong> No<br>\r
573       <strong>Skill:</strong> Advanced<br>\r
575       <strong>Description:</strong> This allows you to\r
576 choose the maximum bit rate and is more strict than the <a href="http://pytivo.armooo.net/wiki/ConfigurepyTivo#video_br">video_br</a>\r
577 setting above. However setting this can cause buffer overflows and can\r
578 cause issues with ffmpeg. In addition to setting the ffmpeg maxrate\r
579 option, this setting is used to determine if the video bitrate of the\r
580 source video file is too high for the <a class="wiki" href="/wiki/TiVo">TiVo</a>. Otherwise compatible\r
581 mpeg's with a video bitrate above this setting will be transcoded\r
582 rather than sent to the <a class="wiki" href="/wiki/TiVo">TiVo</a>\r
583 untouched. Raising this setting much higher than the default will likly\r
584 result in pixelation during playback. Recommended only for skilled\r
585 users. <strong>Note:</strong> there is a report that\r
586 ffmpeg throws an error with 17Mi but accepts 17408K just fine. <br>\r
588       <strong>Example Settings: 17408k</strong> </p>\r
590       </div>\r
592       <div id="help-width" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
593       <p align="center"><strong>width</strong>\r
594       </p>\r
596       <p> <strong>Default Setting:</strong> 544<br>\r
598       <strong>Valid Entries:</strong> Any valid pixel\r
599 dimension. Setting will be rounded to nearest acceptable <a class="wiki" href="/wiki/TiVo">TiVo</a>\r
600 dimension<br>\r
602       <strong>Required:</strong> No<br>\r
604       <strong>Skill:</strong> Moderate<br>\r
606       <strong>Description:</strong> Allows you to choose\r
607 the output dimension of the transcoded videos. SD units are limited to\r
608 544 and below. Likely HD users will want to choose a higher value.\r
609 Higher values may slow down transcoding and will increase the file\r
610 size. Increased file sizes take up more room on the TiVo and take\r
611 longer to transfer over the network.<br>\r
613       <strong>Example Settings:</strong> 1920, 1440, 1280,\r
614 720, 704, 544, 480, 352. </p>\r
616       </div>\r
618       <div id="help-height" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
619       <p align="center"><strong>height</strong>\r
620       </p>\r
622       <p> <strong>Default Setting:</strong> 480<br>\r
624       <strong>Valid Entries:</strong> Any valid pixel\r
625 dimension. Setting will be rounded to nearest acceptable <a class="wiki" href="/wiki/TiVo">TiVo</a>\r
626 dimension<br>\r
628       <strong>Required:</strong> No<br>\r
630       <strong>Skill:</strong> Moderate<br>\r
632       <strong>Description:</strong> Allows you to choose\r
633 the output dimension of the transcoded videos. SD units are limited to\r
634 480 and below. Likely HD users will want to choose a higher value.\r
635 Higher values may slow down transcoding and will increase the file\r
636 size. Increased file sizes take up more room on the TiVo and take\r
637 longer to transfer over the network.<br>\r
639       <strong>Example Settings:</strong> 1080, 720, 480 </p>\r
641       </div>\r
643       <div id="help-ffmpeg_prams" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
644       <p align="center"><strong>ffmpeg_prams</strong>\r
645       </p>\r
647       <p> <strong>Default Setting:</strong> -vcodec\r
648 mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize\r
649 %(buff_size)s %(aspect_ratio)s -comment pyTivo.py -ac 2 -ab\r
650 %(audio_br)s -ar 44100 -f vob -<br>\r
652       <strong>Valid Entries:</strong> A valid ffmpeg command<br>\r
654       <strong>Required:</strong> No<br>\r
656       <strong>Skill:</strong> Very Advanced<br>\r
658       <strong>Description:</strong> This allows you to\r
659 control the parameters passed to ffmpeg. Most users will be just fine\r
660 with the default setting. Some HD users are experimenting with the\r
661 following line:<br>\r
663 -vcodec mpeg2video -maxrate %(max_video_br)s -qscale 1.2 -bufsize\r
664 %(buff_size)s -comment pyTivo.py -acodec ac3 -ab %(audio_br)s -ar 48000\r
665 -f vob -<br>\r
667 The major difference is that this does not alter the dimensions of the\r
668 video. The native height and width setting of the video used to\r
669 transcode the video. This will only work for HD and S3 units. So far\r
670 there has not been any report of dimensions which the HD units will not\r
671 accept. Additionally this line increases the audio frequency setting to\r
672 48000 too. <strong>Example Settings:</strong> See Above\r
673 and the forum. </p>\r
675       </div>\r
677       <div id="help-bufsize" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
678       <p align="center"><strong>bufsize</strong>\r
679       </p>\r
681       <p> <strong>Default Setting:</strong> 1024k<br>\r
683       <strong>Valid Entries:</strong> Any valid byte size<br>\r
685       <strong>Required:</strong> No<br>\r
687       <strong>Skill:</strong> Very Advanced<br>\r
689       <strong>Description:</strong> Allows you to set the\r
690 buffer size used by ffmpeg. I don't know much about this setting, but\r
691 from what I can tell it is rather touchy and should only be edited by\r
692 advanced users.<br>\r
694       <strong>Example Settings:</strong> 1024k<br>\r
696       </p>\r
698       </div>\r
700       <div id="help-type" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
701       <p align="center"><strong>type</strong> </p>\r
703       <p> <strong>Default Setting:</strong> None<br>\r
705       <strong>Valid Entries:</strong> Video, Music, or any\r
706 other valid plugin name.<br>\r
708       <strong>Required:</strong> Yes<br>\r
710       <strong>Skill:</strong> Basic<br>\r
712       <strong>Description:</strong> Sets the type of share\r
713 that this will be. This must be set to something otherwise pyTivo will\r
714 not start.<br>\r
716       <strong>Example Settings:</strong> Video or Music </p>\r
718       </div>\r
720       <div id="help-path" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
721       <p align="center"><strong>path</strong> </p>\r
723       <p> <strong>Default Setting:</strong> None<br>\r
725       <strong>Valid Entries:</strong> Any operating system\r
726 path<br>\r
728       <strong>Required:</strong> Yes<br>\r
730       <strong>Skill:</strong> Basic<br>\r
732       <strong>Description:</strong> Sets the base path to\r
733 your media content. While pyTivo will start with an invalid path your\r
734 shares will not work at all.<br>\r
736       <strong>Example Settings:</strong> <span class="underline">Windows</span> = C:\videos | <span class="underline">Linux</span> = /home/user/media </p>\r
738       </div>\r
740       <div id="help-subshares" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
741       <p align="center"><strong>auto_subshares</strong>\r
742       </p>\r
744       <p> <strong>Default Setting:</strong> false<br>\r
746       <strong>Valid Entries:</strong> True/False<br>\r
748       <strong>Required:</strong> No<br>\r
750       <strong>Skill:</strong> Moderate<br>\r
752       <strong>Description:</strong> Subfolders of the share\r
753 paths you define will be seen by pyTivo and displayed as subfolders in\r
754 the Now Playing List. This is an alternative to the <a href="http://pytivo.armooo.net/wiki/ConfigurepyTivo#hack83">hack83</a>\r
755 setting which enables the <a class="wiki" href="/wiki/SubFoldersBranch">SubFoldersBranch</a><br>\r
757       <strong>Example Settings:</strong> True/False </p>\r
759       </div>\r
761       <div id="help-precache" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
762       <p align="center"><strong>precache</strong>\r
763       </p>\r
765       <p> <strong>Default Setting:</strong> false<br>\r
767       <strong>Valid Entries:</strong> True/False<br>\r
769       <strong>Required:</strong> No<br>\r
771       <strong>Skill:</strong> Moderate<br>\r
773       <strong>Description:</strong> In order to verify that\r
774 the video files present on your computer were compatible with ffmpeg in\r
775 older versions pyTivo would query ffmpeg for each file. While this\r
776 information was cached it still caused a delay in the initial loading\r
777 of a list of files. This precache setting forced pyTivo to inspect each\r
778 video prior to starting the pyTivo server. However, this had two\r
779 drawbacks. 1. It took time as much as two minutes before pyTivo was\r
780 ready to accept requests. 2. It did not update the cache if new files\r
781 were added while the pyTivo server was running. <br>\r
783 In the more recent releases, anything after Feb 16, 2008, pyTivo no\r
784 longer needs to query ffmpeg when creating a file list. Instead pyTivo\r
785 has a list of accepted video format extensions. If the file extension\r
786 falls within this list it is displayed on the TiVo. This achieves the\r
787 same speed increase as the precache method without the delay in loading\r
788 the pyTivo server. <br>\r
790 There are still two drawbacks to this method. 1. The video file must\r
791 have an extension that is in the list. There is a possibility that a\r
792 new video file extension could come out before pyTivo is updated. 2.\r
793 Incomplete or video files with errors will still appear in the TiVo\r
794 listing if they have the correct extension, even though they are not\r
795 valid files. Both of these concerns are minimal. 1. Very few new\r
796 formats of video files come out very often. And all extensions are\r
797 stored in the video.ext file which is easily edited. 2. When viewing\r
798 the file details before transferring the pyTivo server queries ffmpeg\r
799 to make sure it is valid. If the file is not valid it will show up as a\r
800 copyrighted file and transferring it will be prevented by TiVo. <br>\r
802 It is recommended that you leave precaching turned off as it is no\r
803 longer needed.<br>\r
805       <strong>Example Settings:</strong> True/False </p>\r
807       </div>\r
809       <div id="help-aspect169" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
810       <p align="center"><strong>aspect169</strong>\r
811       </p>\r
813       <p> <strong>Default Setting:</strong> True<br>\r
815       <strong>Valid Entries:</strong> True/False<br>\r
817       <strong>Required:</strong> No<br>\r
819       <strong>Skill:</strong> Moderate<br>\r
821       <strong>Description:</strong> Most TiVos, even S2,\r
822 can handle 16:9 videos perfectly. Some S2s are known not to handle 16:9\r
823 and will default to false in this setting. If you are experiencing\r
824 major distortion you can try setting this to false. Likely mos users\r
825 will not have to mess with this.<br>\r
827       <strong>Example Settings:</strong> True/False </p>\r
829       </div>\r
831       <div id="help-shares" style="position: absolute; left: 0px; top: 0px; visibility: hidden;">\r
832       <p align="center"><strong>shares</strong>\r
833       </p>\r
835       <p> <strong>Default Setting:</strong> Blank,\r
836 which is equivalent to allow all shares on this TiVo.<br>\r
838       <strong>Valid Entries:</strong> The name of any share\r
839 in your pyTivo.conf file. A comma separated list.<br>\r
841       <strong>Required:</strong> No<br>\r
843       <strong>Skill:</strong> Easy<br>\r
845       <strong>Description:</strong> Only the shares listed\r
846 in this setting will be visible on this TiVo. Will ignore invalid\r
847 shares. If no valid shares are listed or the setting does not exist,\r
848 all shares will be visible on this TiVo.<br>\r
850       <strong>Example Settings:</strong> Movies, Kids Stuff\r
851       </p>\r
853       </div>\r
855 <!-- END HELP SECTIONS --> </div>\r
857       </td>\r
859     </tr>\r
861   </tbody>\r
862 </table>\r
863 </center>\r
864 </body>\r
865 </html>\r