Bug 257487 - [GStreamer] Crash when setting the deadline property of vpxenc
Summary: [GStreamer] Crash when setting the deadline property of vpxenc
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Platform (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Philippe Normand
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2023-05-30 08:07 PDT by Philippe Normand
Modified: 2023-05-31 00:55 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Normand 2023-05-30 08:07:34 PDT
(gdb) bt                                                                                                                                                                                                             
#0  g_logv (log_domain=0x7f52f8cd0030 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7ffd3b5bdf00) at ../glib/gmessages.c:1422                                            
#1  0x00007f52f8ba52a3 in g_log                                                                                                                                                                                      
    (log_domain=log_domain@entry=0x7f52f8cd0030 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7f52f8cd5e98 "value \"%s\" of type '%s' is invalid or out of range for property
 '%s' of type '%s'") at ../glib/gmessages.c:1460                                                                                                                                                                     
#2  0x00007f52f8cb0857 in object_set_property (object=object@entry=0x26e59b0, pspec=pspec@entry=0x2a31db0, value=value@entry=0x7ffd3b5be080, nqueue=nqueue@entry=0x26e8250, user_specified=user_specified@entry=1)   
    at ../gobject/gobject.c:1830                                                                                                                                                                                     
#3  0x00007f52f8cb3a86 in g_object_set_valist (var_args=0x7ffd3b5be130, first_property_name=<optimized out>, object=<optimized out>) at ../gobject/gobject.c:2781                                                    
#4  g_object_set_valist (object=<optimized out>, first_property_name=<optimized out>, var_args=0x7ffd3b5be130) at ../gobject/gobject.c:2742                                                                          
#5  0x00007f52f8cb3f1d in g_object_set (_object=0x26e59b0, first_property_name=0x7f5307542db3 "threads") at ../gobject/gobject.c:2957                                                                                
#6  0x00007f5302617698 in webkit_video_encoder_class_init(_WebKitVideoEncoderClass*)::$_14::operator()(_GstElement*, LatencyMode) const (this=0x7f52e93aeae8, encoder=0x26e59b0, mode=REALTIME_LATENCY_MODE)         
    at /var/home/phil/WebKit/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp:646                                                                                                                  
#7  0x00007f5302617607 in WTF::Detail::CallableWrapper<webkit_video_encoder_class_init(_WebKitVideoEncoderClass*)::$_14, void, _GstElement*, LatencyMode>::call(_GstElement*, LatencyMode)                           
    (this=0x7f52e93aeae0, in=0x26e59b0, in=REALTIME_LATENCY_MODE) at WTF/Headers/wtf/Function.h:53                                                                                                                   
#8  0x00007f530261fb60 in WTF::Function<void (_GstElement*, LatencyMode)>::operator()(_GstElement*, LatencyMode) const (this=0x7f52e90991e8, in=0x26e59b0, in=REALTIME_LATENCY_MODE)                                 
    at WTF/Headers/wtf/Function.h:82                                                                                                                                                                                 
#9  0x00007f530260ee4a in videoEncoderSetEncoder(_WebKitVideoEncoder*, EncoderId, WTF::GRefPtr<_GstCaps>&&) (self=0x2abd230, encoderId=Vp9, encodedCaps=...)                                                         
    at /var/home/phil/WebKit/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp:353                                                                                                                  
#10 0x00007f530260e5b5 in videoEncoderSetFormat(_WebKitVideoEncoder*, WTF::GRefPtr<_GstCaps>&&) (self=0x2abd230, caps=...)                                                                                           
    at /var/home/phil/WebKit/Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp:425                                                                                                                  
#11 0x00007f5302599b71 in WebCore::GStreamerInternalVideoEncoder::initialize(WebCore::VideoEncoder::Config const&) (this=0x7f52e97408a0, config=...)                                                                 
    at /var/home/phil/WebKit/Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp:226                                                                                                                
#12 0x00007f530259931c in WebCore::GStreamerVideoEncoder::initialize(WebCore::VideoEncoder::Config const&) (this=0x7f52e9093340, config=...)                                                                         
    at /var/home/phil/WebKit/Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp:130                                                                                                                
#13 0x00007f53025990d4 in WebCore::GStreamerVideoEncoder::create(WTF::String const&, WebCore::VideoEncoder::Config const&, WTF::Function<void (std::experimental::fundamentals_v3::expected<WTF::UniqueRef<WebCore::V
ideoEncoder>, WTF::String>&&)>&&, WTF::Function<void (WebCore::VideoEncoder::ActiveConfiguration&&)>&&, WTF::Function<void (WebCore::VideoEncoder::EncodedFrame&&)>&&, WTF::Function<void (WTF::Function<void ()>&&)>
&&) (codecName=..., config=..., callback=..., descriptionCallback=..., outputCallback=..., postTaskCallback=...) at /var/home/phil/WebKit/Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp:96    
#14 0x00007f5305f64fad in WebCore::VideoEncoder::createLocalEncoder(WTF::String const&, WebCore::VideoEncoder::Config const&, WTF::Function<void (std::experimental::fundamentals_v3::expected<WTF::UniqueRef<WebCore
::VideoEncoder>, WTF::String>&&)>&&, WTF::Function<void (WebCore::VideoEncoder::ActiveConfiguration&&)>&&, WTF::Function<void (WebCore::VideoEncoder::EncodedFrame&&)>&&, WTF::Function<void (WTF::Function<void ()>&
&)>&&) (codecName=..., config=..., callback=..., descriptionCallback=..., outputCallback=..., postCallback=...) at /var/home/phil/WebKit/Source/WebCore/platform/VideoEncoder.cpp:73                                 
#15 0x00007f5305f64f61 in WebCore::VideoEncoder::create(WTF::String const&, WebCore::VideoEncoder::Config const&, WTF::Function<void (std::experimental::fundamentals_v3::expected<WTF::UniqueRef<WebCore::VideoEncod
er>, WTF::String>&&)>&&, WTF::Function<void (WebCore::VideoEncoder::ActiveConfiguration&&)>&&, WTF::Function<void (WebCore::VideoEncoder::EncodedFrame&&)>&&, WTF::Function<void (WTF::Function<void ()>&&)>&&)      
    (codecName=..., config=..., callback=..., descriptionCallback=..., outputCallback=..., postCallback=...) at /var/home/phil/WebKit/Source/WebCore/platform/VideoEncoder.cpp:54                                    
#16 0x00007f530460e144 in WebCore::WebCodecsVideoEncoder::configure(WebCore::ScriptExecutionContext&, WebCore::WebCodecsVideoEncoderConfig&&)::$_1::operator()() (this=0x7f52e908a050)                               
    at /var/home/phil/WebKit/Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp:134                                                                                                                          
#17 0x00007f530460dfb9 in WTF::Detail::CallableWrapper<WebCore::WebCodecsVideoEncoder::configure(WebCore::ScriptExecutionContext&, WebCore::WebCodecsVideoEncoderConfig&&)::$_1, void>::call() (this=0x7f52e908a040) 
    at WTF/Headers/wtf/Function.h:53                                                                                                                                                                                 
#18 0x00007f53012353b2 in WTF::Function<void ()>::operator()() const (this=0x7ffd3b5bea20) at WTF/Headers/wtf/Function.h:82                                                                                          
#19 0x00007f53045fef84 in WebCore::WebCodecsVideoEncoder::queueControlMessageAndProcess(WTF::Function<void ()>&&) (this=0x7f525a016370, message=...)                                                                 
    at /var/home/phil/WebKit/Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp:354                                                                                                                          
#20 0x00007f53045feb8c in WebCore::WebCodecsVideoEncoder::configure(WebCore::ScriptExecutionContext&, WebCore::WebCodecsVideoEncoderConfig&&) (this=0x7f525a016370, context=..., config=...)                         
    at /var/home/phil/WebKit/Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp:117                                                                                                                          
#21 0x00007f5303d5bb8e in WebCore::jsWebCodecsVideoEncoderPrototypeFunction_configureBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebCodecsVideoEncoder*)::{lambda()#1}::operator()() const                
    (this=0x7ffd3b5bec10) at WebCore/DerivedSources/JSWebCodecsVideoEncoder.cpp:347                                                                                                                                  
#22 0x00007f5303d5bad1 in WebCore::toJS<WebCore::IDLUndefined, WebCore::jsWebCodecsVideoEncoderPrototypeFunction_configureBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebCodecsVideoEncoder*)::{lambda()#1
}>(JSC::JSGlobalObject&, JSC::ThrowScope&, WebCore::jsWebCodecsVideoEncoderPrototypeFunction_configureBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebCodecsVideoEncoder*)::{lambda()#1}&&)                
    (lexicalGlobalObject=..., throwScope=..., valueOrFunctor=...) at /var/home/phil/WebKit/Source/WebCore/bindings/js/JSDOMConvertBase.h:168                                                                         
#23 0x00007f5303d5ba53 in WebCore::jsWebCodecsVideoEncoderPrototypeFunction_configureBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebCodecsVideoEncoder*)                                                  
    (lexicalGlobalObject=0x7f528aabd7b0, callFrame=0x7ffd3b5bee80, castedThis=0x7f52e923b988) at WebCore/DerivedSources/JSWebCodecsVideoEncoder.cpp:347                                                              
#24 0x00007f5303d5b6fe in WebCore::IDLOperation<WebCore::JSWebCodecsVideoEncoder>::call<&WebCore::jsWebCodecsVideoEncoderPrototypeFunction_configureBody, (WebCore::CastedThisErrorBehavior)0>(JSC::JSGlobalObject&, 
JSC::CallFrame&, char const*) (lexicalGlobalObject=..., callFrame=..., operationName=0x7f5308094490 "configure") at /var/home/phil/WebKit/Source/WebCore/bindings/js/JSDOMOperation.h:63                             
#25 0x00007f5303d5b394 in WebCore::jsWebCodecsVideoEncoderPrototypeFunction_configure(JSC::JSGlobalObject*, JSC::CallFrame*) (lexicalGlobalObject=0x7f528aabd7b0, callFrame=0x7ffd3b5bee80)                          
    at WebCore/DerivedSources/JSWebCodecsVideoEncoder.cpp:352
...
(gdb) f 2                                                                                                                                                                                                            
#2  0x00007f52f8cb0857 in object_set_property (object=object@entry=0x26e59b0, pspec=pspec@entry=0x2a31db0, value=value@entry=0x7ffd3b5be080, nqueue=nqueue@entry=0x26e8250, user_specified=user_specified@entry=1)   
    at ../gobject/gobject.c:1830
(gdb) p pspec                                                                                                                                                                                                        
$2 = 0x2a31db0                                                                                                                                                                                                       
(gdb) p *$2                                                                                                                                                                                                          
$3 = {g_type_instance = {g_class = 0x23e7b60 [g_type: None]}, name = 0x7f5288140d7e "deadline", flags = 8419, value_type = 0x28, owner_type = Python Exception <class 'TypeError'>: can only concatenate str (not "No
neType") to str                                                                                                                                                                                                      
, _nick = 0x7f5288140d75 "Deadline",                                                                                                                                                                                 
  _blurb = 0x7f5288142d30 "Deadline per frame (usec, 0=best, 1=realtime)", qdata = 0x0, ref_count = 2, param_id = 31}

Should be an int64, and BTW I was mislead of the doc, 1 is not 1 but 1000000...
Comment 1 Philippe Normand 2023-05-30 08:36:28 PDT
Pull request: https://github.com/WebKit/WebKit/pull/14483
Comment 2 EWS 2023-05-31 00:54:36 PDT
Committed 264719@main (918cb05fde45): <https://commits.webkit.org/264719@main>

Reviewed commits have been landed. Closing PR #14483 and removing active labels.
Comment 3 Radar WebKit Bug Importer 2023-05-31 00:55:17 PDT
<rdar://problem/110049859>