[mythtv-commits] [MythTV/mythtv] 8c9ff9: VideoOutWindow: Add back the old 1088->1080 presen...

Mark Kendall noreply at github.com
Tue Jun 11 10:46:44 UTC 2019

  Branch: refs/heads/devel/2019-render
  Home:   https://github.com/MythTV/mythtv
  Commit: 8c9ff99c3c93467ff3c9fa8f1117062898647d58
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-06-09 (Sun, 09 Jun 2019)

  Changed paths:
    M mythtv/libs/libmythtv/videooutwindow.cpp
    M mythtv/libs/libmythtv/videooutwindow.h

  Log Message:
  VideoOutWindow: Add back the old 1088->1080 presentation fix

- this was removed a while back in favour of 'blanking' the offending
extra lines.
- this was of no use for hardware frames and led to unnecessary scaling
and thus imperfect rendering (1088 is just 1080 material with extra
garbage - but should display 1:1 on a 1080 display)
- 1088 height is just one of those quirks we need to deal with. The
entire video pipeline doesn't care, we just need to ensure the final
video rectangle is adjusted for presentation - i.e. OpenGLVideo just
expects to display the 1080lines.

  Commit: 9609a512bdb152f89e086c89dcbade4a9becb5d2
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-06-09 (Sun, 09 Jun 2019)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp
    M mythtv/libs/libmythtv/mythmediacodeccontext.cpp
    M mythtv/libs/libmythtv/mythnvdeccontext.cpp
    M mythtv/libs/libmythtv/mythplayer.cpp

  Log Message:
  Improved interlaced detection

- the basic premise here is that we don't want to setup deinterlacers
unnecessarily (to save resources and avoid confusion in the logs etc)
and that FFmpeg is pretty good these days at getting interlaced flags

- so don't use detection based on size/frame rate on stream changes, set
the initial state as interlaced but with the scan tracker as progressive
(if that makes sense). The scan is immediately corrected on detection of
a progressive frame and no deinterlacers are created. We set to
interlaced only to account for those cases where the frame rate is
detected incorrectly on startup (usually 29.97 as 59.98) and we
initially think the file is progressive.
- testing with my 'test suite' of curious files and formats, this gets it
correct for all but 1 of about 120 files - which is better than NVDECs
detection. The one misdetected file is clearly an interlaced NTSC stream
that is not flagged as such - all playes get it wrong. NVDEC doubles the
frame rate but doesn't deinterlace it.

  Commit: 987c45e979eccb6d77b2a1c34e0fb0381b8567fb
  Author: Mark Kendall <mark.kendall at gmail.com>
  Date:   2019-06-11 (Tue, 11 Jun 2019)

  Changed paths:
    M mythtv/libs/libmythtv/openglvideo.cpp
    M mythtv/libs/libmythtv/openglvideoshaders.h

  Log Message:
  OpenGLVideo: Generlise the YUV shaders

- one master shader with appropriate defines.
- simplifies modification of the shaders and ensures consistency over the
different formats
- complicated by having to handle 1, 2 and 3 plane YUV formats - extra
processing is done in software to get those right otherwise the number
of permutations becomes unmanageable.

Compare: https://github.com/MythTV/mythtv/compare/060deb88f161...987c45e979ec

More information about the mythtv-commits mailing list