Welcome to our forums! Please take a few moments to read through our Community Guidelines (also conveniently linked in the header at the top of each page). There, you'll find guidelines on conduct, tips on getting the help you may be searching for, and more!

PMP 1.3 breaks hardware decoding on Atom/ION

janipewterjanipewter Posts: 27Members ✭✭
edited May 20 in Plex Media Player

I am using an Acer Revo R3700 running PMP embedded. It has an Intel Atom CPU and Nvidia ION graphics and worked flawlessly. However since it updated to PMP 1.3 this morning, hardware decoding no longer works. This makes it unusable as it will not play any HD video smoothly without hardware decoding.

Is there somewhere I can download the previous version? As my HTPC is now totally useless.

Thanks

Best Answer

  • janipewterjanipewter Posts: 27Members ✭✭
    Accepted Answer

    Sorry for the delay. The public-test nightly that I referenced in the post above did solve the issue, and I have hardware decoding back.

    On a separate note, the audio gradually drifts out of sync over time. Is this a related issue, or just a caveat of using such hardware for this purpose? It doesn't drop frames, and usually pausing and then resuming will get the audio back into sync. It probably drifts about 50ms out of sync after an hour or so.

«1

Answers

  • vlangvlang Posts: 1,550Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee

    Playback log please? Nothing should have broken it, although ION tends to be a bit flaky.

  • janipewterjanipewter Posts: 27Members ✭✭

    My apologies, here we are.

  • vlangvlang Posts: 1,550Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee

    Any chance you could run vdpauinfo on the device and post its output here?

  • janipewterjanipewter Posts: 27Members ✭✭

    display: :0.0 screen: 0
    API version: 1
    Information string: NVIDIA VDPAU Driver Shared Library 340.102 Mon Jan 16 12:41:40 PST 2017

    Video surface:

    name width height types

    420 4096 4096 NV12 YV12
    422 4096 4096 UYVY YUYV

    Decoder capabilities:

    name level macbs width height

    MPEG1 0 8192 2048 2048
    MPEG2_SIMPLE 3 8192 2048 2048
    MPEG2_MAIN 3 8192 2048 2048
    H264_BASELINE --- not supported ---
    H264_MAIN 41 8192 2048 2048
    H264_HIGH 41 8192 2048 2048
    VC1_SIMPLE 1 8190 2048 2048
    VC1_MAIN 2 8190 2048 2048
    VC1_ADVANCED 4 8190 2048 2048
    MPEG4_PART2_SP 3 8192 2048 2048
    MPEG4_PART2_ASP 5 8192 2048 2048
    DIVX4_QMOBILE 0 8192 2048 2048
    DIVX4_MOBILE 0 8192 2048 2048
    DIVX4_HOME_THEATER 0 8192 2048 2048
    DIVX4_HD_1080P 0 8192 2048 2048
    DIVX5_QMOBILE 0 8192 2048 2048
    DIVX5_MOBILE 0 8192 2048 2048
    DIVX5_HOME_THEATER 0 8192 2048 2048
    DIVX5_HD_1080P 0 8192 2048 2048
    H264_CONSTRAINED_BASELINE --- not supported ---
    H264_EXTENDED --- not supported ---
    H264_PROGRESSIVE_HIGH --- not supported ---
    H264_CONSTRAINED_HIGH --- not supported ---
    H264_HIGH_444_PREDICTIVE --- not supported ---
    HEVC_MAIN --- not supported ---
    HEVC_MAIN_10 --- not supported ---
    HEVC_MAIN_STILL --- not supported ---
    HEVC_MAIN_12 --- not supported ---
    HEVC_MAIN_444 --- not supported ---

    Output surface:

    name width height nat types

    B8G8R8A8 8192 8192 y Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
    R10G10B10A2 8192 8192 y Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8

    Bitmap surface:

    name width height

    B8G8R8A8 8192 8192
    R8G8B8A8 8192 8192
    R10G10B10A2 8192 8192
    B10G10R10A2 8192 8192
    A8 8192 8192

    Video mixer:

    feature name sup

    DEINTERLACE_TEMPORAL y
    DEINTERLACE_TEMPORAL_SPATIAL y
    INVERSE_TELECINE y
    NOISE_REDUCTION y
    SHARPNESS y
    LUMA_KEY y
    HIGH QUALITY SCALING - L1 y
    HIGH QUALITY SCALING - L2 -
    HIGH QUALITY SCALING - L3 -
    HIGH QUALITY SCALING - L4 -
    HIGH QUALITY SCALING - L5 -
    HIGH QUALITY SCALING - L6 -
    HIGH QUALITY SCALING - L7 -
    HIGH QUALITY SCALING - L8 -
    HIGH QUALITY SCALING - L9 -

    parameter name sup min max

    VIDEO_SURFACE_WIDTH y 1 4096
    VIDEO_SURFACE_HEIGHT y 1 4096
    CHROMA_TYPE y
    LAYERS y 0 4

    attribute name sup min max

    BACKGROUND_COLOR y
    CSC_MATRIX y
    NOISE_REDUCTION_LEVEL y 0.00 1.00
    SHARPNESS_LEVEL y -1.00 1.00
    LUMA_KEY_MIN_LUMA y
    LUMA_KEY_MAX_LUMA y

  • vlangvlang Posts: 1,550Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee

    From all what I can see, it should work. I suspect the FFmpeg vdpau implementation is returning an error, but doesn't log any messages about it, so it silently falls back to software decoding.

    At this point I have no idea what change could have caused the regression, so some more testing is needed.

    Can you upload a small part of the file (just a few seconds)?

    If you want to get adventurous, you could do some testing on the command line for us (we don't have the device):

    • stop PMP
    • start it on the command line with: VDPAU_TRACE=1 VDPAU_TRACE_FILE=vdpau.txt plexmediaplayer
    • try to play a file, stop playback, and exit PMP
    • upload the vdpau.txt

    If there's no such text file after running, then the vdpau debugging layer is not part of LE and we need to find a better idea.

  • janipewterjanipewter Posts: 27Members ✭✭

    @vlang said:

    Can you upload a small part of the file (just a few seconds)?

    Which file? Anyway, here's the other part you asked for. This is the console output:

    PlexMediaPlayer:~ # VDPAU_TRACE=1 VDPAU_TRACE_FILE=vdpau.txt plexmediaplayer
    libpng warning: iCCP: known incorrect sRGB profile
    Logging to /storage/.local/share/plexmediaplayer/logs/plexmediaplayer.log
    [1438:1488:0511/180000:ERROR:cookie_monster.cc(1543)] Found 1 duplicate cookies for host='plex.tv', with {name='_mkra_ctxt', domain='plex.tv', path='/'}
    [1495:1548:0511/180002:ERROR:ffmpeg_demuxer.cc(1512)] OnReadFrameDone result=-541478725 IsMaxMemoryUsageReached=0
    [1495:1548:0511/180002:ERROR:ffmpeg_demuxer.cc(1512)] OnReadFrameDone result=-541478725 IsMaxMemoryUsageReached=0
    [1495:1548:0511/180002:ERROR:ffmpeg_demuxer.cc(1512)] OnReadFrameDone result=-541478725 IsMaxMemoryUsageReached=0
    [1495:1548:0511/180002:ERROR:ffmpeg_demuxer.cc(1512)] OnReadFrameDone result=-541478725 IsMaxMemoryUsageReached=0
    [1495:1548:0511/180002:ERROR:ffmpeg_demuxer.cc(1512)] OnReadFrameDone result=-541478725 IsMaxMemoryUsageReached=0
    [1495:1548:0511/180002:ERROR:ffmpeg_demuxer.cc(1512)] OnReadFrameDone result=-541478725 IsMaxMemoryUsageReached=0
    libpng warning: iCCP: known incorrect sRGB profile

    And I have attached the vdpau.txt file for your perusal. I cannot exit cleanly (ctrl+c) from that command you gave, so I have to kill the ssh connection and that's when it writes to the file.

  • BrianAzBrianAz Go Ninja, Go Ninja, Go! Posts: 559Members, Plex Pass, Plex Ninja Plex Ninja
    edited May 12

    Just to confirm it's not affecting all Atom or ION...I run a Zotac ZBOXHD-ID41-PLUS with PMP embedded 1.3 in my master bedroom and have not run into any issues. I watched the first 15 minutes of a Bluray remux of Avatar and confirmed hardware acceleration was working.

    He's asking you for the file (or sample) you are trying to play which causes the issue. Does this happen for every video?

    Plex Clients: 2 iPhone: 6/6+, iPhone SE, iPad Mini, Chromecast (old and new), Mac Mini Mid 2011(MacOS+PMP/Web), Intel NUC DN2820 w/ 2GB RAM, 32GB SSD (OpenPHT), Zotac ID41 (Flirc+PMP), MacBook Pro Mid 2010 (MacOS+PMP/Web), MacBook Pro Early 2015 (MacOS+PMP/Web), i3 Custom Desktop (W10+PMP/Web), 2 aTV 4th Gen, Roku3, ODROID C2 (OpenPHT), Pi3 (NOOBS:Kodi+PMP). Gigabit wired network where possible.
    PlexServer: 2 CPU, 2GB Memory, Gigabit Network, Ubuntu 16.04 VM on ESXI
    ESXI 5.5 (ASRock z77 Extreme4 Whitebox): i7- 3770 CPU, 32 GB RAM, Gigabit Network (Other VMs: BlueIris IP Cam Server, Indigo HomeBridge, ESXiTools)
    Movie/TV Storage: Local - 18 Disk / 47 TB unRAID Server. Celeron CPU, 4GB RAM. Cloud Backup - GDrive
    Remotes: 3xHarmony Smart Control (w/ hub)
    Network: LAN-Gigabit, WAN-GigabitFiber

  • janipewterjanipewter Posts: 27Members ✭✭

    @BrianAz said:
    He's asking you for the file (or sample) you are trying to play which causes the issue. Does this happen for every video?

    Oh right. Yes it happens on every video since the update to 1.3.

  • vlangvlang Posts: 1,550Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee

    Thanks for the trace log, it's very helpful.

    I'm still puzzled as to why this happens. The only things that could fail should not fail, and the fact that other users are fine adds to the confusion. In the worst case we'll have to make a new test build just to add some logging to see what's going on.

    A sample file would still be appreciated (just to be sure). Also can you post a playback log with an older PMP version, which uses hw decoding successfully?

  • janipewterjanipewter Posts: 27Members ✭✭

    If you can provide a download for the previous version of PMP (1.2.5 I think?) I will be happy to do that.

    The forum won't allow me to attach an mkv so I've uploaded it here: https://files.tehguy.net/misc/sample.mkv

  • coneybeareconeybeare Posts: 79Members, Plex Pass Plex Pass

    Please provide place to download the previous build. 1.3.0 broke my Plex media player playback as well, though a different issue: https://forums.plex.tv/discussion/270488/no-ac3-dts-sound-after-upgrading-to-pmp-1-3-0-rpi-embedded#latest

  • markus101markus101 Posts: 164Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee

    You can download 1.2.5 from https://www.plex.tv/downloads/

  • janipewterjanipewter Posts: 27Members ✭✭

    @markus101 said:
    You can download 1.2.5 from https://www.plex.tv/downloads/

    Thanks.

    Right, this is interesting. I tried a nightly build of 1.3.0 that I found the link to whilst looking into a separate problem I'm having with PMP on a RPi3 not having any 5.1 audio since 1.3.0.

    I put the 1.3.0 (generic) nightly build on the Atom box. As soon as it booted in, I tried a video and HW decoding worked. I then went through and tweaked all the settings (to get sound working, etc) and tried to play the same video and HW decoding did not work, for any videos subsequently.

    So I reflashed the 1.3.0 nightly, and HW decoding worked again. This time I went through changing the settings one by one and test playing a video each time to see if HW decoding still worked.

    Sure enough, HW decoding breaks after I enable Display mode switching. It seems to permanently break it too, as even if I subsequently disable display mode switching, HW decoding still does not work for any video. Only a reboot 'fixes' it.

    I then allowed the automatic update to take it to 1.3.1, which is exactly the same. Enabling display mode switching breaks HW decoding, until display mode switching is disabled and the machine rebooted.

  • vlangvlang Posts: 1,550Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee

    That's a great find. This makes sense to me, although I'm wondering why I couldn't spot it in any of the logs. Maybe the trace log was overwritten at one point due to how vdpau (the underlying driver interface for hardware decoding) gets "lost" on display mode switching. This is called preemption handling. Preemption handling probably got somewhat broken in a recent change to adapt to FFmpeg API changes.

    Until this gets fixed, you could try another method. Create a file named mpv.conf in the same directory as plexmediaplayer.conf, and add the line opengl-hwdec-interop=cuda. This uses another driver API for hardware decoding. The nvidia drivers we use are relatively old though, so I don't know how well this will work, if at all.

  • janipewterjanipewter Posts: 27Members ✭✭
    edited May 18

    Have tried your suggestion and it didn't fix it. I did notice in the info overlay it now says Hardware Decoding: no (-)

    Before applying your suggested fix it would say something like Hardware Decoding: no (vdpau-glx)

  • vlangvlang Posts: 1,550Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee
    edited May 18

    2017-05-18 09:22:38 [ DEBUG ] PlayerComponent.cpp @ 505 - opengl-cb: Loading hwdec driver 'cuda'
    2017-05-18 09:22:38 [ DEBUG ] PlayerComponent.cpp @ 505 - opengl-cb/cuda: Failed to load CUDA symbols

    Pretty opaque error, but we probably don't ship the required parts of the driver, or it's too old.

  • janipewterjanipewter Posts: 27Members ✭✭

    Does that mean it's the end of the road for PMP on Atom/ION hardware then? Or stick to 1.2.5 for the foreseeable future?

  • vlangvlang Posts: 1,550Members, Plex Employee, Plex Pass, Plex Ninja Plex Employee

    If it's really display mode switching, then I've already implemented a fix. I've also pushed it to the CI (although I'm not sure whether it'll get picked up correctly). If everything goes well, a new embedded build should appear in public-test on nightlies, which will probably fix it. I won't be around until Monday starting from right now to confirm it, though.

  • richarddc79richarddc79 Posts: 184Members, Plex Pass Plex Pass

    @janipewter said:
    I am using an Acer Revo R3700 running PMP embedded. It has an Intel Atom CPU and Nvidia ION graphics and worked flawlessly. However since it updated to PMP 1.3 this morning, hardware decoding no longer works. This makes it unusable as it will not play any HD video smoothly without hardware decoding.

    Is there somewhere I can download the previous version? As my HTPC is now totally useless.

    Thanks

    Could I ask what you see on the screen when you play a HD video, as I have an ASRock ION 330, and when I play something with display mode switching turned on I get a sort of triangular break up of the picture, however I tried Libreelec with Plex for Kodi with display mode switching turned on, and it worked perfectly.

    HP Laptop core i5 (Plex Server hardware transcoding)
    Lenovo M58p Core 2 Duo Windows 10 (secondary Plex Server + NAS - 4TB Movies + TV shows)
    Xbox One S
    Fire TV stick gen 2
    Fire TV stick gen 1
    Chromecast gen 2 wired ethernet x 1
    Chromecast gen 1 x 2
    iPhone 6
    iPhone 7
    iPad Mini
    iPod touch
    Fire kids tablet

  • janipewterjanipewter Posts: 27Members ✭✭

    @vlang said:
    If it's really display mode switching, then I've already implemented a fix. I've also pushed it to the CI (although I'm not sure whether it'll get picked up correctly). If everything goes well, a new embedded build should appear in public-test on nightlies, which will probably fix it. I won't be around until Monday starting from right now to confirm it, though.

    I'm guessing it's this version from public-test:
    PlexMediaPlayer-1.3.1.676-1223ea09.Generic-x86_64.img.gz
    2017-05-19 07:04

    Will download and try it, and report back later.

    @richarddc79 said:

    @janipewter said:
    I am using an Acer Revo R3700 running PMP embedded. It has an Intel Atom CPU and Nvidia ION graphics and worked flawlessly. However since it updated to PMP 1.3 this morning, hardware decoding no longer works. This makes it unusable as it will not play any HD video smoothly without hardware decoding.

    Is there somewhere I can download the previous version? As my HTPC is now totally useless.

    Thanks

    Could I ask what you see on the screen when you play a HD video, as I have an ASRock ION 330, and when I play something with display mode switching turned on I get a sort of triangular break up of the picture, however I tried Libreelec with Plex for Kodi with display mode switching turned on, and it worked perfectly.

    The video plays, but it stutters a lot, especially in high motion scenes. Also, a lot of frames are dropped.

«1
Sign In or Register to comment.