[mythtv-commits] Ticket #12047: mythplayer picks the wrong fps for 1080i matroska, degrading to 1xHW deint

MythTV noreply at mythtv.org
Mon Apr 28 03:38:54 UTC 2014


#12047: mythplayer picks the wrong fps for 1080i matroska, degrading to 1xHW deint
-------------------------------------+--------------------------------
 Reporter:  angela.schmid@…          |          Owner:  dekarl
     Type:  Patch - Bug Fix          |         Status:  infoneeded_new
 Priority:  major                    |      Milestone:  0.28
Component:  MythTV - Video Playback  |        Version:  Master Head
 Severity:  high                     |     Resolution:
 Keywords:  deinterlace mkv 1080i    |  Ticket locked:  0
-------------------------------------+--------------------------------

Comment (by angela.schmid@…):

 All 1080i movies play correct, although I cannot tell the deinterlacing
 qualities as the best example I have is the chinese wall movie which I
 only have in MBAFF, which .

 {{{
 CoreContext avformatdecoder.cpp:1291 (normalized_fps) - AFD: Selected FPS
 is 25 (guess 25 avg 25 codec 25 container 1000 estimated 25)
 CoreContext mythplayer.cpp:1748 (SetFrameInterval) - Player(0):
 SetFrameInterval ps:1 scan:3
 CoreContext mythplayer.cpp:670 (detectInterlace) - Player(0):
 detectInterlace(Detect Scan, Interlaced Scan, 25, 1080) ->Interlaced Scan
 }}}

 However, I noticed converted with lossless_cut workflow media, plays
 correct, but deinterlacing is degraded and the debug information shows
 "misleading" data:
 {{{
 Unique ID                                :
 215050711015139973841239614612672134380
 (0xA1C942A8F50B9E98D99CE20C4FF4BCEC)
 Complete name                            : lossless_cut.mkv
 Format                                   : Matroska
 Format version                           : Version 4 / Version 2
 File size                                : 2.16 GiB
 Duration                                 : 44mn 54s
 Overall bit rate                         : 6 879 Kbps
 Encoded date                             : UTC 2014-04-27 09:49:24
 Writing application                      : mkvmerge v6.9.1 ('Blue
 Panther') 64bit built on Apr 18 2014 17:43:56
 Writing library                          : libebml v1.3.0 + libmatroska
 v1.4.1

 Video
 ID                                       : 1
 Format                                   : AVC
 Format/Info                              : Advanced Video Codec
 Format profile                           : High at L4.0
 Format settings, CABAC                   : Yes
 Format settings, ReFrames                : 3 frames
 Codec ID                                 : V_MPEG4/ISO/AVC
 Bit rate                                 : 6 358 Kbps
 Width                                    : 1 920 pixels
 Height                                   : 1 080 pixels
 Display aspect ratio                     : 16:9
 Frame rate mode                          : Variable
 Original frame rate                      : 25.000 fps
 Standard                                 : Component
 Color space                              : YUV
 Chroma subsampling                       : 4:2:0
 Bit depth                                : 8 bits
 Scan type                                : Interlaced
 Scan order                               : Top Field First
 Default                                  : Yes
 Forced                                   : No
 Color primaries                          : BT.709
 Transfer characteristics                 : BT.709
 Matrix coefficients                      : BT.709
 }}}

 {{{
 CoreContext avformatdecoder.cpp:1291 (normalized_fps) - AFD: Selected FPS
 is 50 (guess 50 avg 50 codec 25 container 1000 estimated 50)
 CoreContext mythplayer.cpp:1748 (SetFrameInterval) - Player(1):
 SetFrameInterval ps:1 scan:3
 CoreContext mythplayer.cpp:670 (detectInterlace) - Player(1):
 detectInterlace(Detect Scan, Interlaced Scan, 50, 1080) ->Progressive Scan
 ...
 CoreContext mythplayer.cpp:3907 (ClearAfterSeek) - Player(7):
 ClearAfterSeek(0)
 CoreContext mythxdisplay.cpp:201 (GetRefreshRate) - Doubling refresh rate
 for interlaced display.
 CoreContext videodisplayprofile.cpp:354 (GetFilteredDeint) - VDP:
 GetFilteredDeint() : vdpau -> 'vdpaubasicdoublerate'
 CoreContext videoout_vdpau.cpp:350 (SetupDeinterlace) - VidOutVDPAU:
 Enabled deinterlacing.
 CoreContext vsync.cpp:265 (TryInit) - VSYNC: DRMVideoSync: Could not open
 device /dev/dri/card0, No such file or directory
 CoreContext mythplayer.cpp:2384 (VideoStart) - Player(7): Video sync
 method can't support double framerate (refresh rate too low for 2x deint)
 CoreContext videodisplayprofile.cpp:354 (GetFilteredDeint) - VDP:
 GetFilteredDeint(vdpauadvanced) : vdpau -> 'vdpauadvanced'
 CoreContext videoout_vdpau.cpp:350 (SetupDeinterlace) - VidOutVDPAU:
 Enabled deinterlacing.
 CoreContext mythxdisplay.cpp:201 (GetRefreshRate) - Doubling refresh rate
 for interlaced display.
 CoreContext mythplayer.cpp:1780 (InitAVSync) - Player(7): Video timing
 method: RTC
 CoreContext mythplayer.cpp:1784 (InitAVSync) - Player(7): Display Refresh
 Rate: 60.053 Video Frame Rate: 50.000
 }}}

 Never saw two different fps values. Deinterlacing is correctly detected
 during playback.
 {{{
 In playback debug: Video:1920x1080 at 50fps, FPS: 25.00fps
 In Video Scan: detect(I)
 }}}

 OT:
 Thanks for the links:
 https://trac.bunkus.org/wiki/FAQ:WrongFrameRateDisplayed: which explains
 the mkv behaviour and the mediainfo peculiarities, but also does not
 suggest other tools.

 http://mewiki.project357.com/wiki/X264_Settings#tff
 I have a 1080i display. Deinterlacing to 1080p or 720p didn't give me good
 results. Using vdpau 2xdeinterlacing is the best. Thats the reason I
 detected the deinterlacing degradation for mkv.

--
Ticket URL: <https://code.mythtv.org/trac/ticket/12047#comment:6>
MythTV <http://www.mythtv.org>
MythTV Media Center


More information about the mythtv-commits mailing list