diff -Naur mythtv-0.21-20088-old/libs/libmythtv/videoout_xv.cpp mythtv-0.21-20088-new/libs/libmythtv/videoout_xv.cpp
old
|
new
|
|
72 | 72 | #define round(x) ((int) ((x) + 0.5)) |
73 | 73 | #endif |
74 | 74 | |
| 75 | #ifndef V_INTERLACE |
| 76 | #define V_INTERLACE (0x010) |
| 77 | #endif |
| 78 | |
75 | 79 | #ifndef XVMC_CHROMA_FORMAT_420 |
76 | 80 | #define XVMC_CHROMA_FORMAT_420 0x00000001 |
77 | 81 | #endif |
… |
… |
|
395 | 399 | |
396 | 400 | rate = (dot_clock * 1000.0) / rate; |
397 | 401 | |
| 402 | // For an interlaced display mode, we want the refresh rate to be the field |
| 403 | // rate, so that we can use an x2 deinterlacer. It may be the case that some |
| 404 | // drivers (possibly openchrome) use false mode lines, with a doubled clock |
| 405 | // rate, so as to make the frame rate calculation produce the field rate. |
| 406 | // We check for 25 or 30 to avoid twice doubling in that case. |
| 407 | if ((mode_line.flags & V_INTERLACE) != 0 |
| 408 | && rate == 25 || rate == 30) |
| 409 | { |
| 410 | VERBOSE(VB_GENERAL, "Doubling refresh rate for interlaced display mode"); |
| 411 | |
| 412 | rate *= 2; |
| 413 | } |
| 414 | |
398 | 415 | // Assume 60Hz if rate isn't good: |
399 | 416 | if (rate < 20 || rate > 200) |
400 | 417 | { |