1 /* Copyright (C) 2006 Nathan Laredo <laredo@gnu.org> 2 Nathan contributed the frequency tables. 3 4 Copyright (C) 2006 Hans Verkuil <hverkuil@xs4all.nl> 5 Added the iso-std table. 6 7 The libv4l2util Library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or (at your option) any later version. 11 12 The libv4l2util Library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Lesser General Public License for more details. 16 17 You should have received a copy of the GNU Lesser General Public 18 License along with the libv4l2util Library; if not, write to the Free 19 Software Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 20 02110-1335 USA. */ 21 22 #include <stdlib.h> 23 24 #include <linux/videodev2.h> 25 #include "libv4l2util.h" 26 27 /* This source was originally written by Nathan Laredo <laredo@gnu.org>. 28 He kindly gave permission to release this source under the LGPL 29 license. */ 30 31 /* --------------------------------------------------------------------- */ 32 33 /* US broadcast */ 34 static const struct v4l2_channel_list ntsc_bcast[] = { 35 { "2", 55250 }, 36 { "3", 61250 }, 37 { "4", 67250 }, 38 { "5", 77250 }, 39 { "6", 83250 }, 40 { "7", 175250 }, 41 { "8", 181250 }, 42 { "9", 187250 }, 43 { "10", 193250 }, 44 { "11", 199250 }, 45 { "12", 205250 }, 46 { "13", 211250 }, 47 { "14", 471250 }, 48 { "15", 477250 }, 49 { "16", 483250 }, 50 { "17", 489250 }, 51 { "18", 495250 }, 52 { "19", 501250 }, 53 { "20", 507250 }, 54 { "21", 513250 }, 55 { "22", 519250 }, 56 { "23", 525250 }, 57 { "24", 531250 }, 58 { "25", 537250 }, 59 { "26", 543250 }, 60 { "27", 549250 }, 61 { "28", 555250 }, 62 { "29", 561250 }, 63 { "30", 567250 }, 64 { "31", 573250 }, 65 { "32", 579250 }, 66 { "33", 585250 }, 67 { "34", 591250 }, 68 { "35", 597250 }, 69 { "36", 603250 }, 70 { "37", 609250 }, 71 { "38", 615250 }, 72 { "39", 621250 }, 73 { "40", 627250 }, 74 { "41", 633250 }, 75 { "42", 639250 }, 76 { "43", 645250 }, 77 { "44", 651250 }, 78 { "45", 657250 }, 79 { "46", 663250 }, 80 { "47", 669250 }, 81 { "48", 675250 }, 82 { "49", 681250 }, 83 { "50", 687250 }, 84 { "51", 693250 }, 85 { "52", 699250 }, 86 { "53", 705250 }, 87 { "54", 711250 }, 88 { "55", 717250 }, 89 { "56", 723250 }, 90 { "57", 729250 }, 91 { "58", 735250 }, 92 { "59", 741250 }, 93 { "60", 747250 }, 94 { "61", 753250 }, 95 { "62", 759250 }, 96 { "63", 765250 }, 97 { "64", 771250 }, 98 { "65", 777250 }, 99 { "66", 783250 }, 100 { "67", 789250 }, 101 { "68", 795250 }, 102 { "69", 801250 }, 103 104 { "70", 807250 }, 105 { "71", 813250 }, 106 { "72", 819250 }, 107 { "73", 825250 }, 108 { "74", 831250 }, 109 { "75", 837250 }, 110 { "76", 843250 }, 111 { "77", 849250 }, 112 { "78", 855250 }, 113 { "79", 861250 }, 114 { "80", 867250 }, 115 { "81", 873250 }, 116 { "82", 879250 }, 117 { "83", 885250 }, 118 }; 119 120 /* US cable */ 121 static const struct v4l2_channel_list ntsc_cable[] = { 122 { "1", 73250 }, 123 { "2", 55250 }, 124 { "3", 61250 }, 125 { "4", 67250 }, 126 { "5", 77250 }, 127 { "6", 83250 }, 128 { "7", 175250 }, 129 { "8", 181250 }, 130 { "9", 187250 }, 131 { "10", 193250 }, 132 { "11", 199250 }, 133 { "12", 205250 }, 134 135 { "13", 211250 }, 136 { "14", 121250 }, 137 { "15", 127250 }, 138 { "16", 133250 }, 139 { "17", 139250 }, 140 { "18", 145250 }, 141 { "19", 151250 }, 142 { "20", 157250 }, 143 144 { "21", 163250 }, 145 { "22", 169250 }, 146 { "23", 217250 }, 147 { "24", 223250 }, 148 { "25", 229250 }, 149 { "26", 235250 }, 150 { "27", 241250 }, 151 { "28", 247250 }, 152 { "29", 253250 }, 153 { "30", 259250 }, 154 { "31", 265250 }, 155 { "32", 271250 }, 156 { "33", 277250 }, 157 { "34", 283250 }, 158 { "35", 289250 }, 159 { "36", 295250 }, 160 { "37", 301250 }, 161 { "38", 307250 }, 162 { "39", 313250 }, 163 { "40", 319250 }, 164 { "41", 325250 }, 165 { "42", 331250 }, 166 { "43", 337250 }, 167 { "44", 343250 }, 168 { "45", 349250 }, 169 { "46", 355250 }, 170 { "47", 361250 }, 171 { "48", 367250 }, 172 { "49", 373250 }, 173 { "50", 379250 }, 174 { "51", 385250 }, 175 { "52", 391250 }, 176 { "53", 397250 }, 177 { "54", 403250 }, 178 { "55", 409250 }, 179 { "56", 415250 }, 180 { "57", 421250 }, 181 { "58", 427250 }, 182 { "59", 433250 }, 183 { "60", 439250 }, 184 { "61", 445250 }, 185 { "62", 451250 }, 186 { "63", 457250 }, 187 { "64", 463250 }, 188 { "65", 469250 }, 189 { "66", 475250 }, 190 { "67", 481250 }, 191 { "68", 487250 }, 192 { "69", 493250 }, 193 194 { "70", 499250 }, 195 { "71", 505250 }, 196 { "72", 511250 }, 197 { "73", 517250 }, 198 { "74", 523250 }, 199 { "75", 529250 }, 200 { "76", 535250 }, 201 { "77", 541250 }, 202 { "78", 547250 }, 203 { "79", 553250 }, 204 { "80", 559250 }, 205 { "81", 565250 }, 206 { "82", 571250 }, 207 { "83", 577250 }, 208 { "84", 583250 }, 209 { "85", 589250 }, 210 { "86", 595250 }, 211 { "87", 601250 }, 212 { "88", 607250 }, 213 { "89", 613250 }, 214 { "90", 619250 }, 215 { "91", 625250 }, 216 { "92", 631250 }, 217 { "93", 637250 }, 218 { "94", 643250 }, 219 { "95", 91250 }, 220 { "96", 97250 }, 221 { "97", 103250 }, 222 { "98", 109250 }, 223 { "99", 115250 }, 224 { "100", 649250 }, 225 { "101", 655250 }, 226 { "102", 661250 }, 227 { "103", 667250 }, 228 { "104", 673250 }, 229 { "105", 679250 }, 230 { "106", 685250 }, 231 { "107", 691250 }, 232 { "108", 697250 }, 233 { "109", 703250 }, 234 { "110", 709250 }, 235 { "111", 715250 }, 236 { "112", 721250 }, 237 { "113", 727250 }, 238 { "114", 733250 }, 239 { "115", 739250 }, 240 { "116", 745250 }, 241 { "117", 751250 }, 242 { "118", 757250 }, 243 { "119", 763250 }, 244 { "120", 769250 }, 245 { "121", 775250 }, 246 { "122", 781250 }, 247 { "123", 787250 }, 248 { "124", 793250 }, 249 { "125", 799250 }, 250 251 { "T7", 8250 }, 252 { "T8", 14250 }, 253 { "T9", 20250 }, 254 { "T10", 26250 }, 255 { "T11", 32250 }, 256 { "T12", 38250 }, 257 { "T13", 44250 }, 258 { "T14", 50250 } 259 }; 260 261 /* US HRC */ 262 static const struct v4l2_channel_list ntsc_hrc[] = { 263 { "1", 72000 }, 264 265 { "2", 54000 }, 266 { "3", 60000 }, 267 { "4", 66000 }, 268 269 { "5", 78000 }, 270 { "6", 84000 }, 271 272 { "7", 174000 }, 273 { "8", 180000 }, 274 { "9", 186000 }, 275 { "10", 192000 }, 276 { "11", 198000 }, 277 { "12", 204000 }, 278 { "13", 210000 }, 279 { "14", 120000 }, 280 { "15", 126000 }, 281 { "16", 132000 }, 282 { "17", 138000 }, 283 { "18", 144000 }, 284 { "19", 150000 }, 285 { "20", 156000 }, 286 { "21", 162000 }, 287 { "22", 168000 }, 288 { "23", 216000 }, 289 { "24", 222000 }, 290 { "25", 228000 }, 291 { "26", 234000 }, 292 { "27", 240000 }, 293 { "28", 246000 }, 294 { "29", 252000 }, 295 { "30", 258000 }, 296 { "31", 264000 }, 297 { "32", 270000 }, 298 { "33", 276000 }, 299 { "34", 282000 }, 300 { "35", 288000 }, 301 { "36", 294000 }, 302 { "37", 300000 }, 303 { "38", 306000 }, 304 { "39", 312000 }, 305 { "40", 318000 }, 306 { "41", 324000 }, 307 { "42", 330000 }, 308 { "43", 336000 }, 309 { "44", 342000 }, 310 { "45", 348000 }, 311 { "46", 354000 }, 312 { "47", 360000 }, 313 { "48", 366000 }, 314 { "49", 372000 }, 315 { "50", 378000 }, 316 { "51", 384000 }, 317 { "52", 390000 }, 318 { "53", 396000 }, 319 { "54", 402000 }, 320 { "55", 408000 }, 321 { "56", 414000 }, 322 { "57", 420000 }, 323 { "58", 426000 }, 324 { "59", 432000 }, 325 { "60", 438000 }, 326 { "61", 444000 }, 327 { "62", 450000 }, 328 { "63", 456000 }, 329 { "64", 462000 }, 330 { "65", 468000 }, 331 { "66", 474000 }, 332 { "67", 480000 }, 333 { "68", 486000 }, 334 { "69", 492000 }, 335 { "70", 498000 }, 336 { "71", 504000 }, 337 { "72", 510000 }, 338 { "73", 516000 }, 339 { "74", 522000 }, 340 { "75", 528000 }, 341 { "76", 534000 }, 342 { "77", 540000 }, 343 { "78", 546000 }, 344 { "79", 552000 }, 345 { "80", 558000 }, 346 { "81", 564000 }, 347 { "82", 570000 }, 348 { "83", 576000 }, 349 { "84", 582000 }, 350 { "85", 588000 }, 351 { "86", 594000 }, 352 { "87", 600000 }, 353 { "88", 606000 }, 354 { "89", 612000 }, 355 { "90", 618000 }, 356 { "91", 624000 }, 357 { "92", 630000 }, 358 { "93", 636000 }, 359 { "94", 642000 }, 360 361 { "95", 90000 }, 362 { "96", 96000 }, 363 { "97", 102000 }, 364 { "98", 108000 }, 365 { "99", 114000 }, 366 367 { "100", 648000 }, 368 { "101", 654000 }, 369 { "102", 660000 }, 370 { "103", 666000 }, 371 { "104", 672000 }, 372 { "105", 678000 }, 373 { "106", 684000 }, 374 { "107", 690000 }, 375 { "108", 696000 }, 376 { "109", 702000 }, 377 { "110", 708000 }, 378 { "111", 714000 }, 379 { "112", 720000 }, 380 { "113", 726000 }, 381 { "114", 732000 }, 382 { "115", 738000 }, 383 { "116", 744000 }, 384 { "117", 750000 }, 385 { "118", 756000 }, 386 { "119", 762000 }, 387 { "120", 768000 }, 388 { "121", 774000 }, 389 { "122", 780000 }, 390 { "123", 786000 }, 391 { "124", 792000 }, 392 { "125", 798000 }, 393 394 { "T7", 7000 }, 395 { "T8", 13000 }, 396 { "T9", 19000 }, 397 { "T10", 25000 }, 398 { "T11", 31000 }, 399 { "T12", 37000 }, 400 { "T13", 43000 }, 401 { "T14", 49000 }, 402 }; 403 404 /* US IRC */ 405 static const struct v4l2_channel_list ntsc_irc[] = { 406 { "1", 73250 }, 407 { "2", 55250 }, 408 { "3", 61250 }, 409 { "4", 67250 }, 410 { "5", 79250 }, 411 { "6", 85250 }, 412 { "7", 175250 }, 413 { "8", 181250 }, 414 { "9", 187250 }, 415 { "10", 193250 }, 416 { "11", 199250 }, 417 { "12", 205250 }, 418 { "13", 211250 }, 419 420 { "14", 121150 }, 421 { "15", 127150 }, 422 { "16", 133150 }, 423 { "17", 139150 }, 424 { "18", 145150 }, 425 { "19", 151150 }, 426 { "20", 157150 }, 427 { "21", 163150 }, 428 { "22", 169150 }, 429 430 { "23", 217250 }, 431 { "24", 223250 }, 432 { "25", 229250 }, 433 { "26", 235250 }, 434 { "27", 241250 }, 435 { "28", 247250 }, 436 { "29", 253250 }, 437 { "30", 259250 }, 438 { "31", 265250 }, 439 { "32", 271250 }, 440 { "33", 277250 }, 441 { "34", 283250 }, 442 { "35", 289250 }, 443 { "36", 295250 }, 444 { "37", 301250 }, 445 { "38", 307250 }, 446 { "39", 313250 }, 447 { "40", 319250 }, 448 { "41", 325250 }, 449 { "42", 331250 }, 450 { "43", 337250 }, 451 { "44", 343250 }, 452 { "45", 349250 }, 453 { "46", 355250 }, 454 { "47", 361250 }, 455 { "48", 367250 }, 456 { "49", 373250 }, 457 { "50", 379250 }, 458 { "51", 385250 }, 459 { "52", 391250 }, 460 { "53", 397250 }, 461 { "54", 403250 }, 462 { "55", 409250 }, 463 { "56", 415250 }, 464 { "57", 421250 }, 465 { "58", 427250 }, 466 { "59", 433250 }, 467 { "60", 439250 }, 468 { "61", 445250 }, 469 { "62", 451250 }, 470 { "63", 457250 }, 471 { "64", 463250 }, 472 { "65", 469250 }, 473 { "66", 475250 }, 474 { "67", 481250 }, 475 { "68", 487250 }, 476 { "69", 493250 }, 477 { "70", 499250 }, 478 { "71", 505250 }, 479 { "72", 511250 }, 480 { "73", 517250 }, 481 { "74", 523250 }, 482 { "75", 529250 }, 483 { "76", 535250 }, 484 { "77", 541250 }, 485 { "78", 547250 }, 486 { "79", 553250 }, 487 { "80", 559250 }, 488 { "81", 565250 }, 489 { "82", 571250 }, 490 { "83", 577250 }, 491 { "84", 583250 }, 492 { "85", 589250 }, 493 { "86", 595250 }, 494 { "87", 601250 }, 495 { "88", 607250 }, 496 { "89", 613250 }, 497 { "90", 619250 }, 498 { "91", 625250 }, 499 { "92", 631250 }, 500 { "93", 637250 }, 501 { "94", 643250 }, 502 503 { "95", 91250 }, 504 { "96", 97250 }, 505 { "97", 103250 }, 506 { "98", 109250 }, 507 { "99", 115250 }, 508 { "100", 649250 }, 509 { "101", 655250 }, 510 { "102", 661250 }, 511 { "103", 667250 }, 512 { "104", 673250 }, 513 { "105", 679250 }, 514 { "106", 685250 }, 515 { "107", 691250 }, 516 { "108", 697250 }, 517 { "109", 703250 }, 518 { "110", 709250 }, 519 { "111", 715250 }, 520 { "112", 721250 }, 521 { "113", 727250 }, 522 { "114", 733250 }, 523 { "115", 739250 }, 524 { "116", 745250 }, 525 { "117", 751250 }, 526 { "118", 757250 }, 527 { "119", 763250 }, 528 { "120", 769250 }, 529 { "121", 775250 }, 530 { "122", 781250 }, 531 { "123", 787250 }, 532 { "124", 793250 }, 533 { "125", 799250 }, 534 535 { "T7", 8250 }, 536 { "T8", 14250 }, 537 { "T9", 20250 }, 538 { "T10", 26250 }, 539 { "T11", 32250 }, 540 { "T12", 38250 }, 541 { "T13", 44250 }, 542 { "T14", 50250 } 543 }; 544 545 546 /* --------------------------------------------------------------------- */ 547 548 /* JP broadcast */ 549 static const struct v4l2_channel_list ntsc_bcast_jp[] = { 550 { "1", 91250 }, 551 { "2", 97250 }, 552 { "3", 103250 }, 553 { "4", 171250 }, 554 { "5", 177250 }, 555 { "6", 183250 }, 556 { "7", 189250 }, 557 { "8", 193250 }, 558 { "9", 199250 }, 559 { "10", 205250 }, 560 { "11", 211250 }, 561 { "12", 217250 }, 562 563 { "13", 471250 }, 564 { "14", 477250 }, 565 { "15", 483250 }, 566 { "16", 489250 }, 567 { "17", 495250 }, 568 { "18", 501250 }, 569 { "19", 507250 }, 570 { "20", 513250 }, 571 { "21", 519250 }, 572 { "22", 525250 }, 573 { "23", 531250 }, 574 { "24", 537250 }, 575 { "25", 543250 }, 576 { "26", 549250 }, 577 { "27", 555250 }, 578 { "28", 561250 }, 579 { "29", 567250 }, 580 { "30", 573250 }, 581 { "31", 579250 }, 582 { "32", 585250 }, 583 { "33", 591250 }, 584 { "34", 597250 }, 585 { "35", 603250 }, 586 { "36", 609250 }, 587 { "37", 615250 }, 588 { "38", 621250 }, 589 { "39", 627250 }, 590 { "40", 633250 }, 591 { "41", 639250 }, 592 { "42", 645250 }, 593 { "43", 651250 }, 594 { "44", 657250 }, 595 596 { "45", 663250 }, 597 { "46", 669250 }, 598 { "47", 675250 }, 599 { "48", 681250 }, 600 { "49", 687250 }, 601 { "50", 693250 }, 602 { "51", 699250 }, 603 { "52", 705250 }, 604 { "53", 711250 }, 605 { "54", 717250 }, 606 { "55", 723250 }, 607 { "56", 729250 }, 608 { "57", 735250 }, 609 { "58", 741250 }, 610 { "59", 747250 }, 611 { "60", 753250 }, 612 { "61", 759250 }, 613 { "62", 765250 }, 614 }; 615 616 /* JP cable */ 617 static const struct v4l2_channel_list ntsc_cable_jp[] = { 618 { "13", 109250 }, 619 { "14", 115250 }, 620 { "15", 121250 }, 621 { "16", 127250 }, 622 { "17", 133250 }, 623 { "18", 139250 }, 624 { "19", 145250 }, 625 { "20", 151250 }, 626 627 { "21", 157250 }, 628 { "22", 165250 }, 629 { "23", 223250 }, 630 { "24", 231250 }, 631 { "25", 237250 }, 632 { "26", 243250 }, 633 { "27", 249250 }, 634 { "28", 253250 }, 635 { "29", 259250 }, 636 { "30", 265250 }, 637 { "31", 271250 }, 638 { "32", 277250 }, 639 { "33", 283250 }, 640 { "34", 289250 }, 641 { "35", 295250 }, 642 { "36", 301250 }, 643 { "37", 307250 }, 644 { "38", 313250 }, 645 { "39", 319250 }, 646 { "40", 325250 }, 647 { "41", 331250 }, 648 { "42", 337250 }, 649 { "43", 343250 }, 650 { "44", 349250 }, 651 { "45", 355250 }, 652 { "46", 361250 }, 653 { "47", 367250 }, 654 { "48", 373250 }, 655 { "49", 379250 }, 656 { "50", 385250 }, 657 { "51", 391250 }, 658 { "52", 397250 }, 659 { "53", 403250 }, 660 { "54", 409250 }, 661 { "55", 415250 }, 662 { "56", 421250 }, 663 { "57", 427250 }, 664 { "58", 433250 }, 665 { "59", 439250 }, 666 { "60", 445250 }, 667 { "61", 451250 }, 668 { "62", 457250 }, 669 { "63", 463250 }, 670 }; 671 672 /* --------------------------------------------------------------------- */ 673 674 /* australia */ 675 static const struct v4l2_channel_list pal_australia[] = { 676 { "0", 46250 }, 677 { "1", 57250 }, 678 { "2", 64250 }, 679 { "3", 86250 }, 680 { "4", 95250 }, 681 { "5", 102250 }, 682 { "5A", 138250 }, 683 { "6", 175250 }, 684 { "7", 182250 }, 685 { "8", 189250 }, 686 { "9", 196250 }, 687 { "10", 209250 }, 688 { "11", 216250 }, 689 { "28", 527250 }, 690 { "29", 534250 }, 691 { "30", 541250 }, 692 { "31", 548250 }, 693 { "32", 555250 }, 694 { "33", 562250 }, 695 { "34", 569250 }, 696 { "35", 576250 }, 697 { "36", 591250 }, 698 { "39", 604250 }, 699 { "40", 611250 }, 700 { "41", 618250 }, 701 { "42", 625250 }, 702 { "43", 632250 }, 703 { "44", 639250 }, 704 { "45", 646250 }, 705 { "46", 653250 }, 706 { "47", 660250 }, 707 { "48", 667250 }, 708 { "49", 674250 }, 709 { "50", 681250 }, 710 { "51", 688250 }, 711 { "52", 695250 }, 712 { "53", 702250 }, 713 { "54", 709250 }, 714 { "55", 716250 }, 715 { "56", 723250 }, 716 { "57", 730250 }, 717 { "58", 737250 }, 718 { "59", 744250 }, 719 { "60", 751250 }, 720 { "61", 758250 }, 721 { "62", 765250 }, 722 { "63", 772250 }, 723 { "64", 779250 }, 724 { "65", 786250 }, 725 { "66", 793250 }, 726 { "67", 800250 }, 727 { "68", 807250 }, 728 { "69", 814250 }, 729 }; 730 731 static const struct v4l2_channel_list pal_australia_optus[] = { 732 { "1", 138250 }, 733 { "2", 147250 }, 734 { "3", 154250 }, 735 { "4", 161250 }, 736 { "5", 168250 }, 737 { "6", 175250 }, 738 { "7", 182250 }, 739 { "8", 189250 }, 740 { "9", 196250 }, 741 { "10", 209250 }, 742 { "11", 216250 }, 743 { "12", 224250 }, 744 { "13", 231250 }, 745 { "14", 238250 }, 746 { "15", 245250 }, 747 { "16", 252250 }, 748 { "17", 259250 }, 749 { "18", 266250 }, 750 { "19", 273250 }, 751 { "20", 280250 }, 752 { "21", 287250 }, 753 { "22", 294250 }, 754 { "23", 303250 }, 755 { "24", 310250 }, 756 { "25", 317250 }, 757 { "26", 324250 }, 758 { "27", 338250 }, 759 { "28", 345250 }, 760 { "29", 352250 }, 761 { "30", 359250 }, 762 { "31", 366250 }, 763 { "32", 373250 }, 764 { "33", 380250 }, 765 { "34", 387250 }, 766 { "35", 394250 }, 767 { "36", 401250 }, 768 { "37", 408250 }, 769 { "38", 415250 }, 770 { "39", 422250 }, 771 { "40", 429250 }, 772 { "41", 436250 }, 773 { "42", 443250 }, 774 { "43", 450250 }, 775 { "44", 457250 }, 776 { "45", 464250 }, 777 { "46", 471250 }, 778 { "47", 478250 }, 779 { "48", 485250 }, 780 { "49", 492250 }, 781 { "50", 499250 }, 782 { "51", 506250 }, 783 { "52", 513250 }, 784 { "53", 520250 }, 785 { "54", 527250 }, 786 { "55", 534250 }, 787 }; 788 789 790 /* --------------------------------------------------------------------- */ 791 /* europe */ 792 793 /* CCIR frequencies */ 794 795 #define FREQ_CCIR_I_III \ 796 { "E2", 48250 }, \ 797 { "E3", 55250 }, \ 798 { "E4", 62250 }, \ 799 \ 800 { "S01", 69250 }, \ 801 { "S02", 76250 }, \ 802 { "S03", 83250 }, \ 803 \ 804 { "E5", 175250 }, \ 805 { "E6", 182250 }, \ 806 { "E7", 189250 }, \ 807 { "E8", 196250 }, \ 808 { "E9", 203250 }, \ 809 { "E10", 210250 }, \ 810 { "E11", 217250 }, \ 811 { "E12", 224250 } 812 813 #define FREQ_CCIR_SL_SH \ 814 { "SE1", 105250 }, \ 815 { "SE2", 112250 }, \ 816 { "SE3", 119250 }, \ 817 { "SE4", 126250 }, \ 818 { "SE5", 133250 }, \ 819 { "SE6", 140250 }, \ 820 { "SE7", 147250 }, \ 821 { "SE8", 154250 }, \ 822 { "SE9", 161250 }, \ 823 { "SE10", 168250 }, \ 824 \ 825 { "SE11", 231250 }, \ 826 { "SE12", 238250 }, \ 827 { "SE13", 245250 }, \ 828 { "SE14", 252250 }, \ 829 { "SE15", 259250 }, \ 830 { "SE16", 266250 }, \ 831 { "SE17", 273250 }, \ 832 { "SE18", 280250 }, \ 833 { "SE19", 287250 }, \ 834 { "SE20", 294250 } 835 836 #define FREQ_CCIR_H \ 837 { "S21", 303250 }, \ 838 { "S22", 311250 }, \ 839 { "S23", 319250 }, \ 840 { "S24", 327250 }, \ 841 { "S25", 335250 }, \ 842 { "S26", 343250 }, \ 843 { "S27", 351250 }, \ 844 { "S28", 359250 }, \ 845 { "S29", 367250 }, \ 846 { "S30", 375250 }, \ 847 { "S31", 383250 }, \ 848 { "S32", 391250 }, \ 849 { "S33", 399250 }, \ 850 { "S34", 407250 }, \ 851 { "S35", 415250 }, \ 852 { "S36", 423250 }, \ 853 { "S37", 431250 }, \ 854 { "S38", 439250 }, \ 855 { "S39", 447250 }, \ 856 { "S40", 455250 }, \ 857 { "S41", 463250 } 858 859 /* OIRT frequencies */ 860 861 #define FREQ_OIRT_I_III \ 862 { "R1", 49750 }, \ 863 { "R2", 59250 }, \ 864 \ 865 { "R3", 77250 }, \ 866 { "R4", 85250 }, \ 867 { "R5", 93250 }, \ 868 \ 869 { "R6", 175250 }, \ 870 { "R7", 183250 }, \ 871 { "R8", 191250 }, \ 872 { "R9", 199250 }, \ 873 { "R10", 207250 }, \ 874 { "R11", 215250 }, \ 875 { "R12", 223250 } 876 877 #define FREQ_OIRT_SL_SH \ 878 { "SR1", 111250 }, \ 879 { "SR2", 119250 }, \ 880 { "SR3", 127250 }, \ 881 { "SR4", 135250 }, \ 882 { "SR5", 143250 }, \ 883 { "SR6", 151250 }, \ 884 { "SR7", 159250 }, \ 885 { "SR8", 167250 }, \ 886 \ 887 { "SR11", 231250 }, \ 888 { "SR12", 239250 }, \ 889 { "SR13", 247250 }, \ 890 { "SR14", 255250 }, \ 891 { "SR15", 263250 }, \ 892 { "SR16", 271250 }, \ 893 { "SR17", 279250 }, \ 894 { "SR18", 287250 }, \ 895 { "SR19", 295250 } 896 897 #define FREQ_UHF \ 898 { "21", 471250 }, \ 899 { "22", 479250 }, \ 900 { "23", 487250 }, \ 901 { "24", 495250 }, \ 902 { "25", 503250 }, \ 903 { "26", 511250 }, \ 904 { "27", 519250 }, \ 905 { "28", 527250 }, \ 906 { "29", 535250 }, \ 907 { "30", 543250 }, \ 908 { "31", 551250 }, \ 909 { "32", 559250 }, \ 910 { "33", 567250 }, \ 911 { "34", 575250 }, \ 912 { "35", 583250 }, \ 913 { "36", 591250 }, \ 914 { "37", 599250 }, \ 915 { "38", 607250 }, \ 916 { "39", 615250 }, \ 917 { "40", 623250 }, \ 918 { "41", 631250 }, \ 919 { "42", 639250 }, \ 920 { "43", 647250 }, \ 921 { "44", 655250 }, \ 922 { "45", 663250 }, \ 923 { "46", 671250 }, \ 924 { "47", 679250 }, \ 925 { "48", 687250 }, \ 926 { "49", 695250 }, \ 927 { "50", 703250 }, \ 928 { "51", 711250 }, \ 929 { "52", 719250 }, \ 930 { "53", 727250 }, \ 931 { "54", 735250 }, \ 932 { "55", 743250 }, \ 933 { "56", 751250 }, \ 934 { "57", 759250 }, \ 935 { "58", 767250 }, \ 936 { "59", 775250 }, \ 937 { "60", 783250 }, \ 938 { "61", 791250 }, \ 939 { "62", 799250 }, \ 940 { "63", 807250 }, \ 941 { "64", 815250 }, \ 942 { "65", 823250 }, \ 943 { "66", 831250 }, \ 944 { "67", 839250 }, \ 945 { "68", 847250 }, \ 946 { "69", 855250 } 947 948 static const struct v4l2_channel_list europe_west[] = { 949 FREQ_CCIR_I_III, 950 FREQ_CCIR_SL_SH, 951 FREQ_CCIR_H, 952 FREQ_UHF 953 }; 954 955 static const struct v4l2_channel_list europe_east[] = { 956 FREQ_OIRT_I_III, 957 FREQ_OIRT_SL_SH, 958 FREQ_CCIR_I_III, 959 FREQ_CCIR_SL_SH, 960 FREQ_CCIR_H, 961 FREQ_UHF 962 }; 963 964 static const struct v4l2_channel_list pal_italy[] = { 965 { "A", 53750 }, 966 { "B", 62250 }, 967 { "C", 82250 }, 968 { "D", 175250 }, 969 { "E", 183750 }, 970 { "F", 192250 }, 971 { "G", 201250 }, 972 { "H", 210250 }, 973 { "H1", 217250 }, 974 { "H2", 224250 }, 975 FREQ_UHF 976 }; 977 978 static const struct v4l2_channel_list pal_ireland[] = { 979 { "A0", 45750 }, 980 { "A1", 48000 }, 981 { "A2", 53750 }, 982 { "A3", 56000 }, 983 { "A4", 61750 }, 984 { "A5", 64000 }, 985 { "A6", 175250 }, 986 { "A7", 176000 }, 987 { "A8", 183250 }, 988 { "A9", 184000 }, 989 { "A10", 191250 }, 990 { "A11", 192000 }, 991 { "A12", 199250 }, 992 { "A13", 200000 }, 993 { "A14", 207250 }, 994 { "A15", 208000 }, 995 { "A16", 215250 }, 996 { "A17", 216000 }, 997 { "A18", 224000 }, 998 { "A19", 232000 }, 999 { "A20", 248000 }, 1000 { "A21", 256000 }, 1001 { "A22", 264000 }, 1002 { "A23", 272000 }, 1003 { "A24", 280000 }, 1004 { "A25", 288000 }, 1005 { "A26", 296000 }, 1006 { "A27", 304000 }, 1007 { "A28", 312000 }, 1008 { "A29", 320000 }, 1009 { "A30", 344000 }, 1010 { "A31", 352000 }, 1011 { "A32", 408000 }, 1012 { "A33", 416000 }, 1013 { "A34", 448000 }, 1014 { "A35", 480000 }, 1015 { "A36", 520000 }, 1016 FREQ_UHF, 1017 }; 1018 1019 static const struct v4l2_channel_list secam_france[] = { 1020 { "K01", 47750 }, 1021 { "K02", 55750 }, 1022 { "K03", 60500 }, 1023 { "K04", 63750 }, 1024 { "K05", 176000 }, 1025 { "K06", 184000 }, 1026 { "K07", 192000 }, 1027 { "K08", 200000 }, 1028 { "K09", 208000 }, 1029 { "K10", 216000 }, 1030 { "KB", 116750 }, 1031 { "KC", 128750 }, 1032 { "KD", 140750 }, 1033 { "KE", 159750 }, 1034 { "KF", 164750 }, 1035 { "KG", 176750 }, 1036 { "KH", 188750 }, 1037 { "KI", 200750 }, 1038 { "KJ", 212750 }, 1039 { "KK", 224750 }, 1040 { "KL", 236750 }, 1041 { "KM", 248750 }, 1042 { "KN", 260750 }, 1043 { "KO", 272750 }, 1044 { "KP", 284750 }, 1045 { "KQ", 296750 }, 1046 { "H01", 303250 }, 1047 { "H02", 311250 }, 1048 { "H03", 319250 }, 1049 { "H04", 327250 }, 1050 { "H05", 335250 }, 1051 { "H06", 343250 }, 1052 { "H07", 351250 }, 1053 { "H08", 359250 }, 1054 { "H09", 367250 }, 1055 { "H10", 375250 }, 1056 { "H11", 383250 }, 1057 { "H12", 391250 }, 1058 { "H13", 399250 }, 1059 { "H14", 407250 }, 1060 { "H15", 415250 }, 1061 { "H16", 423250 }, 1062 { "H17", 431250 }, 1063 { "H18", 439250 }, 1064 { "H19", 447250 }, 1065 FREQ_UHF, 1066 }; 1067 1068 /* --------------------------------------------------------------------- */ 1069 1070 static const struct v4l2_channel_list pal_newzealand[] = { 1071 { "1", 45250 }, 1072 { "2", 55250 }, 1073 { "3", 62250 }, 1074 { "4", 175250 }, 1075 { "5", 182250 }, 1076 { "6", 189250 }, 1077 { "7", 196250 }, 1078 { "8", 203250 }, 1079 { "9", 210250 }, 1080 { "10", 217250 }, 1081 { "11", 224250 }, 1082 FREQ_UHF, 1083 }; 1084 1085 /* --------------------------------------------------------------------- */ 1086 1087 /* China broadcast */ 1088 static const struct v4l2_channel_list pal_bcast_cn[] = { 1089 { "1", 49750 }, 1090 { "2", 57750 }, 1091 { "3", 65750 }, 1092 { "4", 77250 }, 1093 { "5", 85250 }, 1094 { "6", 112250 }, 1095 { "7", 120250 }, 1096 { "8", 128250 }, 1097 { "9", 136250 }, 1098 { "10", 144250 }, 1099 { "11", 152250 }, 1100 { "12", 160250 }, 1101 { "13", 168250 }, 1102 { "14", 176250 }, 1103 { "15", 184250 }, 1104 { "16", 192250 }, 1105 { "17", 200250 }, 1106 { "18", 208250 }, 1107 { "19", 216250 }, 1108 { "20", 224250 }, 1109 { "21", 232250 }, 1110 { "22", 240250 }, 1111 { "23", 248250 }, 1112 { "24", 256250 }, 1113 { "25", 264250 }, 1114 { "26", 272250 }, 1115 { "27", 280250 }, 1116 { "28", 288250 }, 1117 { "29", 296250 }, 1118 { "30", 304250 }, 1119 { "31", 312250 }, 1120 { "32", 320250 }, 1121 { "33", 328250 }, 1122 { "34", 336250 }, 1123 { "35", 344250 }, 1124 { "36", 352250 }, 1125 { "37", 360250 }, 1126 { "38", 368250 }, 1127 { "39", 376250 }, 1128 { "40", 384250 }, 1129 { "41", 392250 }, 1130 { "42", 400250 }, 1131 { "43", 408250 }, 1132 { "44", 416250 }, 1133 { "45", 424250 }, 1134 { "46", 432250 }, 1135 { "47", 440250 }, 1136 { "48", 448250 }, 1137 { "49", 456250 }, 1138 { "50", 463250 }, 1139 { "51", 471250 }, 1140 { "52", 479250 }, 1141 { "53", 487250 }, 1142 { "54", 495250 }, 1143 { "55", 503250 }, 1144 { "56", 511250 }, 1145 { "57", 519250 }, 1146 { "58", 527250 }, 1147 { "59", 535250 }, 1148 { "60", 543250 }, 1149 { "61", 551250 }, 1150 { "62", 559250 }, 1151 { "63", 607250 }, 1152 { "64", 615250 }, 1153 { "65", 623250 }, 1154 { "66", 631250 }, 1155 { "67", 639250 }, 1156 { "68", 647250 }, 1157 { "69", 655250 }, 1158 { "70", 663250 }, 1159 { "71", 671250 }, 1160 { "72", 679250 }, 1161 { "73", 687250 }, 1162 { "74", 695250 }, 1163 { "75", 703250 }, 1164 { "76", 711250 }, 1165 { "77", 719250 }, 1166 { "78", 727250 }, 1167 { "79", 735250 }, 1168 { "80", 743250 }, 1169 { "81", 751250 }, 1170 { "82", 759250 }, 1171 { "83", 767250 }, 1172 { "84", 775250 }, 1173 { "85", 783250 }, 1174 { "86", 791250 }, 1175 { "87", 799250 }, 1176 { "88", 807250 }, 1177 { "89", 815250 }, 1178 { "90", 823250 }, 1179 { "91", 831250 }, 1180 { "92", 839250 }, 1181 { "93", 847250 }, 1182 { "94", 855250 }, 1183 }; 1184 1185 /* --------------------------------------------------------------------- */ 1186 /* South Africa Broadcast */ 1187 1188 static const struct v4l2_channel_list pal_bcast_za[] ={ 1189 { "4", 175250 }, 1190 { "5", 183250 }, 1191 { "6", 191250 }, 1192 { "7", 199250 }, 1193 { "8", 207250 }, 1194 { "9", 215250 }, 1195 { "10", 223250 }, 1196 { "11", 231250 }, 1197 { "12", 239250 }, 1198 { "13", 247250 }, 1199 FREQ_UHF 1200 }; 1201 1202 /* --------------------------------------------------------------------- */ 1203 1204 static const struct v4l2_channel_list argentina[] = { 1205 { "001", 56250 }, 1206 { "002", 62250 }, 1207 { "003", 68250 }, 1208 { "004", 78250 }, 1209 { "005", 84250 }, 1210 { "006", 176250 }, 1211 { "007", 182250 }, 1212 { "008", 188250 }, 1213 { "009", 194250 }, 1214 { "010", 200250 }, 1215 { "011", 206250 }, 1216 { "012", 212250 }, 1217 { "013", 122250 }, 1218 { "014", 128250 }, 1219 { "015", 134250 }, 1220 { "016", 140250 }, 1221 { "017", 146250 }, 1222 { "018", 152250 }, 1223 { "019", 158250 }, 1224 { "020", 164250 }, 1225 { "021", 170250 }, 1226 { "022", 218250 }, 1227 { "023", 224250 }, 1228 { "024", 230250 }, 1229 { "025", 236250 }, 1230 { "026", 242250 }, 1231 { "027", 248250 }, 1232 { "028", 254250 }, 1233 { "029", 260250 }, 1234 { "030", 266250 }, 1235 { "031", 272250 }, 1236 { "032", 278250 }, 1237 { "033", 284250 }, 1238 { "034", 290250 }, 1239 { "035", 296250 }, 1240 { "036", 302250 }, 1241 { "037", 308250 }, 1242 { "038", 314250 }, 1243 { "039", 320250 }, 1244 { "040", 326250 }, 1245 { "041", 332250 }, 1246 { "042", 338250 }, 1247 { "043", 344250 }, 1248 { "044", 350250 }, 1249 { "045", 356250 }, 1250 { "046", 362250 }, 1251 { "047", 368250 }, 1252 { "048", 374250 }, 1253 { "049", 380250 }, 1254 { "050", 386250 }, 1255 { "051", 392250 }, 1256 { "052", 398250 }, 1257 { "053", 404250 }, 1258 { "054", 410250 }, 1259 { "055", 416250 }, 1260 { "056", 422250 }, 1261 { "057", 428250 }, 1262 { "058", 434250 }, 1263 { "059", 440250 }, 1264 { "060", 446250 }, 1265 { "061", 452250 }, 1266 { "062", 458250 }, 1267 { "063", 464250 }, 1268 { "064", 470250 }, 1269 { "065", 476250 }, 1270 { "066", 482250 }, 1271 { "067", 488250 }, 1272 { "068", 494250 }, 1273 { "069", 500250 }, 1274 { "070", 506250 }, 1275 { "071", 512250 }, 1276 { "072", 518250 }, 1277 { "073", 524250 }, 1278 { "074", 530250 }, 1279 { "075", 536250 }, 1280 { "076", 542250 }, 1281 { "077", 548250 }, 1282 { "078", 554250 }, 1283 { "079", 560250 }, 1284 { "080", 566250 }, 1285 { "081", 572250 }, 1286 { "082", 578250 }, 1287 { "083", 584250 }, 1288 { "084", 590250 }, 1289 { "085", 596250 }, 1290 { "086", 602250 }, 1291 { "087", 608250 }, 1292 { "088", 614250 }, 1293 { "089", 620250 }, 1294 { "090", 626250 }, 1295 { "091", 632250 }, 1296 { "092", 638250 }, 1297 { "093", 644250 }, 1298 }; 1299 1300 /* --------------------------------------------------------------------- */ 1301 1302 #define CHAN_COUNT(x) (sizeof(x)/sizeof(struct v4l2_channel_list)) 1303 1304 const struct v4l2_channel_lists v4l2_channel_lists[] = { 1305 { "us-bcast", ntsc_bcast, CHAN_COUNT(ntsc_bcast) }, 1306 { "us-cable", ntsc_cable, CHAN_COUNT(ntsc_cable) }, 1307 { "us-cable-hrc", ntsc_hrc, CHAN_COUNT(ntsc_hrc) }, 1308 { "us-cable-irc", ntsc_irc, CHAN_COUNT(ntsc_irc) }, 1309 { "japan-bcast", ntsc_bcast_jp, CHAN_COUNT(ntsc_bcast_jp) }, 1310 { "japan-cable", ntsc_cable_jp, CHAN_COUNT(ntsc_cable_jp) }, 1311 { "europe-west", europe_west, CHAN_COUNT(europe_west) }, 1312 { "europe-east", europe_east, CHAN_COUNT(europe_east) }, 1313 { "italy", pal_italy, CHAN_COUNT(pal_italy) }, 1314 { "newzealand", pal_newzealand, CHAN_COUNT(pal_newzealand) }, 1315 { "australia", pal_australia, CHAN_COUNT(pal_australia) }, 1316 { "ireland", pal_ireland, CHAN_COUNT(pal_ireland) }, 1317 { "france", secam_france, CHAN_COUNT(secam_france) }, 1318 { "china-bcast", pal_bcast_cn, CHAN_COUNT(pal_bcast_cn) }, 1319 { "southafrica", pal_bcast_za, CHAN_COUNT(pal_bcast_za) }, 1320 { "argentina", argentina, CHAN_COUNT(argentina) }, 1321 { "australia-optus", pal_australia_optus, CHAN_COUNT(pal_australia_optus) }, 1322 { NULL, NULL, 0 } /* EOF */ 1323 }; 1324 1325 /* This list contains omissions and almost certainly incorrect information. 1326 Please provide me (Hans Verkuil, <hverkuil@xs4all.nl>) with corrections. */ 1327 const struct v4l2_country_std_map v4l2_country_std_map[] = { 1328 { "AE", V4L2_STD_PAL_BG }, /* United Arab Emirates */ 1329 { "AF", V4L2_STD_SECAM_D }, /* Afghanistan */ 1330 { "AG", V4L2_STD_NTSC_M }, /* Antigua */ 1331 { "AL", V4L2_STD_PAL_BG }, /* Albania */ 1332 { "AM", V4L2_STD_SECAM_DK }, /* Armenia */ 1333 { "AN", V4L2_STD_NTSC_M }, /* Netherlands Antilles */ 1334 { "AO", V4L2_STD_PAL_I }, /* Angola */ 1335 { "AR", V4L2_STD_PAL_Nc }, /* Argentina */ 1336 { "AT", V4L2_STD_PAL_BG }, /* Austria */ 1337 { "AU", V4L2_STD_PAL_B }, /* Australia */ 1338 { "AW", V4L2_STD_NTSC_M }, /* Aruba */ 1339 { "AZ", V4L2_STD_SECAM_DK }, /* Azerbaijan */ 1340 { "BA", V4L2_STD_PAL_BG }, /* Bosnia and Herzegovina */ 1341 { "BB", V4L2_STD_NTSC_M }, /* Barbados */ 1342 { "BD", V4L2_STD_PAL_B }, /* Bangladesh */ 1343 { "BE", V4L2_STD_PAL_B | V4L2_STD_PAL_H }, /* Belgium */ 1344 { "BF", V4L2_STD_SECAM_K1 }, /* Burkina Faso */ 1345 { "BG", V4L2_STD_SECAM_DK }, /* Bulgaria */ 1346 { "BH", V4L2_STD_PAL_BG }, /* Bahrain */ 1347 { "BI", V4L2_STD_SECAM_K1 }, /* Burundi */ 1348 { "BJ", V4L2_STD_SECAM_K1 }, /* Benin */ 1349 { "BM", V4L2_STD_NTSC_M }, /* Bermuda */ 1350 { "BN", V4L2_STD_PAL_B }, /* Brunei Darussalam */ 1351 { "BO", V4L2_STD_NTSC_M }, /* Bolivia */ 1352 { "BR", V4L2_STD_PAL_M }, /* Brazil */ 1353 { "BS", V4L2_STD_NTSC_M }, /* Bahamas */ 1354 { "BW", V4L2_STD_PAL_I }, /* Botswana */ 1355 { "BY", V4L2_STD_SECAM_D }, /* Belarus */ 1356 { "BZ", V4L2_STD_NTSC_M }, /* Belize */ 1357 { "CA", V4L2_STD_NTSC_M }, /* Canada */ 1358 { "CD", V4L2_STD_SECAM_K1 }, /* The Democratic Republic of the Congo */ 1359 { "CF", V4L2_STD_SECAM_K1 }, /* Central African Republic */ 1360 { "CG", V4L2_STD_SECAM_K1 }, /* Republic of the Congo */ 1361 { "CH", V4L2_STD_PAL_BG }, /* Switzerland */ 1362 { "CL", V4L2_STD_NTSC_M }, /* Chile */ 1363 { "CM", V4L2_STD_PAL_BG }, /* Cameroon */ 1364 { "CN", V4L2_STD_PAL_D }, /* China */ 1365 { "CO", V4L2_STD_NTSC_M }, /* Colombia */ 1366 { "CR", V4L2_STD_NTSC_M }, /* Costa Rica */ 1367 { "CU", V4L2_STD_NTSC_M }, /* Cuba */ 1368 { "CY", V4L2_STD_PAL_BG }, /* Cyprus */ 1369 { "CZ", V4L2_STD_PAL_D }, /* Czech Republic */ 1370 { "DE", V4L2_STD_PAL_BG }, /* Germany */ 1371 { "DJ", V4L2_STD_SECAM_B }, /* Djibouti */ 1372 { "DK", V4L2_STD_PAL_BG }, /* Denmark */ 1373 { "DO", V4L2_STD_NTSC_M }, /* Dominican Republic */ 1374 { "DZ", V4L2_STD_PAL_BG }, /* Algeria */ 1375 { "EC", V4L2_STD_NTSC_M }, /* Ecuador */ 1376 { "EE", V4L2_STD_SECAM_DK }, /* Estonia */ 1377 { "EG", V4L2_STD_PAL_BG }, /* Egypt */ 1378 { "ES", V4L2_STD_PAL_BG }, /* Spain */ 1379 { "ET", V4L2_STD_PAL_BG }, /* Ethiopia */ 1380 { "FI", V4L2_STD_PAL_BG }, /* Finland */ 1381 { "FR", V4L2_STD_SECAM_L }, /* France */ 1382 { "GA", V4L2_STD_SECAM_K1 }, /* Gabon */ 1383 { "GB", V4L2_STD_PAL_I }, /* United Kingdom */ 1384 { "GE", V4L2_STD_SECAM_DK }, /* Georgia */ 1385 { "GH", V4L2_STD_PAL_B }, /* Ghana */ 1386 { "GI", V4L2_STD_PAL_BG }, /* Gibraltar */ 1387 { "GL", V4L2_STD_PAL_BG }, /* Greenland */ 1388 { "GM", V4L2_STD_PAL_I }, /* Gambia */ 1389 { "GQ", V4L2_STD_PAL_BG }, /* Equatorial Guinea */ 1390 { "GR", V4L2_STD_SECAM_B }, /* Greece */ 1391 { "GR", V4L2_STD_SECAM_G }, /* Greece */ 1392 { "GT", V4L2_STD_NTSC_M }, /* Guatemala */ 1393 { "GU", V4L2_STD_NTSC_M }, /* Guam */ 1394 { "GW", V4L2_STD_PAL_I }, /* Guinea-Bissau */ 1395 { "HK", V4L2_STD_PAL_I }, /* Hong Kong */ 1396 { "HN", V4L2_STD_NTSC_M }, /* Honduras */ 1397 { "HR", V4L2_STD_PAL_BG }, /* Croatia */ 1398 { "HU", V4L2_STD_SECAM_DK }, /* Hungary */ 1399 { "ID", V4L2_STD_PAL_B }, /* Indonesia */ 1400 { "IE", V4L2_STD_PAL_I }, /* Ireland */ 1401 { "IL", V4L2_STD_PAL_BG }, /* Israel */ 1402 { "IN", V4L2_STD_PAL_B }, /* India */ 1403 { "IQ", V4L2_STD_SECAM_B | V4L2_STD_SECAM_G }, /* Iraq */ 1404 { "IR", V4L2_STD_SECAM_B | V4L2_STD_SECAM_G }, /* Iran */ 1405 { "IS", V4L2_STD_PAL_BG }, /* Iceland */ 1406 { "IT", V4L2_STD_PAL_BG }, /* Italy */ 1407 { "JM", V4L2_STD_NTSC_M }, /* Jamaica */ 1408 { "JO", V4L2_STD_PAL_BG }, /* Jordan */ 1409 { "JP", V4L2_STD_NTSC_M_JP }, /* Japan */ 1410 { "KE", V4L2_STD_PAL_BG }, /* Kenya */ 1411 { "KH", V4L2_STD_PAL_BG }, /* Cambodia */ 1412 { "KM", V4L2_STD_SECAM_K1 }, /* Comoros */ 1413 { "KN", V4L2_STD_NTSC_M }, /* Saint Kitts and Nevis */ 1414 { "KP", V4L2_STD_PAL_D }, /* North Korea */ 1415 { "KR", V4L2_STD_NTSC_M_KR }, /* South Korea */ 1416 { "KW", V4L2_STD_PAL_BG }, /* Kuwait */ 1417 { "KZ", V4L2_STD_SECAM_D }, /* Kazakhstan */ 1418 { "KZ", V4L2_STD_SECAM_K }, /* Kazakhstan */ 1419 { "LB", V4L2_STD_SECAM_B }, /* Lebanon */ 1420 { "LK", V4L2_STD_PAL_BG }, /* Sri Lanka */ 1421 { "LR", V4L2_STD_PAL_BG }, /* Liberia */ 1422 { "LS", V4L2_STD_PAL_I }, /* Lesotho */ 1423 { "LT", V4L2_STD_SECAM_DK }, /* Lithuania */ 1424 { "LU", V4L2_STD_PAL_BG }, /* Luxembourg */ 1425 { "LY", V4L2_STD_PAL_BG }, /* Libya */ 1426 { "MA", V4L2_STD_SECAM_B | V4L2_STD_SECAM_G }, /* Morocco */ 1427 { "MC", V4L2_STD_PAL_G }, /* Monaco */ 1428 { "MD", V4L2_STD_SECAM_DK }, /* Moldova */ 1429 { "MG", V4L2_STD_SECAM_K | V4L2_STD_SECAM_K1 }, /* Madagascar */ 1430 { "ML", V4L2_STD_SECAM_B | V4L2_STD_SECAM_G }, /* Mali */ 1431 { "MM", V4L2_STD_NTSC_M }, /* Myanmar */ 1432 { "MN", V4L2_STD_SECAM_D }, /* Mongolia */ 1433 { "MR", V4L2_STD_SECAM_B }, /* Mauritania */ 1434 { "MS", V4L2_STD_NTSC_M }, /* Montserrat */ 1435 { "MT", V4L2_STD_PAL_B }, /* Malta */ 1436 { "MU", V4L2_STD_SECAM_B | V4L2_STD_SECAM_G }, /* Mauritius */ 1437 { "MV", V4L2_STD_PAL_B }, /* Maldives */ 1438 { "MW", V4L2_STD_PAL_I }, /* Malawi */ 1439 { "MX", V4L2_STD_NTSC_M }, /* Mexico */ 1440 { "MY", V4L2_STD_PAL_BG }, /* Malaysia */ 1441 { "MZ", V4L2_STD_PAL_G }, /* Mozambique */ 1442 { "NA", V4L2_STD_PAL_I }, /* Namibia */ 1443 { "NE", V4L2_STD_SECAM_K1 }, /* Niger */ 1444 { "NG", V4L2_STD_PAL_BG }, /* Nigeria */ 1445 { "NI", V4L2_STD_NTSC_M }, /* Nicaragua */ 1446 { "NL", V4L2_STD_PAL_BG }, /* Netherlands */ 1447 { "NO", V4L2_STD_PAL_BG }, /* Norway */ 1448 { "NP", V4L2_STD_PAL_B }, /* Nepal */ 1449 { "NZ", V4L2_STD_PAL_BG }, /* New Zealand */ 1450 { "OM", V4L2_STD_PAL_BG }, /* Oman */ 1451 { "PA", V4L2_STD_NTSC_M }, /* Panama */ 1452 { "PE", V4L2_STD_NTSC_M }, /* Peru */ 1453 { "PG", V4L2_STD_PAL_BG }, /* Papua New Guinea */ 1454 { "PH", V4L2_STD_NTSC_M }, /* Philippines */ 1455 { "PK", V4L2_STD_PAL_BG }, /* Pakistan */ 1456 { "PL", V4L2_STD_SECAM_K }, /* Poland */ 1457 { "PR", V4L2_STD_NTSC_M }, /* Puerto Rico */ 1458 { "PT", V4L2_STD_PAL_BG }, /* Portugal */ 1459 { "PY", V4L2_STD_PAL_N }, /* Paraguay */ 1460 { "QA", V4L2_STD_PAL_BG }, /* Qatar */ 1461 { "RO", V4L2_STD_PAL_DK }, /* Romania */ 1462 { "RU", V4L2_STD_SECAM_DK }, /* Russia */ 1463 { "RW", V4L2_STD_SECAM_K1 }, /* Rwanda */ 1464 { "SA", V4L2_STD_PAL_BG | V4L2_STD_SECAM_B | V4L2_STD_SECAM_G }, /* Saudi Arabia */ 1465 { "SC", V4L2_STD_PAL_B }, /* Seychelles */ 1466 { "SD", V4L2_STD_PAL_BG }, /* Sudan */ 1467 { "SE", V4L2_STD_PAL_BG }, /* Sweden */ 1468 { "SG", V4L2_STD_PAL_BG }, /* Singapore */ 1469 { "SI", V4L2_STD_PAL_BG }, /* Slovenia */ 1470 { "SK", V4L2_STD_SECAM_DK }, /* Slovak Republic */ 1471 { "SL", V4L2_STD_PAL_BG }, /* Sierra Leone */ 1472 { "SN", V4L2_STD_SECAM_K1 }, /* Senegal */ 1473 { "SO", V4L2_STD_PAL_BG }, /* Somalia */ 1474 { "SR", V4L2_STD_NTSC_M }, /* Suriname */ 1475 { "ST", V4L2_STD_PAL_B }, /* Sao Tome and Principe */ 1476 { "SV", V4L2_STD_NTSC_M }, /* El Salvador */ 1477 { "SY", V4L2_STD_PAL_BG }, /* Syria */ 1478 { "SZ", V4L2_STD_PAL_BG }, /* Swaziland */ 1479 { "TD", V4L2_STD_SECAM_K1 }, /* Chad */ 1480 { "TG", V4L2_STD_SECAM_K1 }, /* Togo */ 1481 { "TH", V4L2_STD_PAL_BG }, /* Thailand */ 1482 { "TN", V4L2_STD_PAL_BG }, /* Tunisia */ 1483 { "TR", V4L2_STD_PAL_BG }, /* Turkey */ 1484 { "TT", V4L2_STD_NTSC_M }, /* Trinidad and Tobago */ 1485 { "TW", V4L2_STD_NTSC_M }, /* Taiwan */ 1486 { "TZ", V4L2_STD_PAL_I }, /* Tanzania */ 1487 { "UA", V4L2_STD_SECAM_DK }, /* Ukraine */ 1488 { "UG", V4L2_STD_PAL_B }, /* Uganda */ 1489 { "US", V4L2_STD_NTSC_M }, /* United States */ 1490 { "UY", V4L2_STD_PAL_N }, /* Uruguay */ 1491 { "VC", V4L2_STD_SECAM_K1 }, /* Cape Verde */ 1492 { "VE", V4L2_STD_NTSC_M }, /* Venezuela */ 1493 { "VG", V4L2_STD_NTSC_M }, /* Virgin Islands, British */ 1494 { "VI", V4L2_STD_NTSC_M }, /* Virgin Islands, U.S. */ 1495 { "VN", V4L2_STD_SECAM_DK }, /* Vietnam */ 1496 { "WS", V4L2_STD_NTSC_M }, /* Samoa */ 1497 { "YE", V4L2_STD_PAL_BG }, /* Yemen */ 1498 { "ZA", V4L2_STD_PAL_I }, /* South Africa */ 1499 { "ZM", V4L2_STD_PAL_G }, /* Zambia */ 1500 { "ZW", V4L2_STD_PAL_G }, /* Zimbabwe */ 1501 { NULL, 0 } 1502 }; 1503