Skip to content

Crash in send_frame() when used by the GStreamer rav1enc plugin on macOS #1991

Closed
@philn

Description

@philn
Thread 2 Crashed:: queue0:src
0   libgstrav1e.dylib               0x0000000103c89eb3 __rust_probestack + 19
1   libgstrav1e.dylib               0x0000000103be75fe alloc::collections::btree::map::BTreeMap$LT$K$C$V$GT$::insert::h25cce5f6a28de846 + 414
2   libgstrav1e.dylib               0x0000000103b9200c rav1e::api::internal::ContextInner$LT$T$GT$::send_frame::hf627ecbdc1b272e9 + 3452
3   libgstrav1e.dylib               0x0000000103b7e8bf _$LT$gstrav1e..rav1enc..Rav1Enc$u20$as$u20$gstreamer_video..subclass..video_encoder..VideoEncoderImpl$GT$::handle_frame::h561b03511926f241 + 1759
4   libgstrav1e.dylib               0x0000000103c1c7a3 std::panicking::try::do_call::h8168118476fd8df4 (.llvm.5918550647303237083) + 67
5   libgstrav1e.dylib               0x0000000103c7275f __rust_maybe_catch_panic + 31
6   libgstrav1e.dylib               0x0000000103bf9277 gstreamer_video::subclass::video_encoder::video_encoder_handle_frame::h67864e3356c24183 + 423
7   libgstvideo-1.0.0.dylib         0x000000010390577f gst_video_encoder_chain + 649
8   libgstreamer-1.0.0.dylib        0x000000010352e01a gst_pad_chain_data_unchecked + 190
9   libgstreamer-1.0.0.dylib        0x000000010352ea53 gst_pad_push_data + 213
10  libgstreamer-1.0.0.dylib        0x000000010352e891 gst_pad_push + 272
11  libgstcoreelements.so           0x0000000103abca19 gst_queue_loop + 1881
12  libgstreamer-1.0.0.dylib        0x000000010355bdfb gst_task_func + 290
13  libglib-2.0.0.dylib             0x00000001036d4cb3 g_thread_pool_thread_proxy + 51
14  libglib-2.0.0.dylib             0x00000001036d3e82 g_thread_proxy + 66
15  libsystem_pthread.dylib         0x00007fff6b869e65 _pthread_start + 148
16  libsystem_pthread.dylib         0x00007fff6b86583b thread_start + 15

Reproducer:

  1. Build gst-plugin-rs (in release mode) https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs
  2. Copy plugins to a tmp folder: mkdir tmp; cp target/release/libgst*dylib tmp
  3. GST_PLUGIN_PATH=$PWD/tmp gst-launch-1.0 videotestsrc num-buffers=30 ! rav1enc ! fakesink

CC @sdroege

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions