Everything is in the title. I couldn’t find much documentation about the actual effect on GStreamer. I’m wondering if this is only a developer tool to provide faster memcpy and such or if it has a impact on gstreamer as whole.
It depends on what exactly you’re doing and what your target cpu/architecture is, but generally speaking yes, ORC speeds up gstreamer and you should always have it enabled.
It is used primarily in the handling of raw audio/video data, to make use of SIMD instructions for things like video conversion, video scaling, video mixing (compositor), audio mixing, etc.
Is there a way to check if an installed GStreamer has been built with ORC ? For example using gst-inspect ?
You can run something like this and check if it shows orc debug output:
$ ORC_DEBUG=3 gst-launch-1.0 -q videotestsrc num-buffers=1 ! fakevideosink
ORC: INFO: ../orc/orcdebug.c(72): _orc_debug_init(): orc-0.4.41 debug init
ORC: INFO: ../orc/orccpu-x86.c(415): orc_x86_cpuid_handle_family_model_stepping(): family_id 25 model_id 80 stepping 0
ORC: INFO: ../orc/orccpu-x86.c(310): orc_x86_cpuid_get_branding_string(): processor string 'AMD Ryzen 9 5900HX with Radeon Graphics '
ORC: INFO: ../orc/orccpu-x86.c(610): orc_sse_detect_cpuid_amd(): L1 D-cache: 32 kbytes, 8-way, 1 lines/tag, 64 line size
ORC: INFO: ../orc/orccpu-x86.c(612): orc_sse_detect_cpuid_amd(): L1 I-cache: 32 kbytes, 8-way, 1 lines/tag, 64 line size
ORC: INFO: ../orc/orccpu-x86.c(617): orc_sse_detect_cpuid_amd(): L2 cache: 512 kbytes, 6 assoc, 1 lines/tag, 64 line size
ORC: INFO: ../orc/orccompiler.c(327): orc_compiler_compile_program(): initializing compiler for program "video_test_src_orc_splat_u32"
ORC: INFO: ../orc/orccompiler.c(477): orc_compiler_compile_program(): allocating code memory
ORC: INFO: ../orc/orccompiler.c(483): orc_compiler_compile_program(): compiling for target "avx"
ORC: INFO: ../orc/orccompiler.c(676): orc_compiler_compile_program(): finished compiling (success)
or (on Linux, amd64, with standard package installation) run something like:
$ ldd /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so | grep orc
liborc-0.4.so.0 => /lib/x86_64-linux-gnu/liborc-0.4.so.0 (0x00007f5bdbe05000)
1 Like