Closed Bug 1794778 Opened 2 years ago Closed 2 years ago

HEVC Mp4 videos are not displayed in Firefox

Categories

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

Firefox 105
x86_64
macOS
defect

Tracking

()

RESOLVED DUPLICATE of bug 1332136

People

(Reporter: alexis.le-boucher, Unassigned)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0

Steps to reproduce:

I try to play an mp4 video in Firefox:
https://woopen.s3.eu-central-1.amazonaws.com/uploads/336bdd9f-62f6-40e0-8a12-89fe082ff2e1.mp4

I tried to clear my cache and restart Firefox
I tried to deactivate the recommanded performance settings and the hardware accelation and restart Firefox
I tried to deactivate the website protection on this website (the shield icon in adress bar).

I can see the video in Chrome or Safari

Actual results:

The video is not displayed. We can see the video player and hear the sound but the video is not displayed

Expected results:

I should see the video

I attached the video that is not displayed in Firefox in my ticket.
If I go to the ticket url in Firefox, I cannot see the video in my ticket but if go to the ticket url in Chrome, I can see the video in the ticket.

The Bugbug bot thinks this bug should belong to the 'Core::Audio/Video: Playback' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core

Can confirm, on my Linux machine the provided media file crashes Firefox nightly outright. Looks related to cubeb:

[Child 3389332: MediaSupervisor #1]: V/MediaFormatReader MediaFormatReader[7fc63eb72e00] ::Update: Update(Audio) ni=0 no=1 in:45 out:45 qs=0 decoding:0 flushing:0 desc:ffmpeg audio decoder (Utility Generic remote) pending:0 waiting:0 eos:0 ds:0 sid:4294967295 waitcdm:0
[Child 3389332: MediaSupervisor #1]: V/MediaFormatReader MediaFormatReader[7fc63eb72e00] ::Update: No need for additional input (pending:0)
[Parent 3389079: cubeb_log]: E/cubeb stream.rs:383: Output callback to be written buffer size 44096
firefox: /home/az/git/mozilla-unified/media/libcubeb/src/cubeb_ringbuffer.h:315: static void ring_buffer_base<cubeb_log_message>::assert_correct_thread(std::thread::id &) [T = cubeb_log_message]: Assertion `id == std::this_thread::get_id()' failed.

Backtrace:

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1  0x00007f58c7e895df in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x00007f58c7e3da02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f58c7e28469 in __GI_abort () at ./stdlib/abort.c:79
#4  0x00007f58c7e28395 in __assert_fail_base
    (fmt=0x7f58c7fb7cd0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7f58ab770f81 "id == std::this_thread::get_id()", file=0x7f58abfc9a99 "/home/az/git/mozilla-unified/media/libcubeb/src/cubeb_ringbuffer.h", line=315, function=<optimized out>) at ./assert/assert.c:92
#5  0x00007f58c7e36ab2 in __GI___assert_fail
    (assertion=0x7f58ab770f81 "id == std::this_thread::get_id()", file=0x7f58abfc9a99 "/home/az/git/mozilla-unified/media/libcubeb/src/cubeb_ringbuffer.h", line=315, function=0x7f58ab8ade25 "static void ring_buffer_base<cubeb_log_message>::assert_correct_thread(std::thread::id &) [T = cubeb_log_message]") at ./assert/assert.c:101
#6  0x00007f58bbe83102 in ring_buffer_base<cubeb_log_message>::assert_correct_thread(std::thread::id&) (id=...) at /home/az/git/mozilla-unified/media/libcubeb/src/cubeb_ringbuffer.h:315
#7  0x00007f58bbe83617 in ring_buffer_base<cubeb_log_message>::enqueue(cubeb_log_message*, int) (this=0x7f58c4e99950 <cubeb_async_logger::get()::instance+16>, elements=0x7f58987735b0, count=1)
    at /home/az/git/mozilla-unified/media/libcubeb/src/cubeb_ringbuffer.h:110
#8  0x00007f58bbe83562 in ring_buffer_base<cubeb_log_message>::enqueue(cubeb_log_message&) (this=0x7f58c4e99950 <cubeb_async_logger::get()::instance+16>, element=...)
    at /home/az/git/mozilla-unified/media/libcubeb/src/cubeb_ringbuffer.h:94
#9  0x00007f58bbe81fde in cubeb_async_logger::push(char const*)
    (this=0x7f58c4e99940 <cubeb_async_logger::get()::instance>, str=0x7f58987737b0 "stream.rs:555: Output buffer attributes maxlength 4194304, tlength 44096, prebuf 35288, minreq 8816, fragsize 4294967295\n")
    at /home/az/git/mozilla-unified/media/libcubeb/src/cubeb_log.cpp:68
#10 0x00007f58bbe81b9c in cubeb_async_log(char const*, ...) (fmt=0x7f58987739b8 "stream.rs:555: Output buffer attributes maxlength 4194304, tlength 44096, prebuf 35288, minreq 8816, fragsize 4294967295\n")
    at /home/az/git/mozilla-unified/media/libcubeb/src/cubeb_log.cpp:138
#11 0x00007f58c333d2f3 in cubeb_backend::log::cubeb_log_internal_buf_fmt (log_callback=0x7f58bbe81a40 <cubeb_async_log(char const*, ...)>, file=..., line=555, msg=...) at src/log.rs:71
#12 0x00007f58c2bb5c49 in cubeb_pulse::backend::stream::PulseStream::new
    (context=0x7f58863eddc0, stream_name=..., input_device=0x0, input_stream_params=..., output_device=0x0, output_stream_params=..., latency_frames=4410, data_callback=..., state_callback=..., user_ptr=0x7f5875316ee0) at src/backend/stream.rs:555
#13 0x00007f58c2bc1d0f in cubeb_pulse::backend::context::{impl#1}::stream_init
    (self=0x7f58863eddc0, stream_name=..., input_device=0x0, input_stream_params=..., output_device=0x0, output_stream_params=..., latency_frames=4410, data_callback=..., state_callback=..., user_ptr=0x7f5875316ee0) at src/backend/context.rs:530
#14 0x00007f58c2bcd081 in cubeb_backend::capi::capi_stream_init<cubeb_pulse::backend::context::PulseContext>
    (c=0x7f58863eddc0, s=0x7f5898774a90, stream_name=0x7f587577bdc0, input_device=0x0, input_stream_params=0x0, output_device=0x0, output_stream_params=0x7f5898776f84, latency_frames=4410, data_callback=..., state_callback=..., user_ptr=0x7f5875316ee0) at /home/az/git/mozilla-unified/third_party/rust/cubeb-backend/src/capi.rs:210
#15 0x00007f58bbe802d3 in cubeb_stream_init
    (context=0x7f58863eddc0, stream=0x7f5898774a90, stream_name=0x7f587577bdc0 "AudioStream", input_device=0x0, input_stream_params=0x0, output_device=0x0, output_stream_params=0x7f5898776f84, latency=4410, data_callback=0x7f58c316a2e0 <audioipc2_server::server::data_cb_c>, state_callback=0x7f58c316a570 <audioipc2_server::server::state_cb_c>, user_ptr=0x7f5875316ee0)
    at /home/az/git/mozilla-unified/media/libcubeb/src/cubeb.c:377
#16 0x00007f58c3345689 in cubeb_core::context::ContextRef::stream_init
    (self=0x7f58863eddc0, stream_name=..., input_device=0x0, input_stream_params=..., output_device=0x0, output_stream_params=..., latency_frames=4410, data_callback=..., state_callback=..., user_ptr=0x7f5875316ee0) at src/context.rs:104
#17 0x00007f58c3169d98 in audioipc2_server::server::CubebServer::process_stream_init (self=0x7f5883b34e40, context=0x7f588ef8f560, stm_tok=0, params=0x7f5898776f40) at src/server.rs:800
#18 0x00007f58c31657ed in audioipc2_server::server::CubebServer::process_msg (self=0x7f5883b34e40, context=0x7f588ef8f560, manager=0x7f588ef8f538, msg=0x7f5898776f30) at src/server.rs:515
#19 0x00007f58c3165499 in audioipc2_server::server::{impl#10}::process::{closure#0} (context=0x7f588ef8f558, manager=0x7f588ef8f538) at src/server.rs:401
#20 0x00007f58c3163e18 in audioipc2_server::server::with_local_context::{closure#0}<audioipc2::messages::ClientMessage, audioipc2_server::server::{impl#10}::process::{closure_env#0}> (k=0x7f588ef8f530)
    at src/server.rs:187
#21 0x00007f58c31409f0 in std::thread::local::LocalKey<core::cell::RefCell<core::option::Option<audioipc2_server::server::CubebContextState>>>::try_with<core::cell::RefCell<core::option::Option<audioipc2_server::server::CubebContextState>>, audioipc2_server::server::with_local_context::{closure_env#0}<audioipc2::messages::ClientMessage, audioipc2_server::server::{impl#10}::process::{closure_env#0}>, audioipc2::messages::ClientMessage> (self=0x7f58c4ac9e78, f=...) at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/thread/local.rs:445
#22 0x00007f58c31403e6 in std::thread::local::LocalKey<core::cell::RefCell<core::option::Option<audioipc2_server::server::CubebContextState>>>::with<core::cell::RefCell<core::option::Option<audioipc2_server::server::CubebContextState>>, audioipc2_server::server::with_local_context::{closure_env#0}<audioipc2::messages::ClientMessage, audioipc2_server::server::{impl#10}::process::{closure_env#0}>, audioipc2::messages::ClientMessage> (self=0x7f58c4ac9e78, f=...) at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/thread/local.rs:421
#23 0x00007f58c3163c14 in audioipc2_server::server::with_local_context<audioipc2::messages::ClientMessage, audioipc2_server::server::{impl#10}::process::{closure_env#0}> (f=...) at src/server.rs:174
#24 0x00007f58c316542c in audioipc2_server::server::{impl#10}::process (self=0x7f5883b34e40, req=...) at src/server.rs:399
#25 0x00007f58c318ae8a in audioipc2::rpccore::{impl#6}::consume<audioipc2_server::server::CubebServer> (self=0x7f5883b34e40, message=...)
    at /home/az/git/mozilla-unified/third_party/rust/audioipc2/src/rpccore.rs:311
#26 0x00007f58c312e386 in audioipc2::ipccore::{impl#5}::process_inbound<audioipc2::rpccore::ServerHandler<audioipc2_server::server::CubebServer>> (self=0x7f5883b34e20, inbound=0x7f58856de118)
    at /home/az/git/mozilla-unified/third_party/rust/audioipc2/src/ipccore.rs:623
#27 0x00007f58c32440b5 in audioipc2::ipccore::Connection::recv_inbound (self=0x7f58856de0e0) at src/ipccore.rs:477
#28 0x00007f58c3242f50 in audioipc2::ipccore::Connection::handle_event (self=0x7f58856de0e0, event=0x7f5883bd2c00, registry=0x7f5898778f78) at src/ipccore.rs:425
#29 0x00007f58c32405ec in audioipc2::ipccore::EventLoop::poll (self=0x7f5898778f78) at src/ipccore.rs:217
#30 0x00007f58c3130d92 in audioipc2::ipccore::{impl#7}::new::{closure#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}> ()
    at /home/az/git/mozilla-unified/third_party/rust/audioipc2/src/ipccore.rs:705
#31 0x00007f58c313fe3c in std::sys_common::backtrace::__rust_begin_short_backtrace<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>> (f=...) at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/sys_common/backtrace.rs:122
#32 0x00007f58c317fffc in std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure#0}<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>> () at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/thread/mod.rs:505
#33 0x00007f58c3196c0c in core::panic::unwind_safe::{impl#23}::call_once<core::result::Result<(), std::io::error::Error>, std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>>> (self=..., _args=())
    at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/core/src/panic/unwind_safe.rs:271
#34 0x00007f58c31931e2 in std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>>>, core::result::Result<(), std::io::error::Error>>
    (data=0x7f5898779658) at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/panicking.rs:492
#35 0x00007f58c3192b53 in std::panicking::try<core::result::Result<(), std::io::error::Error>, core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>>>> (f=...)
    at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/panicking.rs:456
#36 0x00007f58c3197a4e in std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>>>, core::result::Result<(), std::io::error::Error>> (f=...)
    at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/panic.rs:137
#37 0x00007f58c317fe4d in std::thread::{impl#0}::spawn_unchecked_::{closure#1}<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>> () at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/std/src/thread/mod.rs:504
#38 0x00007f58c3150de2 in core::ops::function::FnOnce::call_once<std::thread::{impl#0}::spawn_unchecked_::{closure_env#1}<audioipc2::ipccore::{impl#7}::new::{closure_env#0}<audioipc2_server::init_threads::{closure_env#0}, audioipc2_server::init_threads::{closure_env#1}>, core::result::Result<(), std::io::error::Error>>, ()> () at /rustc/d68e7ebc38cb42b8b237392b28045edeec761503/library/core/src/ops/function.rs:248
#39 0x00007f58c4413f53 in alloc::boxed::{impl#44}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1935
#40 alloc::boxed::{impl#44}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:1935
#41 std::sys::unix::thread::{impl#2}::new::thread_start () at library/std/src/sys/unix/thread.rs:108
#42 0x000055bfe90a5e23 in set_alt_signal_stack_and_start(PthreadCreateParams*) (params=0x7f58856ba8a0)
    at /home/az/git/mozilla-unified/toolkit/crashreporter/pthread_create_interposer/pthread_create_interposer.cpp:80
#43 0x00007f58c7e8784a in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#44 0x00007f58c7f0a310 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

Some info on the media file from ffprobe:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bz_1794778.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: isommp41mp42
    creation_time   : 2022-10-11T13:52:39.000000Z
  Duration: 00:00:04.21, start: 0.000000, bitrate: 4876 kb/s
  Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 61 kb/s (default)
    Metadata:
      creation_time   : 2022-10-11T13:52:39.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, smpte170m/bt709/bt709), 720x1280, 4816 kb/s, 29.76 fps, 30 tbr, 600 tbn (default)
    Metadata:
      creation_time   : 2022-10-11T13:52:39.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
Severity: -- → S2
Status: UNCONFIRMED → NEW
Component: Audio/Video: Playback → Audio/Video: cubeb
Ever confirmed: true
Flags: needinfo?(kinetik)
OS: Unspecified → macOS
Priority: -- → P2
Hardware: Unspecified → x86_64
See Also: → 1332136

The video playback issue is caused by Firefox not supporting the HEVC (H.265) codec, so I'll dupe this to bug 1332136.

The cubeb assert is not directly related. It can only be triggered in debug builds when cubeb logging is enabled. I'll file a separate bug to fix that.

Status: NEW → RESOLVED
Closed: 2 years ago
Flags: needinfo?(kinetik)
Resolution: --- → DUPLICATE
Summary: Mp4 videos are not displayed in Firefox → HEVC Mp4 videos are not displayed in Firefox
Component: Audio/Video: cubeb → Audio/Video: Playback
See Also: 1332136

Hi, will the bug be fixed ? I saw it has been closed and linked to a RESOLVED WONTFIX ticket.
Thank you

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: