Closed Bug 1158089 Opened 6 years ago Closed 6 years ago

Video playback doesn't work when e10s is enabled

Categories

(Core :: Audio/Video, defect)

x86_64
Windows 8.1
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla41
Tracking Status
e10s + ---
firefox41 --- fixed

People

(Reporter: dqeswn, Assigned: mattwoodrow)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

When e10s is enabled (default now on nightly) videos won't play. This is a recent breakage, it was working for a long time before.
Naturally I first noticed on youtube's HTML5 player. Where I get an infinite throbber. Not even the advertisement plays.
But dropping videos from my desktop won't play either. I get a message that the file is corrupted/damaged. (Don't know the exact wording in english)
The files can be played by firefox normally.
After disabling browser.tabs.remote.autostart.2 videos play normally.
Blocks: e10s, MSE
WFM (YT HTML5 player or webm loaded locally) with the latest Nightly and e10s on/off.

Could you test with a fresh profile?
https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles
Flags: needinfo?(dqeswn)
(In reply to Loic from comment #1)
> WFM (YT HTML5 player or webm loaded locally) with the latest Nightly and
> e10s on/off.

Win64? win8.1?

> Could you test with a fresh profile?

I did already.
Flags: needinfo?(dqeswn)
Win 7 64-bits
Can you post your about:support text please?
Flags: needinfo?(dqeswn)
Okay:

{
  "application": {
    "name": "Firefox",
    "version": "40.0a1",
    "buildID": "20150428030209",
    "userAgent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:40.0) Gecko/20100101 Firefox/40.0",
    "updateChannel": "nightly",
    "supportURL": "https://support.mozilla.org/1/firefox/40.0a1/WINNT/hu/",
    "numTotalWindows": 1,
    "numRemoteWindows": 1,
    "remoteAutoStart": true
  },
  "modifiedPreferences": {
    "browser.cache.disk.smart_size.first_run": false,
    "browser.cache.disk.capacity": 276480,
    "browser.cache.disk.filesystem_reported": 1,
    "browser.cache.frecency_experiment": 3,
    "browser.download.importedFromSqlite": true,
    "browser.places.smartBookmarksVersion": 7,
    "browser.startup.homepage_override.mstone": "40.0a1",
    "browser.startup.homepage_override.buildID": "20150428030209",
    "dom.apps.reset-permissions": true,
    "dom.mozApps.used": true,
    "extensions.lastAppVersion": "40.0a1",
    "font.language.group": "x-western",
    "gfx.direct3d.last_used_feature_level_idx": 0,
    "media.gmp-gmpopenh264.lastUpdate": 1430302056,
    "media.gmp-gmpopenh264.version": "1.4",
    "media.gmp-manager.lastCheck": 1430302056,
    "media.gmp-manager.buildID": "20150428030209",
    "network.cookie.prefsMigrated": true,
    "places.history.expiration.transient_current_max_pages": 25648,
    "plugin.disable_full_page_plugin_for_types": "application/pdf",
    "privacy.sanitize.migrateFx3Prefs": true
  },
  "lockedPreferences": {},
  "graphics": {
    "numTotalWindows": 1,
    "numAcceleratedWindows": 1,
    "windowLayerManagerType": "Direct3D 11",
    "windowLayerManagerRemote": true,
    "adapterDescription": "NVIDIA GeForce GTS 450   ",
    "adapterVendorID": "0x10de",
    "adapterDeviceID": "0x1245",
    "adapterSubsysID": "00000000",
    "adapterRAM": "1024",
    "adapterDrivers": "nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um",
    "driverVersion": "9.18.13.4709",
    "driverDate": "12-13-2014",
    "adapterDescription2": "",
    "adapterVendorID2": "",
    "adapterDeviceID2": "",
    "adapterSubsysID2": "",
    "adapterRAM2": "",
    "adapterDrivers2": "",
    "driverVersion2": "",
    "driverDate2": "",
    "isGPU2Active": false,
    "direct2DEnabled": true,
    "directWriteEnabled": true,
    "directWriteVersion": "6.3.9600.17111",
    "webglRenderer": "Google Inc. -- ANGLE (NVIDIA GeForce GTS 450    Direct3D11 vs_5_0 ps_5_0)",
    "info": {
      "AzureCanvasBackend": "direct2d 1.1",
      "AzureSkiaAccelerated": 0,
      "AzureFallbackCanvasBackend": "cairo",
      "AzureContentBackend": "direct2d 1.1"
    }
  },
  "javaScript": {
    "incrementalGCEnabled": true
  },
  "accessibility": {
    "isActive": false,
    "forceDisabled": 0
  },
  "libraryVersions": {
    "NSPR": {
      "minVersion": "4.10.8",
      "version": "4.10.8"
    },
    "NSS": {
      "minVersion": "3.19 Basic ECC Beta",
      "version": "3.19 Basic ECC Beta"
    },
    "NSSUTIL": {
      "minVersion": "3.19 Beta",
      "version": "3.19 Beta"
    },
    "NSSSSL": {
      "minVersion": "3.19 Basic ECC Beta",
      "version": "3.19 Basic ECC Beta"
    },
    "NSSSMIME": {
      "minVersion": "3.19 Basic ECC Beta",
      "version": "3.19 Basic ECC Beta"
    }
  },
  "userJS": {
    "exists": false
  },
  "crashes": {
    "submitted": [
      {
        "id": "bp-2ee3e364-17f3-4c5d-a0a3-1fb032150427",
        "date": 1430140086432,
        "pending": false
      }
    ],
    "pending": 6
  },
  "extensions": [],
  "experiments": []
}
Flags: needinfo?(dqeswn)
Tracy, can you work with the reporter to determine what's going on here?
Flags: needinfo?(twalker)
avada: Can you attempt to track down the regressions range?  That is, find the last Nightly build that works for you.
Flags: needinfo?(twalker) → needinfo?(dqeswn)
(In reply to [:tracy] Tracy Walker - QA Mentor from comment #7)
> avada: Can you attempt to track down the regressions range?  That is, find
> the last Nightly build that works for you.

Yes, though I really hate it.

Good:
2015-04-14-03-02-05-mozilla-central
https://hg.mozilla.org/mozilla-central/rev/7f343964210b

Bad:
2015-04-14-13-09-09-mozilla-central
https://hg.mozilla.org/mozilla-central/rev/2ee2da378d12
Flags: needinfo?(dqeswn)
Thank you for digging that out.

I am unable to reproduce the bug on say youtube.com.  Can you point me to a specific video this is failing for you.
Flags: needinfo?(dqeswn)
All of them actually...

Anyway here's one I actually tried:
https://www.youtube.com/watch?v=hicBgE6XndM
I've tried updating the gpu driver and now the videos start.
So this can only mean some sort of incompatibility was added with the older version. I've been using that version since last year.
Flags: needinfo?(dqeswn)
(In reply to avada from comment #11)
> I've tried updating the gpu driver and now the videos start.
> So this can only mean some sort of incompatibility was added with the older
> version. I've been using that version since last year.

That's quite possible.  Thank you for investigating.  

I am going to mark this invalid since it appears to have been due to an outdated driver.
Status: UNCONFIRMED → RESOLVED
Closed: 6 years ago
Resolution: --- → INVALID
Matt - can we blacklist the offending driver?
Status: RESOLVED → UNCONFIRMED
Flags: needinfo?(matt.woodrow)
Resolution: INVALID → ---
(In reply to [:tracy] Tracy Walker - QA Mentor from comment #12)
> That's quite possible.  Thank you for investigating.  
> 
> I am going to mark this invalid since it appears to have been due to an
> outdated driver.

(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #13)
> Matt - can we blacklist the offending driver?

I used that driver from december until yesterday and it was working just fine. Clearly it didn't change but firefox did. So why is the assumption that the driver is the one doing something wrong? Or better yet why is there no desire to figure out what exactly caused this, to prevent further driver incompatibilities?
That regression range includes bug 875247, which seems like a likely candidate.

Switching to a different API could easily hit different driver bugs.

If we're showing the throbber rather than just playing black video, then it sounds like the decoder actually failed, so we should be able to detect that and fall back to the old code.

Can you still reproduce this? I can have a go at fixing this, but I don't have any way to test it.

I'd also be interested to see your about:support when e10s is disabled, since it's not obvious why this would make a difference.
Flags: needinfo?(matt.woodrow)
Hopefully the failure occured during initialization, not during decoder, so this should fix the problem.
Assignee: nobody → matt.woodrow
Attachment #8602466 - Flags: review?(cpearce)
This is dead code
Attachment #8602468 - Flags: review?(bas)
Comment on attachment 8602466 [details] [diff] [review]
Fallback to d3d9 DXVA if d3d11 init fails

Review of attachment 8602466 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/media/fmp4/wmf/WMFVideoMFTManager.cpp
@@ +175,5 @@
>  
>  TemporaryRef<MFTDecoder>
>  WMFVideoMFTManager::Init()
>  {
> +  RefPtr<MFTDecoder> decoder = InitInternal(false);

InitInternal(/* aForceD3D9 */ false);
Attachment #8602466 - Flags: review?(cpearce) → review+
(In reply to Matt Woodrow (:mattwoodrow) from comment #15)
> If we're showing the throbber rather than just playing black video, then it
> sounds like the decoder actually failed, so we should be able to detect that
> and fall back to the old code.

I'm quite sure there was no throbber at all.
 
> Can you still reproduce this? I can have a go at fixing this, but I don't
> have any way to test it.
> 
> I'd also be interested to see your about:support when e10s is disabled,
> since it's not obvious why this would make a difference.

I'm not sure if it's directed at me but I'd rather not go back to an older driver if I'm not forced to.
Attachment #8602468 - Flags: review?(bas) → review+
tracking-e10s: --- → +
https://hg.mozilla.org/mozilla-central/rev/c61b05d0af51
https://hg.mozilla.org/mozilla-central/rev/5ec60cbf124c
Status: UNCONFIRMED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
You need to log in before you can comment on or make changes to this bug.