1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
|
Installing and using MythTV
Robert Kulagowski, mailto:rkulagow@rocketmail.com
<mailto:rkulagow@rocketmail.com>
2008-06-04, v0.21.02
Initially, installation of MythTV seems like a huge task. There are
lots of dependencies, and various distributions seem to do the same
thing different ways. This document will attempt to give general
installation instructions, as well as including distribution-specific
instructions where necessary.
______________________________________________________________________
Table of Contents
1. First things first.
1.1 What is MythTV?
1.2 QuickStart
1.3 Upgrading from previous versions
1.4 How to obtain this document / PDF versions of this document
1.5 Books about MythTV
1.6 Document conventions
1.7 Mailing lists / getting help
1.8 IRC
1.9 Bug database
1.10 Contributing to this document
2. Introduction.
3. Checking prerequisites.
3.1 Hardware
3.1.1 CPU Type and Speed
3.1.2 Memory
3.1.3 Hard Disk(s)
3.1.4 Filesystems
3.1.5 Video Capture Device
3.1.5.1 Frame Grabbers.
3.1.5.2 Hardware MPEG-2 encoders.
3.1.5.3 DVB capture cards.
3.1.5.4 HDTV.
3.1.5.5 Firewire.
3.1.5.6 DBoxII or other devices running Neutrino
3.1.5.7 USB Capture Devices.
3.1.5.8 IP Recorder (RTSP, RTS, UDP)
3.1.6 Hardware known NOT to work and other issues
3.1.7 Sound card
3.1.8 Video Display Card
3.1.9 Cards with TV-out
3.1.9.1 ATI
3.1.9.2 NVIDIA
3.1.9.3 Hauppauge PVR-350
3.1.9.4 Other Options
3.1.10 External Adapters
3.2 Software
3.2.1 Pre-compiled packages
3.2.1.1 Red Hat Linux / Fedora Core
3.2.1.2 Mandriva
3.2.1.3 Debian
3.2.2 Manual installation
3.2.3 Command-line installation
3.2.3.1 Mandriva
3.2.3.2 Gentoo.
3.2.3.3 Debian.
4. System Configuration Requirements for Compiling MythTV.
4.1 Software requirements for compiling MythTV
4.1.1 General requirements
4.2 Shared-Library requirements for MythTV
4.2.1 Modifying /etc/ld.so.conf
4.3 Environment variable requirements for MythTV
4.3.1 General requirements
4.3.1.1 QT libraries and binaries
4.3.2 Distribution-Specific Notes
4.3.2.1 Mandriva
4.3.3 Device Permissions
5. Downloading and compiling.
5.1 Building LAME
5.2 XMLTV
5.2.1 Red Hat Linux and Fedora Core:
5.2.2 Mandriva
5.2.3 Manual installation
5.3 Configuring the Schedules Direct service
5.4 Manually building MythTV
5.4.1 Enabling real-time scheduling of the display thread.
5.4.1.1 rlimits
5.4.1.2 realtime module
5.4.1.3 run as root option (not safe)
5.4.2 Frontend-only configuration
5.5 Gentoo
6. MySQL.
6.1 Distribution-specific information
6.1.1 Mandriva
6.1.2 Red Hat Linux and Fedora Core
6.1.3 Gentoo
6.2 Setting up the initial database
6.2.1 Mandriva and Red Hat Linux/Fedora Core
6.2.2 Debian 3.0
6.2.3 Gentoo
6.2.4 Modifying access to the MySQL database for multiple systems
7. Configuring Sound.
7.1 Graphically setting up the mixer
7.1.1 Mandriva and Red Hat Linux/Fedora Core
7.1.1.1 Using ALSA.
7.2 Setting the mixer from the command line
8. Setting up a remote control.
8.1 Gentoo
8.2 Obtaining and compiling lirc
8.3 Completing the lirc install
8.4 Additional information for lirc
8.5 Configuring lirc for use with an IR blaster
9. Configuring MythTV.
9.1 Configuring the Master backend system
9.1.1 General
9.1.2 Capture Cards
9.1.3 Video Sources
9.1.4 Input Connections
9.1.5 Channel Editor
9.1.6 Storage Groups
9.1.6.1 Introduction.
9.1.6.2 How to use Storage Groups.
9.1.6.3 Migrating to Storage Groups.
9.1.6.4 Advanced: Algorithm used by the Storage Group
9.2 Post-configuration
9.3 Configuring a non-master backend
9.4 Configuring and running mythfilldatabase
9.4.1 Periodically running mythfilldatabase
9.5 Grabbing channel icons for Schedules Direct users
10. Configuring mythfrontend.
10.1 General
10.2 Appearance
10.3 Program Guide
10.4 Playback
10.4.1 Video Filters
10.4.2 Applying filters
10.4.3 Currently Available Filters
10.4.4 Usage Considerations
10.5 Recording
10.6 Xbox Frontends
11. Using MythTV.
11.1 Keyboard commands
11.1.1 mythfrontend
11.1.2 Watching TV or a recording
11.1.3 Watching TV only
11.1.4 LiveTV Browse Mode
11.1.5 Playback Recording Zoom Mode
11.1.6 If you have two or more tuner cards
11.1.7 Watching a recording only
11.1.8 EPG
11.1.9 Setting Program or Channel Recording Priorities
11.1.10 Viewing Scheduled Recordings/Resolving Conflicts
11.1.11 Viewing Search Listings
11.1.12 Recording Profiles Setup Screen
11.1.13 Recording Groups
11.1.14 Watch Recordings Screen
11.1.15 Remote Controls
11.2 Using themes with MythTV
11.3 Adding DishTV information to the database
11.4 Adding support for an external tuner
11.5 Using Shutdown/Wakeup
11.5.1 A deeper look into the operation
11.5.2 Setting up the MythTV side of this extension.
11.5.2.1 Using WOL to wake your Master backend.
11.5.2.2 Using BIOS wakeup to wake your Master backend.
11.5.3 Wakeup the MySQL server using WOL
11.5.4 Tips/Tricks:
11.6 Controlling the mythfrontend via telnet
12. Scheduling Recordings.
12.1 Record Types
12.2 Scheduling Options
12.2.1 Priority
12.2.2 Duplicates
12.2.3 Conflicts
12.2.4 Scheduling decisions
12.2.5 Reschedule Higher Priorities
12.2.6 Controlling Your Schedule
12.3 Storage Options
12.3.1 Recording Profile
12.3.2 Recording Group
12.3.3 ANAME CDATA Storage Groups(REF)REF
12.3.4 Playback Group
12.3.5 Auto-Expire
12.3.6 Episode Limit
12.4 Post Recording Processing
12.4.1 Commercial Flagging
12.4.2 Transcoding
12.4.3 User Jobs
12.5 Advanced Recording Options
12.5.1 Creating Power Search rules with Custom Record
12.5.2 Getting Started
12.5.3 How it Works
12.5.4 Common Tricks and Tips
12.5.5 Working with SQL
12.6 Scheduling with more than one Input
12.6.1 Mutually Exclusive Inputs
12.6.2 Stations, Channels and Video Sources
12.6.3 Order of Inputs
12.6.4 Matching Callsigns
12.6.5 Using Priorities to Prefer an Input
12.6.6 Input Priority
12.6.7 Channel Priority
12.6.8 Preferred Input
12.6.9 HDTV Priority
12.6.10 Custom Priority
13. MythPlugins.
14. MythWeb.
14.1 Installation and prerequisites
14.1.1 Mandriva
14.2 Completing the installation
14.3 Resetting the key binding table
14.4 Resetting the theme.
15. MythGallery.
15.1 Installation and prerequisites
15.2 Using MythGallery
15.3 Importing Pictures
16. MythGame.
16.1 Setup Directory Structure
16.2 Download and Install xmame
16.3 Download extra files
16.4 Download and Install MythGame.
16.5 Setup xmame in MythGame
16.6 Hints:
17. MythMusic.
17.1 Manual installation of prerequisites
17.2 Mandriva
17.2.1 Additional options with MythMusic
17.3 Red Hat Linux 9
17.4 Compiling MythMusic
17.5 Configuring MythMusic
17.6 Using MythMusic
17.7 Troubleshooting MythMusic
17.7.1 When I run MythMusic and try and look up a CD, I get an error message
18. MythWeather.
19. MythVideo.
20. MythDVD.
20.1 Manual Compilation of Prerequisites
20.2 Pre-compiled binaries
20.3 Running the Myth Transcoding Daemon
21. MythNews.
22. Troubleshooting.
22.1 Compiling
22.1.1 Compile errors
22.1.2 make: *** No rule to make target /usr/lib/qt3/mkspecs/default/qmake.conf', needed by Makefile'. Stop.
22.1.3 make: *** No rule to make target /mkspecs/default/qmake.conf', needed by Makefile'. Stop.
22.1.4 Internal Segmentation Fault.
22.2 Debugging
22.2.1 MythTV segfaults
22.2.2 MythTV isn't doing anything
22.2.3 Debugging with GDB
22.2.4 MythTV is crashing your system
22.3 Installing
22.3.1 When trying to run mythtv-setup, you get an error like this: "mythtv-setup: error while loading shared libraries:"
22.4 Using
22.4.1 No programs are displayed in "Watch Recordings"
22.4.2 MySQL not connecting correctly
22.4.3 MySQL database is corrupt
22.4.4 Using a MPEG-2 encoder card and the video appears "jittery"
22.4.5 Using a MPEG-2 encoder card and the video is jumping up and down
22.4.6 Screen goes blank but returns when mouse is moved or keyboard is used
22.5 Miscellaneous
22.5.1 mythfilldatabase failing
22.5.2 Fast CPU, choppy or jittery video
22.5.3 Frontend appears to be slow at jumping / seeking.
22.5.4 On-screen Display shows incorrect program length.
22.5.5 Troubleshooting audio
22.5.6 Mythbackend reports that your card is not reporting full duplex capabilities
22.5.7 The mythbackend program told me to look at this section
22.5.8 My remote doesn't work / works sometimes and not others / "ghost" keypresses
22.5.9 Where's "canada-cable"?
22.5.10 Channels are off by one
22.5.11 Mythweb is showing a db_open error when I connect to it
22.5.12 Mouse pointer disappears when placed over the MythTV windows
22.5.13 What does "strange error flushing buffer" mean on the console?
22.5.14 Can't change the channel when watching Live TV.
22.5.15 Screen goes black when you try to play something
22.5.16 Poor performance with NVidia cards and XvMC
22.5.17 Computer is loading a media player application when you insert a CD or DVD
23. Miscellaneous.
23.1 I'd like to watch the files without using MythTV / I'd like to convert the files to some other format
23.1.1 mythtranscode example
23.2 Using a different window manager
23.3 What capture resolution should I use? How does video work?
23.4 MythTV GUI and X Display Sizes
23.4.1 X Dimensions
23.4.2 MythTV Dimensions
23.4.3 Overscan Dimensions
23.5 Saving or restoring the database
23.6 Deleting the MySQL database
23.7 Moving your data to new hardware
23.8 btaudio
23.9 Removing unwanted channels
23.10 NFS
23.11 Automatically starting mythfrontend at system boot time
23.12 Automatically starting mythbackend at system boot time
23.12.1 Red Hat And Mandriva
23.12.1.1 Log files
23.12.1.2 Mandriva
23.12.2 Gentoo
23.13 Advanced Backend Configurations
23.14 Using the transcoder
23.14.1 Configuring Recording Profiles to Allow Transcoding
23.14.2 Configure Transcoding Profiles
23.14.3 Create/Alter Scheduled Recordings to Enable Transcoding
23.14.4 Manual Transcoding
23.15 Changing your hostname
23.16 Can I run MythTV on my TiVo?
23.17 Can I run MythTV on my ReplayTV?
23.18 Can a wireless connection be used between the frontend and the backend?
23.19 How can I burn shows that I have recorded to a DVD?
23.20 Using the DBoxII within MythTV
23.21 What do the icons on the Watch Recordings screen mean?
23.22 What do the letters mean when I change channels?
23.23 What is the difference between the various Hauppauge PVR models?
23.24 Changing channels on an external Set Top Box
23.25 Configuring one machine to flag all commercials
24. Example Configurations.
24.1 Logical Volume Manager (LVM)
24.1.1 ReiserFS
24.1.2 ext2 or ext3
24.1.3 xfs
24.2 Advanced Partition Formatting
24.2.1 Ext2
24.2.2 Ext3
24.2.3 ReiserFS
24.2.4 JFS
24.2.5 XFS
24.3 Migrating from DataDirect Labs to Schedules Direct
24.4 Caching support for Schedules Direct
______________________________________________________________________
[1m1. First things first.[0m
[1mNOTE[22m: Please note that I, Robert Kulagowski, am [4mNOT[24m the
author/programmer of the MythTV application! I can not give you
personalized installation support. If you are having issues
installing MythTV you should examine the archives, or post your
question to the MythTV-users mailing list. If you send me "Does
MythTV work with 'X'"? messages - I will simply instruct you to ask
your question on the mythtv-users mailing list.
[1m1.1. What is MythTV?[0m
MythTV is a GPL licensed suite of programs that allow you to build the
mythical home media convergence box on your own using Open Source
software and operating systems. MythTV is known to work on Linux and
Mac OS X (PowerPC and Intel). It does not run on Windows.
MythTV has a number of capabilities. The television portion allows
you to do the following:
+o You may pause, fast-forward and rewind live Television.
+o You may install multiple video capture cards to record more than
one program at a time.
+o You can have multiple servers (called "backends"), each with
multiple capture cards in them. All scheduling is performed by the
Master backend, which arbitrates which recording will be performed
by each device. All recording requests are managed by the Master
backend, so you can schedule a recording from any client.
+o You can have multiple clients (called "frontends" in MythTV
parlance), each with a common view of all available programs. Any
client can watch any program that was recorded by any of the
servers, assuming that they have the hardware capabilities to view
the content; a low-powered frontend will not be able to watch HDTV,
for example. Clients can be diskless and controlled entirely by a
remote control.
+o You may use any combination of standard analog capture card,
MPEG-2, MJPEG, DVB, HDTV, USB and firewire capture devices. With
appropriate hardware, MythTV can control set top boxes, often found
in digital cable and satellite TV systems.
+o Program Guide Data in North America is downloaded from
schedulesdirect.org, a non-profit organization which has licensed
data from Tribune Media Services. This service provides almost two
weeks of scheduling information. Program Guide Data in other
countries is obtained using XMLTV. MythTV uses this information to
create a schedule that maximizes the number of programs that can be
recorded if you don't have enough tuners.
+o MythTV implements a UPNP server, so a UPNP client should
automatically see content from your MythTV system.
Other modules in MythTV include:
+o MythArchive, a tool to create DVDs
+o MythBrowser, a web browser
+o MythControls, an application to configure your remote control
+o MythFlix, a Netflix module
+o MythGallery, a picture-viewing application
+o MythGame
+o MythMusic, a music playing / ripping application which supports MP3
and FLAC
+o MythNews, a RSS news grabber
+o MythPhone, phone and videophone using SIP.
+o MythVideo, DVD ripper and a media-viewer for content not created
within MythTV
+o MythWeather
+o MythWeb, which allows you to control your MythTV system using a web
browser. With MythWeb, you can schedule and delete recordings,
change keybindings and more. With proper security, you may even
schedule a program over the Internet and have it immediately acted
on by the Master backend.
[1m1.2. QuickStart[0m
Custom mini-distributions are available to make it easier to install
MythTV. A mini-distribution removes many of the "general purpose"
workstation / server software packages that may be installed by
default if you use one of the big-name OS packages.
See http://mysettopbox.tv <http://mysettopbox.tv> if you'd like to
install a custom version of Knoppix optimized for MythTV.
See http://www.minimyth.org <http://www.minimyth.org> if you'd like to
install MythTV onto a diskless system.
See http://bit.blkbk.com <http://bit.blkbk.com> if you'd like to
install MythTV on a Xbox. [1mNOTE[22m: Site appears unmaintained.
See http://wilsonet.com/mythtv/ <http://wilsonet.com/mythtv/> for
instructions tailored to RedHat's Fedora Core distribution.
See http://www.mythbuntu.org <http://www.mythbuntu.org> if you'd like
to install a customized version of Ubuntu optimized for MythTV.
There is a MythTV wiki at http://wiki.mythtv.org
<http://wiki.mythtv.org>.
If you are installing this version for Schedules Direct support,
please see the ``Migrating from DataDirect Labs to Schedules Direct''
section for additional information.
[1m1.3. Upgrading from previous versions[0m
The upgrade from previous versions should be transparent. Any changes
to the database structure should be applied automatically.
It is [4mstrongly[24m recommended that you back up your database before
installing a new version of MythTV.
See ``Saving or Restoring the database'' for instructions.
[1m1.4. How to obtain this document / PDF versions of this document[0m
This HOWTO document is maintained at the primary MythTV website:
http://www.mythtv.org <http://www.mythtv.org> by Robert Kulagowski
<mailto:rkulagow@rocketmail.com>.
This document is available as a single-page HTML document at
http://www.mythtv.org/docs/mythtv-HOWTO-singlehtml.html
<http://www.mythtv.org/docs/mythtv-HOWTO-singlehtml.html> or as a PDF
at http://www.mythtv.org/docs/mythtv-HOWTO.pdf
<http://www.mythtv.org/docs/mythtv-HOWTO.pdf>.
This HOWTO is for MythTV v0.21
Release notes for this version may be found in the MythTV Wiki at
http://www.mythtv.org/wiki/index.php/Release_Notes_-_0.21
<http://www.mythtv.org/wiki/index.php/Release_Notes_-_0.21>
[1m1.5. Books about MythTV[0m
If you would like to purchase a book specifically about MythTV:
+o Hacking MythTV, ISBN 978-0470037874 by Wilson, Tittel, Wright and
Korelc
+o Practical MythTV: Building a PVR and Media Center PC, ISBN
978-1590597798 by Smith and Still
[1m1.6. Document conventions[0m
The following conventions are used throughout this document.
[1mboldface [22m- used for program names.
typewriter - used for program paths.
[4memphasis[24m - Pay attention here.
Pay more attention.
Ignore at your own peril.
Feature that has been added to SVN (subversion, a revision control system)
but is not available in the current release.
[1m1.7. Mailing lists / getting help[0m
It's recommended that you join the user list at
http://www.mythtv.org/mailman/listinfo/mythtv-users
<http://www.mythtv.org/mailman/listinfo/mythtv-users>. The developer
list is at http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
<http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev>. Please keep
the developer list strictly for development-related issues.
Searchable archives for the lists are available at
http://www.gossamer-threads.com/lists/mythtv/ <http://www.gossamer-
threads.com/lists/mythtv/>.
[1m1.8. IRC[0m
There are two IRC channels dedicated to MythTV which can be found on
irc.freenode.net
+o mythtv
+o mythtv-users
The mythtv channel is where the developers discuss code. It is [4mnot[24m a
user-support channel. Please don't ask non-development related
questions there.
Really. Even if there's no one in the mythtv-users IRC group or everyone
seems to be ignoring you.
[1m1.9. Bug database[0m
If you feel you need to contribute to a bug database, use the MythTV
bug ticketing system at http://svn.mythtv.org/trac
<http://svn.mythtv.org/trac>.
Good entries will contain the following:
1. Qt version
2. Linux distribution
3. gcc version
4. the last entry in config.log to detail how you compiled
5. MythTV version numbers ([4me.g.[24mfrom mythfrontend --version)
6. Hardware
7. How you are able to reproduce the bug
See the instructions on how to debug in ``Section 22''.
The bug database is not a chat room, so restrict your entries to what
is relevant. It's also not a repository of feature requests; a
feature request without an accompanying patch file to implement that
feature will be quickly closed. There is a feature wishlist on the
wiki at http://www.mythtv.org/wiki/index.php/Feature_Wishlist
<http://www.mythtv.org/wiki/index.php/Feature_Wishlist>. There is no
guarantee that anything on the wishlist will ever get code written to
implement it.
If a developer closes out your bug, it's likely you didn't provide
enough information. Don't re-open a bug without providing additional
information.
[1m1.10. Contributing to this document[0m
Contributions to the HOWTO are welcome, especially if you find a
grammatical or spelling error, or if the wording of something is just
plain confusing.
If you'd like to make a new contribution, create a ticket at
http://svn.mythtv.org/trac <http://svn.mythtv.org/trac> and click "New
Ticket". The type should be set to "patch" and the owner set to
"rkulagow" to ensure that I see your contribution.
Please send it as either SGML or as plain text. [4mNO[24m [4mHTML[24m. The source
used to create the HOWTO is in SGML / Linuxdoc. Do not be afraid of
SGML! A quick look at the source of this HOWTO will show that it is
not difficult, because there aren't that many tags to worry about, so
at least [4mtry[24m to submit as SGML. See the Linuxdoc HOWTO at
http://www.tldp.org/HOWTO/Howtos-with-LinuxDoc.html
<http://www.tldp.org/HOWTO/Howtos-with-LinuxDoc.html> for information
on the linuxdoc format itself, or look at the mythtv-HOWTO.sgml file
as an example.
To create the actual patch, run [1mdiff -u origfilename newfile >[0m
[1mdoc.patch [22mand attach your contribution to the trac ticket.
[1m2. Introduction.[0m
This HOWTO document will focus on manually building MythTV in a North
American environment. If you have installation instructions for a
different region or Linux distribution, please send them to the author
so that it can be included in other versions of this document.
[1m3. Checking prerequisites.[0m
You must ensure that any firewalls (either hardware, or a software
firewall installed by your distribution) will not block access to the
ports that will be used by the MythTV clients and servers on the
"inside" LAN. The ports for MySQL (TCP port 3306) and mythbackend
(TCP ports 6543 and 6544) must be open. It is [4mstrongly[24m recommended
that you do [4mnot[24m expose the MythTV and MySQL ports to the Internet or
your "Outside" LAN.
[1m3.1. Hardware[0m
Hardware selection is a complex topic, one this HOWTO will only
discuss briefly and in general terms. The following subsections offer
some general guidance but stop short of offering specific
recommendations.
For a good MythTV experience, you must understand that MythTV
exercises your hardware more than a typical desktop. Encoder cards
generate DMA across the PCI bus. The CPU is busy encoding / decoding
video. Hard drives are constantly reading and writing data. Building a
MythTV system on older / "spare" hardware may be an exercise in
frustration and can waste many hours of valuable time.
For more detail about actual configurations that others have used,
Mark Cooper has setup a hardware database at
http://pvrhw.goldfish.org/ <http://pvrhw.goldfish.org/>. The website
will let you browse what other users have reported as their hardware
configuration, and how happy they are with the results.
If you have specific questions about the suitability of specific
hardware choices, you can consult the archives of the mythtv-users
mailing list at http://www.gossamer-threads.com/lists/mythtv/
<http://www.gossamer-threads.com/lists/mythtv/> or post a question to
the list.
[1m3.1.1. CPU Type and Speed[0m
Selection of CPU type and speed is one of the trickiest elements of
hardware selection, mainly because there are so many tradeoffs which
can be made. For example, if you have plenty of CPU, you can use
higher bitrates or capture sizes, etc.
MythTV has two modes of operation. First, it can function as a
software video encoder, which means that it uses a fairly generic
"dumb" video capture card to get frames of video, encodes them using
the CPU on your motherboard and writes them to disk. High-end video
capture cards and devices like the TiVo and ReplayTV have dedicated
encoder chips which use specialized hardware to convert the video
stream to the MPEG-2 format without using the motherboard CPU. The
main CPU has the responsibility of running the Operating System and
reading and writing the encoded frames to the disk. These tasks have
fairly low CPU requirements compared to encoding video, which is why a
device like a Series 1 TiVo can run with only 16MB of RAM and a 54MHz
CPU.
There are many variables that go into the question: "How fast a CPU do
I need to run MythTV"? Obviously, the faster your CPU, the better
your experience will be with MythTV. If you are using the software
MPEG-4 encoder and performing the "Watch TV" function, where the CPU
is both encoding and decoding video simultaneously to allow Pause,
Fast Forward and Rewind functions for live TV requires more CPU then
just encoding or decoding. MythTV also supports multiple encoder
cards in a single PC, thereby increasing the CPU requirements if you
plan on simultaneously encoding multiple programs. As a general
guideline, plan on 1GHz per encoder if you are doing software-based
encoding, less if you are using a hardware-based encoder.
Here are a few data points:
+o A PIII/733MHz system can encode one video stream using the MPEG-4
codec using 480x480 capture resolution. This does not allow for
live TV watching, but does allow for encoding video and then
watching it later.
+o A developer states that his AMD1800+ system can [1malmost [22mencode two
MPEG-4 video streams and watch one program simultaneously.
+o A PIII/800MHz system with 512MB RAM can encode one video stream
using the RTjpeg codec with 480x480 capture resolution and play it
back simultaneously, thereby allowing live TV watching.
+o A dual Celeron/450MHz is able to view a 480x480 MPEG-4/3300kbps
file created on a different system with 30% CPU usage.
+o A P4 2.4GHz machine can encode two 3300Kbps 480x480 MPEG-4 files
and simultaneously serve content to a remote frontend.
The second mode of operation is where MythTV is paired with a
hardware-based video encoder, such as a Matrox G200 or a Hauppauge
WinTV-PVR-150/250/350/500. In this mode, because the video encoding
is being done by a dedicated video processor, the host CPU
requirements are quite low. See the ``Video Capture Device'' section
for details.
The price differential between a frame grabber and a card that
implements hardware MPEG-2 encoding, such as the Hauppauge PVR-x50
series, is now less than $30 US. Primary development in MythTV has
transitioned to supporting MPEG-2 capture devices and HDTV, so if
given the option, go with the hardware MPEG-2 encoder.
If you have a Via M10000 series or a Hauppauge PVR-350, MythTV can use
the hardware-based video decoder for playback, which further reduces
CPU requirements.
[1m3.1.2. Memory[0m
A MythTV host that is both a backend and a frontend and using software
encoding with a single capture card should run adequately in 256MB of
RAM. Additional RAM above 256MB will not necessarily increase
performance, but may be useful if you are running multiple encoders.
[1m3.1.3. Hard Disk(s)[0m
Encoded video takes up a lot of hard disk space. The exact amount
depends on the encoding scheme, the size of the raw images and the
frames per second, but typical values for MythTV range from 700
megabytes/hour for MPEG-4, 2 GB/hour for MPEG-2 and RTjpeg and 7
GB/hour for ATSC HDTV.
[1mNOTE[22m: You [4mmust[24m use DMA for hard drive access to prevent
choppy or jittery video. Not all distributions enable DMA at boot
time. See the Troubleshooting Section for ``instructions'' on how to
do this.
Writing video to disk is sensitive to timing issues; RTjpeg requires
less CPU with the tradeoff being larger files and needing to write to
the disk faster. MPEG-4 requires more CPU, but the files are smaller.
At the default resolution, MPEG-2 creates the largest files of all
with almost no CPU impact.
See the Troubleshooting ``section'' for more information.
[1m3.1.4. Filesystems[0m
MythTV creates large files, many in excess of 4GB. You [4mmust[24m use a 64
or 128 bit filesystem. These will allow you to create large files.
Filesystems known to have problems with large files are FAT (all
versions), and ReiserFS (versions 3 and 4).
Because MythTV creates very large files, a filesystem that does well
at deleting large files is important. Numerous benchmarks show that
XFS and JFS do very well at this task. You are [4mstrongly[24m encouraged to
consider one of these for your MythTV filesystem. JFS is the absolute
best at deletion, so you may want to try it if XFS gives you problems.
MythTV .21 incorporates a "slow delete" feature, which progressively
shrinks the file rather than attempting to delete it all at once, so
if you're more comfortable with a filesystem such as ext3 (whose
delete performance for large files isn't that good) you may use it
rather than one of the known-good high-performance file systems.
There are other ramifications to using XFS and JFS - neither offer the
opportunity to shrink a filesystem; they may only be expanded.
[1mNOTE[22m: You [4mmust[24m [4mnot[24m use ReiserFS v3 for
your recordings. You will get corrupted recordings if you do.
Because of the size of the MythTV files, it may be useful to plan for
future expansion right from the beginning. If your case and power
supply have the capacity for additional hard drives, read through the
``LVM'' and ``Advanced Partition Formatting'' sections for some
pointers.
[1m3.1.5. Video Capture Device[0m
In order to capture video, MythTV will need one or more video capture
devices with Linux drivers. There are a number of classes of hardware
available for capturing video.
[1m3.1.5.1. Frame Grabbers.[0m
This class of card is the simplest and is usually the cheapest. There
is no on-board encoding of the analog video; hardware known as a
Digital-Analog Converter (DAC) takes the video and presents it to the
computer in an essentially raw digital form.
For a list of video capture cards known to work with Linux, please see
/usr/src/linux/Documentation/video4linux/bttv for a partial listing;
even if your specific card is not listed, it may be that the vendor is
actually using a standard reference design and placing their own name
on it. See the video4linux mailing list
(https://listman.redhat.com/mailman/listinfo/video4linux-list
<https://listman.redhat.com/mailman/listinfo/video4linux-list>) for
more information and for specific hardware questions.
The most common inexpensive cards available use the Bt848, Bt878 or
CX2388x series of video capture chips; examples are the "Hauppauge
WinTV Go" card and the "AverTV Desktop PVR" card, both of which use
the bttv kernel module.
______________________________________________________________________
NOTE: The ATI TV Wonder series and the ATI All-in-Wonder series of cards
are not the same. The All-in-Wonder cards will not work with MythTV.
______________________________________________________________________
[1mNOTE[22m: The ATI All-in-Wonder cards (which are not the same
as the ATI TV Wonder, TV Wonder VE or TV Wonder Pro) [4mwill[24m [4mnot[24m work as
a MythTV capture device because the GATOS http://gatos.sourceforge.net
<http://gatos.sourceforge.net> drivers that are available provide only
a limited subset of the V4L API. The TV Wonder series of cards are
supported by the Bt8x8 Video4Linux driver.
After you have installed a suitable capture device, you can check that
the kernel sees it with lspci. Look for an entry labeled "Multimedia
video controller". To get more detailed information about the card,
use lspci -v or lspci -vv. Ensure that your system is loading the
bttv modules by typing:
# lsmod |grep bttv
You want to see the bttv module listed.
[1m3.1.5.2. Hardware MPEG-2 encoders.[0m
While inexpensive video-capture cards simply capture raw frames,
leaving encoding to software, some higher-end cards incorporate
hardware-based encoding. Using either a G200 MJPEG encoder card, or a
MPEG-2 encoder card supported by the IvyTV project
http://ivtvdriver.org <http://ivtvdriver.org/> such as the Hauppauge
PVR-150/250/350/500, Avermedia M179, Hauppauge "Freestyle" or Yuan
M600 cards will allow you to use dedicated hardware encoders rather
than your CPU. (The PVR-350 can simultaneously be used as an output
device.) Using the on-board MPEG-2 encoder greatly reduces the CPU
requirements for encoding.
The ivtv driver was incorporated into the Linux kernel starting at
v2.6.22.
There is a Beta driver for the HVR-1600 card at
http://www.ivtvdriver.org/index.php/Cx18
<http://www.ivtvdriver.org/index.php/Cx18>
[1mNOTE[22m: Motherboards with the Via chipset are notoriously bad with DMA
and have caused numerous issues with ivtv, including hard locks. See
the ivtv website http://ivtvdriver.org <http://ivtvdriver.org> for the
latest information on what works and what doesn't.
Here are some data points for encoding:
+o A Celeron 450 uses 2% CPU for encoding a 480x480 16Mbps MPEG-2
stream.
Here are some data points for decoding:
+o An Athlon 1800XP can decode a 720x480 8Mbps MPEG-2 file using 10%
CPU
+o An Athlon 1GHz can decode a 720x480 16Mbps MPEG-2 file using 30-50%
CPU, can decode a 480x480 16Mbps MPEG-2 using 30% CPU and
approximately 30% for Live TV at 416x480.
+o A P3-550 can decode a 480x480 16Mbps MPEG-2 file with 55% CPU.
+o A Celeron 450 (no SSE) can decode a 480x480 16Mbps MPEG-2 file with
80% CPU.
[1m3.1.5.3. DVB capture cards.[0m
DVB is a video standard primarily found in Europe (where it comes in
DVB-C, DVB-T and DVB-S varieties for Cable, Terrestrial and Satellite)
and is also used as the programming interface for HDTV capture cards
in Linux. To see if your DVB card is supported, see the list of cards
in the "Supported Hardware" section of the DVB Wiki at
http://www.linuxtv.org/wiki/index.php/Main_Page
<http://www.linuxtv.org/wiki/index.php/Main_Page> for more
information.
In the United States, you may use a card such as the TwinHan to obtain
unencrypted Free-To-Air satellite channels. See
http://www.lyngsat.com/ <http://www.lyngsat.com/> for the types of
content which is available.
[1m3.1.5.4. HDTV.[0m
There are a number of HDTV cards with Linux drivers which are known to
operate in the United States; a complete list of cards with DVB
drivers can be found at
http://www.linuxtv.org/wiki/index.php/ATSC_Devices
<http://www.linuxtv.org/wiki/index.php/ATSC_Devices> Some cards
support capture of unencrypted digital cable TV (utilizing QAM256),
others will only work with Over The Air (aka "OTA") signals captured
with an antenna (with 8VSB).
Cards that have been reported to work include:
+o pcHDTV HD-2000, Air2PC PCI rev 1-3 (8VSB only)
+o SiliconDust HDHomeRun (8VSB, QAM256)
+o pcHDTV HD-3000/5500 (8VSB, QAM256)
+o Air2PC HD-5000 (8VSB, QAM256)
+o DViCO Fusion HDTV Lite/Gold 5 (8VSB, QAM256)
[1mNOTE[22m: There are no known consumer-level capture devices which will
allow you to capture the HDTV output (DVI, HDMI, VGA, YPbPr /
Component) from a set-top box commonly found with digital cable
systems or satellite systems. [4mNone[24m of the capture devices listed above
perform any encoding; they merely allow your computer to save a copy
of a HDTV stream which has already been converted to MPEG-2 at the
broadcast facility.
[1mNOTE:[22m: All of the cards listed above (except for the HD-2000 and
HDHomeRun) should be configured as DVB cards. The HD-2000 can be
configured as a pcHDTV card if you use the V4L drivers from
http://www.pchdtv.com <http://www.pchdtv.com> and use Linux kernel
2.6.9 or earlier. With kernel 2.6.10 and higher it must be configured
as a DVB card, but you lose access to the second antenna input in ATSC
mode. The HDHomeRun should be configured as two HDHomeRun cards, one
for each tuner.
To playback HDTV content, plan on a powerful CPU. "How powerful?"
depends on a number of factors, such as the capture resolution,
whether the video is progressive or interlaced, and whether your
display card has hardware-assist support for Linux.
The Simple Answer: Once you are in the 3.2 Ghz P4-class of CPU you
should have no issues with viewing HDTV.
The Complicated Answer:
For 720p content (1280x720), a 2.4GHz P4 should be sufficient.
For 1920x1080i->1920x1080p with the better deinterlacing methods done
in real time a 2.4GHz CPU is taxed, but should work if you use "Bob
and Weave" deinterlacing, or if you have an NVIDIA card with MPEG-2
hardware acceleration. If you enable the hardware acceleration, you
may be able to use a 1.8GHz processor.
[1m3.1.5.5. Firewire.[0m
You may use the Firewire output of the Motorola DCT6200 or the SA3250.
If your provider uses 5C encryption on a particular channel, you won't
be able to get any content.
[1m3.1.5.6. DBoxII or other devices running Neutrino[0m
You may use the Ethernet port of an DBoxII or a similar device to
capture MPEG2. Your set top box has to be running the Neutrino GUI.
[1m3.1.5.7. USB Capture Devices.[0m
The Plextor ConvertX PVR devices are supported through Linux drivers
available from http://www.plextor.com/english/support/LinuxSDK.htm
<http://www.plextor.com/english/support/LinuxSDK.htm>. MythTV uses the
Plextor to capture hardware encoded MPEG-4, so the host CPU
requirements are low.
Hauppauge WinTV-PVR-USB2 (driver available at
http://www.isely.net/pvrusb2/ <http://www.isely.net/pvrusb2/>)
emulates a PVR-x50 card.
[1m3.1.5.8. IP Recorder (RTSP, RTS, UDP)[0m
MPEG-2, MPEG-4 and H.264 internet TS stream recording is supported
using the IPTV recorder in MythTV. This recorder expects the channels
to be supplied as a m3u playlist. If your DSL/Fiber provider supplies
television service, but does not provide a m3u playlist for the
channels, you can construct one for your own use. You do not need to
download it from the same server as the streams themselves, and can
also read it from a file if this is more convenient.
[1mNOTE[22m: Some DSL providers only allow you to use one recorder at a time,
so you may need to limit yourself to one recorder in MythTV and turn
off any set top box the cable provider sold or rented to you with your
service. This limitation is independent of the bandwidth you have
purchased.
[1m3.1.6. Hardware known NOT to work and other issues[0m
+o Hauppauge WinTV-D or -HD (no driver)
+o Hauppauge WinTV-USB series
+o Hauppauge WinTV-PVR-usb (model 602), or WinTV-PVR-PCI (model 880)
cards (no driver - this is not the PVR-250/350 series of cards
supported by the IvyTV driver)
+o ATI All-in-Wonder series
[1m3.1.7. Sound card[0m
The system needs a sound card or an on-board equivalent on the
motherboard to play back and in most cases, to record sound. Any sound
card that can be operated by the ALSA (Advanced Linux Sound
Architecture) kernel modules will work with MythTV. However, some
cards and drivers will provide better quality or compatibility than
others. In particular, many audio devices included on motherboards
can be problematic.
The usual practice for capturing the audio associated with the video
is to run a cable from an audio output on the video capture card to
the Line input on a sound card. However, some video capture cards
provide on-board audio capabilities that work with the kernel btaudio
module instead, thereby eliminating the need for a cable. This is
useful if you will be using multiple capture cards in a single
chassis, since each capture card will not need its own sound card.
Note that a separate sound card is still required for playback when
using btaudio, and that often the audio recorded in this way will be
mono only. See the ``btaudio'' section for more information.
[1mNOTE[22m: Analog video capture cards are the only ones which
require a soundcard for capturing audio. DVB, HDTV, and other
hardware encoder cards all provide a combined audio / video stream.
[1mNOTE[22m: Plugging a Line-level device into the Mic input is
not recommended. Line-level devices have higher voltages and can
damage the sound card. In addition, even if it doesn't break your
card, you will be getting Mono sound. See the Linux MP3 HOWTO at
http://www.tldp.org/HOWTO/MP3-HOWTO.html
<http://www.tldp.org/HOWTO/MP3-HOWTO.html> for additional information.
[1m3.1.8. Video Display Card[0m
MythTV will work with just about any video card. However, it is
highly recommended that you use a card which supports XVideo (XV)
extensions. If your card does not support XV, color conversion and
scaling will be performed by your CPU rather than the video card.
This is very CPU and memory intensive and will often result in dropped
frames and a corresponding degradation of quality. Check the X
documentation for details if you are uncertain about your preferred
card. You may also run xvinfo; look for your video card to be listed
as one of the adapters.
If you want to use MythTV with a standard television, you will need a
physical connection from your video card to your TV set, which can
either be a TV-out port on the card itself or an external adapter that
converts the VGA signal to an appropriate video signal. "Appropriate"
depends on a number of factors, such as video standard (NTSC vs. PAL),
the type of input connection (Composite vs. SVideo), etc.
Note that with some video cards and X drivers, XVideo extensions are
only supported on the VGA output, and not on the TV output.
[1m3.1.9. Cards with TV-out[0m
The next section deals with a number of cards that are known to have
TV-out ports. The list is unlikely to be complete, so if you know of
others, please post a message to the mythtv-users mailing list so the
information can be included in future versions of the HOWTO. The list
is organized by manufacturer.
Reports here are based on what users of the cards have posted on the
mythtv-users mailing list, so if you need configuration details,
please search the archives at http://www.gossamer-
threads.com/lists/mythtv/ <http://www.gossamer-
threads.com/lists/mythtv/> using the card name in your search string.
[1m3.1.9.1. ATI[0m
ATI makes many cards with TV-out capability, but only offers Linux
drivers for Radeon 8500 and above cards. See the Drivers and Software
section of http://www.ati.com <http://www.ati.com/> for the driver and
additional information.
The enhanced ati.2 X driver created by the GATOS
http://gatos.sourceforge.net <http://gatos.sourceforge.net> project
offers some support for TV-out on other ATI cards, but only in its
"experimental" version, available through CVS. There have been reports
from people who say they have made this driver work with one or
another ATI card. For example, Bruce Markey <mailto:bjm@lvcm.com>
writes (on the mythtv-users mailing list): "I got this to work. You
can quote me on that. I've used TV-out on several models of ATI cards
both All-In-Wonder and regular cards with TV-out." See the
"Adventurous Setup" section of
http://gatos.sourceforge.net/watching_tv.php
<http://gatos.sourceforge.net/watching_tv.php> for details. Also see
http://www.retinalburn.net/linux/tvout.html
<http://www.retinalburn.net/linux/tvout.html> for more information.
[1m3.1.9.2. NVIDIA[0m
Some NVIDIA cards with TV-out can be run using the standard nv driver
in X, combined with the userspace application [1mnvtv [22mto control the TV-
out port. See http://sourceforge.net/projects/nv-tv-out/
<http://sourceforge.net/projects/nv-tv-out/> for details. Recent
versions of the NVIDIA driver have better support for overscan and
other features useful with TV-Out, so the [1mnvtv [22mapplication may not be
required.
Some NVIDIA cards can be run with a proprietary NVIDIA X driver made
available by NVIDIA. See http://www.nvidia.com/object/unix.html
<http://www.nvidia.com/object/unix.html> for more information.
[1mNOTE[22m: It's strongly recommended that you use the proprietary NVIDIA
drivers; they have excellent support for XvMC and ship with a good
configuration utility. XvMC provides MPEG-2 hardware acceleration,
which is important if you want to display HDTV.
[1m3.1.9.3. Hauppauge PVR-350[0m
MythTV supports the TV-out and MPEG-2 decoder functions in the IvyTV
driver.
The PVR-350 is unique amongst the Hauppauge PVR-x50 cards in that it
also supports audio output, but you need to connect that audio output
to something. There are two courses of action you may take:
1. Take the audio output from the PVR-350 and plug it into an input on
a sound card on your machine. You may then use MythTV's internal
audio controls.
2. Take the audio output from the PVR-350 and connect it directly to
your television / audio system. You must indicate that you are
using external audio control on the PVR-350 setup page.
[1m3.1.9.4. Other Options[0m
Some devices with on-board TV-out capability, such as Xboxes converted
to Linux and some laptops can be used as MythTV frontends to display
on a television screen. Please consult the mythtv-users mailing list
for messages that report the details of these special arrangements.
[1m3.1.10. External Adapters[0m
External adapters convert standard VGA output to a form suitable for
display on a television. The output format varies by region, since
different countries have different TV standards. People on the mythtv-
users list have mentioned these adapters:
+o AITech Web Cable Plus, powered by external transformer or takes
power from PS/2 keyboard connector, support resolutions up to
1024x768, outputs composite and SVideo, provides position
adjustment.
+o Averkey lite, powered by a USB port, has Composite, SVideo, YPbPr
outputs; pan, brightness, overscan/underscan controls; supports up
to 1024x768 outputs; and supports PAL and NTSC.
+o ADS TV Elite XGA
+o AverKey iMicro (comments are generally favorable)
+o AITech Web Cable (comments are generally unfavorable, different
than the "Plus" version above)
+o TVIEW Gold (mentioned once, favorably)
[1m3.2. Software[0m
There are a few ways of installing programs on Linux systems; you can
either use a pre-compiled package, or install from a tarball after
satisfying any prerequisites.
[1mNOTE[22m: you must have the MySQL database software installed on a
system to store the master database. This does not necessarily mean
that MySQL must run on one of the MythTV boxes. The minimum MySQL
version is 5.0.
[1m3.2.1. Pre-compiled packages[0m
A number of people have created pre-compiled packages for MythTV that
may make your installation easier.
[1mBIG FAT WARNING[22m: This HOWTO assumes that you have [4mnot[0m
installed MythTV from a package. All example command lines and file
locations are based on the MythTV tarball defaults. Some packagers
have modified the filenames, binaries and file locations to match what
is commonly found in that distribution. Any issues with MythTV
installed via a pre-compiled package [1mMUST [22mbe raised with the packager.
If you use any of the pre-compiled packages you may not need to
perform any additional configuration steps in this HOWTO. The next
logical step is ``configuring MySQL'', which you may or may not have
to perform. See your package documentation.
[1m3.2.1.1. Red Hat Linux / Fedora Core[0m
The definitive documentation on installing MythTV on Red Hat Linux /
Fedora Core can be found in Jarod Wilson's (mailto:jcw@wilsonet.com
<mailto:jcw@wilsonet.com>) HOWTO at http://wilsonet.com/mythtv/
<http://wilsonet.com/mythtv/> Just like 3rd-party packages, any 3rd-
party documentation problems should be brought up with the 3rd-parties
(maintainer, lists, bugzillas etc.). The installation instructions
which follow should be used as a guide only; refer to Jarod's guide.
Red Hat Linux and Fedora Core packages for MythTV and all of its add-
on modules and some themes have been packaged by
mailto:Axel.Thimm@ATrpms.net <mailto:Axel.Thimm@ATrpms.net> and are
available at http://ATrpms.net/topic/multimedia/
<http://ATrpms.net/topic/multimedia/>. All of the prerequisites for
MythTV (such as XMLTV) are available as RPM packages. If you have
problems with the RPMs, please contact the ATrpms lists at
http://lists.ATrpms.net/ <http://lists.ATrpms.net/> or file a bug
against http://bugzilla.ATrpms.net/ <http://bugzilla.ATrpms.net/>.
Given the large number of dependent RPMs you are advised to use tools
like apt or yum for automatic retrieval and installation of the
required RPMs. (http://ATrpms.net/install.html
<http://ATrpms.net/install.html>) In this case a special meta-package
called mythtv-suite will allow you to install all of MythTV and its
add-ons, plus all dependencies.
If you don't have [1mapt [22mor [1myum [22mon your machine, download and install the
atrpms-kickstart package from http://ATrpms.net/name/atrpms-kickstart/
<http://ATrpms.net/name/atrpms-kickstart/>. Install the package with:
# rpm -Uvh atrpms-kickstart*
Then run:
# apt-get update
# apt-get dist-upgrade
# apt-get update
And finally:
# apt-get install mythtv-suite
These steps however, do NOT perform the installation of any drivers
required for [1mALSA[22m, capture cards, [1mlirc kernel modules[22m, etc., nor do
they set up your MythTV database. Check http://ATrpms.net/topic/multi-
media/ <http://ATrpms.net/topic/multimedia/> for the drivers you need.
[1m3.2.1.2. Mandriva[0m
Thac has created RPMs for MythTV for Mandriva which may be obtained
from http://rpm.nyvalls.se/ <http://rpm.nyvalls.se/> If you have
problems with the RPMs, please send him email directly at
thac@nyvalls.se <thac@nyvalls.se>.
[1m3.2.1.3. Debian[0m
Debian packages for MythTV and most of its add-on modules are
maintained by Christian Marillat mailto:marillat@free.fr
<mailto:marillat@free.fr> and are available at http://www.debian-
multimedia.org/ <http://www.debian-multimedia.org/>. Installation
instructions can be found on those pages as well. All of the
prerequisites for MythTV are available as Debian packages, most of
them from the official Debian archive.
If you have followed the instructions on the above page you should
have added
deb-src http://www.debian-multimedia.org sid main
to your /etc/apt/sources.list file. Running [1mapt-get update [22mand then
executing [1mapt-get build-dep mythtv [22mshould install all the pre-
requisites required to compile MythTV.
[1mNOTE[22m: Due to the requirement for Qt 3.3+, there are no packages for
Debian woody/stable.
The Debian packages are configured such that MythTV programs should be
run as the mythtv user, which is automatically created during
installation. This user has access to write new recordings to disk in
the default directory, read and write the database, access the audio
and video devices, and everything else that MythTV needs to do.
See /usr/share/doc/[4mpackagename[24m/README.Debian for more information,
including copies of the MythTV documentation. The mythtv-doc package
contains a copy of this HOWTO in /usr/share/doc/mythtv-doc.
[1m3.2.2. Manual installation[0m
You may use the graphical tools that come with your distribution, or
you can use command-line utilities. Either system will get the job
done, and it all depends on your comfort level with Linux.
In order to compile MythTV, we need to make sure that the software it
needs is installed. This list includes [1mmysql[22m, [1mgcc[22m, [1mfreetype2-devel[22m,
[1mxorg-xserver-devel[22m, [1mqt-devel [22mand [1mlame[22m. If you're going to use a
remote control with MythTV, you're going to need the [1mcdialog [22mpackage
in order to compile [1mlircd [22mif your distribution doesn't have a pre-
packaged [1mlirc[22m. If you are using [1mXMLTV [22mas a grabber, you will need
[1mperl[22m.
______________________________________________________________________
NOTE: Qt v3.3 or higher is required.
NOTE: MythTV DOES NOT WORK with Qt4.
NOTE: If you are going to be using RPMs to install various
components, you should be aware that not all packages include the necessary
headers for compiling. If you're having trouble compiling, ensure
that you've installed the -devel version of a prerequisite.
______________________________________________________________________
[1m3.2.3. Command-line installation[0m
This section details the various methods for installing prerequisites
from the command line.
[1m3.2.3.1. Mandriva[0m
[1mNOTE[22m: The following instructions should be considered out of date as
of 2006-09-10. If updated instructions are not submitted by the
release of v0.21 of MythTV they will be removed.
[1murpmi [22mis the simplest tool for installation of packages from the
command line, but properly configuring it can be difficult. The
following website http://easyurpmi.zarb.org/
<http://easyurpmi.zarb.org/> will allow you to choose a mirror site
and then present the command-line configuration text for that mirror.
You will most likely need to add a "Contrib" mirror to your setup. If
you add a site from the "Penguin Liberation Front", you will be able
to load the lame library without compiling from source.
Open a shell, and execute the following. You may get asked a number of
questions regarding dependencies. It's best to answer "YES".
$ su
# urpmi mysql gcc gcc-c++ freetype2-devel cdialog alsa-utils
# urpmi XFree86-devel perl
# urpmi libqt3-devel libMesaGLU1-devel
______________________________________________________________________
NOTE for Mandriva 9.1+ users: execute the following command.
# urpmi libqt3-mysql
______________________________________________________________________
However, you might get this when you execute the commands above:
everything already installed
In that case, you're ready to move to the next ``section''. Once you
have completed installing the pre-requisites, exit out of the shell
and start a new one to ensure that any environment variables setup by
the installation have a chance to take effect.
[1m3.2.3.2. Gentoo.[0m
[1mNOTE[22m: MythTV does [4mnot[24m run on Qt4. If Qt has not been installed on
your system: Edit /etc/make.conf and locate the "USE" variable. If the
line is commented out, remove the comment. The line should have at
least:
USE="mysql alsa"
Next you need to build Qt. If you don't plan on using the ebuilds as
described in the Gentoo section then you also need to install lame.
# emerge lame mysql qt
If you have already installed Qt: you will need to rebuild because the
default installation doesn't include MySQL support, a requirement for
MythTV. To enable SQL support, add "mysql" to your USE variable in
/etc/make.conf and rebuild Qt by running
# emerge qt
All the necessary files will be downloaded and built. Even on a fast
machine this may take a lot of time if you need to do a full Qt build.
[1m3.2.3.3. Debian.[0m
Build-dependencies for MythTV can be satisfied by adding the following
to your /etc/apt/sources.list
# Christian Marillat's packages (mplayer, lame)
deb http://www.debian-multimedia.org sid main
deb-src http://www.debian-multimedia.org sid main
and executing:
# apt-get build-dep mythtv
# apt-get source mythtv --compile
[1m4. System Configuration Requirements for Compiling MythTV.[0m
Before you compile MythTV from the current source tarball or from
[1msubversion[22m, you may need to modify your system configuration in a few
ways.
In general, if you install MythTV from pre-packaged binaries for your
Linux distribution/version, you don't need to be too concerned about
the issues in this section of the HOWTO - the install script for the
packages should take care of them. However, this section is still
recommended reading which may help if the packager skipped a step in
their packaging.
[1m4.1. Software requirements for compiling MythTV[0m
[1m4.1.1. General requirements[0m
MythTV is written in C++ and requires a fairly complete, but standard,
compilation environment, including a recent g++ compiler, make, and
appropriate header files for shared libraries. Any standard Linux
distribution should be able to install a suitable compilation
environment from its packaging system. Section 3.2 of this HOWTO
provides some details of how to install the required environment for
many distributions.
Subsequent sections of this chapter address the few oddities that you
may have to adjust by hand before you compile MythTV.
The reference compilation system for MythTV is Ubuntu.
[1m4.2. Shared-Library requirements for MythTV[0m
[1m4.2.1. Modifying /etc/ld.so.conf[0m
The runtime manager for shared libraries, [1m/lib/ld.so[22m, gets information
about the locations and contents of shared libraries from
/etc/ld.so.cache, a file created by [1mldconfig [22mfrom information in
/etc/ld.so.conf. Because MythTV installs some shared libraries in
/usr/local/lib, that directory needs to be added to the list of
directories for [1mld.so [22mto search when doing runtime linking of
programs, if it is not already there. You do this, as root, by
editing /etc/ld.so.conf, then running [1mldconfig[22m. There are many ways to
do this; one that works is to enter this series of commands:
$ su -
# echo /usr/local/lib >> /etc/ld.so.conf
# /sbin/ldconfig
# exit
$
[1m4.3. Environment variable requirements for MythTV[0m
[1m4.3.1. General requirements[0m
[1m4.3.1.1. QT libraries and binaries[0m
The compiler needs to be able to locate QT binaries and libraries in
order to compile MythTV. QTDIR needs to be set and the directory
holding the QT binaries needs to be added to your PATH. Your
distribution may already be making these changes as a part of the
installation of the software prerequisites detailed earlier.
One way to do this is as follows:
Open a shell and execute the following:
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/lib/qt3/bin:/home/mythtv/bin:/usr/lib/qt3/bin
$ echo $QTDIR
/usr/lib/qt3
$ which qmake
/usr/lib/qt3/bin/qmake
For Mandriva, you should see a value like /usr/lib/qt3 for QTDIR and
/usr/lib/qt3/bin should be in $PATH.
For Gentoo, you should see a value like /usr/qt/3 for QTDIR and
/usr/qt/3/bin should be in $PATH.
If you don't, do not proceed past this step until you have resolved
this error. You may need to manually specify the QTDIR and PATH at the
shell prompt before compiling.
Also, check that there has been a link created in /usr/lib/qt3/mkspecs
(/usr/share/qt3/mkspecs for Debian) called default. If not, you'll get
errors during the compile. See the Troubleshooting Section for more
information.
[1m4.3.2. Distribution-Specific Notes[0m
[1m4.3.2.1. Mandriva[0m
The following instructions work for Mandriva using [1mbash [22mas the shell,
and may be applicable for a distribution which uses /etc/profile.d.
[1mNOTE[22m: Mandriva 10 installs a /etc/profile.d/qtdir3.sh
file, but it doesn't include the addition of the PATH variable. If
you're running Mandriva 10, don't create a mythtv.sh file as detailed
below; edit the qtdir3.sh file and add the PATH statement within the
if / fi block. As root, create the following file in /etc/profile.d
The example filename is "mythtv.sh". Use what you feel is appropriate.
Open a shell, and switch to superuser mode.
[1mNOTE[22m: ^D means press CTRL and d at the same time.
$ su
# cd /etc/profile.d
cat > mythtv.sh
export QTDIR=/usr/lib/qt3
export PATH=$PATH:/usr/lib/qt3/bin
^D
# chmod a+x mythtv.sh
# exit
$ exit
The last two commands are to exit out of the shell. This way, when you
next open a shell your new commands will take effect.
[1m4.3.3. Device Permissions[0m
MythTV will need access to the video4linux devices on your system. By
default, your distribution may restrict access to these devices to the
logged-in user, so if you will be automatically starting [1mmythbackend[0m
from a script rather than an interactive terminal session you will
need to make some adjustments.
[1mNOTE[22m: The following instructions are accurate for Mandriva.
Check for a file called /etc/security/console.perms. Open the file in
your favorite text editor and look for a line that has:
<console> 0600 <v4l> 0600 root.video
and replace it with
<console> 0666 <v4l> 0666 root.video
What we're doing is allowing read and write access to the files in the
video4linux directory.
[1m5. Downloading and compiling.[0m
Get MythTV from the http://www.mythtv.org <http://www.mythtv.org> web
site. There are two installation methods you may choose from. The
first is to download the latest release in tarball format and compile.
The tarball release of MythTV should work on a wide variety of systems
and should be the preferred method for new users. If you wish to use
the [1msubversion [22mcopy of MythTV you may obtain it from
http://svn.mythtv.org <http://svn.mythtv.org>
[1mNOTE[22m: If you are going to use [1msubversion [22mto
compile MythTV rather than using the distribution tarball, you [4mmust[0m
join the http://www.mythtv.org/mailman/listinfo/mythtv-commits/
<http://www.mythtv.org/mailman/listinfo/mythtv-commits/> and
http://www.mythtv.org/mailman/listinfo/mythtv-dev/
<http://www.mythtv.org/mailman/listinfo/mythtv-dev/> mailing lists to
keep up to date with the current status of the code. Code obtained
from subversion has no guarantees regarding stability, etc.
If you are in North America you will use the Schedules Direct grabber
which is built-in to MythTV. You [4mdo[24m [4mnot[24m need to install XMLTV (so you
may skip XMLTV-related instructions), but you need [1mwget [22mversion 1.9.1
or higher.
Get XMLTV from http://xmltv.sourceforge.net
<http://xmltv.sourceforge.net>. Download the latest version (0.5.51).
______________________________________________________________________
NOTE for Mandriva users: If you have added a "PLF" mirror, you may skip the
next step and type:
# urpmi libmp3lame0 libmp3lame0-devel
After downloading, be sure to install both:
# rpm -Uvh lame*
______________________________________________________________________
Get lame from http://lame.sourceforge.net/
<http://lame.sourceforge.net/>. Download the source code to v3.96.1
by following the links from "Using" through "Download...".
[1m5.1. Building LAME[0m
Open a shell and switch to the directory where you saved lame.
$ tar -xzf lame-3.96.1.tar.gz
$ cd lame-3.96.1
$ ./configure
$ make
$ make test
$ su
# make install
Check that it worked:
# ls -l /usr/local/lib
-rw-r--r-- 1 root root 381706 Nov 4 14:22 libmp3lame.a
-rwxr-xr-x 1 root root 674 Nov 4 14:22 libmp3lame.la*
lrwxrwxrwx 1 root root 19 Nov 4 14:22 libmp3lame.so ->
libmp3lame.so.0.0.0*
lrwxrwxrwx 1 root root 19 Nov 4 14:22 libmp3lame.so.0 ->
libmp3lame.so.0.0.0*
-rwxr-xr-x 1 root root 360197 Nov 4 14:22
libmp3lame.so.0.0.0*
# exit
$
[1m5.2. XMLTV[0m
[1m5.2.1. Red Hat Linux and Fedora Core:[0m
RPMs for [1mXMLTV [22mand all of its dependencies can be obtained from
http://ATrpms.net/name/xmltv/ <http://ATrpms.net/name/xmltv/>. The web
page has a list of all the dependent packages you must download and
install.
# rpm -Uvh xmltv* perl*
If you install from this location you may skip to ``Manually building
MythTV''.
[1m5.2.2. Mandriva[0m
RPMs for [1mXMLTV [22mand all of its dependencies are located in Mandriva's
"contrib". If you have added a contrib mirror, try installing [1mXMLTV[22m:
# urpmi xmltv xmltv-grabbers
If this does not work, it is possible that contrib for your Mandriva
version does not have [1mXMLTV[22m, so you may install the XMLTV prerequi-
sites by typing:
# urpmi perl-xml-twig perl-xml-writer perl-datemanip perl-libwww-perl
and skip straight to the XMLTV compilation step.
[1m5.2.3. Manual installation[0m
Untar the xmltv file:
$ tar -xjf xmltv-0.5.51.tar.bz2
Install the xmltv prerequisites. The following prerequisites are the
minimum required; when you actually start running the xmltv setup pro-
gram it may alert you to other modules that are required.:
$ su
# perl -MCPAN -e shell
cpan> install XML::Twig
cpan> install Date::Manip
Date::Manip is up to date.
cpan> install LWP
cpan> install XML::Writer
cpan> exit
Change to the XMLTV directory and compile it:
$ cd xmltv-0.5.51
$ perl Makefile.PL
You can answer "N" to the tv_check, tv_pick_cgi questions. Say "yes"
to the grabber required for your location.
You may get errors about modules not being installed. You will need
to resolve any missing dependencies at this point, or your grabber may
not work correctly.
$ make
$ make test
$ su
# make install
# exit
[1m5.3. Configuring the Schedules Direct service[0m
As of 2007-09-01, Tribune Media Services will no longer offer free
guide data. Schedules Direct is a non-profit organization which has
licensed the data to make it available to users of Freeware and Open
Source applications.
If you wish to use Schedules Direct, you'll need to establish a user
account. Go to http://www.schedulesdirect.org
<http://www.schedulesdirect.org> and click on the "Membership" link.
Once you've read and agreed to the Subscriber Agreement, Terms of Use
and Privacy Policy proceed to the lineup choices and configure your
account for your particular location and the channels that you have.
This configuration will be imported into MythTV when you first run the
[1mmythtv-setup [22mprogram.
[1m5.4. Manually building MythTV[0m
If you are going to use [1msubversion[22m, execute the following instructions
to obtain the latest version of MythTV:
$ mkdir mythtv
$ svn co http://svn.mythtv.org/svn/trunk/ mythtv
$ cd mythtv
To use a release version, you can execute:
$ mkdir mythtv-release-0.21
$ svn co http://svn.mythtv.org/svn/branches/release-0-21-fixes/ mythtv-release-0.21
$ cd mythtv-release-0.21
[1mNOTE[22m: Using a svn version of the code allows you to stay up-to-date
with changes. So, if there's an update to the 0.21 release and you
originally obtained it using svn, you could enter the mythtv-
release-0.21 directory and type "svn up", which will update your copy
with the fixed version from the website. You would then recompile and
install the updated 0.21 code.
If you are using the tarball, then unpack it:
$ tar -xjf mythtv-0.21.tar.bz2
$ cd mythtv-0.21
$ ./configure
If you wish to change options, run [1m./configure --help [22mto see what is
available and to override and automatically detected options. See the
config.log file after running [1mconfigure [22mto see previous runs.
To compile:
$ make -j 2
The MythTV compile can take advantage of multiple CPUs, SMP and
Hyperthreading. If you want to build MythTV on a multi-CPU machine
(or with [1mdistcc[22m), specify "-j numjobs", where "numjobs" is greater
than 2. In the above example, we had two concurrent jobs executing,
which is recommended for a single CPU system. Do not set the number
of jobs too high, or your compile will actually take longer to
complete than it would if you did a "normal" build.
If you are using [1mdistcc[22m, and you had two other host machines (red,
blue) participating, you would do something like:
$ export DISTCC_HOSTS='localhost red blue'
$ make -j 6 CXX=distcc
The actual speed-up, if any, is dependant on a number of factors, such
as number of CPUs / hosts, etc. The [1mdistcc [22mdocumentation recommends
using a -j value of twice the number of CPUs available to keep all of
them busy.
Some timing information. The following should only be used for
illustration; your actual results may vary. The test involves a
complete make distclean to the final binary.
+o P4 3.2Ghz HT: "standard" make: 12m 49s
+o P4 3.2Ghz HT: make -j 2: 11m 24s
In the above example, we see that with a single CPU, a multi-stage
[1mmake [22mdoes not significantly decrease compile time.
Once the compile is done, switch to superuser:
$ su
# make install
# exit
[1mNOTE[22m: subsequent configuration steps assume that you are within
the MythTV directory that you cd'd to above.
[1m5.4.1. Enabling real-time scheduling of the display thread.[0m
MythTV supports real-time scheduling of the video output thread. There
are three ways to go about enabling this: You can use rlimits, you can
use the realtime security module, or on older systems you can SUID the
executable. Enabling real-time scheduling is optional, but can make
the video display smoother, especially if you are decoding HDTV.
[1m5.4.1.1. rlimits[0m
The rlimits method is the preferred method and is included in Linux
2.6.12 and above. Unfortunately, you need PAM version 0.79 or above,
which may not be supported by your distribution yet. Assuming anyone
running [1mmythfrontend [22mis in the audio group and rlimits are supported,
all you need to do is place this in your /etc/security/limits.conf
* - rtprio 0
* - nice 0
@audio - rtprio 50
@audio - nice 0
[1m5.4.1.2. realtime module[0m
The second option is to use the Linux realtime kernel module. This is
will be phased out over time, but is currently supported by many
distributions that do not yet support rlimits. If you are not using
the distribution kernel you must configure your kernel with:
Security options : [*] Enable different security models
Security options : [M] Default Linux Capabilties
You may also need to install the realtime module, using your distribu-
tion's realtime package. Assuming the users who will be running [1mmyth-[0m
[1mfrontend [22mwill be in the audio group you can get the GUID of a named
group like so:
$ grep audio /etc/group
If the number printed out from the grep was 18, you can now load this
module as root before starting [1mmythfrontend[22m:
# modprobe realtime gid=18
[1m5.4.1.3. run as root option (not safe)[0m
The final and least preferred option is to set the sticky bit on the
[1mmythfrontend [22mexecutable. This [1mopens a security hole[22m, but is the only
option on systems that do not support either rlimits or the realtime
module. This does not work on modern distributions either, and is [4mnot[0m
[4mrecommended[24m on any system connected to the Internet. This may also
make it impossible to debug MythTV without running [1mgdb [22mas root. If you
would still like to do this, you just need to run this as root:
# chmod a+s /usr/local/bin/mythfrontend /usr/local/bin/mythtv
[1m5.4.2. Frontend-only configuration[0m
Since MythTV uses a client/server architecture, multiple frontend
computers can simultaneously access content on a Myth system. Live
TV, watching and scheduling recordings, etc. are all possible from
multiple frontends.
To get a better picture of what is needed to run a frontend, note the
following:
You do NOT need the MySQL server installed on your remote frontend
You do NOT need XMLTV installed on your remote frontend
You do NOT need to run the mythtv-setup program on your frontend
machine
Other than the exclusion of the MySQL server and XMLTV, the MythTV
compilation procedure is the same as when you're setting up both a
backend and a frontend. However, you [4mwill[24m need to install the
database access libraries.
Once MythTV is compiled and installed:
Run the mythtv-setup program on your Master backend. Under the
"General" menu, change the IP address of the current machine (by
default, "127.0.0.1") to the real external IP address - 127.0.0.1 is
the loopback address and no external machine can access it. Change the
Master Server IP setting to the same IP address as well.
Run the mythfrontend program on your frontend machine, and a "Database
Configuration" screen should appear. Set the "Host name" field to
point to your Master backend's IP address.
[1m5.5. Gentoo[0m
Installation of MythTV on Gentoo consists of simply emerging the
desired ebuild because all of the packages are now part of the
official Portage tree.
$ su -
# emerge --sync # make sure portage is up to date.
# vi /etc/make.conf
Add mysql to your USE variable. i.e. USE="mysql ...."
# emerge mythtv
[1m6. MySQL.[0m
When you install MySQL 5.x you will also want to comment out "log-bin"
in your my.cnf configuration file. This option will quickly fill your
"/var" disk partition with many gigabytes of data, unless you are
doing database replication and deleting these files regularly.
[1m6.1. Distribution-specific information[0m
[1m6.1.1. Mandriva[0m
If this is the system maintaining the database, make sure that MySQL
is running and started at boot. Click on Mandriva Control
Center->System->Services, find MySQL and click the "On Boot" button
and the "Start" button if the MySQL status shows that it isn't running
yet.
[1mNOTE[22m: There have been reports that MySQL isn't starting at boot.
If this is happening to you, try running the following commands.
$ su
# chkconfig --level 35 mysql on
# /etc/rc.d/init.d/mysql start
# exit
[1m6.1.2. Red Hat Linux and Fedora Core[0m
If this is the system maintaining the database, make sure that MySQL
is running and started at boot. Click on Redhat menu>Server
Settings>Services and enter the root password when asked. Check
"mysqld" and then click Start. Click Save, then close the window.
This can be done from the command line by typing:
# /sbin/chkconfig mysqld on
# /sbin/service mysqld start
[1m6.1.3. Gentoo[0m
After installing MySQL you need to initialize the database by running
[1mmysql_install_db [22mas root.
[1m6.2. Setting up the initial database[0m
This step is only required on the system maintaining the database,
which may or may not be one of your MythTV boxes. If the database is
on a non-MythTV machine you'll need to copy the database/mc.sql file
to it.
To setup the initial MySQL databases:
$ cd database
[1m6.2.1. Mandriva and Red Hat Linux/Fedora Core[0m
$ mysql -u root < mc.sql
[1m6.2.2. Debian 3.0[0m
$ mysql < mc.sql
[1m6.2.3. Gentoo[0m
$ su
# mysql < /usr/share/mythtv/database/mc.sql
[1mNOTE[22m: It is good practice to set a root password for MySQL. Instruc-
tions for doing so can be found on MySQL's web site at
http://www.mysql.com/doc/en/Security.html <http://www.mysql.com/doc/en/Security.html>.
[1m6.2.4. Modifying access to the MySQL database for multiple systems[0m
If you're going to have multiple systems accessing a master database,
you must grant access to the database from remote systems. By
default, the mc.sql script is only granting access to the local host.
To allow other hosts access to your master database, you can either
set it up for no security at all, or with more granularity. Note that
the "%" is the wildcard character in MySQL.
[1mNOTE[22m: The "no security" option is [4mvery[24m dangerous unless
you're in a controlled environment. This example has no security at
all, and allows access from any host.
$ mysql -u root mythconverg
mysql> grant all on mythconverg.* to mythtv@"%" identified by "mythtv";
mysql> flush privileges;
For a more secure setup, you can restrict which machines or subnets
have access. If you have a complete DNS system operational, you could
do the following:
$ mysql -u root mythconverg
mysql> grant all on mythconverg.* to mythtv@"%.mydomain.com" identified by "mythtv";
mysql> flush privileges;
Finally, if you just want to restrict by IP subnet (in this example,
the 192.168.1. network):
$ mysql -u root mythconverg
mysql> grant all on mythconverg.* to mythtv@"192.168.1.%" identified by "mythtv";
mysql> flush privileges;
You'll also need to check that the "networking" feature of MySQL is
turned on. Check that /etc/mysql/my.cnf [4mdoes[24m [4mnot[24m contain skip-
networking. If it does, remove it. Also verify that bind-address is
set to your IP address instead of 127.0.0.1. If you change either of
these items, restart [1mMySQL[22m.
[1mNOTE[22m: Your distribution may have a customized MySQL configuration
file; in Mandriva, check /etc/sysconfig/mysqld for additional
configuration.
[1m7. Configuring Sound.[0m
If your video doesn't appear to be in-sync with your audio and you're
using an analog video capture card and a soundcard to capture audio,
it could be because you are listening to the real-time audio from your
video card rather than after it's been processed and synchronized to
the video by MythTV. Because MythTV is a personal video recorder,
"Live TV" isn't really live - to let you pause live TV, MythTV is
actually encoding the video, saving to disk, and then playing it back.
This procedure puts your MythTV "live" TV about 2 seconds behind real-
time, so it's important that you're not listening to the live audio.
However, if you're having an issue where the audio and video aren't
synchronized by small but varying amount, it's most likely because the
sound driver that you're using doesn't have the DSP_CAP_REALTIME
capability. This was the case with ALSA (0.5), but not with newer
versions. See the ``Troubleshooting Audio'' section for more
information if you're having issues with sound. Also, ensure that no
other programs are grabbing the audio output, like [1marts [22mor [1mesd[22m.
What you need to do is to mute the "line-in" of your sound card and
also set it as the recording source.
There are two ways to do this. Graphically, and from the command
line.
[1m7.1. Graphically setting up the mixer[0m
[1m7.1.1. Mandriva and Red Hat Linux/Fedora Core[0m
Open Kmix by clicking K->Multimedia->Sound->Kmix for Mandriva, or
RedHat Menu>Sound & Video>Volume Control
Click on Settings->Configure Make sure that "Tick Marks" and "Show
labels" have "X"'s in them. This will make it easier to find the
correct audio source. Click OK.
On the mixer page, look for Line-In on your sound card. You should
see two LED's - a green one at the top, and a red one at the bottom.
The green one at the top is for muting; you want to make sure that the
green LED is a dark green, meaning that it's "off". You also want to
click on the red LED so that it turns bright red, indicating that it's
"ON"; this insures that the Line-in is used as the source. Click OK,
and make sure that you save the settings so that this is your default.
[1m7.1.1.1. Using ALSA.[0m
To use ALSA, you'll need to correctly setup your asoundrc file.
Configuring this file is beyond the scope of this HOWTO. Once ALSA is
working correctly, change the output sound device in
mythfrontend->setup->Audio from /dev/dsp to ALSA:default. This field
may be edited to suit your ALSA requirements.
[1m7.2. Setting the mixer from the command line[0m
If you have installed the alsa-utils package, then the [1mamixer [22mprogram
can be used to setup the mixer. The "Master" volume setting is only
required on a frontend machine to ensure that the sound channels are
unmuted and configured for outputting sound. The "Line" and "Capture"
controls are required for your sound card to actually capture audio
from the external Line-in if it's connected to an analog frame
grabber. Not all sound cards have a "Capture" control, but if yours
does and you don't set it then MythTV will not capture audio.
______________________________________________________________________
Note the spelling in the following commands.
______________________________________________________________________
$ amixer set Master,0 100%,100% unmute
$ amixer set PCM,0 100%,100% unmute
$ amixer set Line,0 75%,75% mute captur
$ amixer set Capture,0 100%,100% captur
$ su
# alsactl store
# exit
$
If you have multiple sound cards, then use the -c parameter to specify
which card to adjust. Note that the first card will be "0", the
second will be "1", etc.
That takes care of setting the volume correctly, and the ALSA startup
script will restore the volume after a reboot. If you find that your
sound is distorted, it's possible that the levels in the above
examples are too high for your particular hardware combination. Try
reducing the percentages by 5-10% and checking again. Once you're
satisfied, re-run the alsactl store command.
You may also use the [1malsamixer [22mprogram to set the volume. If you are
using an ALSA version after 1.0.6, use [1malsamixer -V all [22mFirst, start
[1malsamixer [22mfrom the command line. You should start out on the "Master"
volume control slider. Use the up and down cursor to set the master
volume to around 75%. Next, use the left and right cursor keys to
move around on the screen until you find the "Line" slider. Press
SPACE to set it as the capture source, set the level to around 50-75%
and press "M" to mute it. You can now press ESC to exit out of the
[1malsamixer [22mprogram. You can also have MythTV manage all volume and
mute settings, but this will only affect the "Master" or PCM volume,
not the capture volume. See the mythfrontend setup page for options.
Finally, if you've performed all of the above steps, and you still
don't seem to have any sound, it's possible that your video capture
device is muting the audio output.
$ v4lctl -c /dev/video0 setattr mute off
[1m8. Setting up a remote control.[0m
MythTV does not have native remote control receiver and decoder
software built-in. Instead, remote control functions are implemented
by cooperating with [1mlirc[22m, the Linux Infrared Remote Control program.
[1mlirc [22mhandles the IR hardware and passes keystrokes to MythTV, which
then acts as if the user had pressed the keys on the keyboard. The
file keys.txt describes the keys used to control MythTV.
[1mNOTE[22m: If you are running Mandriva, you may install
[1mlirc [22mby executing: # urpmi lirc lirc-remotes and bypass the manual
compilation steps described below by jumping to the ``Completing the
lirc install'' section. See the contrib/mandrake91.etc.sysconfig.lircd
file for an example of how to configure lircd.
Some IR devices require a kernel recompile, and some don't. However,
all at least require having the kernel source available as a resource
for the lirc build process.
[1m8.1. Gentoo[0m
To install lirc on Gentoo, all you need to do is:
# emerge lirc
[1m8.2. Obtaining and compiling lirc[0m
You're going to need to download and compile [1mlircd[22m. Go to
http://www.lirc.org <http://www.lirc.org> and download lirc; as of
2006-01-21, the version available is 0.8.0. Grab the remotes.tar.bz2
file as well.
$ tar -xjf lirc-0.8.0.tar.bz2
$ cd lirc-0.8.0
$ ./setup.sh
You're going to need to know what sort of receiver you have and where
it's connected. In the case of the Pinnacle Studio TV card, with the
IR receiver connected to COM1 (/dev/ttys0), once the configuration
menu comes up, perform the configuration by going to Driver Configura-
tion->Other Serial Port Devices->Pinnacle Systems Receiver->OK and on
the next page select COM1->OK.
Each remote is different; some remote receivers connect directly to
your capture card and not to a serial port, so make sure that you've
got the correct one.
You then click "Save Configuration and run configure" to continue.
Make sure you read the last text generated by the configure step. It
will tell you if you require a kernel recompile, and what the name of
your kernel module will be (if necessary). For instance a home-built
receiver may require a kernel recompile, so you would be notified that
you will have to load the lirc_serial module. If you did not get any
such messages skip the kernel recompile steps below and go directly to
making and installing the lirc driver.
Once the configuration step is complete:
$ make
$ su
# make install
# chmod 666 /dev/lircd
At this point, if you're using a serial receiver, check that there's a
lirc device in /dev:
$ ls -l /dev/li*
lr-xr-xr-x 1 root root 5 Jan 27 09:00 /dev/lirc -> ttyS0
srw-rw-rw- 1 root root 0 Jan 27 15:01 /dev/lircd=
prw-r--r-- 1 root root 0 Jan 27 09:00 /dev/lircm|
As you can see, there's a link from /dev/lirc to ttyS0, a.k.a. "COM1",
which is appropriate for the Pinnacle Systems PCTV Pro. However, you
may notice something like this:
crw------- 1 root root 61, 0 Dec 31 1969 lirc
Some IR receivers (including some homebrew units) use a character
device as their data interface as opposed to a link to a serial port.
If the make install step has created a character device for you, don't
replace it with a link to a COM port.
So, if the link or character device was not created (but should have
been), ensure that you ran the make install step as root. If it still
doesn't work, then there are three options. The first option is to
re-read the [1mlirc [22mdocumentation to determine whether your IR receiver
is a character device or should be a link to a serial port and to
create the link/character device manually. In this example, the IR
device is connected to ttyS0. If it were connected to "COM2", then
use ttyS1, etc.
$ su
# cd /dev
# ln -sf ttyS0 lirc
# exit
$
[1mNOTE[22m: The above example assumes that your receiver uses the
standard serial driver. Some receivers do not, including receivers
that plug into a TV capture card. Check the lirc documentation, but
it may be necessary to replace the link created above with a character
pipe:
# mknod /dev/lirc c 61 0
See the lirc documentation for additional information. The lirc
installation [4mshould[24m create this for you, so manually creating it
indicates that your lirc installation may have other issues.
The second option is to post your issue to the [4mlirc[24m list, not the
mythtv-users list. The lirc programmers will be the ones that can
assist you best.
The third option is to dispense with lirc altogether by purchasing an
IR keyboard (various options exist, although Chicony appears to work
for some people) and a learning remote control. The IR keyboard
receiver plugs into the PS/2 keyboard port on your PC and you would
train your learning remote to emulate the various keystrokes from
keys.txt of your IR keyboard. Using this method removes lirc entirely
from the picture - your remote will be sending keypresses that your PC
"sees" on the keyboard port.
[1m8.3. Completing the lirc install[0m
[1mNOTE to Mandriva 9.1 users[22m: skip to the manual start paragraph
below.
If the lirc configure program / compile did not mention anything about
a kernel module, then you are finished. If it did mention a kernel
module, you must edit the /etc/modules.conf file. Add this line as the
first thing in the file. It must come first, or it may not work.
alias char-major-61 XXX
replace XXX with the name which you determined earlier, which in this
example was "lirc_serial"
$ su
# modprobe lirc_serial
# /sbin/ldconfig
Next, we're going to manually start lircd the first time. Mandriva
9.1 users, type: # /etc/rc.d/init.d/lircd start instead of:
# /usr/local/sbin/lircd
[1mNOTE[22m: Read this next section if you're not familiar with how lirc
works!
There are two separate files used by lirc, and both are required for
your remote control to do anything useful. First is the lircd.conf
file. lircd.conf tells the lirc daemon how to interpret the IR pulses
that it receives from a remote control and what name to assign to each
sequence of pulses. Without getting too involved, a particular series
of pulses may correlate to "Channel Up". The lircd.conf file will
then contain a line that looks something like this:
ChannelUp 0x0000000000001020
The lircd.conf file can have multiple remote controls defined.
The second file is lircrc, which takes the name of the button which
was pressed ("ChannelUp") in the above example, and correlates that to
an action to be performed by a program using the remote control. So
in MythTV, ChannelUp means one thing, while in [1mmplayer [22mit means
something different. lircrc gives you the flexibility of taking the
name of the button and having it perform different actions depending
on which program you're using at the time.
[1mNOTE[22m: The definitions in lircd.conf come from the user community, and
there is no standard for the common button names. One lircd.conf file
may contain a definition for a button called "ChannelUp", while
another may contain a definition for "Chan+". Your lircrc file must
therefore be configured appropriately, or it won't work.
If this fails, complaining of a missing lircd.conf file, then you must
find or make one. First look for a pre-made configuration file at
http://lirc.sourceforge.net/remotes/
<http://lirc.sourceforge.net/remotes/>. Mandriva 9.1 users, look in
/usr/share/lirc-remotes. If you find one your remotes either on the
website or in /usr/share, download or copy the file, name it
lircd.conf and put it in your /etc directory. If you couldn't find
your remote, you must make your own lircd.conf file.
To make your own lircd.conf file
$ irrecord myremote
Follow the on-screen directions to train your remote and define keys.
If your remote ends up working well, you should consider submitting
your lircd.conf file back to the lirc developers. Once finished:
$ su
# cp myremote /etc/lircd.conf
now try to start lircd again:
# /usr/local/sbin/lircd
Now, we're going to add the commands necessary for lircd to run each
time we boot. Mandriva 9.1 users, you can execute:
$ su
# chkconfig --level 35 lircd on
# exit
All other distributions:
# cd /etc/rc.d
# cat >> rc.local
echo "Starting lircd"
/usr/local/sbin/lircd
^D
# exit
$
This takes care of the lircd portion, which "listens" for the IR
signals. If everything went well, the install script for lircd put an
appropriate configuration file for your remote into /etc/lircd.conf
This file maps the buttons on the remote control to the IR pulses
coming from the receiver.
The next step is to convert those signals into something that can be
used to control MythTV. MythTV now includes native support for lirc
and can interact directly with
$ cd ~/mythtv-0.21/contrib/configfiles
$ cp lircrc.example ~/.lircrc
or
$ cp lircrc.example.pinnaclestudiopctv ~/.lircrc
if you've got a Pinnacle Studio PCTV remote.
$ irw
Start pressing the keys on your remote; [1mirw [22mwill print the name of the
button as it is defined in your /etc/lircd.conf. If you don't see any-
thing at this point, you need to troubleshoot further by going back to
the lirc home page and investigating from there.
If it is working, then press [1mCTRL-C [22mto abort the program. Once you
know that your remote is working, you can either recompile MythTV with
native lirc support by enabling it in [1mconfigure [22mor you need to run the
[1mirxevent [22mprogram, which takes the key presses and sends them to
MythTV. If you use native lirc support, you don't need to run
[1mirxevent[22m. If you are going to use irxevent, then you need to run it
like this:
$ irxevent &
If [1mirxevent [22misn't running, then MythTV will not respond to your remote
control unless you're using native lirc support.
[1m8.4. Additional information for lirc[0m
Take a look at the lircrc.example files in the contrib/configfiles/
directory. In my case, (Pinnacle Studio card) the channel up and down
functions weren't working, due to the fact that the button names were
different than the default lircrc.example file that came with MythTV.
The lircrc.example file has this:
begin
prog = irxevent
button = ChannelUp
config = Key Up CurrentWindow
end
begin
prog = irxevent
button = ChannelDown
config = Key Down CurrentWindow
end
but the /etc/lircd.conf that comes in the lircd package defines the
buttons for the Pinnacle Studio PCTV as:
channel+ 0x0000000000000017
channel- 0x000000000000001C
rather than "ChannelUp" and "ChannelDown". I added the following to
my /home/[yourusername]/.lircrc file:
begin
prog = irxevent
button = channel+
repeat = 3
config = Key Up CurrentWindow
end
begin
prog = irxevent
button = channel-
repeat = 3
config = Key Down CurrentWindow
end
which took care of basic functionality. Because the PCTV Studio
remote has additional buttons, look at the contrib/configfiles/lir-
crc.example.pinnaclestudiopctv for an example of how to define addi-
tional buttons, and how to debug potential button name conflicts
between the lircrc.example file and how [1myour [22mremote defines the button
names.
By examining the button names defined in /etc/lircd.conf and using the
[1mirw [22mprogram to make sure that your remote is working, you can create
the appropriate mappings in .lircrc to get excellent remote
functionality with MythTV.
Note the [1mrepeat = [22mparameter. This informs the irxevent program to
pass through every third keypress. By default, lirc will only send
one keypress to the application, even if you're holding down the key.
The actual [1mrepeat = [22mnumber will vary from system to system, so
experiment and see which value works best for you.
[1m8.5. Configuring lirc for use with an IR blaster[0m
Lirc has support for various IR transmitters. A popular model is the
Actisys IR-200L http://store.snapstreamstore.com/accessories.html
<http://store.snapstreamstore.com/accessories.html>. It was originally
designed for IRDA communication, but can be used to transmit A/V
remote control codes. By using the lirc SIR driver, this device can
easily be integrated with MythTV. I have tested this device with an
AT&T DCT2000 digital cable box but the instructions can be used to
configure other IRDA devices and A/V remotes.
Follow the steps in the previous section. When you run setup.sh,
select option 1, driver configuration. From here select option 6, IrDA
hardware. Select your appropriate device and the corresponding serial
port, then Save configuration & run configure from the main menu. Once
configure is done type:
$ make
Please note: unlike the Pinnacle receiver above you will be compiling
lircd in addition to a kernel module for the SIR transmitter.
Depending on whether you have your serial port driver configured as a
kernel module you might see the following message during make:
lirc_sir.c:56:2: warning: #warning
"******************************************"
lirc_sir.c:57:2: warning: #warning "Your serial port driver is compiled into "
lirc_sir.c:58:2: warning: #warning "the kernel. You will have to release the "
lirc_sir.c:59:2: warning: #warning "port you want to use for LIRC with:"
lirc_sir.c:60:2: warning: #warning "setserial /dev/ttySx uart none"
lirc_sir.c:61:2: warning: #warning
"******************************************"
If you do receive this statement make sure to run the [1msetserial[0m
command before you load the lirc_sir module. Follow this with the
install:
$ su
# make install
You will notice that lirc installs the kernel module in
/lib/modules/uname -a/misc.
The configuration for starting [1mlircd [22mdiffers if you're going to be
sending and receiving IR versus just receiving.
# cd /etc/rc.d
# cat >> rc.local
echo "Starting lircd"
setserial /dev/ttySx uart none # (if required)
modprobe lirc_sir
/usr/local/sbin/lircd
^D
# exit
$
At this point you have to populate the /etc/lircd.conf file with the
proper codes for your A/V remote. You should be able to find your
remote within the lirc remote tar file located at
http://www.lirc.org/remotes.tar.bz2
<http://www.lirc.org/remotes.tar.bz2>. In my case I extracted the file
from remotes/motorola/DCT2000 (gi-motorola-dct2000)
To test the lirc_sir module you can run [1mirw [22mto verify the codes are
being received. If everything is configured correctly you should see
something similar to the following:
$ irw
0000000000007ff0 00 1 gi-motorola-dct2000
000000000000bff8 00 2 gi-motorola-dct2000
000000000000f7f0 00 ENTER gi-motorola-dct2000
Once you've verified lirc is working you can press [1mCTRL-C [22mto exit [1mirw[0m
and configure the channel changing script.
The path to the channel changing script will need to be entered on the
mythtv-setup screen for Input Connections.
This csh script will be called each time MythTV needs to change the
channel. Below is a copy of the script followed by the corresponding
perl script. Make sure both are in your path. Also make sure you
leave the #!/bin/csh setting and not change it to Bourne or bash. This
will create a frustrating symptom to diagnose where MythTV cannot open
/dev/device. Unlike Bourne or bash, csh scripts automatically close
parent file descriptors before they start.
$ cd /usr/local/bin
# su
# cat > change_channel.csh
#!/bin/csh
echo "changing to $1"
/usr/local/bin/channel.pl $1 &
^D
# chmod a+x change_channel.csh
# exit
$ exit
See contrib/channel.pl for the actual file. Copy it to
/usr/local/bin/
The last statement within the perl script is the lirc rc command. This
is the command that transmits the code to your cable/DSS box. Make
sure to have the IRDA device within a few feet of the box.
[1m9. Configuring MythTV.[0m
By this point, all of the compile-time prerequisites have been
installed, [1mmysql [22mis running and has had its initial database setup.
It's now time to configure MythTV.
[1mNOTE[22m: If you're running Debian unstable and you have compiled
MythTV from source, you will need to install an additional package
before you will be able to run MythTV. Execute the following to
install the MySQL driver for QT.
$ su -
# apt-get install libqt3c102-mt-mysql
# exit
[1m9.1. Configuring the Master backend system[0m
Open a shell and decide where you will store your video files. This
may be one directory or multiple directories on the same or different
filesystems. There is no default directory used for new recordings,
you [1mmust [22mcreate at least one storage directory and configure Myth to
use it by running [1mmythtv-setup[22m. If you do not do this, then MythTV
will be unable to record anything. The following example is specific
for /var/video, but the same instructions would apply for any
directory name you choose to use. See the ``Advanced Partition
Formatting'' section for hints on creating a partition for MythTV.
$ su
# mkdir /var/video
# chmod a+rwx /var/video
# exit
[1mNOTE[22m: The last slash "/" is not required.
[1mTIP[22m: Try not to have your video mount point on the same partition as
your root partition, which could lead to the filling up of your root
partition with video data if the mount fails. For example:
If /var/video is created on your root partition and you then perform a
mount of another drive to this directory there won't be any problems
if everything is working the way it should. However, if the mount
fails for some reason, /var/video still exists, so MythTV will find
the directory and write files to it. If your / mount point is space
limited, /var/video will [1malso [22mbe space limited, and it won't take long
to fill the partition. This will cause a number of side-effects, most
of them bad. Instead, create subdirectories as the destination for
the storage group.
Your directory structure could then look something like this:
/mnt/video/drive1/video
/mnt/video/drive2/video
Your /etc/fstab would look like this:
/dev/hdb1 /mnt/video/drive1
/dev/hdc1 /mnt/video/drive2
Because the Storage Group path is /mnt/video/drive1/video, if the
mythbackend can only find /mnt/video/drive1 it will [4mnot[24m write files to
that share.
After you create the desired directory or directories for storing your
video files, you will need to add them to the proper Storage Group
using [1mmythtv-setup[22m. This procedure is described below in the
``Storage Groups'' section.
The first thing to configure is the Master backend system. If you are
running multiple backend systems, the Master backend will make all
decisions about which programs will be recorded on which tuners. If
you have only one backend, then it will be its own master.
The Master backend will always choose the first available tuner in the
same order as you add cards through "mythtv-setup". In other words,
the second card you add will only be used when there are two
overlapping recordings, the third when there are three, and so on.
Therefore, you will want to have the greatest amount of disk space on
the Master backend because its tuner will always be the first choice.
You will then want to add your ``other backends'' in the order of your
preference for recording.
[1mNOTE[22m: It is possible to [4mnot[24m have the cards on the Master
backend be the first ones used. However, if you are new to MythTV it
is easier to configure the Master backend first before moving on to
the Slaves, at least until you become more familiar with the MythTV
system. See ``Advanced Backend Configurations'' for information on
configuring multiple backend systems in various ways.
Because MythTV uses a database to store all configuration variables,
part of the bootstrap of MythTV is to indicate the location of the
MySQL database server. If the frontend, backend and MySQL database
server are all going to be running on the same box, you can continue
to the next step. If not, you'll need to change the Host Name in the
"Database Configuration" screen of the mythfrontend program.
[1mNOTE[22m: Users that have been running the frontend and the backend on
different machines have stated that they have been having issues with
remote access to the MySQL database. The following instructions may
or may not work. Add the following to /etc/my.cnf on the backend
machine and restart MySQL.
skip-innodb
set-variable=thread_stack=256k
Run the setup program:
$ mythtv-setup
The backend setup program will start and offer you a number of
choices. It is [4mstrongly[24m recommended that you go through them in
order.
The first question will ask if you wish to clear out your existing
configurations for your capture cards. Initially, you should say
"YES" so that there are no surprises later.
The next question will ask you if you wish to clear out your video
source information. You should answer "YES" to this as well.
Once the graphical setup starts, you'll see that there are six choices
The Storage Directories feature is available only in the SVN version
of MythTV.
1. General
2. Capture Cards
3. Video Sources
4. Input connections
5. Channel Editor
6. Storage Directories
Use the arrow keys to move around, and press the space bar to select
which option you wish to configure.
[1m9.1.1. General[0m
The first screen of the General configuration deals with IP addresses
of the system that you're running mythtv-setup on and any master
backend you may have. If you've only got one machine, then the
default values are fine and you can move to the next page by pressing
the space bar. If you need to move around the screen, use the arrow
keys to move focus between settings, not the mouse.
If you will be deploying multiple backends, or if your backend is on
one system and you're running the frontend on another machine then [4mdo[0m
[4mnot[24m use the "127.0.0.1" IP address.
[1mNOTE[22m: If you modify the 127.0.0.1 address and use a "real" IP address,
you must use real IP addresses in both fields, otherwise your frontend
machines will generate "Unexpected response to MYTH_PROTO_VERSION"
errors.
Changing any of the port settings is very strongly discouraged. (If
you do accidentally change them, the defaults are 6543 for the
master/backend server, and 6544 for the HTTP requests)
Once you're satisfied with the values, move the focus down to Next and
hit the space bar.
The next screen details the Host-specific Backend setup. This is
where you will set the specific directory paths for this particular
backend. Make sure that you've followed the steps at the beginning of
this section and created a directory that exists and that MythTV will
have write privileges to. When you're done, press Next to continue,
taking you to the Global Backend Setup.
On the Global Backend Setup configure your backend with the
appropriate settings. Use the left and right arrow keys to iterate
through the choices available on each setting, and the up and down
keys to move between settings. Move to Finish when you're done and
press the space bar, taking you back to the main configuration screen.
[1m9.1.2. Capture Cards[0m
You should have no capture cards defined, so the highlight will be on
(New Capture Card). Press space to begin.
Choose the appropriate settings for your particular tuner. Use the
arrow keys to move around and to make your choices, and press RETURN
when complete. Pressing RETURN will take you back to the Capture
Cards screen; if you have additional capture cards in this machine,
press the space bar when the highlight is on the (New Capture Card)
row to define another card.
If you have made a mistake, you can delete a card by highlighting it
and pressing the 'D' key, or you can highlight it and press the RETURN
or 'E' key to edit it.
Once you have no additional cards to setup, press ESC.
[1mNOTE[22m: If you have a dual digital/analog card, such as the pcHDTV
cards and some DViCO cards, then you should not configure this as two
separate cards. Configure the digital portion as a DVB card, then
click on the "Analog Options" button within the DVB configuration
panel for the card and configure the analog portion of the card there.
[1m9.1.3. Video Sources[0m
When you start, the highlight should be on (New Video Source). Press
the space bar to begin. The first field asks for the name of the
video source. You may choose something easy to remember, like
"Antenna" or "Cable". Once you've chosen a name, press the down arrow
to move to the next field.
If you're in North America, change the grabber to
"SchedulesDirect.org(Internal)", then continue pressing the down arrow
to move to the next field. Fill in the username (lowercase only) and
password that you have established with Schedules Direct, then move to
the "Retrieve Listings" button and press the space bar.
[1mNOTE[22m: You need [1mwget [22mversion 1.9.1 or higher to use Schedules Direct.
The mythtv-setup program will contact the Schedules Direct servers and
get your account information. Once you're done, you may click the
Finish button and skip the next few paragraphs in this document since
they only apply to users that are using the external XMLTV script to
get their guide data.
If you wish to continue using the XMLTV grabber, then move to the
Zip/postal code field and put in the appropriate value.
If you're outside of North America, then some manual interaction will
be required with XMLTV. You may need to switch from the MythTV setup
program to the console it was run on to interact with XMLTV.
Once you have chosen your provider, press RETURN to continue. XMLTV
will now begin collecting the initial data for your location. The
screen may blank for a few seconds to several minutes, depending on
the load of the listings provider and the speed of your connection to
the Internet. Be patient!
You will then be returned to the Video Sources screen. If you have
multiple video sources available, such as Antenna, Cable, etc, go
ahead and define them all, even if they're not all going to be
physically connected to the master backend server. Once you're done,
press ESC to return to the main screen.
[1m9.1.4. Input Connections[0m
The final configuration item is Input Connections. On this screen,
you will associate the various video sources you defined earlier with
a physical input to a encoder card. It's entirely possible that you
have multiple tuners, and each tuner has a different input, so on this
screen you let MythTV know which device will connect to which input
source.
When you start this screen, you should see a listing of the various
input connections available on each of the Capture cards you defined
earlier. For example, you may have a capture card with a tuner, a
SVideo and a Composite connection. If you wanted to associate the
tuner (a.k.a., "Television") with an "Antenna" source you defined in
Video Sources, you would move to the /dev/videodevice (Television) ->
line and press the space bar. Using the left and right arrow keys
will show you the various choices you have already created for video
source. In our case, you would use the left/right cursor keys until
"Antenna" was shown in the Video Source field. Press down to move to
the next setting.
On the connection pane there is a "Scan for channels" button, if you
are configuring a digital source such as a DVB card, you need scan for
channels and you must do this before pressing the "Fetch channels from
listings source" button. You may scan for analog channels on an analog
input, but this is not needed.
The other button is called "Fetch channels from listings source". As
long as you have a real listings source you should fetch channels from
them for analog channels. You can do this for digital sources as well
(unless the listing source is transmitted EIT data). If you are using
XMLTV, you may need to switch from the MythTV setup program to the
console it was run on to interact with XMLTV after pressing this
button. It is possible to fetch the channels on the command line using
mythfilldatabase. But if you need to do this, you will probably need
to re-enter the MythTV setup program to configure the "Starting
channel" setting for this source->input connection.
[1mNOTE[22m: If you have a Hauppauge PVR-500, you must think of
it has two PVR-150's on a single PCI card. For example, if you have a
single PVR-500 card, it will appear as /dev/video0 and /dev/video1.
Each /dev/video device will have a Tuner input. Once you're done,
press RETURN to go back to the Input Connections screen. You would
then finish associating the video sources to any other hardware
devices you have available.
[1mNOTE[22m: Don't add a video source to a hardware input if you don't
actually have anything connected there. For example, adding "Cable"
to the Tuner and to the Composite inputs without having something
connected to Composite will lead to blank recordings.
Press ESC to return to the main menu, and press ESC again if you have
no further items to configure, thereby returning you to the command
line.
[1m9.1.5. Channel Editor[0m
The channel editor is used to globally alter channel information,
including items like hue, contrast, fine tuning and others. Users in
North America shouldn't run the channel editor until you've completed
the initial mythtv-setup and ran [1mmythfilldatabase [22mat least once to
populate the database.
[1m9.1.6. Storage Groups[0m
New in MythTV 0.21
[1m9.1.6.1. Introduction.[0m
Storage Groups are lists of directories that are used to hold MythTV
recording files giving you a flexible way to allow you to add capacity
to your MythTV system without having to use exotic solutions such as
LVM, filesystem expansion or RAID Online Capacity Expansion. You can
also use Storage Groups to organize recordings and to put recordings
of a certain type into one subdirectory.
Storage Groups do not offer redundancy in case of hard drive failure,
but unlike LVM, if you lose a hard drive, you only lose the recordings
that were on that drive. With LVM, if you lose a hard drive, you will
most likely lose [1meverything[22m.
[1m9.1.6.2. How to use Storage Groups.[0m
By default, there is only one Storage Group called "Default", and it
is used for all recordings and Live TV.
[1mNOTE[22m: You need to add at least one directory to the Default
Storage Group or else you will not be able to record anything with
MythTV.
For example, if you have 5 hard drives in your system, your first hard
drive could be your "boot" drive, and the remaining four could be
dedicated to media storage. You could format the drives and mount them
as /mnt/store/d2, /mnt/store/d3, /mnt/store/d4 and /mnt/store/d5.
Within each mount point, it's [4mstrongly[24m recommended that you use a sub-
directory and make that the destination path for the Storage Group.
See the ``Tip'' in the "Configuring the Master backend" section for
additional information.
You would then add the four subdirectories you created under the mount
points (/mnt/store/d1/video, etc) into the "Default" Storage Group.
At recording time, if there were four simultaneous recordings, MythTV
would put one recording onto each drive.
Or, say that you originally installed MythTV to a 80GB hard drive, and
that hard drive is now filling up. You could simply add a new drive
to your system, mount it and update the Storage Group to add
additional space.
You may create additional Storage Groups to store specific recordings
in their own directories. Storage Groups are edited via the 'Storage
Directories' section of mythtv-setup.
You can also create multiple Storage Groups to group recordings
together; recording schedules now have an option to specify which
Storage Group to use.
MythTV will balance concurrent recordings across the available
directories in a Storage Group in order to spread out the file I/O
load. MythTV will prefer filesystems that are local to the backend
over filesystems that are remote until the local filesystem has 2
concurrent recordings active or other equivalent I/O, then the next
recording will go to the remote filesystem. The balancing method is
based purely on I/O, Myth does not try to balance out disk space
unless a filesystem is too low on free disk space in which case it
will not be used except as a last resort.
Storage Groups are global, but can be overridden on a slave backend by
creating a local Storage Group by running [1mmythtv-setup [22mon the slave.
If a problem occurs and the slave backend is unable to use the desired
Storage Group, it will fail back and try the directories defined in
the master's Storage Group.
There's also a special 'LiveTV' Storage Group, but the directory list
starts out empty. If you add a directory to the Storage Group, it
will be used instead of putting LiveTV recordings in the Default
Storage Group. This will allow you to put your LiveTV recordings on
their own filesystem, which is similar to the old MythTV method which
used a RingBuffer for LiveTV. Of course, you don't have to do
anything, and Live TV recordings will just go into the Default Storage
Group where they'll be the first programs eligible for expiration if
the system needs free space for recordings.
Usage information for all Storage Group directories is visible on the
mythfrontend status screen as well as the mythbackend status webpage.
MythTV is smart enough to determine which directories are on shared
filesystems so it should not count free or used space multiple times
if you have more than one directory on the same filesystem.
[1m9.1.6.3. Migrating to Storage Groups.[0m
Migrating to Storage groups is very simple: if you have existing
recordings in a storage directory, then the system will automatically
add that directory to the Default Storage Group. If you then add
additional directories to a storage group, the system is flexible
enough to check [4mall[24m Storage Groups for a file before deciding that it
can't be found, which means that you can use the [1mmv [22mcommand from the
Unix command line to arrange files however you'd like.
[1m9.1.6.4. Advanced: Algorithm used by the Storage Group[0m
This section details the logic of the Storage Group allocation engine.
The current load-balancing preferences (in order) are:
+o Local filesystems over remote
+o Less-busy (less weight) over more-busy (more weight)
+o More Free Space over Less Free Space
The 'business' of a filesystem is determined by weights. The following
weights are added to a filesystem if it is in use for the following
things:
+o recording = +10
+o playback = +5 (mythfrontend)
+o comm flagging = +5 (mythcommflag)
+o transcoding = +5 (mythtranscode)
If a recording is due to end within 3 minutes, it is not counted
against the weight of a filesystem. This is done to account for the
pre/post-roll and start-early/end-late settings.
[1m9.2. Post-configuration[0m
Run the mythfilldatabase program as directed. The master backend will
obtain guide data for all the video sources you defined during setup.
[1mNOTE[22m: If you are using Schedules Direct and watching the output
messages on the console or the log file it is normal to see a "401
Unauthorized" error followed by a "200 OK" when the connection to
Schedules Direct is being established.
From : Sun Jun 13 05:00:00 2004 To : Mon Jun 14 05:00:00 2004 (UTC)
--02:58:01--
http://datadirect.webservices.zap2it.com/tvlistings/xtvdService
=> -'
Resolving datadirect.webservices.zap2it.com... 206.18.98.160
Connecting to datadirect.webservices.zap2it.com[206.18.98.160]:80...
connected.
HTTP request sent, awaiting response... 401 Unauthorized
Connecting to datadirect.webservices.zap2it.com[206.18.98.160]:80...
connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
[ <=> ] 114,125 63.57K/s
02:58:03 (63.53 KB/s) - -' saved [114125]
Your subscription expires on 08/20/2004 12:00:00 AM
Grab complete. Actual data from Sun Jun 13 05:00:00 2004 to Mon Jun 14
00:00:00 2004 (UTC)
Once mythfilldatabase has finished, start the master server before
continuing.
$ mythbackend
mythbackend will print information about connections and what it's
doing to the console. If you'd like to see the options that are
available for mythbackend, type mythbackend -h for help.
As of MythTV v0.21, the available options are:
$ mythbackend --help
Valid options are:
-h or --help List valid command line parameters
-l or --logfile filename Writes STDERR and STDOUT messages to filename
-p or --pidfile filename Write PID of mythbackend to filename
-d or --daemon Runs mythbackend as a daemon
-v or --verbose debug-level Use '-v help' for level info
--printexpire List of auto-expire programs
--printsched Upcoming scheduled programs
--testsched Test run scheduler (ignore existing schedule)
--resched Force the scheduler to update
--nosched Do not perform any scheduling
--nojobqueue Do not start the JobQueue
--noautoexpire Do not start the AutoExpire thread
--version Version information
Running mythbackend as a daemon and using the logfile option will
allow you to have mythbackend automatically start up during boot. You
can follow the steps outlined in the section called ``Automatically
starting mythbackend at system boot time'' for configuration steps.
If you enable the -l parameter, you will want to keep your logfiles
rotated (so that they don't fill up a partition). See the section
called ``Automatically rotating logs'' for more information.
[1m9.3. Configuring a non-master backend[0m
Ensure that you've granted access to the master MySQL database for
remote backends as discussed in the section titled ``Modifying access
to the MySQL database for multiple systems'' and that you have the
correct IP address for the database server in the "Database
Configuration" screen of the mythtv-setup application on this slave
backend.
[1mNOTE[22m: Slave backends [1mmust not [22mrun a local MySQL
daemon. By default, they will connect to their local daemon rather
than the central database, causing unexpected behavior such as empty
"Watch Recordings" lists and a failure to locate the Video Sources
defined on the master backend. Modify the
/usr/local/share/mythtv/mysql.txt file on all slave backends to ensure
that the DBHostName has the address of the MySQL server. Caveat: You
may make a slave backend the primary MySQL server, or run a non-MythTV
database on a slave backend as long as you have edited the mysql.txt
file on [1mall [22msystems and made it consistent. There can be only one
authoritative MySQL database in a MythTV system - errors such as the
one above ensue if backends and frontends have differing ideas of
which MySQL database they should talk to.
Make sure that the IP addresses on the General setup screen are
accurate. If the slave backend can't communicate with the master
backend due to IP address misconfiguration then MythTV will not
function properly.
Configuration of a non-master backend follows the same general
procedure as that of the master backend, with the exception that you
skip over the "Video Sources" step. All possible video sources need
to be defined on the master backend system; only the master backend
will query a listings provider to obtain guide data for all the non-
master backends.
[1mNOTE[22m: Do not run mythfilldatabase on a non-master backend.
[1m9.4. Configuring and running mythfilldatabase[0m
[1mNOTE[22m: [1mmythfilldatabase [22mmight take a while to complete,
depending on any number of factors, most of which you can't control.
It's best to just let the program run to completion. [1mmythfilldatabase[0m
[1m--help [22mwill give a full listing of the options available.
[1mmythfilldatabase --manual [22mis another option; the manual option will
allow you to fine tune channel frequencies and specify which channels
will be added to the database.
[1mmythfilldatabase --file [22mis an option if there isn't an XMLTV grabber
for your country, but you [1mdo [22mhave an XML formatted listings file
created by some other program.
[1mmythfilldatabase --xawchannels [22mis an option if you have used [1mxawtv [22mto
fine-tune your channels and would like to import the fine tuning
offsets into MythTV.
[1mmythfilldatabase --refresh-today [22mwill only pull guide data for today
(in case of late-breaking changes to the schedule).
[1m9.4.1. Periodically running mythfilldatabase[0m
In order to keep your database filled, [1mmythfilldatabase [22mshould be run
once a day.
To use MythTV's built-in capability, you'll need to run the
[1mmythfrontend [22mSetup option. From the mythfrontend, enter the
Setup>General screen and advance to "Mythfilldatabase", the fourth
screen. Select the checkbox, then complete the options as you see
fit. The [1mmythbackend [22mprogram will now run [1mmythfilldatabase [22mfor you.
[1m9.5. Grabbing channel icons for Schedules Direct users[0m
While the Schedules Direct TV listings service has several advantages,
it does not support grabbing logo icons for the stations you receive.
However, there are utilities provided with MythTV which you may use to
grab your initial set of icons and to keep them updated if your
lineups change.
First, you need to generate or obtain an XML file with the information
for your stations.
If you have XMLTV software installed, there is a perl script in
MythTV's contrib/ directory which will generate this file for you. Run
the command:
$ perl mkiconmap.pl
You will be asked for your zip code and the service that you use. If
there are no errors, the iconmap.xml file that you need for the next
step will be created.
If you do not have XMLTV software installed and do not want to install
it for the sake of this minor task, there is a generic
contrib/master_iconmap.xml which you can copy and use but this may not
be as complete as using the specific information for your service.
Once you have an iconmap.xml file, add the icon information to your
database and grab any new icons with the command:
$ mythfilldatabase --import-icon-map iconmap.xml --update-icon-map
[1m10. Configuring mythfrontend.[0m
Once you have completed configuration of your backend systems, the
next step is to configure the frontend client.
When you start mythfrontend for the first time, it will attempt to
connect to a configuration database on the local machine. If there is
none, a "Database Configuration" screen will appear, and you will need
to fill in some details. The "Host name" field needs the backend or
database server's IP address or DNS name, and the User or password
fields may need to be set to match your database user accounts. After
editing those fields, press Enter twice to write these configurations
on your local machine, and attempt to connect to the database. If you
make any mistakes, the screens will pop up again.
Now that mythfrontend has started up, you should have a number of
buttons/choices. Before doing anything, go to TV, then to Setup and
configure the frontend client.
[1mNOTE[22m: You should go through the various setup screens in
mythfrontend before using any other modules to ensure that the the
database is correctly initialized.
[1m10.1. General[0m
The General screen has configuration items that don't really fit
anywhere else. The first few configuration items ask you to indicate
the number of seconds to record before or after a program, which is
useful if the broadcast network or your system clock are out of sync
and will help prevent you missing the beginning or end of a program.
To change the value, use the left and right arrow keys to increment
and decrement the number of seconds. When you're satisfied with the
result, use the down arrow to put the input focus on the Next button
or press RETURN to continue to the next page.
The next page has a number of options to do with how channels are
displayed on your system. The help text will give you more
information. Move the focus to Next and press the space bar to
continue.
The last General page sets up some final configuration items. See the
help text for more information.
[1m10.2. Appearance[0m
This set of screens is mostly concerned with how MythTV will look on
your system. From here, you can choose different themes and set the
resolution of your system.
[1m10.3. Program Guide[0m
Fairly self explanatory. Note that the alternate program guide does
not use the same font settings as defined in Appearance, so if the EPG
is unreadable this is where you make the adjustments to fonts, number
of elements displayed, etc.
[1m10.4. Playback[0m
The one configuration item which may cause problems on your system is
the "Deinterlace playback" setting. MythTV uses a linear blend
algorithm for deinterlacing, which will improve how the image looks on
your screen. Deinterlacing requires that your processor support SSE.
(Streaming SIMD Extensions, aka "MMX2"). Early Intel Celeron (those
that don't use the Coppermine 0.18um core and are usually <600MHz),
Pentium Pro and Pentium II CPUs do not have SSE, so make sure you
haven't enabled deinterlacing if your processor doesn't support it. If
you enable it, and your processor doesn't support SSE, you will get
"Illegal Instruction" errors.
To determine if you've got SSE on an Intel processor, you can:
$ cat /proc/cpuinfo
[snip]
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr sse
Notice the [1msse [22mat the end of the line - this tells you that this
processor will be able to deinterlace correctly.
On an AMD processor, look for "3dnow" in the cpuinfo line; "3dnow" is
AMD's implementation of SSE instructions, so if your processor has
3dnow you shouldn't have any issues with deinterlacing.
[1m10.4.1. Video Filters[0m
MythTV provides a means of employing video filters while recording and
during playback. These filters can be used to improve or modify the
video image, including hiding the effects of an interlaced image or
reducing the impact of noise in a poor video signal. The following is
a brief introduction to introduce you to the filters that are
available in MythTV version 0.20 and higher.
[1m10.4.2. Applying filters[0m
One or more filters can be included in a "filter chain". The filters
to be used are identified in a "filter string". A filter string is a
group of filter names and parameters separated by commas. To include
parameters, the filter name is followed by "=" and the parameter
information. There should be no spaces in the filter string. Here is
an example filter string:
With parameters: kerneldeint=10:1,denoise3d=12
Without: kerneldeint,denoise3d
Recording filters are set for each individual channel. These may be
used when encoding in software (MPEG-4, RTjpeg) but do not apply when
using a capture card with hardware encoding such as those supported by
the ivtv driver, DVB, HDTV or MJPEG cards. You can run MythTV's
"setup" program and select the "Channel Editor". On the first page for
each channel, you can enter a filter string in the box titled "Video
filters". If you are running "mythweb" on your web server, you can
click on "Settings" then "Channels" and enter filter strings in the
"videofilters" column.
Playback filters are per-host and apply to any recording you watch
from the frontend where filters have been applied. Playback filtering
can only work with software decoding so the viaslice, xvmc, and ivtv
outputs ignore filters entirely. From "mythfrontend" go to Setup->TV
Settings->Playback. Enter your filter string in the box titled
"Custom Filters".
[1m10.4.3. Currently Available Filters[0m
"Deinterlace Playback" checkbox.
This implements special behavior needed for the "bobdeint" filter but
can also be used to choose any of the deinterlace filters. If you
prefer, you may leave this unchecked and include any of the
deinterlace filters, other than "bobdeint", in your custom filter
chain.
o The "invert" filter
Invert ignores any parameters and inverts the pixel values of the
video frames. In other words, a negative image. This would rarely be
useful but may be a good example to verify that your filter strings
take effect.
o The "linearblend" filter
It is a simple deinterlacing filter that ignores parameters and works
by blending adjacent lines. It replaces combing in interlaced video
with a less distracting "ghost" image.
o The "bobdeint" filter
This filter splits the interlaced image into two separate fields that
can be line doubled then displayed at twice the frame rate. If the
display is at the same refresh rate as the recording (59.92Hz NTSC or
50Hz PAL) this will cause each refresh to show objects in motion in a
new position with no jagged edges. However, if the display is not
synchronous, it will cause flickering or the appearance of the picture
moving up and down by one line.
[1mNOTE[22m: This filter requires the frame rate to be doubled
and therefore can only be used with the "Deinterlace Playback"
checkbox. Do not include this in your filter chain.
o The "kerneldeint" filter
Kerneldeint is a more complex deinterlacing filter which applies a
filter kernel using input from several lines. It generally removes
combing without a "ghost" image, sometimes leaving a faint outline of
the image from the other field. It is considered to be less
distracting to watch than linearblend or no filter at all. It accepts
one or two integer parameters separated by a colon.
The first parameter is the filter threshold and defaults to 12.
Adjacent lines differing by more than the threshold value are
filtered. The second option defaults to 0. If set to a non-zero
value, it will cause the filter to skip chroma, and filter only the
luminance. It may be useful on some capture cards which do not
capture the chroma fields of interlaced video correctly.
o The "onefield" filter
This is a simple one-field deinterlacing filter that uses only one
field of the interlaced video. By default it keeps the top field,
though passing the parameter "bottom" will cause it to keep the bottom
field instead.
This filter is primarily useful for those who display 1080i HDTV
signals with a video mode that has 540 pixels vertically. The
advantage over other deinterlacing filters is that scenes with motion
never show combing or ghosting.
o The "adjust" filter
This filter adjusts the digital values for luma and chroma to ensure
that they will fall within the ranges specified in the ITU-R601
standard. By default, this corrects a known problem for the luma range
used by bt8x8 chips which causes video to look washed out. If
parameters are passed, there need to be exactly six. However, passing
a single parameter of "-1" will disable the filter.
1: luma minimum input value (int) 2: luma maximum input value (int) 3:
luma gamma correction (float) 4: chroma minimum input value (int) 5:
chroma maximum input value (int) 6: chroma gamma correction (float)
The default bt8x8 correction values are equivalent to
"16:253:1.0:2:253:1.0". Output ranges are fixed at ITU-R601 values
(16-235 luma, 16-240 chroma).
[1mNOTE[22m: If it is not already specified in the filter chain, this filter
will be automatically applied when recording with the "bttv" driver.
o The "quickdnr" filter
A fast temporal denoiser. This can take 1, 2 or 4 parameters, each
being a value from "0" for the least filtering to "255" for the
greatest filtering. With one parameter, the filter will compute the
values it should use for all of its variables. Two parameters will set
the filter strength for luma and chroma independently. If you are
interested in how the algorithm works, you may examine the source code
to see how four parameter are used.
o The "denoise3d" filter
A slower denoiser that applies a spatial and temporal low-pass filter.
The spatial filter can remove some noise that quickdnr can't, but a
more powerful CPU is needed. This filter accepts 3 float parameters:
+o luma spatial filter strength
+o chroma spatial filter strength
+o luma temporal filter strength
Reasonable defaults will be selected for omitted parameters. The
chroma temporal filter strength is calculated from the other filter
strengths.
o The "crop" filter
Covers edges of video with black bars. This helps improve video
quality when the edges of the frame are distorted. By default, this
removes 16 pixels from each edge. This can optionally take four
parameters representing top:left:bottom:right. The number times 16 is
the number of pixels to remove so, for example, the default is
"=1:1:1:1".
o The "forceyv12" and "forceyuv422p" filters
These force the filter manager to use the given format. You can use
one of these at the head of a filter chain to change the capture
format. The most likely use would be forceyuv422p to use YUV422P
capture on cards with known chroma interlacing problems with YV12.
There are some filters included in the MythTV source code that should
not be used:
o The "forcergb24" and "forceargb32" filters
The two RGB formats should not be used because there is no conversion
filter for them yet.
o The "convert" filter
It exists but don't use it. The filter manager uses this filter
automatically when it is unable to match the input/output formats of
two adjacent filters.
o The "postprocess" filter
While this exists in MythTV source code, it is currently not
recommended for use.
[1m10.4.4. Usage Considerations[0m
There are trade-offs to consider when deciding if it would be wise to
use a filter. Any processing will modify the original image so you
should assess if the filter has made a noticeable improvement to the
picture in order to justify the impact of the processing. Adding any
filter will inherently increase CPU usage. The impact can vary
dramatically depending on your CPU type and speed, the resolution of
the recording, which filters you are using and other factors. You can
only determine what is right for you through experimentation. However,
as a starting point, here are some filter strings that you may find
useful:
For typical broadcast stations: "kerneldeint,quickdnr"
For stations with poor signal quality: "linearblend,denoise3d=12"
For synchronous TV-out: check Deinterlace with "Bob (2x framerate)"
[1m10.5. Recording[0m
Depending on your capture card, MythTV offers different video
encoders. The following types of hardware encoding cards are
supported:
+o MJPEG - Zoran-based cards; see http://mjpeg.sourceforge.net
<http://mjpeg.sourceforge.net>
+o MPEG-2 - iTVC15/16 based cards (Hauppauge PVR-250/PVR-350); see
http://ivtvdriver.org <http://ivtvdriver.org>
+o HDTV - pcHDTV cards; see http://pchdtv.com <http://pchdtv.com> and
the Air2PC-ATSC-PCI see
http://www.cyberestore.com/product_info.php?cPath=28&products_id=103
<http://www.cyberestore.com/product_info.php?cPath=28&products_id=103>
+o DVB - cards supporting DVB; see http://linuxtv.org
<http://linuxtv.org>
For cards without hardware encoding capabilities (all cards
supported by V4L not listed above), Myth includes two methods for
software encoding: RTjpeg and MPEG-4. RTjpeg has significantly
fewer CPU demands than MPEG-4, but it generates larger files than
MPEG-4 for a given recording.
For DVB and HDTV cards, no further configuration is required after
setting up the card using the 'mythtv-setup' program. For all other
cards, configuration is done through MythFrontend. Selecting
'Recording Profiles' from the 'TV Settings' screen will list the
profiles currently available for the cards in your system. Depending
on what types of cards you have installed you may see:
(Create new profile group)
Software Encoders
Hardware MPEG Encoders
Hardware MJPEG Encoders
Transcoders
The '(Create new profile group)' option will allow you to create cus-
tom profiles in case you have multiple backends. Note that custom
profiles are per backend and card type. If you have 2 MPEG-2 encoders
in a given backend system, creating a custom profile will affect both
of them. This option should not be needed otherwise.
The 'Transcoders' group is a little different from the others.
Selecting this group will result in a menu with the following options:
'RTjpeg/MPEG-4' and 'MPEG-2'. These types indicate what transcoder
options will be used for a given input type (i.e. the 'MPEG-2'
settings would be used to transcode MPEG-2 files into MPEG-4. The
source of the MPEG-2 stream (DVB, HDTV, or PVR-x50) does not matter.
Configuration of the options is the same as below (although any
resolution settings will be ignored).
Selecting any of the other options will show a new screen with a list
of four profiles:
+o Default
+o Live TV
+o Low Quality
+o High Quality
The Default profile will be used for any recording which does not
otherwise have a specific profile assigned. The 'Live TV' profile will
be used when watching TV. The remaining two profiles are available
for customizing to allow for more precise control over what quality is
used for a given program.
Selecting a profile will allow you to adjust the relevant options for
that card. The most significant setting is the recording resolution,
but you can also choose encoding format, audio format, and tweak other
encoder specific properties.
[1mNOTE[22m: although the width and height can be changed to almost
anything, if you start MythTV and don't see video or you get
"segmentation fault" errors, it is likely that the video4linux (v4l)
subsystem did not like the height and width parameters specified.
It's best to leave the default as-is until you're sure that MythTV is
operational.
See the ``What capture resolution should I use? How does video work?''
section for more information.
[1m10.6. Xbox Frontends[0m
MythTV is able to control the LED on the Xbox to indicate backend
recording status.
To control the LED, you will need the [1mblink [22mprogram from the xbox-
linux project, which is installed as /bin/led on GentooX. On Xebian
(the new Ed's Debian) you must install it yourself. On other
distributions it may or may not be installed as a program called [1mblink[0m
and should be located in your path. (Type which blink to see if the
program is available.) If you do not have [1mblink[22m, you may obtain it
from the Xbox-Linux project site at http://xbox-linux.sf.net/
<http://xbox-linux.sf.net/>. The program you need is part of the
eds_i2c_staff module in CVS. Note the spelling.
Once you have installed [1mblink [22myou will need to set permissions. [1mblink[0m
needs write permission to the i2c device to function properly. There
are three methods to accomplish this. First, you could run
mythfrontend as root, which is the simplest method, but could
potentially be a security risk. Next, you may make the [1mblink [22mbinary
setuid root, which allows non-privileged users to run a program with
root capability. This is done by typing the command:
$ su
# chmod u+s /path/to/blink
The final technique would be to set the /dev/i2c/0 device read/write
for all users, but this is the least preferred method.
Now it's time to setup MythTV for Xbox hardware. Enter Setup ->
General. On the second page check the 'Enable Xbox Hardware' option.
Upon reentering the settings, you should have a new option named
'Xbox'. Within this option you may select the distribution, LED
colors for recording and the update interval. If you select GentooX
as the distribution [1mled [22mwill be used as the [1mblink [22mbinary name,
otherwise, [1mblink [22mis used. Colors should be self explanatory. The
update interval determines how often the frontend should poll the
backend to determine if the status has changed.
[1m11. Using MythTV.[0m
[1mNOTE to Red Hat/Fedora 4 users[22m: Red Hat Linux and Fedora Core ship
with Gnome as the default desktop environment. However, Gnome seems
to have issues with window focus and window switching which sometimes
cause mythfrontend to obscure the video. KDE does not seem to have any
such issues. Therefore you will need to switch to KDE by selecting
RedHatMenu>Extras>System Settings>Desktop Switching Tool and choose
"KDE". [1mNOTE to Fedora Core 5 and 6 users[22m: Fedora 5 and 6 no longer
have this tool in the Menu. Use "switchdesk KDE" from a command line.
Read "man switchdesk" for further information about changing to other
desktop environments.
[1m11.1. Keyboard commands[0m
The keys.txt file describes what the various keyboard commands are.
If you have loaded mythweb, you may change the default keys to your
liking.
[1m11.1.1. mythfrontend[0m
Arrow keys used to move the highlight point around
ALT-F4 exit out of the application
Space/Enter take action on the item under the highlight point
P play in both "Watch a Recording" and "Delete a Recording"
D delete in both "Watch a Recording" and "Delete a Recording"
U to view details for the currently selected show on the Watch or Delete screens, EPG, "Program Finder", "Fix Scheduling Conflicts" and search results screens
O to list the upcoming episodes for the currently selected show on the EPG, "Program Finder", "Program Recording Priorities", "Fix Scheduling Conflicts" or search results screens
I edit recording options from the EPG, "Program Finder", "Program Recording Priorities", or "Fix Scheduling Conflicts" screens. From the Playback and Delete screens, 'I' presents options for recorded shows such as Auto Expire or Stop Recording. Pressing 'I' while on the Recording Options screen will take you to the Advanced Recording Options screen.
[1m11.1.2. Watching TV or a recording[0m
Up or down keys change the channel
num pad Type a number to enter a channel number or jump amount (HHMM format)
P pause / play. You may also add an explicit keybinding for 'Play' through MythWeb, returning you to normal speed if you are in slow motion, rewind fast forward or pause mode.
C change inputs on TV Tuner card
ESC quits
I puts the On-screen Display up again. During playback, 'I' toggles between position and show description info. If a jump amount is entered, jump to that position.
M brings up the electronic program guide (Grid) -- see the EPG section
Page Up jump back the configured number of minutes (default is 10)
Page Down jump ahead the configured number of minutes (default is 10)
End or Z skip to next commercial break marker
Home or Q skip back to previous commercial break marker
T toggle close caption support Pressing 0-9 (preferably 3 times) + T changes teletext page and turns on teletext.
F rotate between the various Picture Adjustments (Colour, Hue, etc.) While Picture Adjustment is on-screen, use Left and Right arrows to adjust. These settings adjust the look of the video playback, and are independent of the G-key settings used at record-time.
[ or F10 decrease volume
] or F11 increase volume
or F9 toggle mute
/ jump to the next "favorite" channel
? mark/unmark the current channel as a "favorite"
U increase the play speed
J decrease the play speed
A Adjust time stretch (speed up or slow down normal play of audio and video
W cycle through zoom and fill modes: 4:3 aspect ratio, 16:9, 4:3 Zoom (like Pan and Scan), 16:9 Zoom, and 16:9 Stretch (eliminates black sidebars in TV signal)
F8 toggle the sleep timer 30m->1hr->1hr30m->2hr->Off
CTRL-B Jump to the beginning of the recording / ringbuffer
+ Switch between audio streams
Left (if a jump amount is entered) to jump back that amount
Right (if a jump amount is entered) to jump ahead that amount
[1mWithout the stickykeys option selected[0m
Left rewind the configured number of seconds (default is 5)
Right fast forward the configured number of seconds (default is 30)
< starts rewind mode as if stickykeys are selected
> starts fast forward mode as if stickykeys are selected
[1mWith Stickykeys option selected[0m
Right starts fast forward mode
Left starts rewind mode
[1mIn fast forward or rewind mode:[0m
Left/Right increases the ff/rew speed
0 plays at normal speed, but leaves the time indicator on screen
1 or 2 plays back more slowly than normal ff/rew speed (1 is slowest)
3 plays back at normal ff/rew speed
4-9 plays back faster than normal ff/rew speed (9 is fastest)
Space exits fast forward or rewind mode
[1mWhile video is paused:[0m
Left rewind 1 frame
< rewind 1 second
Right advance 1 frame
> advance 1 second
[1m11.1.3. Watching TV only[0m
G rotate between the various Picture Adjustments (Colour, Hue, etc.) for recording. These values affect the look of the resulting .nuv file, and are independent of the playback picture settings. While Picture Adjustment is on-screen, use Left and Right arrows to adjust.
H Channel history. Each repeat steps back through the previous channels.
O Turns on 'Browse' mode, allowing user to browse channels and program info while watching current show FullScreen.
Y switch between multiple capture cards. [1mNOTE[22m: you will lose your LiveTV buffer on your current card. Useful for different-sourced cards (such as Dish Network on one, HDTV over-the-air on another card.)
[1m11.1.4. LiveTV Browse Mode[0m
Left browse program prior to current listed program
Right browse program following current listed program
Up browse program on channel above current listed channel/program
Down browse program on channel below current listed channel/program
/ browse program on next favorite channel
0-9 enter a channel number to browse
Space/Enter change channel to channel of current listed program
R/r Toggle recording of current program (cycles through types)
ESC/O Exit Browse mode
[1m11.1.5. Playback Recording Zoom Mode[0m
Left Move video to Left
Right Move video to Right
Up Move video Up
Down Move video Down
PageUp Zoom In
PageDown Zoom Out
Space/Enter Exit Zoom mode leaving picture at current size and position
ESC Exit Zoom mode and return to original size
[1m11.1.6. If you have two or more tuner cards[0m
V toggle Picture-in-picture on or off
B toggles the window focus (lets you change channels on the PiP window)
N swaps the two channels by changing channels on both cards
[1m11.1.7. Watching a recording only[0m
Space/Enter set a bookmark at that point. Next time you start the recording, you will automatically jump forward to this point and clear the bookmark.
X queues the current recording for transcoding
O brings up menu to allow toggling settings such as Commercial Auto-Skip, Auto-Expire, etc.
D exits the current recording and displays the Delete menu
E or M enters/exits edit mode.
[1mIn edit mode[0m
Left/Right move forward and backward
Up/Down alter the amount of time you jump forward and backward. Increments are: nearest cutpoint, nearest video keyframe, 1 frame, 0.5 seconds, 1 second, 20 seconds, 1 minute, 5 minutes, and 10 minutes.
PageUp/PageDown move forward and backward to the nearest cut point
< or > move forward or backward by 10 times the normal jump amount
Space/Enter allows you to set or delete a cut point
Z loads the commercial skip list (if one exists) into the cutlist
C or Q clear all cut points in the cutlist
I Inverts the cutlist
[1m11.1.8. EPG[0m
Arrows are used to move the highlighted program point around
A, D, S, W perform the same as left, right, down and up
PageUp/PageDown move the channel list up or down a page
Home/End move the highlight left or right by one day
Ctrl+Left or < move the highlight left by one page
Ctrl+Right or > move the highlight right by one page
9, 3, 7, 1 (like a numeric keypad) perform the same as PageUp, PageDown, Home and End
I bring up more information about a show, and allow you to schedule a recording. If you select "Record this showing" while watching Live TV you can "Instant Record" a program.
Space/Enter allow you resolve conflicts or change overrides. If the program is not already scheduled to record, it will instead act like pressing 'I'.
M when on a channel will change to that channel
ESC or C exits without changing the channel
R change the current item from Recording/Not-Recording. Successive keypresses cycle through the scheduled recording type list.
X change the channel to the currently selected channel without leaving the EPG (Most useful in the alternate EPG)
? mark/unmark the current channel as a "favorite"
/ or 4 toggle the guide listing between all channels and filtered "favorites"
[1m11.1.9. Setting Program or Channel Recording Priorities[0m
Right increases priority value
Left decreases priority value
1 sorts by title
2 sorts by priority
Home/End toggle sort priority
I edit recording options
ESC commits changes and exits
[1m11.1.10. Viewing Scheduled Recordings/Resolving Conflicts[0m
1 show all recordings
2 show only important recordings
Home/End toggle show showing all/important
I edit recording options
Space/Enter resolve conflict or override
[1m11.1.11. Viewing Search Listings[0m
Home change to the previous view if applicable
End change to the next view if applicable
M select another view if applicable. In the title and description search popup, press M again to edit or delete the selected view.
[1m11.1.12. Recording Profiles Setup Screen[0m
D on a custom profile group displays a popup to delete the group
[1m11.1.13. Recording Groups[0m
In the Watch Recordings screen, Recording Groups allow you to separate
programs into user-defined categories, such as "Kids", "Alice", "Bob",
etc. This can be used to reduce clutter, or to segregate content if
you use the PIN function.
M change the view or to set a group password
I move a program from one Recording Group to another
[1m11.1.14. Watch Recordings Screen[0m
1 or F1 Meaning of the icons
/ Tags a recording. Tagged recordings can be played either in order or shuffled and deleted as a group. You can also change the recording group for several recordings at once by tagging them and using the Menu (m) button, selecting "Playlist options", then "Change Recording Group".
? Clear the tagged list.
[1m11.1.15. Remote Controls[0m
If you are using MythTV with just a remote control then it is
suggested that you map the remote control keys as described below.
Your remote control may not have the same set of keys as those named
below, the names are only a suggestion that roughly correspond to the
function.
If you are adding new key bindings to the program then consideration
of this suggested list will help users with remote controls.
This list assumes a minimal remote control that only has 20 keys,
nearly all features can be used with this configuration. If you have
more keys then you can access all of the features. With only 16 keys
most features are usable.
REMOTE CONTROL LIRC KEYSTROKE FUNCTION
0 - 9 0 - 9 channel selection, EPG navigation, ff/rew speed setting (with stickykeys)
Left Arrow Left scroll left, rewind
Right Arrow Right scroll right, fast forward
Up Arrow Up scroll up, channel change up
Down Arrow Down scroll down, channel change down
Select / OK / Play Space Select item, play (with stickykeys) set bookmark
Cancel Escape Cancel, quit playback
Menu m EPG (from watching TV) edit (from playback).
Pause p Pause
Other key 1 i Information
Other key 2 c Change tuner card input
[1m11.2. Using themes with MythTV[0m
MythTV is "themeable", meaning that the visual appearance of the
program can be modified by the user without re-compiling or altering
the program functionality. Download the MythThemes tarball from the
website and untar it:
$ tar -xjf myththemes-0.21.tar.bz2
$ cd ~/myththemes-0.21
$ qmake myththemes.pro
$ su -
# make install
# exit
$
The theme will now be available in the mythfrontend Appearance
section.
[1m11.3. Adding DishTV information to the database[0m
A script for adding Pay Per View information into the MythTV database
for DishTV subscribers is available at http://www.mythppv.com/
<http://www.mythppv.com/>.
[1m11.4. Adding support for an external tuner[0m
MythTV supports changing the channel on an external tuner. If you
have an external tuner, such as a DirecTV or digital cable set top
box, you should add /usr/local/bin/changechannel to your Input
Connections in the mythbackend configuration GUI.
However, there is not [1mchangechannel [22mprogram per-se, because this is
going to be dependent on what sort of external tuner you have. Look
in the contrib/channel_changers directory for a number of programs and
scripts which may be used to change channels. Once you find one which
works, copy it to /usr/local/bin/changechannel.
Feel free to browse some of what sort of hardware is available at
http://store.snapstream.com/accessories.html
<http://store.snapstream.com/accessories.html>, or if you wish to
assemble your own, rather than purchase, the following may be helpful:
http://www.dtvcontrol.com/ <http://www.dtvcontrol.com/> for cable
pinouts.
[1m11.5. Using Shutdown/Wakeup[0m
What does the MythTV Shutdown/Wakeup function do? The scheduler on the
Master backend (MBE) keeps track of the idle status of the entire
MythTV system, including the Slave backends (SBE). If it considers the
system to be idle, and thus ready to shutdown, it sets the wakeuptime
to the time of the next recording and then proceeds to shut down all
Slave backends and then itself. Once it is time to begin recording,
the Master backend and the Slave Backends are automatically woken up.
This system allows MythTV to record like a normal VCR, thereby
conserving power when not in active use.
In order to use the Shutdown/Wakeup function there must be some method
of waking up the Master backend. There are any number of solutions,
but we will discuss in detail two possibilities:
+o Use another server that runs 24/7 and have it send a WakeOnLAN
(WOL) packet to wake the Master backend. This assumes that you
have the WOL tools installed, and that your Master backend
motherboard supports WOL.
+o Use your motherboard's BIOS wakeup capability. You'll need a
motherboard that supports BIOS wakeup, and some tools. Two that
work are: http://sourceforge.net/projects/nvram-wakeup
<http://sourceforge.net/projects/nvram-wakeup> and
http://www.malloc.de/tools/wakeup_clock.html
<http://www.malloc.de/tools/wakeup_clock.html>
[1m11.5.1. A deeper look into the operation[0m
The scheduler keeps track of the idle status of the MythTV system. To
determine whether or not the MythTV system is idle, the following
conditions must be met for a period of time defined in the "Idle
timeout (secs)" parameter.
+o no client is connected to the server
+o no recording (neither LiveTV nor a regular recording) is currently
taking place
+o no recording starts within a definable amount of time ("Max. wait
for recording (min)")
+o the "pre Shutdown check-command" returns 0
If we get to this idle state the Master backend will set the
wakeuptime using the "Set wakeuptime command", which is the same for
WOL and BIOS wakeup. The Master backend will then shut down the Slave
backends and itself using the "Server halt command".
One caveat is that the scheduler tries to guess if the Master backend
was started by a wakeup call or by the user. If it thinks it was woken
up by a user, it blocks shutdown until a client connects to the Master
backend, after which it will behave as described above. To disable
this feature, unset "Block shutdown before client connected" in the
mythfrontend Setup->Setup->General screen.
Once it is time to startup the system, the Master backend is woken up
first and will wakeup the Slave backends using the "Wake command for
slaves". At this time, there is no support for starting only the
required Slave backend, so all Slave backends will startup.
[1m11.5.2. Setting up the MythTV side of this extension.[0m
There are a number of options that are used to control the Shutdown /
Wakeup feature.
Shutdown/Wakeup Options:
+o "Idle timeout (secs)" is the time the server waits while idle until
a shutdown occurs.
+o "Max. wait for recording (min)" is the time the Master backend
waits for a recording without shutting down. For example, this
would be used to prevent a 10 minute system shutdown if a recording
is set to start 15 minutes from now.
+o "Startup before rec. (secs)" Sets how long before a programmed
recording the MythTV system will be woken up. This should be
roughly be the time your systems need to bootup, and if you have
Slave backends, you'll need to ensure this value is long enough for
all your machines to perform their bootup cycle.
+o "Wakeup time format" is the format of the wakeup time that is given
in the "Set wakeuptime command" as a parameter "$time". You need to
set this according to your wakeup mechanism. If you need seconds
since the epoch (1970-01-01) set the "Wakeup time format" to
"time_t".
+o "Set wakeuptime command" is the command executed to set the new
wakeuptime.
+o "Server Halt Command" is the command executed to shutdown the
Master backend and the Slave backends.
+o "pre Shutdown check-command" is used to give a "Go/NO-GO" decision
from a non-MythTV source. This command is executed immediately
before the shutdown would occur. The return value is use to make
the following choices:
+o If it returns a "0" the shutdown will occur as scheduled.
+o If it returns a "1" the "idle timeout" will be reset and the
system waits again for the timeout.
+o If it returns a "2" the entire shutdown sequence is reset. This
means that a new client connect is needed before a shutdown
occurs, unless you have the "Wait for client connect" setting
disabled, in which case this is the same as returning "1". An
example of a use for this return value is to prevent the
shutdown if a user is currently logged in, or if a specific
program (i.e. transcode, automatic updates, etc.) is currently
running. If you don't need it, leave the field blank.
The "WakeOnLan settings": These settings have nothing to do with using
BIOS or WOL wakeup, they are the same for both.
+o "Master backend" This setting defines timings for the frontends to
wakeup the Master backend using WOL. Useful if your frontend can
emit a WOL packet so you don't need to physically go to the Master
backend if you're trying to watch TV.
+o "Reconnect wait time (secs)" is the time the frontend waits after
executing the "Wake command" before attempting to retry the
connection. This should be roughly the amount of time your Master
backend needs for bootup. Set to "0" to disable. The frontends
will retry to connect for "Count of reconnect tries" times before
giving up.
+o "Wake command for slaves" is the [4mone[24m command executed to wake your
Slave backends. This should be a script that contains the calls to
wakeup all Slave backend systems.
[1m11.5.2.1. Using WOL to wake your Master backend.[0m
To use WOL to wake your Master backend you will need a WOL capable
Master backend, a machine that runs 24/7 which can execute an at-job
and nc (netcat) on the Master backend. I use some little bash scripts
to make my DSL router wakeup my mythbox if required.
Replace $SERVER and $PORT with your own settings! On my Master
backend I have a script that gets called as 'setwakeuptime command'
which looks like the following:
#! /bin/sh
echo $@ | nc $SERVER $PORT
This simply cats the parameters (that is $time) to my 24/7 server. On
my $SERVER I have (x)inetd listening on $PORT starting a little script
which cares about setting the at-job. The following additions are nec-
essary on the $SERVER:
If you use [1minetd[22m:
In /etc/inetd.conf add:
mythwake stream tcp nowait mythtv /usr/sbin/tcpd /usr/local/bin/mythwake
If you use [1mxinetd[22m, save the following as [1mmythwake [22min your
/etc/xinet.d/ directory:
service mythwake
{
socket_type = stream
wait = no
user = mythtv
protocol = tcp
id = mythwake
server = /usr/local/bin/mythwake
}
and add the following to /etc/services:
mythwake $PORT/tcp
Finally, /usr/local/bin/mythwake looks like:
#! /bin/bash
#this should be a command to wake your server
WAKECMD="#!/bin/sh\n /usr/local/bin/wakeMBE"
#first we need to delete all wake jobs in queue
for JOB in atq | cut -f 1 ; do
atrm $JOB;
done
#now we read the date from 'nc'
read date;
#now set the atjob
echo -e "$WAKECMD" | at $date ;
[1mSECURITY WARNING[22m: Be sure to secure $SERVER:$PORT from untrusted net-
works, because this allows 3rd parties to run arbitrary code on your
server!
[1m11.5.2.2. Using BIOS wakeup to wake your Master backend.[0m
Since I don't use this, I cannot say much about this. If your
motherboard supports any wakeup tool you have to call that tool as
"Set wakeuptime command" with the "Wakeup time format" suitable for
that tool.
[1m11.5.3. Wakeup the MySQL server using WOL[0m
If your MySQL server and your Master backend are not on the same
machine, you can have the Master backend wake your MySQL server using
WOL. You will find the settings for this in the second page of the
mythtv-setup program, or at the end of mysql.txt. The meanings are
the same as discussed in "The WakeOnLan settings" above.
[1m11.5.4. Tips/Tricks:[0m
If, for example, one of the Slave backends is also your desktop
computer, you could simply use a little script as 'server halt
command' which first calls /sbin/shutdown -t TIMEOUT where TIMEOUT is
a value sufficient for you to react. You could then popup a window
using *dialog, asking for permission to shutdown. If you cancel the
shutdown, simply call /sbin/shutdown -c.
If you get "nvram-wakeup: /dev/rtc: Device or resource busy" your set-
wakeuptime-script should stop the program that uses /dev/rtc before
setting the wakeuptime.
[1m11.6. Controlling the mythfrontend via telnet[0m
To use this feature you must first enable it in
Settings>General>General
The network control listens on port 6546, as demonstrated below:
$ telnet basement 6546
Connected to basement.
Escape character is '^]'.
MythFrontend Network Control
Type 'help' for usage information
---------------------------------
# help
Valid Commands:
---------------
jump - Jump to a specified location in Myth
key - Send a keypress to the program
play - Playback related commands
query - Queries
exit - Exit Network Control
Type 'help COMMANDNAME' for help on any specific command.
# help jump
Usage: jump JUMPPOINT
Where JUMPPOINT is one of the following:
channelpriorities - Channel Recording Priorities
channelrecpriority - Channel Recording Priorities
deletebox - TV Recording Deletion
deleterecordings - TV Recording Deletion
guidegrid - Program Guide
livetv - Live TV
livetvinguide - Live TV In Guide
mainmenu - Main Menu
...snip...
# exit
$
Please note that this feature only allows one connection at a time, so
any new connections will automatically terminate prior ones.
[1m12. Scheduling Recordings.[0m
The MythTV master backend is responsible for managing the schedule for
all TV tuner cards on the master and any slave. Its job is to search
the TV listing for the shows you have requested and assign recordings
to the TV tuner cards. If none of the shows that you've chosen
overlap, it simply records all of them. However, if there are shows
where the beginning and end times overlap, the scheduler follows rules
that you've specified or makes logical decisions about what would be
best if you haven't expressed your preference. Further, the "Upcoming
Recordings" page allows you make specific decisions about what you
really do and don't want to record.
[1m12.1. Record Types[0m
When you choose a show that you would like to record from the Options
Page, there are eight different types of rules to help the scheduler
find which showings you would like to record.
+o Single Record -- record only this title at this specific time and
this station. This is the best way to be sure that a certain
showing will be recorded. However, if the TV listings change and
the show is not broadcast at that time, the show will not be
recorded but will be marked as Not Listed to let you know that you
should investigate.
+o Find One -- this will record a title once from any of the times
that appear in the TV listings. This is useful for recording a
movie or special that has multiple showings because it allows the
scheduler to choose one that doesn't conflict. It is not a good
choice for recording a single episode of a series because it
records the first available showing of the title without regard to
the episode information.
+o Record Weekly -- this records a show whenever the title is listed
on the same channel, weekday and time. Note that if the TV station
changes the schedule for a special episode, it would not be
recorded. However, you can add a Single record for the special
episode. If there are no matching showings in the TV listings, a
Not Listed item will be added to your schedule for the next time
slot to let you know that you should investigate.
+o Find Weekly -- this will record a title once per week from any of
the times that appear in the TV listings beginning from the time of
the showing that was selected when the rule was set. This is useful
for news, current events or other programs where the same episode
is shown several times each week but the listings may not include
descriptive information. This may not be a good choice if there are
different episodes shown during the week.
+o Record Daily -- this records a show whenever the title is listed
for the time and station on any day of the week. Here again, a show
will not be recorded if the time was altered by the station. If
there are no matching showings in the TV listings, a Not Listed
item will be added to your schedule for the next time slot to let
you know that you should investigate.
+o Find Daily -- this will record a title once per day from any of the
times that appear in the TV listings beginning from the time of the
showing that was selected when the rule was set. This is useful for
news, current events or other programs where the same episode is
shown several times each day but the listings may not include
descriptive information. This may not be a good choice if there are
different episodes shown during the day.
+o Channel Record -- records one showing of each unique episode from
any of the times the title is listed on this station. This is
perhaps the most common rule to use for most shows.
+o Record All -- records one showing of each unique episode from any
of the times this title is listed on any channel. This can be
useful if a station has sister stations where shows are rebroadcast
allowing the scheduler to record rebroadcasts on the other station
when the original airing cannot be recorded.
[1m12.2. Scheduling Options[0m
[1m12.2.1. Priority[0m
By default, all shows you select have equal value to the scheduler.
There are a set of rules to make good choices when two or more shows
are in conflict. However, priority values let the scheduler know what
you prefer so that it can set the schedule based on your preferences.
Initially, recording rule priority values are set to zero. You may
choose to leave everything at "0" and let the scheduler follow rules
to guess what you might prefer when there are conflicts. However, if
you have one or two favorite shows, you may want to increase the
priority value so the scheduler will know that you would prefer
recording these over other shows. You might use certain values to rate
shows so that all favorites are 2. good shows are 1 and extra 'filler'
shows are all -1 for example. You could sort each title on the "Set
Priorities" page to have a unique value so the scheduler can know
which show you'd prefer versus any other show. The choice and style
are entirely up to you. However, the more information you give to the
scheduler, the more likely it will make the choices you would prefer
in the first place.
The scheduler choices are based on the total priority for a showing by
adding up all priority factors that match the showing. By default,
most of these factors are "0" but you may use any combination to
express your likes and needs.
+o Per record rule -- this is the "priority" selection in the
"Scheduling Options" section of the options page and this value is
included for any showings that match the recording rule. You may
choose to only use these values and not use the other factors for
the sake of simplicity and clarity.
+o Per record type -- Setup->TV Settings->Recording
Priorities->General allows you to add to the priority based on the
type. It may make sense to increase the value for "Single" so that
by default they have an extra advantage over other shows. The
default is +1. You may want to decrease the value for Find rules so
that they will be less likely to interfere with regularly scheduled
shows and will be more likely to record in a non-conflicting time
instead. The default is -1.
+o Per channel -- Setup->TV Settings->Recording Priorities->Channel
Priorities can be useful if you believe that you prefer any of the
shows on certain channels. This would give all shows on a channel
an advantage by default.
+o Input priority -- in the "mythtv-setup" program, the "Input
Connections" section allows you to add additional priority in the
"Input priority". This is simply another priority factor but has
an interesting effect. If a card input has a higher value than the
other cards, the scheduler will see that you would rather record
showings of episodes on this input rather than a showing on other
inputs. If you have multiple cards of different quality, you may
want to set input priority to encourage the scheduler to record
shows on your best card(s) whenever possible. This can also be
useful if you have multiple video sources which include the same
stations. For example, with digital and analog cable you could
increase the digital cable input preference by 1 to tell the
scheduler that you want to record from the digital channel whenever
possible but the channel on the analog input could still be used
when the digital input is busy.
+o Custom Priority -- this allows you to add any specialized factors
you would like in order to influence scheduling decisions. See the
``Custom Priority'' section below.
For any single showing of any show you've chosen to record, these
factors are added together to find the "total priority". This is
the priority that the scheduler uses to decide which showings are
given the first choice when filling in the schedule.
The scheduling priority of a show may also be used to determine auto-
expiration of recordings when disk space gets full (see ``Auto-
Expire'', below).
[1m12.2.2. Duplicates[0m
Singles will record without regard to duplicate matching.
The standard recurring methods of All, Channel, Weekly and Daily use
the descriptive information in the TV listings to try to record only
one showing of each unique episode. However, This goal is sometimes
complicated by the fact that the stations may not include a
description for a specific episode but use a generic description for
the series instead. When there is a generic description, the default
behavior is to assume that it may be an episode that you have not seen
and to record it for you. One of the duplicate matching options is
"Record new episodes only". If this is selected, listing that have an
original air date of more than 14 days earlier are considered repeats
and are not eligible to record. Generally, generic episodes will be
marked as repeats also.
Because of generic episodes and other situations, MythTV offers an
alternative approach where shows may be recorded by choosing from
multiple showings even when the descriptive information is not
reliable. All of the "Find" record types look for matching titles in
the listings. If there is a showing with specific episode information
and that episode has recorded before, that showing is marked as
previously or currently recorded. The scheduler will then choose to
record the earliest non-conflicting showing from any of other
remaining showings regardless of the descriptive information.
Generally, Find One is most useful for movies or specials and the Find
Daily and Find Weekly rules are best for news or current events shows
that are repeated. However, these may be useful in other situations
where the standard recording rules may not work correctly.
[1m12.2.3. Conflicts[0m
As you add more shows that you would like to record, the scheduler
will eventually encounter conflicts. If there are two shows at the
same time and you have two or more TV tuner cards, both shows will
record. However, if there are more shows than cards, the scheduler
will have to decide what it thinks it should not record based on the
information you have given. If you see an unexpected situation you are
not "stuck" with the scheduler's choice. You can still tell the
scheduler exactly which shows you do want to record and/or don't want
to record in any situation.
[1m12.2.4. Scheduling decisions[0m
Here are the actual decisions made by the scheduler as it fills in the
schedule.
+o Currently recording beats not currently recording -- A recording in
progress can not be moved to another input or time so it "wins" its
current timeslot.
+o Single, Daily, or Weekly rules with no match are marked Not Listed
-- If these or Overrides do not match the current listings because
the listings have changed, they are added to the schedule and
marked to indicate that they will not record.
+o Rules that could record beat rules that can not record a showing --
If two rules match the same showing of a program, a rule marked as
inactive or a showing marked as a repeat, for example, yield to the
other rule.
+o More specific record type is used in place of less specific -- If
two rules match the same showing of a program, preference is given
to Don't Record then Override, Single, Find One, Record Weekly,
Find Weekly, Record Daily, Find Daily, Channel and finally All.
+o Higher total priority beats lower total priority -- This is the
core of the scheduling process. Episodes of the highest priority
show are placed on the first available input followed by the next
highest priority show and so on.
+o Future start time beats past start time -- If there is an episode
in progress and also a later showing of the same episode, it is
better to record the complete episode. If there isn't another
showing, it will start recording immediately to record the
remaining portion. This should only happen if you add a new rule
while the show is in progress or if the master backend is started
after the start time of a scheduled show.
+o More specific record type beats less specific record type -- If two
shows are on at the same time and have the same total priority but
different types they will be sorted by Single then Find One, Record
Weekly, Find Weekly, Record Daily, Find Daily, Channel and finally
All. This only applies if the priorities are the same.
+o If both start times have passed, later start time beats earlier
start time -- This attempts to miss the least amount of time.
+o If neither start time has passed, earlier start time beats later
start time -- This helps assure that the earliest showing of an
episode has the advantage.
+o Lower input id beats higher input id -- The scheduler fills in open
time slots on the first available input for the video source. The
next input is used when there is another show already placed for
the card of the first input.
+o Older record rule beats newer record rule -- If two shows are still
equal after all of these other checks, the show whose record rule
was added first is preferred over a more recent addition.
+o Postpone showings to resolve conflicts -- If Reschedule Higher
Priorities is set or if a conflict has the same priority as a show
that was scheduled at the same time, the scheduler will check to
see if a scheduled show can be moved to another input or later
matching showing without creating a new conflict so that the
conflicting show can be scheduled to record.
[1m12.2.5. Reschedule Higher Priorities[0m
Setup->TV Settings->Recording Priorities->General has a checkbox for
"Reschedule Higher Priorities" which tells the scheduler to try to be
a little smarter in certain situations. If this is checked, the
scheduler will look for situations where a show cannot record because
all inputs for the channel are used for higher priority shows. It will
check to see if any of the other shows could be recorded at another
time so that the conflicting show can be recorded in its place.
Generally, this is a good strategy but there are tradeoffs. If a
higher priority show is postponed, you will not get to watch it until
it is recorded in the later timeslot. There is also a risk that the TV
listings may change and the later showing may go away. In this rare
case the higher priority show may never record. On the other hand, if
you do not use this option you will miss recording some lower priority
shows unnecessarily unless you manually make similar changes.
By using Reschedule Higher Priorities, the scheduler will do a better
job of recording as many of your shows as possible when left
unattended. It will also be easy to see that shows have been marked to
record at a later time. You can then decide for yourself when you
would prefer to record the first showing by clicking "Record anyway".
[1m12.2.6. Controlling Your Schedule[0m
The Manage Recordings->Upcoming Recordings page is your control center
for the MythTV scheduler. Unlike other DVR systems, this one page
gives you all of the information and tools you need to see all of your
alternatives and make whatever adjustments you desire.
The upper half of the screen has a scrollable box listing items that
match your record rules sorted by time. The lower half shows the
details for the highlighted item. There are two 'views' available.
Press "1" to include all of the items that match record rules even if
they do not need to be recorded. Press "2" to focus on just the things
that will record and items that may need your attention. The message
in the upper right-hand corner will remind you when there are
conflicts that would prevent one or more shows from being recorded.
The items in the list are colored in the record color for things that
will record, white for things that may need attention, gray for those
that do not need to record and yellow when there is a time conflict.
Items at the top of the list may also be highlighted indicating that
the recording is in progress.
Along with the channels, start times and titles, the right-hand column
has a status code. Numbers indicate which card number has been
assigned to record the show. Letters are used to indicate the reason
that something will not be recorded. Just below the box is a short
status message for the highlighted item that indicates the type of
record rule that was matched, the "total priority" for this showing
and a one or two word explanation of the status code. If you press
SELECT, you will see more information about the status.
There are a few status codes that may require your attention. "C"
indicates that there are more overlapping shows to record than there
are TV tuners to record them. "L" indicates that the scheduler found
that it may be better to record a later showing of this episode. These
states happen as a result of your choices and should normally reflect
your preferences. However, you may notice situations where you would
like to modify the scheduler's initial choices.
The first thing you can do is to highlight an item and press INFO to
see the recording options page. From this page you can change the
record rule type, the duplicate matching rules, or raise or lower the
priority to resolve whatever problem you noticed.
Additionally, you can treat any individual showing as an exception
that you do want to record or don't want to record. To use these
"override" features, highlight the item and press SELECT. You will see
a message explaining the current status and at least an "OK" button to
exit without making changes.
For items scheduled to record, there will be a button for "Don't
record" which will prevent recording this showing but will still allow
the same episode to record in the future. If there is episode
description information, you may also see a button for "Never record".
This prevents recording this showing and tells MythTV to remember that
this is an episode that you've seen or don't need to see if it is ever
in the TV listings again.
For items that are not scheduled to record, the message will describe
the reason and in the case of "C" or "L" it will include a list of the
shows that are scheduled to record instead. For any item that could
potentially be recorded there will be buttons for "Edit Options" and
"Add Override". "Edit Options" will allow you to change the options
for the existing record rule such as raising the priority so that the
show will record. These changes would apply to this and all future
showings that match this record rule. "Add Override" will allow you
to set options that apply to the specific showing without affecting
the recurring record rule.
If you return to an override page after an override has already been
set, you will also see a "Clear Override" to undo your changes. This
option makes it very easy to try out some "what if" attempts when
deciding on your best strategy in a difficult situation.
For a recording in progress, there will be a "Change Ending Time"
button. This will take you to the options page for a Single or
Override or create an Override if it is a recurring rule. Here you can
go to the Recording Options section to change the program end time
offset. If you extend the end time so that it overlaps upcoming
recordings, the schedule will change to accommodate the new end time.
This may cause a conflict or later showing even for a show with higher
priority. Therefore, it is a good idea to check your schedule after
changing the end time of a recording in progress.
[1m12.3. Storage Options[0m
[1m12.3.1. Recording Profile[0m
Each recording rule can be configured with a different recording
profile. For example, colorful cinematography can be configured with
a "High Quality" profile, while 'talking heads' interviews shows can
be configured with a "Low Quality" profile. These recording profiles
need to be configured before using them (see ``Recording'', above).
[1m12.3.2. Recording Group[0m
For organization of the "Watch Recordings" screen and the MythWeb
interface, recordings can be assigned into "recording groups".
[1m12.3.3. ``Storage Groups''[0m
This allows you to select any special "Storage Groups" you may have
created to determine where recordings from this rule should be stored
on your disks. The "Default" storage group is always available.
[1m12.3.4. Playback Group[0m
This selects a set of pre-configured playback parameters which can be
created and edited in Setup->TV Settings->Playback Groups. When the
recording is played, the values from this playback group will be used.
This allows you to choose a default time stretch value, skip and jump
amounts appropriate for this type of television program.
[1m12.3.5. Auto-Expire[0m
MythTV will "autoexpire" old recordings to make room for new
recordings when disk space gets filled up. This option can be set to
"Don't allow auto expire" to prevent these recordings from being
automatically deleted when disk space fills up.
The default setting is for all scheduled recordings to be eligible for
auto-expiration; this can be changed in the Settings->TV
Settings->General page by manipulating the "Auto Expire Default"
checkbox.
The default auto-expire policy is "Oldest Show First"; the oldest
recordings are deleted first. The "Lowest Priority First" method
chooses to expire the lowest-priority recordings first.
[1m12.3.6. Episode Limit[0m
An episode limit can also be configured to limit the maximum number of
episodes recorded of a single series, to restrict that series' disk
usage. If this is set, you can further decide what to do when this
limit is reached; either stop recording that series, or to delete the
oldest episodes in favor of the new ones.
[1m12.4. Post Recording Processing[0m
[1m12.4.1. Commercial Flagging[0m
Select whether or not to automatically flag commercials for these
recordings. Commercial Flagging parameters can be set in Setup->TV
Settings->General.
[1m12.4.2. Transcoding[0m
Select whether or not to automatically transcode recordings to save
disk space. Before using this, you must first enable auto-transcode in
the recording profile and configure the transcoding parameters; see
``Recording'', above.
[1m12.4.3. User Jobs[0m
User Jobs allow you to configure up to 4 custom commands to run on
recordings. They can be configured in mythtv-setup. The following
tokens have special meaning when used in the User Job commands:
+o %DIR% - the directory component of the recording's filename
+o %FILE% - the filename component of the recording's filename
+o %TITLE% - the title of the recording (e.g., name of the series)
+o %SUBTITLE% - the subtitle of the recording (e.g., name of the
episode)
+o %DESCRIPTION% - description text for the recording (from guide
data)
+o %HOSTNAME% - the backend making the recording
+o %CATEGORY% - the category of the recording (from guide data)
+o %RECGROUP% - the ``recording group''
+o %CHANID% - the MythTV channel ID making the recording
+o %STARTTIME% - the recording start time (YYYYMMDDhhmmss)
+o %ENDTIME% - the recording end time (YYYYMMDDhhmmss)
+o %STARTTIMEISO% - the recording start time in ISO 8601 format (YYYY-
MM-DDTHH:MM:SS)
+o %ENDTIMEISO% - the recording end time in ISO 8601 format
+o %PROGSTART% - the recording's start time (from guide data;
YYYYMMDDhhmmss)
+o %PROGEND% - the recording's end time (from guide data)
+o %PROGSTARTISO%, %PROGENDISO% - the recording's start and end time
in ISO 8601 format.
[1m12.5. Advanced Recording Options[0m
[1m12.5.1. Creating Power Search rules with Custom Record[0m
MythTV's "Custom Record" feature gives you unlimited control for
creating specialized search recording rules to meet your needs. It
allows you to choose your criteria to search for matching shows based
on any of the information in the program listings, channel
information, time functions and more. This goes beyond the
capabilities of any other DVR system and it is unlikely that this
level of scheduling customization will ever be available in any
commercial DVR system.
[1m12.5.2. Getting Started[0m
Go to Schedule Recordings->Custom Record. This page, helps you build a
database search one clause at a time. Each added clause further limits
which showings will be matched in the TV listings. You can test the
search at any time and when you are done, you can save your search as
a recording rule.
To familiarize yourself with how you can create custom rules, create a
simple rule to record "Nova" only in primetime.
The first item at the top of the page allows you to edit an existing
rule or create a new rule. Leave it on "<New rule>". Arrow down to the
third item which says "Match an exact title". Right and left arrows
would allow you to select any of several prefabricated pieces or full
examples but leave it on the default for now. Arrow down to "Add this
example clause" and press SELECT (Enter or Space on a keyboard). The
large text box should now show:
program.title = 'Nova'
As you have probably guessed, this says that we want to search for all
programs with the title "Nova" regardless of the time, day, channel,
etc.
If you do not receive a PBS station that carries "Nova" or would like
to use another title, edit the title by pressing the down arrow to
highlight the text box and right arrow over the the word "Nova". If
you are using a keyboard you can simply delete the four letters and
type a different title between the quotes. With a remote control, you
can do 'cell phone' style text entry with the number pad. The delete
key is the "X" in the grouping for "1", zero is grouped with "9" and
"0" acts as the "Caps Lock" key. You can press ENTER in the text box
to popup a virtual keyboard.
Note: the text box honors many familiar Emacs control keys. It is also
possible to cut and paste text into the text box so you can edit with
a favorite editor or insert a rule sent in email or from other
sources.
In any case, choose a title that is shown both in primetime and late
night or daytime. Next, click the "Test" button. You should see a list
of the upcoming episodes for "Nova" just as if you had clicked the
Upcoming button for "Nova" elsewhere in MythTV.
Press ESC to go back to the Custom Record page. Move to the example
selector then press the right or left arrows until you find "Only in
primetime". Click "Add this example clause". You should now see:
program.title = 'Nova'
AND HOUR(program.starttime) >= 19
AND HOUR(program.starttime) < 23
Click "Test". You should now see a shorter list with only the showings
that begin between 7PM and 11PM. To create a rule for this, press ESC
to go back to the custom page and move to "Rule Name:" then type
"Nova" or anything else you would like. This is only a label and will
not affect the search results. Once a name has been entered, the
"Record" button will light up. Click this to enter the recording
options page. If you named it "Nova" the title will say "Nova (Power
Search)". Set whatever options you would like then click "Save these
settings". You now have a special rule to record "Nova" but only when
it is shown in primetime.
You can make further modifications to this rule by returning to the
Custom Record page then press the right or left arrow keys on "Edit
Rule:" until you find "Nova". You can experiment and test but the
saved rule will not be updated until you click "Record" then "Save
these settings".
To remove this, or any other rule, you can go to the "Recording
Priorities" page, arrow down to the title, press Enter and change the
the recording type to "Do not record this program" then "Save these
settings".
[1m12.5.3. How it Works[0m
MythTV stores TV program information in a database and uses the
Structured Query Language (SQL) to access the data. Information about
each TV program is stored in the 'program' table and information about
each TV station you receive is stored in 'channel'. These two tables
are used in the scheduler queries and their columns are available to
be used in your rules. The rules you create are stored in 'record'.
Normal rules in MythTV simply match the title in the rule with the
titles in the 'program' table. MythTV also has search rules for
"Titles", "Keywords" and "People". These store the key phrase in the
description column of the rule and includes them in specialized SQL
replacements for the normal title check. There is also a type called
"Power Search" which takes the raw SQL in the description as the
replacement for title matching.
Custom Record is a tool to help you build valid SQL for Power Search
rules. You do not need to be a SQL expert to use Custom Record
because the examples are known to work correctly and are usually self-
explanatory so you can choose the pieces you need then modify them.
Many powerful solutions to unique problems are possible by combining
the examples. With some creativity and some knowledge of SQL, the
possibilities are limitless.
[1m12.5.4. Common Tricks and Tips[0m
The example clauses marked "complete example" are actual rules that
have been used to address specific problems. You may find that some of
these are useful for you as-is or with slight modifications. These
show off how powerful custom rules can be but there are also several
simple idioms that you may find useful for many of the shows you would
like to record.
Wait for a known title -- If there is a movie that you anticipate will
be televised in the coming months but is not yet in the listings, you
can select "Match an exact title", edit the movie title, click
"Record" then choose "Record one showing of this title". The rule will
wait weeks, months or years until this title shows up in your listings
then it will record one showing. These rules have no impact on the
scheduler throughout the day and only take a tiny fraction of a second
when the master backend starts or when the listings are updated.
Silence series out of season -- "Celebrity Poker Showdown", for
example, will have new episodes for a while then long periods where
reruns are shown dozens of times per week. By checking the previously
shown flag you can create a rule that will only match new episodes.
Therefore, your schedule won't be polluted with dozens of entries
marked as "Repeat" or "Previously Recorded".
program.title = "Celebrity Poker Showdown"
AND program.previouslyshown = 0
This allows you to keep rules for your favorite shows that are dormant
while out of season but will spring back to life when new episodes
appear.
Choose showings on certain days -- Several cable stations will show
their highest rated shows a dozen on more times per week. However, the
scheduler only needs two or three choices to do a good job of making a
flexible choice.
program.title LIKE "Celebrity Fit Club%"
AND DAYNAME(program.starttime) = "Sunday"
This says to choose any showing of an episode that hasn't been
recorded when it appears on Sunday. This prevents all the other show-
ings during the week from being listed in the schedule.
Notice the word "LIKE" and the "%" at the end. This does wildcard
matching so that this would match even if the title ended with "2".
"III" or ":Revenge of the Snapple Lady". This can be useful where the
title may change from one season to the next like "Survivor: %", "Big
Brother%" or "The Amazing Race%".
[1m12.5.5. Working with SQL[0m
As you experiment, it is possible that you may misplace a quote or
mistype a word. If there is a mistake when you press "Test" or
"Record" you will see an error message returned from the database.
This will usually give you a good idea about what needs to be fixed.
However, for more subtle MySQL syntax errors, you can find more
information in the documentation at http://dev.mysql.com/doc/mysql/en/
<http://dev.mysql.com/doc/mysql/en/>. This contains a lot of
information that can be useful for Power Search rules such as the
"Date and Time Functions". There are many other good resources for SQL
on the Web.
While the example clauses demonstrate how to use many of the data
columns, you can get a more complete list of all the columns that are
available by using a MySQL client program:
$ mysql -u mythtv -pmythtv mythconverg
mysql> describe program;
mysql> describe channel;
This will show the names of all of the columns along with their type
and default value. Most are easy to understand but a few need some
explanation in order to use them effectively with Power Search.
+o "program.category_type" holds one of these exact four strings:
"movie", "series", "sports" or "tvshow".
+o "program.airdate" is a string representing the year of release for
movies and may have no meaning for other types of shows.
+o "program.stars" is a floating point number from 0.0 to 1.0. On a
four star scale, 1.0 would be four stars, 0.75 would be three stars
and so on.
+o "program.originalairdate" if provided is the date when a show was,
or will be, first televised. This may be useful for finding
episodes before or after a certain date such as finding just the
original series of "Battlestar Galactica".
+o "program.previouslyshown" is a column created by MythTV to try to
determine if a showing is more than 14 days after its original air
date or if the show was marked as a repeat and did not have a date
for the first airing. If this is "0" it usually means that this is
a brand new show or a rebroadcast within the first two weeks.
+o "program.generic" is a column created by MythTV to try mark
showings for a series where the specific episode information is not
included. When these generic showings appear, it is impossible for
the system to determine if they are repeats of the same episode(s)
or if they are all different episodes.
+o "program.first" is a column created by MythTV to mark the first
showing in the current listings for each episode, movie or special.
Choosing to match only the "first" showing can be useful for sports
that are brodcast live then repeated.
+o "program.last" is a column created by MythTV to mark the last
showing in the current listings for each episode, movie or special.
If a showing is marked both "first" and "last" then it is the only
showing of that program in the current TV listings.
+o "program.programid" is the Tribune Media Service database record
identifier for each program description. In general, these start
with a two letter prefix, MV, EP, SP or SH that correspond to the
"program.category_type". For most, the last four digits are "0000"
except EP where the last four digits are the episode number in the
series. Note that these are generated by TMS and not the show's
producers but they are usually in the same order as the original
air dates for the episodes.
+o "program.videoprop" also "audioprop" and "subtitletypes". These
columns contain bit flags for a variety of attributes that may be
associated with a program. These are filled with information
offered by the TV listings provider. However, your listings source
will not have information for all of the available flags.
Therefore, some of these may not be useful for your search rules.
This information is organized in "sets" and the MySQL function
FIND_IN_SET() can be used to test for any of these flags. For
example:
FIND_IN_SET('SURROUND', program.audioprop) > 0
would be true for the programs where the surround sound bit is
present. To see all of the available attribute names:
$ mysql -u mythtv -pmythtv mythconverg
mysql> SHOW COLUMNS FROM program LIKE '%prop'\G
mysql> SHOW COLUMNS FROM program LIKE 'subtitletypes'\G
Finally, if you are doing something very experimental and a column is
not giving you the results you had anticipated, you can always check
the MythTV source code to see exactly how a column is used. The open
source for MythTV is available from http://www.mythtv.org/
<http://www.mythtv.org/> .
[1m12.6. Scheduling with more than one Input[0m
MythTV is designed to allow recording television programs from one or
more service providers, or video source, on one or more video input
from each provider. Some inputs may not be allowed to record at the
same time as each other while others may record simultaneously.
A television station may be broadcast on more than one channel from
one provider or may be available on channels from two or more
providers. If a TV station is available from more than one source, the
video quality or type of broadcast may differ. Therefore, MythTV
allows you to control how you would like the scheduler to select the
best channel and input for a show which is available on more than one
input or more than one channel.
[1m12.6.1. Mutually Exclusive Inputs[0m
A single TV capture card may have video connections to more than one
of its inputs and each input may be from a different service. The
card may only be allowed to record from one of these inputs at one
time because there is only one encoder on the card that actually
captures the content.
These are mutually exclusive meaning that only one input or the other
may record at a given time but not both.
Usually, inputs on different cards can record at the same time but two
or more inputs on the same card cannot. However, there are cases where
inputs on different cards should not be allowed to record at the same
time, for example, a firewire card and s-video analog card connected
to the same set top cable box.
|
| coax +--------------+ firewire ------------------+
| .-=|Cable Provider|=------------=| Card 1 input 1 | HDTV
| | |HD/Cable STB |=--. +-----||||||||||||
| | +--------------+ | s-video ------------------+
| | `---------=| input 2 | Digital
|wall | coax | Card 2 |
|=---=^=------------------------------=| input 3 | Cable
| +-----||||||||||||
Input 1 and input 2 receive content from the same set top box and the
channels can not be tuned independently. Therefore only one of these
two inputs should be used at any given time. The solution is to create
an "Input Group" with [1mmythtv-setup [22min "Input connections". Including
these two inputs in the same Input Group will tell the scheduler that
these are mutually exclusive and may not record at the same time.
Inputs 2 and 3 are automatically mutually exclusive because they are
on the same card so there is no need to create an Input Group for
these inputs.
Cards such as the Hauppauge PVR-500 are able to record as two cards
simultaneously because it has two MPEG-2 encoders and each encoder
appears as a separate device. DVB cards may be allowed to capture
content from more than one channel at a time if the channels are in
the same MUX.
[1m12.6.2. Stations, Channels and Video Sources[0m
Although we may be accustomed to thinking of a broadcast station and
its channel number as being synonymous, stations and channels are very
different things. A "station" is in a building with wires and
employees. A "channel" is a carrier frequency or digital ID that
carries a broadcast stream. The same TV station may be broadcast over
different frequencies in different cities or by different providers in
the same city. The same frequency will carry different stations in
different cities. In the digital realm of DVB and ATSC (HDTV), it is
even possible for a single frequency to carry multiple program streams
but each of these streams of content are actually different channels
that the receiving devices can 'tune' to independently.
+o Station: building
+o Channel: frequency
In MythTV, a "video source" is a set of channels from a provider, or
over the air, that can be received by an input. The set defines the
channels and the broadcasters primarily associated with each of those
channels. If you have more than one device or cable from the same
provider connected to more than one card and input, you only need to
create one video source in mythtv-setup then associate that one source
with each of these connected inputs. This will let your MythTV system
know that the same channels and their TV listings are available to be
recorded from any of these inputs.
For example. A MythTV system may have two capture cards. Both have a
cable connected to the coaxial connectors. These cables carry the
local cable TV service. In mythtv-setup, the user should create one
"Video source" called "Cable", for example. Under "Input connections",
"Cable" should be associated with each of the two tuner inputs. The
scheduler will then know that any program on one of the channels from
the "Cable" source could be recorded by either card from the card's
tuner input.
You need to create a different video source for each provider or
service that has a different set of channels. Each input with a
connection to that service should be associated with the video source
for that service so the system will know which set of channels are
available for each of your active inputs.
Let's say that this user also has one digital cable set top box. The
digital cable service carries channels that are not available over
basic cable. The user would create another source called "Digital".
This set top box is connected to the second card by S-Video so under
"Input connections", "Digital" is associated with the S-Video input of
card 2. The system would then know that programs on channels from the
Digital source can only be recorded from this input. Further, the
scheduler understands that it can only record one show at a time from
card 2 so it can assign Cable or Digital shows to the card but not
both at the same time.
Some TV stations may be broadcast over a channel from the Cable source
and also broadcast over a channel from the Digital source. Note that
two channels carrying the same primary station may not have the same
TV listings due to carrying the primary station part time, including
local programming exclusive to one of the channels, the channels may
be in different timezones, etc. Listings information must be
associated with each channel even if two or more channels report that
they carry the same station.
[1m12.6.3. Order of Inputs[0m
By default the scheduler chooses the first (lowest numbered) input
which has a showing of the scheduled program as it fills the schedule.
If a lower priority show is on at the same time as a higher priority
show that has been assigned to input 1, then input 2 will be used next
and so on. Therefore, configure your best card and input first and
next best card and input second. There may be differences in the type
or brand of capture card, signal quality from the cable, system
resources such as disk space, CPU, etc. By configuring your best input
first, more recordings, and your highest priority recordings, will use
that input.
A common situation is that a newer and better card is added last. For
example, you may initially setup your system with two analog cable
cards and then add a HDTV card. If NBC is on a cable channel and "The
Apprentice" is shown in HDTV on an NBC HD channel, the scheduler would
still prefer analog inputs 1 and 2 over the new HD input 3.
So, if you'd like the scheduler to prefer a new source, the simplest
thing is to run [1mmythtv-setup [22mand "Delete all capture cards" then enter
your cards and inputs in your preferred order. This will not remove
your sources and channels - you want to keep those and only renumber
your cards and inputs. In this example, once the changes have been
made and the Master Backend is restarted, the scheduler would then
choose "The Apprentice" in HD on the new input 1 and only use the
analog inputs (now numbered 2 and 3) when the HDTV input was occupied
with another show.
[1m12.6.4. Matching Callsigns[0m
If a recording rule is a type that can record from any channel, "The
Apprentice" would match for any channel that shows episodes which may
include CNBC or BRAVO. However, for Single, Timeslot, Weekslot or
Channel rules, "The Apprentice" would only match showings on the
selected station as identified by the "callsign". For example, KVBC is
an NBC affiliate on channel 3. Channel 733 is KVBCDT which is HDTV
over cable from the same station. If a Single record rule was set for
"The Apprentice" on KVBC channel 3, it could not record this showing
from KVBCDT on 733. If 733 was chosen when the rule was saved, channel
3 could not be used to record.
However, the "Channel Editor" in mythtv-setup can be used to change
the Callsign for channel 733 to "KVBC". MythTV would then understand
that both of these channels are from the same broadcast station.
Assuming the HDTV input was input number "1", "The Apprentice" would
record on 733. If, however, this HDTV input already had a higher
priority show assigned to it in that time slot, "The Apprentice" would
be assigned to KVBC channel 3 on input 2.
Having two channels with the same callsign may affect how program
information is shown in mythfrontend. If two sources have the same
callsign and channel number, the program guide and program lists will
only show one instance of the channel number and callsign. If the same
callsign is on two different channel numbers, both will be shown and
if two sources have different callsigns with the same channel number,
both of those will be shown.
Continuing with the example above, the Electronic Program Guide would
include rows for both "3 KVBC" and "733 KVBC". If channel 3 KVBC was
also included in the Digital cable source, the EPG would still include
just one line for "3 KVBC" even though there are two different
channels, Cable and Digital, with this identification. Regardless of
how these are displayed and which "KVBC" channel you select to add a
rule to record "The Apprentice", the scheduler will pick the best
channel, source and input to record "The Apprentice" on "KVBC".
[1m12.6.5. Using Priorities to Prefer an Input[0m
The fundamental concept to keep in mind is that the MythTV scheduler
will choose the lowest numbered input available when showings have the
same priority. If there are factors that cause two showings of the
same show to have different priorities then the higher priority
showing will be considered before the showings with lower priority.
[1m12.6.6. Input Priority[0m
"Input Connections" in mythtv-setup includes a box to set "Input
priority" which defaults to "0". If a value is set, that amount will
be added to the "total priority" for showings on that input. This can
be used to influence using favored cards or not using less favored
cards unless necessary.
Let's say the "The Apprentice" is on at 8:00pm with a priority of 3.
"Who Cares" is -2 and an episode is shown at 8:00pm then repeated at
11:00pm. The scheduler would assign "The Apprentice" to card 1 and
"Who Cares" to card 2 at 8:00pm. If the input priority for the input
on card 2 was changed to -1, "Who Cares" would have a total priority
of -2 for showings on card 1 and -3 for showings on card 2. The
scheduler would assign "The Apprentice" to card 1 at 8:00pm and "Who
Cares" to card 1 at 11:00pm when the better card is available. If
there was another higher priority show at 11pm, the next best choice
for "Who Cares" would be card 2 at 8pm with the priority -3.
Card 1 and 2 have input priority "0":
Time Title Priority Card Status
8:00 The Apprentice +3 1 Will Record
8:00 Who Cares -2 2 Will Record
11:00 Who Cares -2 1 Earlier Showing
Card 2 with input priority "-1":
Time Title Priority Card Status
8:00 The Apprentice +3 1 Will Record
8:00 Who Cares -3 2 Later Showing
11:00 Who Cares -2 1 Will Record
Card 2 at "-1" but higher priority shows at both 8 P.M. and 11 P.M.:
Time Title Priority Card Status
8:00 The Apprentice +3 1 Will Record
8:00 Who Cares -3 2 Will Record
11:00 The Daily Show +1 1 Will Record
11:00 Who Cares -3 2 Earlier Showing
Note the two different effects, each of which may be what you desire
depending on circumstance. If input priorities are equal, shows will
record at the earliest time if any input is available. If input
priorities differ, shows may be postponed to a later time in order to
record on the best input.
[1m12.6.7. Channel Priority[0m
Priority can be added for individual channels (remember, frequencies
from a video source, not stations). This can be used to tell the
system that you generally prefer the content of the station on a
channel over the formats of other stations. You may want to raise the
priority for ESPN, SciFi, Comedy Central or lower the priority for
CSPAN, CourtTV, etc. If the same station is on two different channels,
you can use channel priority to have the same effect for these
channels as input priority would have for whole inputs.
For example, say CNN is on analog channel 20 and there is an HD CNN on
750. You may not want to tie up the HD input for news originating in
standard definition. Under TV Settings->Recording Priorities->Channel
Priorities you could set channel 750 to -1. The scheduler would then
prefer to record CNN shows on any analog channel 20 before considering
using 750 only when there are no analog inputs available.
[1m12.6.8. Preferred Input[0m
For an even finer grain of control, there is a per rule option to
specify which input should be preferred for showings that match the
rule. By default, this adds +2 to the priority for showings on the
specified input.
For illustration, let's say there will be a Space Shuttle launch on
CNN that will be broadcast in high definition. Adding a rule to record
the launch with priority "0" should default to channel 20 on input 2.
Channel 750 would have this at -1 due to the channel priority set in
the previous example. If on the recording options page for this rule,
the "Scheduling Options" had the input set to prefer the HD input on
card 1, then the showing on channel 750 for this input would be
increased in value by +2 for a total of +1 and would be the best
choice for this launch coverage. While this one rule would prefer the
HD input with channel 750, all other rules that match shows on CNN
would still prefer channel 20.
Note that this will not work properly if the preferred input priority
does not out weigh differences in input and channel priorities. The
value of the priority boost when this option is chosen defaults to +2
but can be modified in TV Settings->Recording Priorities->Set
Recording Priorities.
[1m12.6.9. HDTV Priority[0m
In the preceeding fictious example, the Space Shuttle launch is
broadcast in high definition and a preferred input is selected to give
preference to the HD input. However, TV listings from zap2it.com
through the DataDirect service may allow this to work without having
to use this per rule option.
In Settings->Recording Priorities->Set Recording Priorities there is
an option for "HDTV Recording Priority". This value will be added
automatically if the listings for the show have the "hdtv" flag set.
DataDirect will set this flag for shows known to be broadcast in HDTV
on HD channels. However, the flag is not set for standard definition
channels. This is another example of the listings being different for
the same station on a different channel. If the HDTV priority is set
to "+2", the shuttle launch would automatically have a total priority
of +1 so that channel 750 would be preferred over channel 20 for this
HDTV broadcast.
Channel "750 CNN" at priority "-1" and HDTV broadcast priority at
"+2":
[1m12.6.10. Custom Priority[0m
New for MythTV 0.21
While Input, Channel, and HDTV Priority can be used for indicating a
preference for certain programs and inputs, there may be circumstances
that cannot be resolved easily with these standard features. MythTV
version 0.21 includes a feature for "power priority". The Custom
Priority editor in mythfrontend's "TV Settings" screen is similar to
Custom Record, however, Custom Priority allows you to create
specialized power priority factors to influence scheduling decisions.
For example, the 'program.closecaptioned' flag can be used in a
similar way as the 'program.hdtv' flag.
Priority Rule Name: Closed Captioned priority
Priority Value: 2
program.closecaptioned > 0
This will raise the priority of shows marked with "CC" over those that
are not by applying the "Priority Value" whenever the SQL fragment
evaluates to true. If the expression evaluates to false for a showing,
the "Priority Value" is not applied.
Priority Rule Name: Priority when shown once
Priority Value: 1
program.first > 0 AND program.last > 0
The "first" and "last" flags for an episode will only be set for the
same showing when there is only one showing of that episode in the
current TV listings. This rule would raise the priority in these cases
so that these shows would have an advantage to record in their only
available time slot.
Priority Rule Name: Input 1 signal quality
Priority Value: -1
cardinput.cardinputid = 1 AND
channel.channum IN (3, 5, 39, 66)
A common issue with two or more analog capture cards is that one of
the cards may have more interference on some channels than the same
channels on other cards. This example gives a disadvantage to the
channels in this list but only for the first input. Therefore, a show
on channel 39 would choose input 2 or 3 if possible but for channels
not in this list, input 1 is still the first choice.
The Custom Priority editor includes many example fragments and
complete examples that can be used or you can create your own to suit
your needs.
[1m13. MythPlugins.[0m
MythTV has a rich set of plugins available. Once you have downloaded
the tarball, untar it and run the [1mconfigure [22mscript:
$ tar -xjf mythplugins-0.21.tar.bz2
$ cd mythplugins-0.21
$ ./configure --help
Usage: configure [options]
Options: [defaults in brackets after descriptions]
NB: all --enable-* options can be reversed with --disable-*
Generic options:
--help print this message
--enable-all Enable all options
--enable-opengl enable OpenGL (Music and Gallery) [default=no]
MythBrowser related options:
--enable-mythbrowser build the mythbrowser plugin [default=yes]
MythDVD related options:
--enable-mythdvd build the mythdvd plugin [default=yes]
--enable-transcode enable DVD ripping and transcoding [default=no]
--enable-vcd enable VCD playing [default=no]
MythGallery related options:
--enable-mythgallery build the mythgallery plugin [default=yes]
--enable-exif enable reading of EXIF headers [default=no]
MythGame related options:
--enable-mythgame build the mythgame plugin [default=yes]
MythMusic related options:
--enable-mythmusic build the mythmusic plugin [default=yes]
--enable-fftw enable fftw visualizers [default=no]
--enable-sdl use SDL for the synaesthesia output [default=no]
--enable-aac enable AAC/MP4 audio file decompression [default=no]
MythNews related options:
--enable-mythnews build the mythnews plugin [default=yes]
MythPhone related options:
--enable-mythphone build the mythphone plugin [default=yes]
--enable-festival enable festival TTS Engine [default=no]
MythVideo related options:
--enable-mythvideo build the mythvideo plugin [default=yes]
MythWeather related options:
--enable-mythweather build the mythweather plugin [default=yes]
The sections detailing configuration of the plugins assume that you
are already in the ~/mythplugins-0.21/ directory.
Note that a single [1mconfigure [22mscript now does configuration for all
modules. By default, it will compile all modules. If you do not wish
to compile a module, either because it is of no use to you, or you do
not have the prerequisites, the simplest course of action is to go
through the various sections below, satisfying the prerequisites, and
then compile all modules at once.
For example, you would only like to compile and install MythGallery
and MythMusic. For MythGallery, you would like to use the EXIF data
in the .JPG file to present additional information onscreen. For
MythMusic, you would like to enable support for the opengl and FFT
visualizations. The command line would look like:
$ cd ~/mythplugins-0.21
$ ./configure --disable-all --enable-opengl --enable-mythgallery --enable-exif --enable-mythmusic --enable-fft
$ qmake mythplugins.pro
$ make
$ su -
# make install
# exit
$
For simplicity, the examples below will disable compilation of all
other modules other than the one being discussed.
[1m14. MythWeb.[0m
MythWeb allows you to use a web page to control various aspects of
your MythTV system. MythWeb is a separate application, but it's
dependent on MythTV being installed and operational.
[1m14.1. Installation and prerequisites[0m
Mythweb is a part of the [1mmythplugins [22mpackage. See ``MythPlugins'' for
instructions on downloading the tarball. The next step depends on
whether your distribution has a web server and if you have PHP
support.
[1m14.1.1. Mandriva[0m
Mandriva has [1mapache [22mand [1mPHP [22mpre-packaged, so installation is quite
simple.
[1mNOTE[22m: Mandriva 9.1 users, perform the following:
# urpmi apache2 apache2-mod_php php-mysql
# chkconfig --level 345 httpd on
# /etc/rc.d/init.d/httpd restart
[1m14.2. Completing the installation[0m
$ cd ~/mythplugins-0.21/mythweb
$ su
# mkdir /var/www/html/mythweb
# cp -r . /var/www/html/mythweb
# exit
$
By default, MythWeb uses an Apache .htaccess file to restrict access
to the website and to configure some variables.
To create the password file for Apache (if your system doesn't already
have one), you could do something like this:
# cd /var/www
# htpasswd -c htpasswd mythtv
New password:
Re-type new password:
Adding password for user mythtv
See the man page for [1mhtpasswd [22mfor more examples.
To access the web page, open a web browser and use [1mhttp://[name or ip[0m
[1maddress]/mythweb/[0m
[1mNOTE[22m: Make sure that you have a trailing slash on the URL,
otherwise you will get a 404 Page not Found error.
[1m14.3. Resetting the key binding table[0m
MythWeb allows you to configure which keys are bound to which actions
within MythTV. If you'd like to reset this back to the default,
execute the following command:
$ echo "delete from keybindings ;" | mysql -u mythtv -pmythtv mythconverg
[1m14.4. Resetting the theme.[0m
If you find yourself wedged into a theme that isn't working, open your
web browser and go to site:
http://mythweb_name_or_ip_address/mythweb/settings.php?RESET_THEME=yes
[1m15. MythGallery.[0m
MythGallery is a photo and slideshow application. MythGallery is a
separate application, but it's dependent on MythTV being installed and
operational.
[1m15.1. Installation and prerequisites[0m
MythGallery is a part of the [1mmythplugins [22mpackage. See ``MythPlugins''
for instructions on downloading the tarball.
There are a number of transitions available, some requiring OpenGL
support. You will also need to install a TIFF library. Under
Mandriva, you would perform the following command:
# urpmi libtiff3-devel
Once you have satisfied the prerequisites for your distribution,
install the application:
$ cd ~/mythplugins-0.21
$ ./configure --disable-all --enable-opengl --enable-mythgallery
$ qmake mythplugins.pro
$ make
# su
# make install
# exit
$
The configuration for MythGallery is accessed through the main Setup
option in mythfrontend. Make sure you set your pictures directory to
wherever you're storing your photos.
The controls for MythGallery can be found in the README that comes
with the application.
[1m15.2. Using MythGallery[0m
When you first start MythGallery, you will see a thumbnail view of any
folders and pictures in the Gallery Directory you specified in setup.
If this is the first time you have accessed this directory, the
thumbnails will be generated on the fly. If the Gallery Dir is
writable, these thumbnails will be cached thus speeding up future
access. On the left is a greyed-out menu of options.
Use the arrow keys to select a folder or picture to open/view with the
Select key, or use the Menu key to toggle access the menu on the left.
The menu options are as follows:
+o Slideshow - Will cycle through all the pictures in the current
folder. The currently selected item must be a picture (not a
folder) for this to work. It does not currently traverse
subfolders.
+o Rotate CW - Rotate the current image 90 degrees in the clockwise
direction. This change persists if the current directory is
writable.
+o Rotate CCW - As above except the direction of rotation is
counter(anti) clockwise.
+o Import - Import pictures into your Gallery Dir. This option is
described in the next section.
+o Settings - Access the MythGallery settings screen.
[1m15.3. Importing Pictures[0m
The import path in the setup dialog is a colon separated list of
directories and/or executable files. When the import key is pressed,
a new directory (the destination directory) under the current
directory will be created and the import path will be searched. If
the item in the import path is a directory (the source directory), the
contents of that directory will be copied to the destination
directory. If you would like the source directory to be that of a
removable device, it might be a good idea to use autofs. See the
automount howto at www.linuxdoc.org <www.linuxdoc.org> for info on how
to get it working.
If the item in the import path is an executable file, MythGallery will
attempt to execute it with the destination directory as its sole
argument. Be careful when using executable scripts that the script
runs unattended (doesn't need user intervention) and returns properly,
otherwise it could create the appearance of MythGallery hanging (e.g.
running [1msmbclient [22mand prompting for password). Also be sure that
scripts have executable permissions set.
Here is an example script that a user may want to run on import:
#!/bin/csh
if ($#argv == 0) then
echo "Usage: $0 dest_dir"
exit
endif
cd $argv[1]
# get stuff over the network
wget http://www.somesite.dom/dir/file1.jpg
wget http://www.somesite.dom/dir/file2.jpg
wget http://www.somesite.dom/dir/file3.jpg
# stuff that requires manual module loading and/or fs mounting
modprobe camera_module
mount /dev/camera /mnt/camera
cp /mnt/camera/* $argv[1]
umount /mnt/camera
rmmod camera_module
# perform some processing
foreach pname (`ls *.jpg`)
jpegtran -flip vertical $pname > $pname.new
mv $pname.new $pname
end
[1m16. MythGame.[0m
MythGame can used as a frontend to start any emulator that your host
OS runs. This is an example of how to set up xmame on Linux.
http://www.mameworld.net/ <http://www.mameworld.net/> is an excellent
resource for all things mame.
Installation overview:
1. Setup directory structure
2. Download and install xmame
3. Download and place extra files (artwork/catver.ini/etc..)
4. Download and install MythGame plugin
5. Setup xmame in MythGame
6. Hints
[1m16.1. Setup Directory Structure[0m
To keep things organized, create the following directories for [1mxmame[0m
to use in /usr/local/share/xmame: hiscore, roms, and snaps.
$ mkdir -p /usr/local/share/xmame/{highscore,roms,snaps}
[1m16.2. Download and Install xmame[0m
[1mNOTE[22m: There may be pre-packaged versions of [1mxmame [22mavailable for your
distribution. Check http://x.mame.net/download.html
<http://x.mame.net/download.html> for the latest version.
Download the source to [1mxmame [22mfrom
http://x.mame.net/download/xmame-0.103.tar.bz2
<http://x.mame.net/download/xmame-0.103.tar.bz2>
$ wget http://x.mame.net/download/xmame-0.103.tar.bz2
$ tar -xjf xmame-0.103.tar.bz2
$ cd xmame-0.103
Edit the Makefile with your favorite editor. Adjust the options as
required for your system.
$ joe Makefile
Then make and install xmame
$ make
$ su
(enter password)
# make install
# exit
After [1mmame [22mhas been installed, we need to create some defaults.
$ mkdir ~/.xmame
$ cp docs/xmamerc.dist ~/.xmame/xmamerc
Because some ROMS work better with different display toolkits, or
possibly even older versions of xmame, it's convenient to keep all of
your [1mxmame [22mbinaries and to rename them to include the version number.
MythGame allows you to match individual roms to preferred binaries.
$ su
(enter password)
# mv /usr/local/bin/xmame.x11 /usr/local/bin/xmame-0.103.x11
# exit
[1mNOTE[22m: Depending on how you compiled [1mxmame[22m, you may have [1mxmame.X11[22m,
[1mxmame.SDL [22mor [1mxmame.xgl [22mbased on what display toolkit you used. Also,
you may need to remove and recreate xmamerc after upgrading since some
of the default options may have changed.
Edit ~/.xmame/xmamerc to include your paths.
### Fileio Related ###
rompath /usr/local/share/xmame/roms
snapshot_directory /usr/local/share/xmame/snaps
cheat_file /usr/local/share/xmame/cheat.dat
hiscore_file /usr/local/share/xmame/hiscore.dat
hiscore_directory /usr/local/share/xmame/hiscore
history_file /usr/local/share/xmame/history.dat
mameinfo_file /usr/local/share/xmame/mameinfo.dat
Confirm that [1mxmame [22mworks before running it inside MythTV. Place your
ROM in the /usr/local/share/xmame/roms directory you created earlier.
[1mNOTE[22m: There are three public domain ROM sets available at
http://www.mame.net/downmisc.html <http://www.mame.net/downmisc.html>
Launch [1mxmame [22mwith your game of choice. In this example, we are using
Gauntlet.
$ xmame gauntlet
Some basic [1mmame [22mkeyboard commands:
5 = Insert coin
1 = Player 1 start
arrow keys = movement
left control = button 1
left alt = button 2
SPACE = button 3
ESC = exit
TAB - menu
~ to adjust Volume
< and >
[1m16.3. Download extra files[0m
The following files allow you to add extra functionality. Place them
into /usr/local/share/xmame
- catver.ini is a catalog of categories and versions of popular mame
ROMs.
Useful for keeping large libraries of ROMs organized.
It may be downloaded from http://www.catver.com
<http://www.catver.com> or http://www.mameworld.net/catlist
<http://www.mameworld.net/catlist>
- Screenshots aka "snaps"
These may be downloaded from http://www.classicgaming.com/mame32qa/
<http://www.classicgaming.com/mame32qa/>
Screenshots are displayed when you are browsing your ROMS in [1mmythgame[22m.
Unzip and place them in /usr/local/share/xmame/snaps
- history.dat
Download from http://www.arcade-history.com/ <http://www.arcade-
history.com/> This file fills in a bit of background about each ROM.
- hiscore.dat
Download from http://www.mameworld.net/highscore/
<http://www.mameworld.net/highscore/>
- Cheats
Download from http://cheat.retrogames.com/
<http://cheat.retrogames.com/>
[1m16.4. Download and Install MythGame.[0m
[1mMythGame [22mis part of the mythplugins package. See the instructions in
the ``Downloading and Compiling'' section to obtain mythplugins.
Switch to the mythplugins directory:
$ cd ~/mythplugins-0.21
Compile and install mythgame:
$ ./configure --disable-all --enable-mythgame
$ qmake mythplugins.pro
$ make
$ su
(enter password)
# make install
# exit
[1m16.5. Setup xmame in MythGame[0m
Start [1mmythfrontend [22mand navigate to Utilities/Setup > Setup > Media
Settings > Game Settings > Game Players. Select (New Game Player).
To set up a new player for xmame enter the following:
Player Name: xmame-0.103.x11 (Name by which you want your emulator or game called)
Type: xmame (This is used for display purposes only and does not affect the function of your system)
Command: xmame-0.103.x11 -vidmod 1 -fullscreen (Path and name of binary + any optional parameters)
Rom Path: /usr/local/share/xmame/roms (This tells MythGame what directories to scan for roms to be used with this emulator)
ScreenShots: /usr/local/share/xmame/snaps (This tells MythGame what directories to scan for snapshots to be used with these roms)
Working Directory: (Directory to change to before launching game or emulator. Blank in our case ignores this setting)
File Extensions: (List of all file extension to be used for this emulator. Blank menas any file under the Rom Path)
[] Allow games to span multiple roms/disks (will treat game.1.rom game.2.rom game.3.rom as one game)
[1m16.6. Hints:[0m
+o Rom name before options: %s can be used as a standin for rom names
on the command line.
+o Multiple disk/rom games: %d1 %d2 etc can be used as standins for
multiple disc games on the command line.
+o Associating a rom with an emulator: Browse to the desired rom and
press 'M' to enter the settings page for that rom.
+o Assign a Game Favorite Status: Browse to the desired game and press
"/".
[1m17. MythMusic.[0m
MythMusic has a number of prerequisites that must be satisfied before
it is operational. Depending on your distribution, some of these
prerequisites can be satisfied through the various package managers.
If your distribution doesn't offer pre-compiled versions of the
software below, then follow the generic instructions for manually
compiling and installing the software.
The prerequisites for MythMusic are:
+o MAD
+o taglib
+o libogg and libvorbis
+o FLAC
+o libcdaudio
+o CDParanoia
[1m17.1. Manual installation of prerequisites[0m
These instructions are for distributions which don't have pre-compiled
versions of the software necessary to run MythTV.
Download MAD from http://www.underbit.com/products/mad
<http://www.underbit.com/products/mad> and install:
$ tar -xzf mad-0.15.1b.tar.gz
$ cd mad-0.15.1b
$ ./configure
$ make
$ su
# make install
# exit
Download TagLib from http://developer.kde.org/~wheeler/taglib.html
<http://developer.kde.org/~wheeler/taglib.html> and install:
$ tar -xzf taglib-1.4.tar.gz
$ cd taglib-1.4
$ ./configure
$ make
$ su
# make install
# exit
Download libogg and libvorbis from http://www.xiph.org/downloads
<http://www.xiph.org/downloads> and install in a similar manner to the
above packages.
Download FLAC from http://flac.sourceforge.net
<http://flac.sourceforge.net> and install:
$ tar -xzf flac-1.1.2.tar.gz
$ cd flac-1.1.2
$ ./configure
$ make
$ su
# make install
# exit
$
Download libcdaudio from http://libcdaudio.sourceforge.net
<http://sourceforge.net/project/showfiles.php?group_id=27134> and
install:
$ tar -xzf libcdaudio-0.99.12p2.tar.gz
$ cd libcdaudio-0.99.12p2
$ ./configure
$ make
$ su
# make install
# exit
$
Download cdparanoia from http://www.xiph.org/paranoia/down.html
<http://www.xiph.org/paranoia/download/cdparanoia-III-
alpha9.8.src.tgz>.
$ tar -xzf cdparanoia-III-alpha9.8.src.tgz
$ cd cdparanoia-III-alpha9.8
$ ./configure
$ make
$ su
# make install
# cd /usr/lib
# ln -sf libcdda_interface.so.0.9.8 libcdda_interface.so
# ln -sf libcdda_paranoia.so.0.9.8 libcdda_paranoia.so
# exit
$
[1m17.2. Mandriva[0m
Mandriva has a number of the prerequisites available on the
installation CD. Some of the software you're going to need will have
to be obtained from the "contrib" or "cooker" development
repositories. Applications downloaded from "cooker" come from the
development branch, so there may be issues with some software. It
isn't recommended that you mix cooker and release-level software.
[1murpmi [22mis the simplest tool for installation of packages from the
command line. The difficult part is the configuration, but this has
been made easier at the following website:
http://addmedia.linuxfornewbies.org/
<http://addmedia.linuxfornewbies.org/> The website will allow you to
choose a mirror site and then present the command-line configuration
text for that mirror. You will most likely need to add a "Contrib"
mirror to your setup. Once you have done that, you can proceed. If
[1murpmi [22mprompts you about other modules that need to be installed to
satisfy dependencies, say "Yes".
# urpmi libmad0 libmad0-devel libflac4 libflac4-devel libcdaudio1 cdparanoia
# urpmi libcdda0 libcdda0-devel libvorbis0 libvorbis0-devel
# urpmi libcdaudio1-devel libid3tag0 libid3tag0-devel
[1m17.2.1. Additional options with MythMusic[0m
Additional visualizations have been added to MythMusic. If you wish
to use these, there are some prerequisites you must install prior to
compiling.
+o fftw
+o OpenGL
+o SDL
fftw may be obtained from http://www.fftw.org/ <http://www.fftw.org/>.
In Mandriva it may be installed by typing:
# urpmi libfftw2 libfftw2-devel
OpenGL should be installed on practically all distributions. However,
you will need the devel module. In Mandriva it may be installed by
typing:
# urpmi libMesaGLU1-devel
SDL may be obtained from http://www.libsdl.org
<http://www.libsdl.org>. In Mandriva it may be installed by typing:
# urpmi libSDL1.2 libSDL1.2-devel
[1m17.3. Red Hat Linux 9[0m
Red Hat provides packages for several of the prerequisites, making
installation very simple. Of the prerequisites, Red Hat provides
packages for Vorbis, cdparanoia, SDL, and OpenGL (which you probably
already have installed). To install these all at once, simply type
(all on the same line):
$ up2date --solvedeps libvorbis libvorbis-devel vorbis-tools cdparanoia-devel cdparanoia-libs cdparanoia SDL-devel SDL
If you get the following message: "None of the packages you requested
were found, or they are already updated" it probably means you already
have all of those packages installed.
You must install the remaining packages, (MAD, FLAC, libcdaudio and
optionally fftw) manually following the installation directions above.
When installing fftw do not use the rpm package offered on the website
because it will cause an error, so use the source package instead.
[1mNOTE[22m: you can use the instructions given at the ``automated
installation section'' to install all of MythMusic in one
step.
[1m17.4. Compiling MythMusic[0m
Once all the prerequisites have been installed, you can proceed with
compiling MythMusic.
$ cd ~/mythplugins-0.21
$ ./configure --disable-all --enable-mythmusic --enable-fftw --enable-sdl --enable-aac
$ qmake mythplugins.pro
$ make
$ su
# make install
# exit
[1m17.5. Configuring MythMusic[0m
Configuration of MythMusic occurs in two places. The main
mythfrontend Setup is for global MythMusic configuration. Go to the
Setup/MythMusic/General Setup screen and adjust it for your particular
configuration.
The second configuration screen is within the MythMusic program and
will allow you rescan your music library, etc.
Here's some explanation about the Ignore_ID3 and The
NonID3FileNameFormat:
If Ignore_ID3 is set to TRUE, MythMusic will try to determine the
Genre, Artist, Album, Track Number, and Title from the filename of the
mp3 file. The NonID3FileNameFormat variable should be set to the
directory/file format where the mp3 files are stored. For instance, I
store mine in the above shown Genre/Artist/Album/Track format.
MythMusic will then use this information to fill in the proper fields
when it populates the musicmetadata table rather than searching for an
ID3 tag in the mp3 file.
The files can be laid out in any format, such as:
Genre/Artist/Album/Title Artist/Genre/Album/Title Artist/Album/Title
(with Genre left as Unknown)
The track number is optional but can be specified with the title by
using the TRACK_TITLE keyword instead of TITLE. If TRACK_TITLE is
used, then the filename can have a space, hyphen, or underscore
separating the track number from the track title. Keywords are case
insensitive, so if you specify GENRE it's the same as Genre in the
format field.
The Ignore_ID3 option does not disable the code that determines the
track length, just the portion that tries to read ID3 info.
[1m17.6. Using MythMusic[0m
MythMusic is fairly simple to use. It is recommended that you insert
the CD before selecting "Import CD". You should also ensure that your
system doesn't try to automount the CD and begin playing it
automatically.
Here's some information on playlist management:
Q: How do I create a new playlist? A: Using the MythMusic "Select
Music" menu option, setup the playlist as you normally would by adding
songs or other playlists as needed. When you are ready to save the
new playlist, highlight "Active Play Queue" at the bottom of the
selection tree and hit the "i" key. This will pop up a menu allowing
you to name and save the new playlist. You can also hit Enter to
bring up the popup on the Active Play Queue. This does not work on the
playlists above, as Enter is obviously bound to checking/unchecking
the boxes. Any number (i.e. keypad on remote) will also bring up the
menu in both cases.
Q: How do I enter the playlist name in the text field without a
keyboard? A: Use the keypad number keys (bound to your remote) to
select letters quasi-cell phone style. Keys 2-9 work pretty much like
any cell phone text entry. 1 cycles through a few special characters,
delete, and space. 0 is like a CAPS LOCK. Hard to describe, fairly
easy to use. You will soon be able to specify the cycle timing in a
Setup screen. You can type fairly quickly through a combination of
jumping around the number keys AND hitting a non-number key (right
arrow is particularly good for this) to force the current character.
Q: How do I edit a playlist? A: Highlight the playlist in the
selection tree and hit the "i" key then select "Move to Active Play
Queue" in the popup. You can now modify the "Active Play Queue" like
normal, adding songs and playlists by selecting them from the song
tree. When you are done, highlight the "Active Play Queue" in the
selection tree and hit the "i" key then select "Save Back to Playlist
Tree". And whatever you were editing as your Active Queue before you
moved an existing playlist "on top" of Active reappears. Think of
Active has having a push on, pop off capability, but with a depth of
only 1.
Q: How do I delete an item from a playlist? A: Highlight the item in
the selection tree and hit the "d" key.
Q: How do I rearrange the songs in my playlist? A: Highlight a song
and hit the "space" bar, the song will now have pair of red arrows in
front of it. Use the up and down arrow keys to move it around in the
playlist. When you have it where you want it, hit the "space" bar
again.
Q: How do I delete a playlist? A: Highlight the playlist in the
selection tree and hit the "i" key then select "Delete this Playlist"
from the popup.
[1m17.7. Troubleshooting MythMusic[0m
You may run into errors when running MythMusic.
[1m17.7.1. When I run MythMusic and try and look up a CD, I get an error[0m
[1mmessage[0m
The full text of the message will say:
databasebox.o: Couldn't find your CD. It may not be in the freedb
database. More likely, however, is that you need to delete /.cddb
and /.cdserverrc and restart mythmusic. Have a nice day.
If you get this message, you should go to the home directory of
whatever user MythMusic is running as and type:
rm .cdserverrc
rm -rf .cddb/
These files aren't automatically deleted because of a conscious design
decision by the author that programs that automatically delete things
are bad.
The files are used to locally cache CD lookups. If you are re-
inserting CDs, your machine will not actually have to go out to the
Internet to determine what is on them. However, the URL used to
access the freedb database has recently changed, so the stale
information in the files from previous runs of MythMusic would cause
the error above. Once the files have been deleted the stale
information will be gone and your local database will be rebuilt as
you use CDs.
[1m18. MythWeather.[0m
MythWeather is a part of the [1mmythplugins [22mpackage. See ``MythPlugins''
for instructions on downloading the tarball.
$ cd ~/mythplugins-0.21
$ ./configure --disable-all --enable-mythweather
$ qmake mythplugins.pro
$ make
$ su
# make install
# exit
MythWeather uses MSNBC.com as its source for weather data and
weather.com for its radar image.
These are the keyboard commands for MythWeather:
Left Key Goes back one page, and extends the time spent
on the page you are on.
Right Key Goes forward one page, see above.
Space Pause, wait on the current page until space is hit
again.
Numeric Keys You can check other weather by keying in other ZIP codes.
Enter Key Switch between Celsius and Fahrenheit. Can also
be used a way to force a data update.
"m" Key Resets the location to the database default, then updates the data.
"i" Enter / Save settings
ESC Exit the settings screen without saving / Exit the program
MythWeather also has an "Aggressiveness" setting. This affects how
long MythWeather waits for data from the msnbc.com website before
timing out. If you are on a slow connection, or have a slow DNS, or
MythWeather just doesn't seem to be working and you've already tried
everything else, then try increasing the aggressiveness level
parameter. This parameter is inverse; a higher number actually means
that MythWeather will be less aggressive, and will therefore wait
longer before timing out.
MythWeather will print debugging information on the terminal. If you
wish to see additional debugging information while MythWeather is
running, run mythweather from the command line with as mythweather
--debug
You may also force mythweather to re-run the configuration by starting
it on the command line as mythweather --configure. These two options
are mutually exclusive.
[1m19. MythVideo.[0m
MythVideo is a part of the [1mmythplugins [22mpackage. See ``MythPlugins''
for instructions on downloading the tarball.
MythVideo will allow you to use an external program to watch media
files that are not directly supported by MythTV.
$ cd ~/mythplugins-0.21
$ ./configure --disable-all --enable-mythvideo
$ qmake mythplugins.pro
$ make
$ su
# make install
# exit
See MythVideo's README file for additional information.
[1m20. MythDVD.[0m
MythDVD is a part of the [1mmythplugins [22mpackage. See ``MythPlugins'' for
instructions on downloading the tarball. MythDVD is an application
which rips DVDs and makes them available for use with MythVideo. You
may also transcode the DVD content from MPEG-2 to other formats which
should greatly reduce the amount of space the DVD material takes up on
your hard drive.
MythDVD has a number of prerequisites to enable transcoding
functionality. If you only wish to play DVDs rather than convert them
to something like MPEG-4 or xvid you may skip the prerequisite
installation step.
[1m20.1. Manual Compilation of Prerequisites[0m
[1m20.2. Pre-compiled binaries[0m
Mandriva users may install the prerequisites this way:
# urpmi libdvdread3 libdvdread3-devel a52dec liba52dec-devel
# urpmi mplayer ogle xine
Assuming that you've added a PLF mirror, you may also load the rest of
the prerequisites using the following command:
# urpmi xvid xvid-devel fame libfame0.9-devel transcode libdvdcss
In the example below, we have enabled support for transcoding and for
VCD playing. You may remove these options if you don't need them.
$ cd ~/mythplugins-0.20
$ ./configure --disable-all --enable-mythdvd --enable-transcode --enable-vcd
$ qmake mythplugins.pro
$ make
$ su
# make install
[1m20.3. Running the Myth Transcoding Daemon[0m
Transcoding ("ripping") a DVD requires you to run the Myth Transcoding
Daemon (mtd). To ensure that mtd is configured correctly, you should
first test it at the command line.
$ mtd -n
The last line of text should show something like:
mtd is listening on port 2342
This indicates that mtd is ready for use. Once you've successfully
tested mtd in the foreground, type [1mCTRL-C [22mto stop mtd. You may then
start it as a background (daemon) process.
$ mtd -d
Running mtd as a daemon will allow you to automatically start it
during the boot process. For example, you may add mtd -d to your
rc.local file, or you can adjust the script/steps outlined in the
section called ``Automatically starting mythbackend at system boot
time'' to start mtd instead of mythbackend.
[1m21. MythNews.[0m
MythNews is a part of the [1mmythplugins [22mpackage. See ``MythPlugins''
for instructions on downloading the tarball. MythNews is a RSS
reader.
$ cd ~/mythplugins-0.21
$ ./configure --disable-all --enable-mythnews
$ qmake mythplugins.pro
$ make
$ su
# make install
[1m22. Troubleshooting.[0m
[1m22.1. Compiling[0m
[1m22.1.1. Compile errors[0m
Some compile errors are worse than others. If you get an error that
doesn't abort the compilation, and says something like:
cc1plus: warning: changing search order for system directory
"/usr/local/include"
cc1plus: warning: as it has already been specified as a non-system
directory
then it shouldn't be a problem.
If you get an error like /usr/bin/ld: cannot find -lXext, the compiler
is telling you that you don't have XFree86-devel installed, or that
your distribution hasn't set it up correctly. This needs to be fixed
before MythTV will compile.
[1m22.1.2. make: *** No rule to make target[0m
[1m/usr/lib/qt3/mkspecs/default/qmake.conf', needed by Makefile'. Stop.[0m
This error happens when there's a missing link in the
/usr/lib/qt3/mkspecs directory. There are two ways to fix this error:
1. Create the link manually:
$ su
# cd /usr/lib/qt3/mkspecs
# ln -sf linux-g++ default
and then restart the compile,
or
2. Run [1mqmake mythtv.pro [22min the mythtv directory. Rerunning [1mqmake[0m
will create a new Makefile for you, however this still doesn't fix the
root cause of the issue, which is that your distribution didn't create
the symlink for you when the qt3 package was installed. The first
choice is the better solution.
[1m22.1.3. make: *** No rule to make target[0m
[1m/mkspecs/default/qmake.conf', needed by Makefile'. Stop.[0m
You didn't set your QTDIR. Re-read the section on ``Setting up
paths''.
[1m22.1.4. Internal Segmentation Fault.[0m
This is most likely to be caused by an overheating processor rather
than an actual programming fault within gcc.
[1m22.2. Debugging[0m
[1m22.2.1. MythTV segfaults[0m
[1m22.2.2. MythTV isn't doing anything[0m
[1m22.2.3. Debugging with GDB[0m
Without details, the developers will not be able to determine if you
have discovered a genuine code-bug, or if the problem is with your
system. In order to determine what's going on, you must recompile
MythTV with debugging support and run MythTV within [1mgdb[22m, the GNU
debugger. Note that, on OS X, some data is provided without going
through these steps. See
/Library/Logs/CrashReporter/MythFrontend.crash.log
Re-run the [1mconfigure [22mscript and add --compile-type=debug to any
previous configuration options you may have used. Check the
config.log file if you have forgotten.
Now, you need to clear out the old versions of the software to ensure
that you're running with the debugging code, then compile and install.
$ make distclean
$ ./configure --compile-type=debug
$ make
$ su
# make install
# exit
At this point, you now have debug-enabled software ready. To make
sure that you don't forget to type a command required for debugging,
it's best to setup a gdbcommands file. This will be read by [1mgdb [22mwhen
it's started. Put the following into gdbcommands in your home
directory:
handle SIGPIPE nostop noprint
handle SIG33 nostop noprint
set logging on
set pagination off
set args -l myth.log -v record,channel,siparser
run
thread apply all bt full
set logging off
Let's assume that the problem you're having is in [1mmythbackend[22m.
$ gdb mythbackend -x gdbcommands
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-linux".Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[1mgdb [22mwill automatically read the commands that you've placed in the
gdbcommands file and begin running the program you specified on the
command line.
If the program appears to be locked up, press CTRL-C to create the
backtrace file.
All of the output from gdb.txt should be posted to the mythtv-dev
mailing list, along with the steps you followed to get the program to
crash.
[1mNOTE[22m: If you're trimming the gdb.txt file to remove extraneous
information from the beginning of the file, make sure you include at
least 10 lines [4mprior[24m to the point where the backtrace actually begins.
This ensures that there is some context to the backtrace, and so that
it's possible to see what exactly caused the segfault.
[1mgdb [22mhas a number of options, read the man page for more information.
Using the gdbcommands file in conjunction with a [1mwhile [22mloop will
ensure that [1mgdb [22mcreates a trace file and then restarts:
$ while true; do date >> gdb.txt; gdb mythbackend -x gdbcommands; done;
[1mNOTE[22m: To exit this loop you will need to kill the while loop.
If you're trying to troubleshoot and you can't get back to the [1mgdb[0m
window for some reason, it may be easier to use two systems or to
start mythfrontend from the text console.
If you're going to troubleshoot from a remote system, connect to the
machine that you're going to test using [1mssh [22mor [1mtelnet[22m. Next, type $
export DISPLAY=localhost:0.0. This will allow the graphics to be
displayed on the X console (usually ALT-F6 or ALT-F7) and still give
you output and control of [1mmythfrontend[22m, either from the [1mssh [22msession,
or by switching back to the text console by pressing CTRL-ALT-F1. You
can now continue troubleshooting using [1mgdb [22mas detailed in the
instructions.
[1m22.2.4. MythTV is crashing your system[0m
When run as a non-privileged user, MythTV [4mcan[24m [4mnot[24m crash your system.
If your system is crashing when you run MythTV, then you have some
issue with the drivers for your capture card or other hardware, or the
CPU fan has fallen off/broken and your system is overheating when
asked to perform a CPU intensive task like encoding video.
If you are running as root, which is [1mstrongly discouraged[22m, it is
possible that your system may crash due to the real-time thread using
all available CPU. You will not be able to interrupt the process, so
for all intents and purposes your computer will have crashed.
[1m22.3. Installing[0m
[1m22.3.1. When trying to run mythtv-setup, you get an error like this:[0m
[1m"mythtv-setup: error while loading shared libraries:"[0m
You didn't add /usr/local/lib to /etc/ld.so.conf. See the section on
modifying ``/etc/ld.so.conf''.
[1m22.4. Using[0m
[1m22.4.1. No programs are displayed in "Watch Recordings"[0m
This situation occurs most often with a system that acts as a frontend
and a slave backend. MythTV supports system-global and user-specific
configuration files, with user-configuration files taking precedence.
99% of the configuration for MythTV is in the MySQL database, but
MythTV still needs to know where the MySQL server is running. This
information is in the mysql.txt file. By default, it will be
installed to /usr/local/share/mythtv, but a copy placed into ~/.mythtv
will over-ride the global configuration.
You must ensure that there aren't multiple, conflicting versions of
this file on your system!
$ locate mysql.txt
/usr/local/share/mythtv/mysql.txt
/home/mythtv/.mythtv/mysql.txt
$
As you can see, in this example there are two mysql.txt files. If
they are not identical, then there may be unintended consequences.
You may also see this error if you completely fill the /var partition.
The most likely [4mmythtv-related[24m reason for this is an overly large
mythbackend or mythfrontend log file in /var/log. If you have logging
enabled for the backend, and myth runs for weeks at a time, this may
creep up and surprise you. Note that many system processes also write
to /var and the system may not boot if it is unable to write to /var
due to a full partition.
[1m22.4.2. MySQL not connecting correctly[0m
Your [1mMySQL [22minstallation may have networking turned off. Check that
/etc/mysql/my.cnf [4mdoes[24m [4mnot[24m contain skip-networking. If it does,
remove it. Also verify that bind-address is set to your IP address
instead of 127.0.0.1. If you change either of these items, restart
[1mMySQL[22m.
[1m22.4.3. MySQL database is corrupt[0m
If you have reason to believe that your MySQL database is corrupt,
execute the following commands to attempt to repair it.
[1mNOTE[22m: Ensure that there are no programs accessing the database while
you attempt to repair it. Make sure that all backend and frontend
programs have exited.
mysqlcheck -r -umythtv -p<password> mythconverg
[1m22.4.4. Using a MPEG-2 encoder card and the video appears "jittery"[0m
[1m22.4.5. Using a MPEG-2 encoder card and the video is jumping up and[0m
[1mdown[0m
This is a different problem than the one discussed in the previous
section. Currently, the ivtv driver or firmware appear to have some
issues if the vertical capture resolution is not the full screen
height. If you are having a jitter problem then ensure that you are
capturing either 480 lines (for NTSC) or 576 lines (for PAL). The
default capture profiles may need to be edited for your setup. Go to
Settings->TV Settings->Recording Profiles and adjust the [1mDefault [22mand
[1mLive TV [22moptions to 480 or 576 from their defaults.
[1m22.4.6. Screen goes blank but returns when mouse is moved or keyboard[0m
[1mis used[0m
This is due to DPMS, the Display Power Management System, which is
used to save power by turning off your monitor when the system decides
that it's not being used or due to a screensaver that has defaulted to
a blank screen. MythTV now has DPMS support built-in, and should
intelligently handle the screen. Continue reading if you wish to
override DPMS and force it off.
Since it's likely that watching TV will not generate keyboard or mouse
events for a time, you need to turn off DPMS and the screensaver.
There are a few ways to do this. You may also need to check your BIOS
for power saving modes and disable screen blanking there as well.
Edit your /etc/X11/XF86Config-4 or /etc/X11/xorg.conf file, and look
for:
Section "ServerFlags"
#DontZap # disable <Ctrl><Alt><BS> (server abort)
#DontZoom # disable <Ctrl><Alt><KP_+>/<KP_-> (resolution switching)
AllowMouseOpenFail # allows the server to start up even if the mouse doesn't work
Option "blank time" "0"
Option "standby time" "0"
Option "suspend time" "0"
Option "off time" "0"
Option "NoPM" "1"
EndSection
Also, look for:
Section "Device"
Identifier "device1"
VendorName "nVidia Corporation"
BoardName "NVIDIA GeForce 256 (generic)"
Driver "nv"
Option "DPMS"
EndSection
In this case, you would need to either delete the Option "DPMS" line,
or change it to # Option "DPMS" to comment it out. The next time you
start XFree this change will take effect.
Finally, check:
Section "Monitor"
Identifier "monitor1"
VendorName "Plug'n Play"
HorizSync 30-85
VertRefresh 50-160
# Sony Vaio C1(X,XS,VE,VN)?
# 1024x480 @ 85.6 Hz, 48 kHz hsync
ModeLine "1024x480" 65.00 1024 1032 1176 1344 480 488 494 563 -hsync -vsync
# TV fullscreen mode or DVD fullscreen output.
# 768x576 @ 79 Hz, 50 kHz hsync
ModeLine "768x576" 50.00 768 832 846 1000 576 590 595 630
# 768x576 @ 100 Hz, 61.6 kHz hsync
ModeLine "768x576" 63.07 768 800 960 1024 576 578 590 616
EndSection
Ensure that there isn't an Option "DPMS" in the Monitor configuration.
You can also turn off DPMS from the Command Line, but this will not
survive a reboot.
$ xset -dpms
Using xset +dpms will turn it back on.
Another technique to try, which will turn off the screensaver:
$ xset s off
You may also combine the command to turn off DPMS and the screensaver:
$ xset -dpms s off
Finally, depending on your distribution, you may be able to turn it
off from within the control panel.
[1m22.5. Miscellaneous[0m
[1m22.5.1. mythfilldatabase failing[0m
If mythfilldatabase suddenly appears to be failing, there are at least
two things to check.
First, if you are in North America, ensure that your DataDirect
subscription is still valid, otherwise, check to see what version of
XMLTV you're running and that it's the latest version.
[1mNOTE[22m: It is highly recommended that you run the latest
version of XMLTV available. Your listings provider may have made
changes which negatively impact XMLTV.
[1m22.5.2. Fast CPU, choppy or jittery video[0m
First, you should check that your kernel has been enabled for DMA:
[mythtv@pvr mythtv]$ dmesg |grep DMA
ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:DMA, hdd:pio
hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63, UDMA(33)
hdb: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=4982/255/63, UDMA(33)
From the listing above, you can see that hda, hdb and hdc are set for
DMA, and hdd is set for pio. If your kernel is not reporting DMA
being enabled, you may need to recompile your kernel. Check your
motherboard's chipset (look in the "ATA/IDE/MFM/RLL support" section
in "make menuconfig") for more information.
Next, check that the hard drive has DMA enabled. Use the [1mhdparm[0m
program to check and enable DMA.
# hdparm -d /dev/hd?
will tell you the DMA status for your hard drives. If you run [1mhdparm[0m
with the -d1 parameter, it will turn DMA on.
You may also setup your PC to do this at boot time, either by adding
the command to your /etc/rc.local file, or by adding files to
/etc/sysconfig.
On Mandriva and other distributions, if you install [1mhdparm [22mfrom an RPM
you will most likely get a /etc/sysconfig/harddisks file installed.
This file will be parsed by the /etc/rc.sysinit script. If you use
the default harddisks file, your changes will affect all IDE devices
(including CD ROMs). If you wish to use different parameters for
various devices, rename and/or copy the file to harddiskhda,
harddiskhdb, etc. Edit the file to your liking and on the next reboot
your setting will be preserved.
[1m22.5.3. Frontend appears to be slow at jumping / seeking.[0m
[1m22.5.4. On-screen Display shows incorrect program length.[0m
This may occur when MythTV doesn't have an accurate seek table. Run
[1mmythcommflag --rebuild[0m
[1m22.5.5. Troubleshooting audio[0m
[1mNOTE[22m: the following instructions do not apply to PVR-250/350
encoders; the MPEG-2 file will have the audio embedded in the stream
so it is not accessible using /dev/dsp.
Audio appears to be one of the bigger issues that users run into on
the mailing list. If the audio isn't configured correctly, then
MythTV will often appear to hang, when in fact it is trying to
manipulate the audio subsystem and failing. You may or may not
receive error messages indicating that the source of the error is the
audio subsystem.
You can not use [1mxawtv [22mto determine if your audio is working correctly,
since [1mxawtv [22mis simply using the analog sound patched through line-in
to line-out. It doesn't need to digitize the sound unless you are
using the recording function.
A better test to verify that sound will work for MythTV (and recording
with [1mxawtv [22mfor that matter) is to startup [1mxawtv[22m, mute the line-in then
run aplay /dev/dsp. You should hear the recorded audio slightly
delayed behind the real-time video. You should see messages about
"underrun". These can be ignored but they do confirm that the driver
is loaded and there is an active device. Once this test succeeds,
MythTV should work correctly because it writes to and read from
/dev/dsp in the same way that [1maplay [22mdoes.
To record audio along with video the audio signal must be digitized by
a DSP so that the audio data can be stored in a file. On playback, the
audio data is written to /dev/dsp and converted back to an analog
signal. This analog signal should then be sent to your speakers. Here
is what is needed in [1malsamixer[22m. If you are using an ALSA version after
1.0.6, use [1malsamixer -V all[22m:
CAPTUR source - the analog source to be sent to the DSP. This should
be set to the input source from the tuner card to the sound card. In
most cases this is Line but this could also be Aux, CD, Mic, etc.,
depending on how you connect the input cable. This source should be
muted to prevent patching through the analog sound. The volume of this
source will not affect the record level.
Capture mixer - this sets the level for the analog to digital
recording. While a volume of 100% is recommended for testing,
distortion may occur. Lowering this level to 75% to 85% may result in
better audio quality. "Capture" should be marked as the CAPTUR
destination.
PCM mixer - this sets the level for the digital to analog playback.
While a volume of 100% is recommended for testing, distortion may
occur. Lowering this level to 75% to 85% may result in better audio
quality.
Master mixer - sets the level for the analog signal sent to line-out
or the speakers.
You may also want to ensure that /dev/dsp , or whatever device file is
being used, hasn't already been grabbed by another process, like [1mesd[0m
or [1martsd[22m. If the device file isn't available, then MythTV won't work.
You may wish to run [1mconfigure [22mand enable support for these.
If you wish to see what application is grabbing a resource, you can
use the fuser command:
# fuser -v /dev/dsp
To disable aRts in KDE, go to KDE->Control Center->Sound->Sound System
and uncheck the "Start aRts soundserver on KDE startup" box. Run #
killall artsd from the command line to stop the artsd program.
If you're using multiple sound cards and multiple tuners, use
alsamixer -c 1 to work with the second sound card. The first card is
#0, the second card is #1, etc.
[1m22.5.6. Mythbackend reports that your card is not reporting full[0m
[1mduplex capabilities[0m
[1m22.5.7. The mythbackend program told me to look at this section[0m
mythbackend does a check to see if your sound device is capable of
full duplex operation. If it's not, it's most likely that you're
going to run into issues when you try to record and play sound at the
same time. If your backend is a separate machine than your frontend,
then there's no problem, since you're only going to be doing one thing
at a time with the card. Likewise, if you're running the frontend and
backend on the same machine, but you're using btaudio or a hardware
encoder card such as the Hauppauge PVR-250, DVB cards or HDTV capture
cards as your recording source and you're only using the playback
function of your sound card, then you also shouldn't have an issue,
since the sound card isn't being asked to perform two functions at
once.
If you can't get your sound card to go full-duplex and need it to,
then check your distribution for updated sound drivers. If your sound
card is not capable of full-duplex operation, either because the
drivers don't support it, or it has been designed that way, then
you're pretty much out of luck and will either need to purchase a new
sound card, or will need to get btaudio ``operational''.
[1m22.5.8. My remote doesn't work / works sometimes and not others /[0m
[1m"ghost" keypresses[0m
This can be due to a number of factors. The simplest case is the
"ghost" keypresses. For me, it was due to compact fluorescent lights
in the same room as the IR receiver, which the receiver was picking up
as keypresses. Once the lights were switched to incandescent bulbs,
the ghost went away.
You may have an issue with [1mlirc [22mmisinterpreting IR commands from a
different remote. I also have an issue where the TiVo "Peanut" remote
will eventually cause [1mlircd [22mto stop responding; even though [1mlircd [22mis
configured for the Pinnacle Systems remote, the TiVo remote IR
patterns are being seen by the IR receiver.
If your remote has been properly configured, and [1mirw [22mand [1mirxevent [22mare
working correctly, then it's highly likely that your window manager is
not giving focus correctly to the various Myth programs as they run.
The following window managers are known to work correctly:
+o fvwm
+o blackbox (using "Sloppy Focus" and "Focus New Windows")
[1mNOTE[22m: You do not need to use [1mirxevent [22mif you are using MythTV's
native LIRC support, so the window manager focus issue does not apply
in that case.
[1m22.5.9. Where's "canada-cable"?[0m
[1m22.5.10. Channels are off by one[0m
There is no such thing as "Canada Cable"; Canada uses the same
frequencies as the United States. "Canada Cable" was a hack that some
people used when they would discover that their channels were off-by-
one, i.e. when tuning to channel 42, they might get channel 41 or 43.
This is actually due to the tuner on the video capture device being
mis-detected. You must manually specify the tuner type in your
/etc/modules.conf. See the video4linux mailing list
(https://listman.redhat.com/mailman/listinfo/video4linux-list
<https://listman.redhat.com/mailman/listinfo/video4linux-list>) for
more information.
[1m22.5.11. Mythweb is showing a db_open error when I connect to it[0m
Find your php.ini file. Make sure you've got a line in it like this:
extension=mysql.so
Restart [1mapache [22mfor it to take effect.
[1m22.5.12. Mouse pointer disappears when placed over the MythTV windows[0m
This is the intended behavior. The MythTV interface is meant for use
with a remote control or a keyboard.
[1m22.5.13. What does "strange error flushing buffer" mean on the con-[0m
[1msole?[0m
Nothing, really. It's just lame (the mp3 encoder) complaining for
some obscure reason. This seems to be fixed in more recent versions
of the libmp3lame library.
[1m22.5.14. Can't change the channel when watching Live TV.[0m
Something's wrong with your program database. Did mythfilldatabase
run with no major errors? Or, MythTV may not have permissions to the
appropriate video4linux devices. See the section titled ``Device
Permissions'' for an example.
[1m22.5.15. Screen goes black when you try to play something[0m
MythTV prints error and status messages to the shell that was used to
start the application. If nothing seems to be happening when you try
to view a program, try switching back to the shell and look for error
messages there, or, if you're running from a startup script, check the
log file.
[1m22.5.16. Poor performance with NVidia cards and XvMC[0m
XvMC is a NVidia driver feature which is supposed to help with
decoding video. Users have reported that rather than speeding up
their video it appears to be doing the opposite. You may want to
check that your color depth is set for 24bpp.
[1m22.5.17. Computer is loading a media player application when you[0m
[1minsert a CD or DVD[0m
You need to disable any sort of auto-running media player in your
environment, otherwise MythDVD or MythMusic will not be able to work
properly.
In KDE, you may want to perform the following:
$ rm ~/.kde/Autostart/Autorun.desktop
[1m23. Miscellaneous.[0m
[1m23.1. I'd like to watch the files without using MythTV / I'd like to[0m
[1mconvert the files to some other format[0m
First, check if the [1mmytharchive [22mplugin does what you want. If not,
then read on:
MythTV comes with a utility called [1mmythtranscode [22mwhich can decode nuv
files into raw format for use with other applications. This command-
line utility was not designed to be used by the end-user, but instead
to be called by other applications or scripts. Programs like
[1mnuvexport [22m(http://forevermore.net/myth/
<http://forevermore.net/myth/>) are better suited for the end user.
However, since [1mmythtranscode [22mcan be a useful tool, directions on using
it follow.
[1mmythtranscode [22mcreates raw streams, which means that they do not
contain any container information such as resolution, frame-rate, or
audio sampling rate. In order to process the output, you must supply
this information to the processing utility. [1mmythtranscode [22mprovides
the relevant information on STDOUT.
There are two modes in which [1mmythtranscode [22mcan create raw streams.
The first has no synchronization and assumes that the processing
utility will read audio and video at a constant rate. This method is
useful when a single application will be processing the raw output,
such as [1mmencoder [22mor [1mffmpeg[22m. The second method assumes that two
separate applications will be processing the audio and video streams
independently, and there is no rate control between them which means
that the two programs don't coordinate their efforts to maintain
synchronization.
[1m23.1.1. mythtranscode example[0m
First, start [1mmythtranscode[22m. You will need to determine the channel
and the start time manually.
$ mythtranscode --chanid 1036 --starttime 2003-10-20T15:30:00 --profile \
autodetect --fifodir . &
When [1mmythtranscode [22mbegins executing, it will create two FIFOs
("audout" and "vidout") in the directory specified (in this case ".",
meaning the current directory) and will print out information about
the video stream.
The next step is to start the processing application. The following
assumes that the stream is NTSC 640x480 with 32Kbps audio.
To use [1mmencoder [22myou would enter a command like:
mencoder -audiofile audout -audio-demuxer 20 -rawaudio rate=32000 \
-rawvideo on:w=640:h=480:fps=29.97 -ovc lavc -oac mp3lame -o out.avi \
vidout
[1mNOTE[22m: You must use mencoder 1.0PRE1 or later. [1mmencoder[0m
version 0.9x [4mWILL[24m [4mNOT[24m [4mWORK![24m Using ffmepg:
ffmpeg -f u16le -ar 32000 -ac 2 -i audout -f rawvideo -s 640x480 -r 29.97 \
-i vidout -vcodec mpeg4 -b 2000 -acodec mp3 -ab 128 out.avi
Or to play directly using mplayer (again 1.0PRE1 or later is needed):
mplayer -audiofile audout -audio-demuxer 20 -rawaudio rate=32000 \
-rawvideo on:w=640:h=480:fps=29.97 vidout
If you wanted to write the raw data to separate audio and video files
for later processing, the following would work (note the use of
--fifosync for rate-control):
$ mythtranscode --chanid 1036 --starttime 2003-10-20T15:30:00 \
--profile autodetect --fifodir . --fifosync &
$ cat audout > audio.raw &
$ cat vidout > video.yuv
[1m23.2. Using a different window manager[0m
MythTV is not dependent on any particular window manager. If you wish
to run a lightweight window manager, the contrib/configfiles/
directory has an example of a .twmrc and .fvwmrc file you may use.
[1m23.3. What capture resolution should I use? How does video work?[0m
While MythTV allows you to set various GUI and capture resolutions,
not all combinations make sense.
First, analog video signals have a defined vertical resolution. In
NTSC, the video standard specifies that there are 525 vertical scan
lines. Once the "extra" lines are removed (they're used to
synchronize the video signal, and encode closed captioning data), you
have 480 horizontal lines stacked vertically.
In PAL, there are 625 "raw" lines of resolution, with a net of 576
horizontal lines stacked vertically.
Horizontally, the maximum value allowed for a Bt8X8 chip is 720.
However, due to limitations in the chip and other limitations of
broadcast television, there may not be a noticeable improvement in
image quality beyond 400 or 500 pixels.
With this in mind, there are certain commonly accepted values for
resolution. While other values may be accepted for the vertical
resolution, they will cause scan lines to be repeated or dropped.
From "best" to "worst", in NTSC:
+o 720x480 "DVD" resolution. ReplayTV High and medium resolution
+o 704x480 DVD standalone recorder standard resolution
+o 640x480 4:3
+o 544x480 TiVo Best resolution
+o 480x480 SuperVCD (SVCD) Video CD resolution, TiVo High resolution
+o 352x480 ReplayTV "Standard" quality, TiVo Basic and Medium
resolution, DVD "LP" resolution
+o 320x480
+o 544x240
+o 480x240
+o 352x240 Video CD (VCD) resolution
+o 320x240
As you can see, the lower quality values are half of the better ones.
720x240 is possible, but isn't a good tradeoff relative to the number
of vertical lines lost. In a PAL country, the you would use values
like 720x576 or x288.
The higher resolutions will be more CPU intensive if you're using
software encoding (PVR-250/350 will have minimal host CPU impact even
if you're using 720x480). If the CPU is overtaxed, frames will be
dropped causing uneven motion. You will likely see the best results at
resolutions which average at least 10% CPU idle time. You can use
system tools such as top or sar to check the CPU % idle while
recording. If the CPU average usage is consistently exceeding 90%,
frames will need to be dropped during peak times when more than 100%
of the available CPU would be needed to process all of the frames.
If you'd like to read more on this, go to the vcdhelp website at
http://www.vcdhelp.com/forum/userguides/94382.php
<http://www.vcdhelp.com/forum/userguides/94382.php>.
[1m23.4. MythTV GUI and X Display Sizes[0m
MythTV is designed to be run as dedicated full screen TV application
but can also be run as a desktop application on a computer monitor.
Here are a few consideration for configuring sizes to best suit you
needs.
[1m23.4.1. X Dimensions[0m
For output to a Television, common resolutions are 640x480, 800x600,
and some rare devices support 1024x768. Generally, higher resolutions
are better. However, you may find that you prefer the picture quality
at one of the lower resolutions. Everything in MythTV is scalable and
should 'fit' regardless of the resolution you choose.
Edit your X configuration file, usually /etc/X11/XF86Config-4 for
XFree, or /etc/X11/xorg.conf for Xorg, so that the resolution you want
to use is listed first in the lists under "Screen". If this resolution
is higher than the resolutions supported by your output device, you
will see a 'panning' effect where moving the mouse to the edge will
scroll around a desktop area which is larger than the display size. If
this happens, edit your X configuration file to match the display size
then restart X.
[1m23.4.2. MythTV Dimensions[0m
From "mythfrontend" go to Setup->Appearance. The default for the
height and width is "0" - this will cause MythTV to automatically size
itself to full screen.
If the MythTV GUI width and height are not 0, mythfrontend uses these
GUI dimensions and is anchored to the upper left corner of the X
Desktop. If the GUI X and/or Y are not 0, the upper left corner is
positioned at the specified coordinates. If the "Run the frontend in a
window" box is checked, the window will have a frame and can then be
dragged to any position on the desktop.
[1mNOTE[22m: When the GUI is full screen, you may see windows rapidly
flipping on top of each other. If this happens you will need to set
your window manager to 'Click to Focus' for windows to stack properly.
The fonts for the GUI and OSD will scale to whatever sizes you use.
Most font sizes can be changed in setup selections or in the .xml
files under /usr/local/share/mythtv/ . Make sure to use fonts large
enough to be read on a TV screen from a distance.
The full screen TV size is based on the X display size. For Xinerama,
you can specify a screen in Setup->General. The TV picture will be
stretched to fit the entire GUI area regardless of the ``capture
resolutions'' used. However, during playback, the "W" key can to used
to correct differences between 16:9 and 4:3.
[1m23.4.3. Overscan Dimensions[0m
Because picture edges can be ragged and screen edges aren't straight,
Television is designed to project an image larger than the physical
screen. This is called "overscan". Underscan is fitting the entire
image inside the screen. Underscan is useful for computer monitors so
that toolbars and scrollbars at the edges can be seen.
For best results, match the X display area as close as possible to the
edges of the physical screen. This can only be adjusted by your tv-out
device or by the settings for the television set. Many sets have these
adjustments in a 'service mode'. If you cannot make these adjustments,
there will be black borders around the edges of the X desktop, MythTV
GUI and TV playback.
MythTV has settings for "Overscan" in Setup->Playback. These can not,
and do not, cause the image to display beyond the edge of the X
display area. The purpose of these settings are to cut off rough edges
and to expand the image so that objects will appear to be the same
size as a normal overscanned TV picture.
[1m23.5. Saving or restoring the database[0m
See the [1mmysqldump [22mmanpage for more information.
$ mysqldump -u mythtv -pmythtv mythconverg -c > mythtv_backup.sql
To restore: (assuming that you've dropped the database)
$ mysql -u root
mysql>create database mythconverg;
mysql>exit
$ mysql -u mythtv -pmythtv mythconverg < mythtv_backup.sql
You may need to alter the MySQL permissions if this database is being
shared with multiple systems. See the ``Modifying access to the MySQL
database for multiple systems'' section for more information.
[1m23.6. Deleting the MySQL database[0m
[1mNOTE[22m: Performing this step will remove the entire database. You will
lose all of your settings and will need to re-run the mc.sql script
to setup the database structure before running the mythtv-setup
program.
$ mysql -u root
mysql> drop database mythconverg;
mysql> quit
[1m23.7. Moving your data to new hardware[0m
This assumes that you will be moving your data to newer / bigger
hardware and don't want to lose your programs.
The first step is to create a database backup as demonstrated in an
earlier section.
Next, you will extract only the data that is relevant to the programs:
$ grep "INSERT INTO record " mythtv_backup.sql > restore.sql
$ grep "INSERT INTO recorded " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO oldrecorded " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedprogram " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedrating " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedmarkup " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO recordedseek " mythtv_backup.sql >> restore.sql
[1mNOTE[22m: Newer versions of [1mmysqldump [22mplace backticks around the table
names. Backticks are not the same as apostrophes! On a typical North
American keyboard, backticks are located to the left of the "1" key,
on the same key as the tilde. Also, because the [1mbash [22mshell may try to
interpret the backticks, make sure you use a \ before each one.
If your restore.sql file is empty, you'll need to re-run the commands
like this:
$ grep "INSERT INTO \`record\` " mythtv_backup.sql > restore.sql
$ grep "INSERT INTO \`recorded\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`oldrecorded\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedprogram\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedrating\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedmarkup\` " mythtv_backup.sql >> restore.sql
$ grep "INSERT INTO \`recordedseek\` " mythtv_backup.sql >> restore.sql
Note the space after the table name and the ">>" to append to the file
for all but the first [1mgrep[22m. "recordedmarkup" and "recordedseek" are
huge and there may be hundreds of thousands of lines if you had lots
of hours of recordings.
After you have moved the data files to the new hardware, configure
MythTV using the [1mmythtv-setup [22mprogram as you normally would with a
standard MythTV installation.
At this point we will restore the information about your programs back
into the database:
$ mysql -u mythtv -pmythtv mythconverg < restore.sql
After successful insertion of the data you may delete the restore.sql
file.
[1m23.8. btaudio[0m
btaudio allows you to obtain the audio data from your tuner card
directly over the PCI bus without using a sound card. This is useful
if you would like to use multiple tuner cards in a system without
adding a sound card for each one, or if your existing sound card is
not capable of full-duplex operation.
In order to use btaudio, your tuner card will need certain hardware
installed on it, and that hardware must be wired correctly. The chip
that will allow you to use the btaudio module is the MSP34xx.
However, having a MSP34xx is no guarantee that you will be able to use
the btaudio module.
As of 2003-03-31, this is the current list of cards and their status:
Works with btaudio:
+o Hauppauge WinTV-radio with dbx-TV stereo, model 401
+o Hauppauge WinTV-Theater, model 495, 498 (Europe)
+o ATI TV Wonder
The following cards do not work:
+o Pinnacle Studio PCTV Pro - note: this has a MSP34xx, but it's not
wired correctly to the BT878 chip.
+o ATI TV Wonder VE
+o Leadtek Winfast 2000 XP (PAL, UK and NTSC)
+o I/O Magic PC-PVR. No MSP34xx chip.
The following cards have been reported to work, but have issues:
+o Avermedia AVerTV Studio (no digital DSP output, "whiney noise" on
analog)
Once btaudio loads, it should register additional /dev/dsp and
/dev/mixer devices. Typing $ dmesg will let you know what's going on.
[1m23.9. Removing unwanted channels[0m
If [1mmythfilldatabase [22mgrabbed a channel which you do not want to include
in your TV listings, you can remove the entries from the grabber
configuration and the MySQL database. This often happens with premium
channels; for example, HBO or Showtime may be available on your cable
TV system, but is scrambled because you're not a subscriber to that
channel. Since you can never watch it, you want to get rid of it.
If you are using the DataDirect service, login to your account at
http://labs.zap2it.com/ <http://labs.zap2it.com/> to modify your
lineup. Uncheck the boxes for any unwanted channels, and they will no
longer be included in your download.
If you are using a grabber from XMLTV, comment out the channel from
the ~/.mythtv/<sourcename>.xmltv file by inserting the word "not "
(including the space) in front of the unwanted entry. This will
prevent [1mxmltv [22mfrom grabbing future listings.
Next, delete the unwanted item from the channel table so that it will
not appear in the EPG or when changing channels. To delete the data
from the database we need to perform some steps. First, assuming that
HBO is channel 15, we need to find out the internal chanid used by
MySQL:
$ mysql -u root mythconverg
mysql> select chanid from channel where channum=15;
+--------+
| chanid |
+--------+
| 1015 |
+--------+
1 row in set (0.00 sec)
mysql> delete from channel where chanid = 1015;
Old program data will be removed over the course of a week. However,
you may want to immediately delete any current program listings for
the channel that has been removed:
$ mysql -u root mythconverg
mysql> delete from program where chanid = 1015;
[1m23.10. NFS[0m
You may want to use a central server to store your files.
On the host machine, (in this case, the hostname is "masterbackend")
you'll want to edit your /etc/exports file and use something like:
/var/video (rw)
To export the /var/video directory with read / write privileges.
On the "slave" machine, you'll want to edit the /etc/fstab file and
add something like:
masterbackend:/var/video /var/video nfs rsize=8192,wsize=8192,hard,intr,nfsvers=3,actimeo=0
Then run # mount -a to re-read the file to mount the file system.
In this case, the source is a machine called "masterbackend" which is
exporting the directory "/var/video", which we're mounting locally at
"/var/video". The rsize and wsize options are used to increase the
performance of NFS; "hard,intr" is there because that's the
recommendation of the NFS-HOWTO, the nfsvers is required for filesizes
over 2GB and actimeo is used to turn off file attribute caching.
Attribute caching for a shared media point causes problems; you always
want to see the latest state of the directory and files. See
http://www.mythtv.org/wiki/index.php/Optimizing_Performance
<http://www.mythtv.org/wiki/index.php/Optimizing_Performance> for
additional information regarding performance optimization.
[1m23.11. Automatically starting mythfrontend at system boot time[0m
Here's an example submitted to the mythtv-dev list by Pat Pflaum
mailto:pat@netburp.com <mailto:pat@netburp.com> using fvwm:
$ cat > .xinitrc
fvwm &
mythfrontend
^D
$ cat > .fvwmrc
Style myth* NoTitle, NoHandles, Sticky, WindowListSkip, SloppyFocus, GrabFocus, BorderWidth 0
^D
$
The following also works with blackbox:
$ cat > .xinitrc
xset -dpms s off &
irxevent &
mythfrontend &
blackbox
Make sure that your .blackboxrc file has:
session.screen0.focusNewWindows: True
session.screen0.focusModel: SloppyFocus
in it.
[1m23.12. Automatically starting mythbackend at system boot time[0m
[1m23.12.1. Red Hat And Mandriva[0m
Here's a method for automatically starting mythbackend submitted by
Mike Thomson (mailto:linux@m-thomson.net <mailto:linux@m-thomson.net>)
and Stu Tomlinson (mailto:stu@nosnilmot.com
<mailto:stu@nosnilmot.com>).
Copy the files from the MythTV contrib directory or from Mike's web
site (http://m-thomson.net/mythtv/ <http://m-thomson.net/mythtv/>) as
follows:
etc.rc.d.init.mythbackend should be made executable and copied to
/etc/rc.d/init.d/:
$ cd contrib
$ su
# chmod a+x etc.rc.d.init.d.mythbackend
# cp etc.rc.d.init.d.mythbackend /etc/rc.d/init.d/mythbackend
etc.sysconfig.mythbackend should be copied to /etc/sysconfig/:
$ cd contrib
$ su
# cp etc.sysconfig.mythbackend /etc/sysconfig/mythbackend
Edit /etc/sysconfig/mythbackend if you want to change the defaults
(the userid that should start mythbackend, location of the logfile and
(if required) the name and location of the mythbackend binary).
Use [1mchkconfig [22mto make sure the script is called when entering
runlevels 3, 4 or 5:
$ su
# chkconfig --level 345 mythbackend on
# exit
$
[1m23.12.1.1. Log files[0m
By default, the log file for mythbackend will be written to
/var/tmp/mythbackend.log. This has been tested and is known to work on
Mandriva and Red Hat, but many people prefer to place logs under
/var/log/.
To do this, create a group called mythtv (or anything you prefer) and
add your usual MythTV users to that group. If you changed the user
that starts mythbackend from the default of root you [4mmust[24m perform this
step.
Create the directory /var/log/mythtv and set its permissions as
follows:
$ su
# mkdir /var/log/mythtv
# chown root:mythtv /var/log/mythtv
# chmod 0775 /var/log/mythtv
# exit
$ ls -ld /var/log/mythtv
drwxrwxr-x 2 root mythtv 4096 Apr 28 21:58 /var/log/mythtv/
$
Create a mythtv file in /etc/logrotate.d:
$ su
# cat > /etc/logrotate.d/mythtv
# Set default values for all log files first...
# Rotate the logs once a week, or more frequently if they
# exceed 10Mb in size (size is checked daily).
weekly
size 10M
# 'copytruncate' is used for logs generated by
# currently-running programs that should not be restarted
# (and can't be signalled to start a new log) after the
# rotation. It duplicates the existing log file and then
# sets the length of the existing file to 0. The only time
# this would break would be if the program writing the log
# was using lseek.
copytruncate
# After rotating the files, leave the most recent rotated
# copy alone but gzip everything else to save space.
compress
delaycompress
# If a log isn't present then don't worry about it.
missingok
# Don't rotate an empty file.
notifempty
# end of the global options
/var/log/mythtv/mythbackend.log /var/log/mythtv/mythfrontend.log {
# Keep logs until they are 2 months old or the number of
# logs reaches 12. If the log files stay small, the age will
# kick in first and you'll only have 8 log files. If they
# get larger than 10Mb then you won't keep all 60 days.
rotate 12
maxage 60
}
# Different options for mythfilldatabase:
/var/log/mythtv/mythfilldatabase.log {
rotate 2
}
^D
#
[1m23.12.1.2. Mandriva[0m
Mandriva adds one more twist in the form of the msec utility, which
runs regularly and (at the default or any higher security level) sets
permissions on many files, including those under /var/log.
To tell msec about the MythTV log files and their directory, you need
to edit the /etc/security/msec/perm.local file to include the
following:
# /etc/security/msec/perm.local
# Local overrides to the msec program
#
# Full file path user.group permissions
/var/log/mythtv/ root.mythtv 775
/var/log/mythtv/* root.mythtv 664
A copy of the above has been included in the contrib/ directory. You
may add it by typing:
$ cd contrib
$ su
# cat etc.security.msec.perm.local >> /etc/security/msec/perm.local
# exit
Finally run the msec tool to check and implement your changes.
$ su
# msec
# exit
$
[1mNOTE[22m: msec can only [4mreduce[24m the permissions of files, so if
you don't get the results you expect, check that you're not asking
msec to add missing permissions to the files or directories you
created.
[1m23.12.2. Gentoo[0m
The portage file for MythTV has scripts that will allow you to run
mythbackend at startup.
To run mythbackend as a daemon which starts at boot time:
# rc-update add mythbackend default
To stop mythbackend as a daemon:
# /etc/init.d/mythbackend stop
To obtain a list of options:
# /etc/init.d/mythbackend
[1m23.13. Advanced Backend Configurations[0m
MythTV is flexible in the way that you define multiple backend tuner
configurations. The only hard-and-fast rule is that the Master
backend [4mmust[24m have a capture device defined, but shouldn't imply that
the capture device in the Master backend must be the first capture
card defined in the database.
One example of an advanced configuration is the round-robin scheme.
Rather than defining all of the cards on the master, you could first
go into mythtv-setup on the master to define globals such as the
general configuration and the channel lineup but not the host-specific
configuration item like the capture card. In this example, we will
use a 4 tuner configuration, where two slaves have one card each and
the master has two.
1. Add the first capture card on one of the slaves. Complete the
configuration, connecting the input source to the card. This will
get cardid #1 in the database. Exit mythtv-setup.
2. Configure the first capture card on the master backend. This will
get cardid #2 in the database. Exit mythtv-setup.
3. Configure the first capture card on the second slave. This will be
cardid #3 in the database. Exit mythtv-setup.
4. Configure the second capture card on the master backend. This will
get cardid #4 in the database. Exit mythtv-setup.
Using this scheme, the master backend will not use both capture cards
until one of the following happens:
+o There are four recordings scheduled for the same time
+o Both slaves are unavailable
The scheduler in MythTV checks whether an encoder is available; if a
slave backend isn't running, its encoder isn't available, so the
scheduler will look for the next available encoder. This makes MythTV
very flexible; slave tuners can come and go, and as long as there are
enough tuners for what you'd like to record it doesn't matter which
tuner in particular is going to be used.
Using this round-robin scheme along with a shared storage directory
like NFS and enabling the Master Backend Override setting will allow
you to view content even if the slave backend that recorded a program
is not available.
[1m23.14. Using the transcoder[0m
MythTV's built-in transcoder re-encodes recordings from one codec to
another. The transcoder has three primary uses; it can transcode
MPEG-2 files captured using a hardware encoder (PVR cards, DVB cards,
ATSC HD, etc.) to MPEG-4, it can be used to transcode RTjpeg files
(usually only used on systems that can not real-time encode to MPEG-4
using a framegrabber) to MPEG-4, and finally it can be used to remove
commercials from a MPEG-2 file while leaving the file in MPEG-2
format.
When MythTV transcodes a file to MPEG-4 or RTjpeg the resulting file
format is NuppelVideo (nuv). NuppelVideo is a container which
provides a method of keeping the audio and video in sync throughout
the recording, which is why it is used instead of the .avi format.
You may have difficulty playing .nuv files in non-MythTV systems.
The original file is removed when the transcoding process is complete.
Unless you're sure that you will be satisfied with the result you may
want to enable the [1mmythtv-setup [22moption which causes [1mmythbackend [22mto
keep the original file after transcoding. This option is on the
second page of the General section in mythtv-setup. Enabling this
allows you to compare the two files and restore the original if you
like. Outside of the initial setup phase it usually isn't necessary
to leave this option enabled. A recording can be transcoded in two
ways:
+o Automatically transcode the file once it has completed recording.
+o Manually choosing to transcode a recording, usually after importing
a cutlist or manually marking commercials to be removed.
The second method can be used on files that have already been
transcoded (or files which were are already in the desired format), so
only the frames immediately following a cut section will be re-
encoded, resulting in a minimal loss of quality when removing
commercials with the added benefit of being extremely quick.
The current transcoding system has a lot flexibility, but there are a
number of steps involved in setting it up. In order to automatically
transcode a given recording you must do the following:
1. Configure recording profile for your capture source and enable
transcoding on one or more profiles.
2. Configure one or more transcoding profiles.
3. Create or alter existing scheduled recordings to enable transcoding
for that recording.
[1m23.14.1. Configuring Recording Profiles to Allow Transcoding[0m
Enter the Utilities/Setup > Setup > TV Settings > Recording Profiles
section in [1mmythfrontend[22m. Choose the option that corresponds to your
capture source (ignore the Transcoders for now.) Choose the quality
profile you are interested in using for transcoding. Ensure that
"Enable auto-transcode after recording" is checked.
[1m23.14.2. Configure Transcoding Profiles[0m
Enter the Recording Profiles > Transcoders menu. There are three
quality settings to choose from and a two special Autodetect settings.
Later, when scheduling recordings you'll have to choose one of
Autodetect, High, Medium, and Low Quality transcode settings in
addition to the recording profile we set up above. If you choose the
Autodetect transcoding profile for a recording, MythTV will use the
"Autodetect from RTjpeg/MPEG-4" profile for recordings which are
RTjpeg/MPEG-4 files. Otherwise, it will use the "Autodetect from
MPEG-2" profile provided it's an MPEG-2 recording. If you choose one
of the others (High, Medium, Low) it will use the settings in that
profile regardless of the codec of the original recording.
There are a number of options for transcoding but the simplest is to
enable lossless transcoding (the first option) which subsequently
removes all other options. Enabling lossless encoding simply removes
commercials (if you've marked them) and attempts to clean up MPEG-2
streams. Note that with this option MythTV will not apply any sort of
filters and will only attempt to normalize the stream into something
cleaner and less likely to have trouble with other less forgiving
MPEG-2 hardware/software (including players, video editors, etc.)
If you enable resizing of the recording the next page has the settings
for choosing the final resolution. MythTV will scale the video as
appropriate, not crop it to this resolution.
The final two pages allow configuration of the video and audio codecs.
Although RTjpeg is an option for video codec there is no reason to
transcode [4mto[24m this format because it will produce larger files than
MPEG-4 and the recording will take [4mmore[24m CPU power to play back. The
MPEG-4 settings are described in the documentation for the [1mffmpeg[0m
project at http://ffmpeg.sourceforge.net/ffmpeg-doc.html
<http://ffmpeg.sourceforge.net/ffmpeg-doc.html>. It's a matter of
trial and error to discover which settings achieve a good compromise
between size and quality.
If you wish to return to the default settings, they are Bitrate:
2200-2500, MaxQ: 2, MinQ: 15, MaxQDiff: 3, and "Scale bitrate for
frame size" is enabled. The other options are unchecked.
[1m23.14.3. Create/Alter Scheduled Recordings to Enable Transcoding[0m
Transcoding is actually enabled on a per-recording basis. Two things
must be true before any given recording will be auto-transcoded,
however. The first is that the recording must have been made with a
recording profile that has auto-transcode enabled. Under "Storage
Options" for the recording you must set the "Record using the "X"
profile" to the profile you configured in the first step. In
addition, under the "Post Recording Options" section of the recording
you must also set "Transcode new recordings." This is also where you
specify the Transcoding profile to use (Auto, High, Medium, Low.)
It may not be obvious from above but the flexibility of this system is
primarily to make it possible to auto-transcode a show recorded via
one source (ie: pcHDTV 3000), and not transcode that same show if it's
recorded on another kind of card (ie: PVR-250.) There are other uses
however. You could have a PVR-250 and a V4L card. You may want to
transcode the MPEG-2 from the PVR-250 but there is no need to
transcode the recordings made with the V4L card, as it's already
likely to be MPEG-4.
As an example, you could configure the Default profile for "Hardware
DVB Encoders" (the profile group used for DVB cards, including ATSC
cards like the pcHDTV 3000) to "Enable auto-transcoding". In the
Default profile for MPEG-2 Encoders (PVR cards) you'd leave "Enable
auto-transcoding" unchecked. For programs that are available on both
kinds of cards you'd set the recording profile to Default and enable
auto-transcoding in the record settings. Then you pick your
transcoding profile. The result is that when a program is recorded on
your DVB card, it will get transcoded. When it plays on a channel
available via your PVR card, it won't be.
[1m23.14.4. Manual Transcoding[0m
Manually transcoding is activated while watching a show by hitting
'x', from the OSD menu by choosing the Transcode option, or by
choosing Job Options/Transcode from the info menu from the Watch or
Delete Recordings screens.
The transcoding profile used for manual transcoding is whatever was
set when the recording was originally configured, even if you didn't
enable auto-transcoding. The only way to change what transcoding
profile will be used is to alter the transcoder column in the recorded
table in the database. The transcoder column contains a number which
corresponds with the id column in the recordingprofiles table. You
can find out the id number for each profile in the transcoder group
with an SQL command like:
mysql> select r.* from recordingprofiles r,profilegroups p where p.name='Transcoders' and p.id=r.profilegroup;
+----+----------------+------------+------------+--------------+
| id | name | videocodec | audiocodec | profilegroup |
+----+----------------+------------+------------+--------------+
| 21 | RTjpeg/MPEG4 | MPEG-4 | MP3 | 6 |
| 22 | MPEG2 | MPEG-4 | MP3 | 6 |
| 27 | High Quality | MPEG-4 | MP3 | 6 |
| 28 | Medium Quality | MPEG-4 | MP3 | 6 |
| 29 | Low Quality | MPEG-4 | MP3 | 6 |
+----+----------------+------------+------------+--------------+
5 rows in set (0.01 sec)
mysql>
Armed with the knowledge of what the profile ID's are you can also
choose to run mythtranscode from the command line and explicitly
specify the transcoder profile. Run mythtranscode --help for usage
information.
[1m23.15. Changing your hostname[0m
If you need to change the name of the computers used with MythTV
you'll need to perform a sequence of steps. There are a number of
pieces of information that MythTV keeps track of which are tied to the
hostname of the box, so changing the hostname involves altering the
name in the operating system and in the MySQL database. In the
examples below, the old name of the system was "frontend1" and we're
going to change it to "kidsroom".
[1mNOTE[22m: Changing the hostname using direct SQL update commands will
break things. You [4mMUST[24m use this indirect method.
1. Stop all backends. If you run [1mmythbackend [22mfrom a terminal
session, press control-c. If your backends are started with an init
script, you would do something like the following:
$ su
# /etc/init.d/mythbackend stop
2. Change the hostname.
For Red Hat and derived distributions, edit the /etc/sysconfig/network
file. Look for HOSTNAME=frontend1 and change this to
HOSTNAME=kidsroom or whatever you'll be using. For other
distributions, refer to the documentation, such as the
hostname(1)
To alter the hostname in the current session, run:
# hostname kidsroom
3. Dump the database.
$ mysqldump -u mythtv -pmythtv mythconverg -c > mythtv_backup.sql
4. Rename the host in the database. First, ensure that the new
hostname you'll be using isn't already in the database.
$ grep kidsroom mythtv_backup.sql
Now we're actually going to change the name. The following should all
be typed on the same line:
$ cat mythtv_backup.sql | sed s/\'frontend1\'/\'kidsroom\'/g >> mythtv_restore.sql
If you don't feel comfortable using [1msed[22m, you can open the
mythtv_backup.sql file in a text editor and perform a global search
and replace. When saving the file, make sure you use the new name,
mythtv_restore.sql or the rest of the steps below will fail.
5. Drop and recreate the database.
$ mysql -u root
mysql>drop database mythconverg;
mysql>create database mythconverg;
mysql>exit
6. Restore the database using your edited version.
$ mysql -u mythtv -pmythtv mythconverg < mythtv_restore.sql
If you are running slave backends or frontends, don't forget to re-
enable access as detailed in ``Modifying access to the MySQL database
for multiple systems''.
7. Start the backends. If you use init scripts, do the following,
otherwise start them from terminal consoles.
# /etc/init.d/mythbackend start
8. Quit and restart all frontends. Delete the mythtv_backup.sql and
mythtv_restore.sql files.
[1m23.16. Can I run MythTV on my TiVo?[0m
[1m23.17. Can I run MythTV on my ReplayTV?[0m
No.
While it is true that the TiVo runs the Linux kernel, and TiVo has
released their changes to the kernel under the GPL, the TiVo is [4mnot[24m a
general-purpose computer, and there is no programming information
available for the custom hardware contained within a TiVo. TiVo is
under no obligation to release the source code to their [4mapplication[24m.
The ReplayTV runs VxWorks, a Real Time Operating System from Wind
River Systems.
[1m23.18. Can a wireless connection be used between the frontend and the[0m
[1mbackend?[0m
Yes, assuming that your wireless connection has sufficient bandwidth
to maintain the datarate between the frontend and the backend.
802.11b should be sufficient if the encoded bitrate of the content is
less than the datarate of your wireless connection, which in the case
of 802.11b would be approximately 4 Mbps. (The advertised rate of
11Mbps gives an actual throughput of 4 Mbps.) 802.11a and 802.11g, if
operating in their high-speed modes, or proprietary 802.11b "Turbo"
schemes should be adequate. Multiple wireless frontends, poor signal
strength or other factors can severely impact the viewing experience
on the frontend.
[1m23.19. How can I burn shows that I have recorded to a DVD?[0m
Use the mytharchive plugin.
[1m23.20. Using the DBoxII within MythTV[0m
The configuration of the DBoxII for use within MythTV is tricky (as of
May 16 2005), that's why it's covered here. Your DBoxII has to be
running linux and the Neutrino GUI instead of the stock BetaNova
firmware. For further information, please refer to
http://www.tuxbox.org <http://www.tuxbox.org>. Additionally, you need
to enable the SPTS mode in Neutrino.
+o Add a new "Capture Card" in the setup. The "Card type" is "DBOX2
Input", the other values have to be adjusted according to your
setup. The default values, except for the "DBOX2 host ip", should
work fine.
+o Define a new video source. It doesn't need to be configured, you
just need to define it. MythTV grabs the EPG from the DBoxII.
+o Connect the DBoxII to the newly defined input source in "input
connections".
+o Since channel scanning is not implemented yet, you need to define
channels in the "Channel Editor". Make sure that you use the same
value for "Channel Name" as on the DBoxII. You can get a list of
available channels from the web interface of Neutrino at http://ip-
of-your-box:80/. Associate the channel with your new video source
and repeat when needed.
You may leave the Setup now and proceed as usual.
[1m23.21. What do the icons on the Watch Recordings screen mean?[0m
Press "1" or F1 to get a popup.
[1m23.22. What do the letters mean when I change channels?[0m
These letters let you know what's going on with the backend as it
tries to tune to a channel.
Lower case = seen
Upper Case = seen & good
+o l/L = Lock : This could be seen by PVR-250/BTTV users
+o a/A = PAT : Any recording transmitted in MPEG
+o m/M = PMT : Any recording transmitted in MPEG
+o g/G = MGT : ATSC only
+o v/V = VCT : ATSC only
+o n/N = NIT : DVB only
+o s/S = SDT : DVB only
[1m23.23. What is the difference between the various Hauppauge PVR mod-[0m
[1mels?[0m
This is covered in the hardware section, and extensively covered on
the Hauppauge website.
(http://www.hauppauge.com/pages/compare_pvr.html
<http://www.hauppauge.com/pages/compare_pvr.html>) Please check the
Hauppauge website for the most accurate information.
A PVR-150 comes in a number of versions:
+o The PVR-150 (Model 1045) is the retail kit. It comes with a remote
control and an IR Blaster. It does not have a radio tuner.
+o The PVR-150 MCE (Model 1042) will usually come in a plain white box
and is sold as an OEM device. It does not come with a remote
control, since it's usually used as the second, third, etc capture
device.
+o The PVR-150 MCE Kit (Model 1062) does not have a radio tuner and
comes with a Microsoft Media Center remote control instead of
Hauppauge's.
+o The PVR-150 low profile (Model 1086) is a low-profile card. It has
a radio tuner and is approximately half the height of a standard
card. However, it comes with a low-profile PCI bracket, so it is
not suitable for use in a standard PCI slot without removing the
bracket, which may not be worth the trouble.
A PVR-250 (Model 980) is a retail kit which comes with an IR receiver
and a remote control.
The PVR-250 MCE (Model 975) contains a FM radio tuner. The PVR-250
MCE does not contain a IR receiver or a remote.
The PVR-250 Rev 1 contained an MPEG-2 decoder. However, this function
was not connected to any output jacks, and there doesn't appear to be
any way to pull decoded video from the card, so it's a fairly useless
feature.
The PVR-350 (model 990) has the features of the PVR-250 as well as
being able to decode MPEG-2. The encode and decode functions may be
used simultaneously. The MPEG-2 decoder function gives superior video
quality compared to what you'll find on a standard video card.
However, the decoder function is only available once Linux has
started, so you will not see any boot-time messages. Also, the card
is not capable of resolutions higher than 720x480, so it cannot be
used with HDTV. Make a conscious decision (and ask for advice on the
mailing list) that you want to tradeoff potential HDTV use in the
future compared to video quality.
The X-driver for the PVR-350 support playback using Xv efficiently but
does not support any other 2D or 3D acceleration. For some application
this may place a large load on the host CPU, some will run without any
problem and others (mplayer, xine, xmame etc.) should be configured to
utilize the Xv interface.
Note that for the PVR-350 there are some ``considerations'' regarding
the way audio is handled.
The PVR-500 is a dual-encoder version of the PVR-150 card, so you can
simultaneously record two different programs at the same time, because
there are two encoder chips on the PCI card. Hauppuage has also
installed an onboard splitter, so you can use one COAX to feed both
tuners. Current versions of the PVR-500 should come with an adapter
to allow you to connect a second S-Video or composite input, but this
will take up a second PCI slot. Early adopters may need to purchase
this item separately.
[1m23.24. Changing channels on an external Set Top Box[0m
If you need to use an external Set Top Box (STB), such as for
satellite TV or for digital cable you will need some way for MythTV to
tell the STB to switch to a new channel. There are several methods:
1. Use an IR blaster. An IR blaster is an infrared transmitter
connected to your computer. When MythTV needs to change channels
it will send IR pulses, thereby emulating a remote control.
2. Use a direct serial connection. Some STB's have a serial port on
the back, although it may not look like a serial port. It may look
like a phone jack, or a strange VGA connector. It may be labeled
"Low Speed Data". A direct serial connection is more reliable than
an IR blaster. Not all STB's that have a Low Speed Data port have
it enabled; you may need to convince your service provider to turn
it on. Stating that you have a Tivo may help; the Tivo has a
direct-connect capability.
3. Use a firewire connection. There is a 6200ch.c in the MythTV
contrib directory which may work for you.
[1m23.25. Configuring one machine to flag all commercials[0m
Commercial flagging can be CPU intensive. By default, the backend
that created a recording is the one which will flag commercials. You
may wish to use a different machine to run commercial flagging.
On the slower machine:
Start the mythtv-setup program. Advance through the pages until you
get to the Job Queue page. Turn off the setting that says "Allow
Commercial Detection jobs", thereby preventing any commercial flagging
jobs from running on this machine.
Next, make sure that "Run Jobs only on original recording host" is
turned OFF so that new jobs are allowed to run anywhere.
Restart [1mmythbackend [22msince it only reads this setting when it starts
up.
On the faster machine:
Start the [1mmythtv-setup [22mprogram. Advance through the pages until you
get to the Job Queue page. Ensure that "Allow Commercial Detection
jobs" is turned ON for this machine.
Run [1mmythjobqueue[22m. [1mmythjobqueue [22mwill examine the JobQueue and run any
jobs it finds. [1mmythjobqueue [22mshould be left running so that it will
pick up any new commercial flagging jobs that are added to the queue,
otherwise new jobs will be added to the queue and your programs won't
be flagged until you run manually run [1mmythjobqueue[22m.
Using this technique it's possible to add commercial flagging machines
as needed, even on systems that aren't running a backend. It's also
possible to run the commercial flagger in a virtual machine
environment such as VMWare.
[1m24. Example Configurations.[0m
[1m24.1. Logical Volume Manager (LVM)[0m
LVM greatly increases the flexibility you have in managing your
storage than traditional physical partitions. This section will
provide some brief notes on how to use LVM to create storage space for
your video files and how to add additional disk space in the future.
There's lots more that can be done with LVM, so check the LVM HOWTO
http://tldp.org/HOWTO/LVM-HOWTO/ <http://tldp.org/HOWTO/LVM-HOWTO/>
document for details.
[1mNOTE[22m: If you are running MythTV 0.21 and you are using LVM to
create one large filesystem to store your recordings, it's no longer
recommended that you go the LVM route. The preferred solution is to
use ``Storage Groups''. They're more flexible and less likely to lose
all of your recordings if you have a drive failure.
If you don't understand how to partition a drive, or how to change the
partition type you should stop and look at documentation on how to
perform these steps.
[1mBIG FAT WARNING[22m: Using an incorrect parameter can make your files
inaccessible, prevent your computer from booting, etc. Be careful!
Make sure your kernel configuration includes LVM support or that it's
available as a module. Today, most vendors include this by default.
You'll also want to ensure that you have a copy of the LVM utilities;
check your distribution, or get the latest versions from
http://www.sistina.com/products_lvm.htm
<http://www.sistina.com/products_lvm.htm> and build them manually.
Check that the [1mvgscan [22mprogram is being run at some point during your
boot sequence - most distributions do this by default. Look for a
message during boot up that looks like this: vgscan -- reading all
physical volumes (this may take a while...) If you don't see any
messages during boot, you may need to install a LVM init script or
confirm that you have all of the LVM packages installed from your
distribution.
LVM uses a few concepts you should be familiar with before starting.
+o PV (Physical Volume). The actual partition on the hard drive.
+o VG (Volume Group). The aggregation of all the PVs make a VG.
+o LV (Logical Volume). Subdivision of the pool of space available in
the VG into individual chunks, like /usr, /var/video, etc.
The following example assumes that you want to create a LVM partition
from a chunk of space in /dev/hda5, using a reiserfs filesystem and
mounted on /var/video. You later decide to extend this filesystem by
adding a new disk: /dev/hdb.
You need to create at least one LVM partition for a physical volume.
Use [1mfdisk [22mor your favorite partition editor to set the type to LVM
(0x8e). If you're using an entire disk, create one big partition
rather than using the device itself. e.g. use /dev/hdb1 not /dev/hdb.
In the following example, you have a 15GB disk. The first 6GB are set
as your boot partition. /dev/hda2 was added as an extended partition,
and within that partition you created the /dev/hda5 linux (ext2)
partition.
# fdisk /dev/hda
The number of cylinders for this disk is set to 1823.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/hda: 15.0 GB, 15000330240 bytes
255 heads, 63 sectors/track, 1823 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 764 6136798+ 83 Linux
/dev/hda2 765 1823 8506417+ 5 Extended
/dev/hda5 765 1823 8506417 83 Linux
Command (m for help): t
Partition number (1-6): 5
Hex code (type L to list codes): 8e
Command (m for help): p
Disk /dev/hda: 15.0 GB, 15000330240 bytes
255 heads, 63 sectors/track, 1823 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 764 6136798+ 83 Linux
/dev/hda2 765 1823 8506417+ 5 Extended
/dev/hda5 765 1823 8506417 8e Linux LVM
Command (m for help): w
#
Create the LVM physical volume from the partitions (repeat if you have
multiple partitions to use):
# pvcreate /dev/hda5
Create a LVM volume group out of this physical volume called
"VGforMyth" that is allocated in chunks that are a multiple of 64MB
# vgcreate VGforMyth -s 64m /dev/hda5
Create a logical volume of 5GB called "video" and then create the
reiserfs filesystem and mount it:
# lvcreate --name video --size 5G VGforMyth
# mkreiserfs /dev/VGforMyth/video
# mount /dev/VGforMyth/video /var/video
Now create a 3GB volume for mythmusic files if you like:
# lvcreate --name music --size 3G VGforMyth
# mkreiserfs /dev/VGforMyth/music
# mount /dev/VGforMyth/music /var/music
Display the volume group status: # vgdisplay -v
Now, lets suppose you want to add a 60GB hard disk to the system as
hdb and allocate 50GB of it to video storage.
First, create a single partition /dev/hdb1 covering the whole disk and
make it type 0x8e using your partition editor.
# fdisk /dev/hdb .... create partition, set type, save and reboot if
it says you have to
Create the new LVM physical volume:
# pvcreate /dev/hdb1
Add the new physical volume to the volume group:
# vgextend VGforMyth /dev/hdb1
[1mNOTE[22m: You may get errors at this point stating that there are no
physical volumes available for adding to the LV, even though you know
for a fact that there are. You may need to specify the physical
volume in the /dev/ide/host/bus/target/lun/etc format. Once you've
completed one of the following two procedures, use [1mdf [22mto check that
you've got more space.
Make the logical volume used for video bigger:
# lvextend --size +50G /dev/VGforMyth/video
[1m24.1.1. ReiserFS[0m
Unmount, resize and remount the filesystem. Technically, you don't
need to unmount and remount the ReiserFS.
# umount /var/video
# resize_reiserfs /dev/VGforMyth/video
# mount /dev/VGforMyth/video /var/video
[1m24.1.2. ext2 or ext3[0m
LVM comes with a program called [1mresize2fs[22m.
Unmount, resize and remount the filesystem. The filesystem [4mmust[24m be
unmounted during this procedure.
# umount /var/video
# resize2fs --size +50G /dev/VGforMyth/video
# mount /dev/VGforMyth/video /var/video
[1m24.1.3. xfs[0m
XFS does not need to be unmounted to extend the size:
# xfs_growfs /var/video
[1m24.2. Advanced Partition Formatting[0m
The partitions that your distribution sets up for you may not be
optimized for large files. Using LVM in conjunction with the following
techniques can be quite useful.
Unlike a typical filesystem, a MythTV video partition is usually a
very large filesystem filled with a fairly small number of large
files. Filesystem I/O is usually not an issue, even in multi-tuner
and/or multi-frontend setups.
There is however, one aspect of filesystem performance that can have a
bearing on the performance of MythTV. In Linux, deleting a file will
utilize I/O bandwidth until the deletion has been completed. If
deleting the file takes long enough, the video capture buffer may
overrun, thereby resulting in dropped frames. Some filesystems are
faster at deleting files than others and, for multi-gigabyte MythTV
video files, these differences can be significant.
Fortunately, there are published tests
(http://aurora.zemris.fer.hr/filesystems/big.html
<http://aurora.zemris.fer.hr/filesystems/big.html>) that provide
insight into filesystem performance under conditions relevant to
MythTV usage. In addition, some limited testing (archived at
http://www.gossamer-threads.com/lists/mythtv/users/52672
<http://www.gossamer-threads.com/lists/mythtv/users/52672>) with very
large files (10 gigabytes) was reported in the MythTV Users mailing
list.
[1m24.2.1. Ext2[0m
Ext2 was the defacto standard Linux filesystem for many years. It is
stable, provides good I/O performance and can quickly delete large
files. The primary disadvantage of Ext2 is that it is not a
journaling filesystem, so a file system consistency check (fsck, which
is normally only performed after a system crash) can take many hours
on a filesystem the size of a typical MythTV partition.
[1m24.2.2. Ext3[0m
Ext3 is Ext2 with a journal, so your biggest gain is that in case of a
crash and reboot you won't have to wait very long for your partition
to be remounted.
There are options available when formatting an Ext3 partition, as in:
# mkfs.ext3 -T largefile4 /dev/hdb1
This example assumes that /dev/hdb1 has already been created using
[1mfdisk[22m. If you're using LVM, /dev/hdb1 may be something like
/dev/VGforMyth/video.
The "-T largefile4" option creates one inode per 4 megabytes, which
can provide a few percent more storage space. However, tests indicate
that using the "-T largefile4" option can drastically increase the
amount of time required to delete a large file and thus it should only
be used with encoder settings that produce small video files (YMMV).
You can check on your filesystem using the [1mdumpe2fs [22mprogram. See the
man page for details.
[1m24.2.3. ReiserFS[0m
The Reiser filesystem is another journaling filesystem commonly
distributed with Linux. It is known to be an extremely efficient
filesystem and it especially excels at managing partitions containing
a large number of small files. However, tests indicate it is not the
fastest at deleting very large files. For that reason, it may not be
the best choice when using encoder bitrates that produce very large
files.
[1m24.2.4. JFS[0m
JFS (Journaling File System) is a journaling filesystem originally
developed by IBM for AIX which was later released as open source.
While not as common as Ext3 or ReiserFS, it is distributed with RedHat
9 (RH9), Fedora Core and Mandriva as well as other distros. According
to tests, JFS is the file deletion speed king, deleting virtually any
file in under one second, even files as large as 10 gigabytes.
[1m24.2.5. XFS[0m
XFS is a journaling file system originally developed by SGI for Irix,
and later released as open source. While not a part of the default
RedHat Linux 9 or Fedora Core installation (although it is a part of
Mandriva and Fedora Core 2+), it can be easily installed via ATrpms.
XFS provides deletion speeds for large files only slightly slower than
JFS. According to the test results shown at
(http://aurora.zemris.fer.hr/filesystems/big.html
<http://aurora.zemris.fer.hr/filesystems/big.html>), XFS provide
higher I/O rates than JFS, albeit at a higher CPU loading. This may
cause issues if you do not have the spare CPU capacity to handle XFS,
potentially leading to dropped frames.
[1m24.3. Migrating from DataDirect Labs to Schedules Direct[0m
MythTV v0.20.2 or later is required to natively support Schedules
Direct. Code has been included to make the transition as simple as
possible.
[1mYou do not need to delete your existing video sources or add new ones![0m
The following steps should work for most users:
+o Create a Schedules Direct account and use the same information as
your existing lineups at Zap2It Labs. Do not add or delete
channels at this time.
+o Shut down any running [1mmythfrontend [22mand [1mmythbackend [22mprograms.
+o Perform a backup of your existing database. See ``Saving or
restoring the database'' for instructions.
+o Run [1mmythtv-setup [22m-> Video Sources. Change the grabber to Schedules
Direct, update the username and password fields with the account
information you created at Schedules Direct and select "Retrieve
Lineups". Click Finish.
+o Exit [1mmythtv-setup [22mand run [1mmythfilldatabase[22m. Check if there were
any errors.
+o Restart your [1mmythbackend [22mand [1mmythfrontend [22mprograms.
[1m24.4. Caching support for Schedules Direct[0m
MythTV 0.20.2 or later supports caching of downloaded information from
Schedules Direct, so devices that share a common source do not require
multiple downloads.
Before beginning, perform a backup of your existing database. See
``Saving or restoring the database'' for instructions.
In the following scenario, assume that you have the following:
1. A PVR-150 MPEG-2 encoder card connected directly to a CATV source.
2. A PVR-250 MPEG-2 encoder card connected via S-Video to a CATV Set
Top Box.
What we are going to do is to create a single lineup at Schedules
Direct and then create two Video Sources which use the same login
information but have different channels associated with them.
On your Schedules Direct account, create a lineup that has all of the
channels that you can receive. Because we have a Set Top Box (STB),
choose a Digital lineup. Yes, this means that you may have 900
channels in this lineup, but that's OK.
Use the Schedules Direct channel editor and unselect any channels that
you can't tune without the STB. This will usually be channels higher
than 125, but check your CATV provider lineup if you're not sure.
Once you've deselected them (using a click on the first channel you
can't receive and then a shift-click on the last channel you can't
receive will deselect all the channels in between those two.) click
the Save Changes button at the bottom of the screen.
In [1mmythtv-setup[22m, create a Video Source with an appropriate name. "SD-
Analog Only" will be used in this example. Click "Retrieve Lineups"
and select the digital lineup you just created at Schedules Direct.
Click "Finish" to return to the Video sources selector and then press
the ESC key to go back to the main screen.
Now choose Input Connections. Select the PVR-150 which is connected
directly to the CATV. Set the Video Source to "SD-Analog Only" and
click "Fetch channels from listings source".
Set the start channel to an appropriate value.
[1mNOTE[22m: There is a bug where the "Fetch" command may not work; you can
tell that the Fetch did not retrieve any channels in one of two ways:
in the text-mode console, you will see a connection to Schedules
Direct, but it doesn't appear to retrieve any channel information:
2007-08-25 15:03:05.526 New DB DataDirect connection
2007-08-25 15:03:05.526 Connected to database 'mythconverg' at host: localhost
2007-08-25 15:03:05.536 DataDirect: Your subscription expires on 11/23/2007 01:12:10 PM
2007-08-25 15:03:05.707 New DB connection, total: 3
2007-08-25 15:03:05.707 Connected to database 'mythconverg' at host: localhost
2007-08-25 15:03:05.708 sourceid 2 has lineup type: CableDigital
2007-08-25 15:03:06.623 Data fetching complete.
2007-08-25 15:03:06.624 DataDirect: Deleting temporary files
or, the "Please add channels to this source" message in the "Starting
channel" field stays on the screen.
If either of these happens, save the information on this screen by
clicking the "Finish" button. Exit back to the Input connections
screen by pressing ESC, then select this Input Connection again. This
time the Fetch will work and the "Please add channels to this source"
message will disappear.
If you look at the text-mode console, you'll see this if the channel
retrieval is working:
2007-08-25 15:04:32.437 New DB DataDirect connection
2007-08-25 15:04:32.437 Connected to database 'mythconverg' at host: localhost
2007-08-25 15:04:32.447 DataDirect: Your subscription expires on 11/23/2007 01:12:10 PM
2007-08-25 15:04:32.622 New DB connection, total: 3
2007-08-25 15:04:32.622 Connected to database 'mythconverg' at host: localhost
2007-08-25 15:04:32.623 sourceid 2 has lineup type: CableDigital
2007-08-25 15:04:33.418 DataDirect: Adding channel 41 'AMC' (AMC).
2007-08-25 15:04:33.422 DataDirect: Adding channel 32 'A & E Network' (AETV).
2007-08-25 15:04:33.425 DataDirect: Adding channel 66 'Black Entertainment Television' (BET).
2007-08-25 15:04:33.427 DataDirect: Adding channel 180 'Bravo' (BRAVO).
2007-08-25 15:04:33.430 DataDirect: Adding channel 51 'ABC Family' (FAM).
2007-08-25 15:04:33.432 DataDirect: Adding channel 146 'Country Music Television' (CMTV).
2007-08-25 15:04:33.435 DataDirect: Adding channel 39 'CNBC' (CNBC).
2007-08-25 15:04:33.437 DataDirect: Adding channel 36 'Cable News Network' (CNN).
2007-08-25 15:04:33.440 DataDirect: Adding channel 35 'CNN Headline News' (CNNH).
Repeat the Input Connection configuration for any other capture
devices that are connected directly to the CATV system. You do not
need to click Fetch once you've done one successful download of the
channel information - the Starting channel should be automatically
populated.
Go back to Schedules Direct and re-enable the channels that you had
previously deselected, then click Save Changes.
Create a new Video Source, here called "SD-All Digital Channels".
Perform the same "Retrieve Listings" you did before.
Go back to the Input Connections screen, select the PVR-250 which is
connected to the STB, assign the "SD-All Digital Channels" video
source and perform a retrieve channels. This will pull down the
complete channel listing, but only for [4mthis[24m device.
When [1mmythfilldatabase [22mruns, it will cache the "big" download which is
appropriate for the STB, and then copy the information to the channels
that can only be accessed without the STB. But by default
[1mmythfilldatabase [22mis going to notice that the "Analog only" video
source is missing the channels that are in the Digital lineup you
created at Schedules Direct, so we need to override the addition of
new channels.
When you run [1mmythfilldatabase [22mto populate your database, you'll need
to run it like this:
$ mythfilldatabase --remove-new-channels
You will also need to modify how the [1mmythbackend [22mcalls
[1mmythfilldatabase [22mwhen it performs its automatic listings update.
In [1mmythfrontend[22m, select "Setup" -> "General".
Continue press ENTER until you reach the Mythfilldatabase
configuration screen. In the "mythfilldatabase Arguments" field, type
--remove-new-channels
then press the TAB key until you reach Finish, then press ENTER to
save. You can then press ESC until you return to the main screen.
|