Closed Bug 1208348 Opened 9 years ago Closed 9 years ago

canPlayType("audio/mpeg") returns positive on Windows N

Categories

(Core :: Audio/Video: Playback, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla44
Tracking Status
firefox44 --- fixed

People

(Reporter: cpearce, Assigned: cpearce)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Windows N doesn't ship with WMF or a DirectShow MP3 decoder filter, so it's not gonna work. Yet we report it does because DecoderTraits just checks whether MP3Decoder::IsEnabled(), and that just checks media.mp3.enabled.
Err, that's not right, we think DirectShow is installed because we check the DirectShow pref. MP3Decoder is only enabled on Android currently.
This means Windows N variants no longer report that they support MP3 when actually they don't.
Assignee: nobody → cpearce
Status: NEW → ASSIGNED
Attachment #8666532 - Flags: review?(jyavenard)
Comment on attachment 8666532 [details] [diff] [review]
Patch: Check whether DirectShow can decode MP3 before assuming it will work.

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

Not knowing this code ; but assuming it's all been verified :)

We should do the same for plain MP3 for when the media.mp3.enabled is true (and we should make this a priority so we don't even need DirectShow anymore) ; and similar to the AAC test in MP4Decoder

::: dom/media/directshow/DirectShowUtils.cpp
@@ +281,5 @@
> +                              nullptr,
> +                              CLSCTX_INPROC_SERVER,
> +                              IID_IBaseFilter,
> +                              getter_AddRefs(filter)))) {
> +    return false;                           

whitespace

@@ +283,5 @@
> +                              IID_IBaseFilter,
> +                              getter_AddRefs(filter)))) {
> +    return false;                           
> +  }
> +  

whitespace

@@ +293,5 @@
> +                              getter_AddRefs(filter))) &&
> +      FAILED(CreateMP3DMOWrapperFilter(getter_AddRefs(filter)))) {
> +    return false;
> +  }
> +  

whitespace
Attachment #8666532 - Flags: review?(jyavenard) → review+
Backed out, so don't close on merge of backout to m-c.
Keywords: leave-open
Comment on attachment 8666532 [details] [diff] [review]
Patch: Check whether DirectShow can decode MP3 before assuming it will work.

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

::: dom/media/directshow/DirectShowUtils.cpp
@@ +241,5 @@
>      // expected error.
>      WARN("dmoWrapper Init failed, hr=%x", hr);
>      return hr;
>    }
>  

I needed to add here:

  filter.forget(aOutFilter);
https://hg.mozilla.org/mozilla-central/rev/107f8e63982d
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
Blocks: 1209410
Blocks: 1210667
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: