npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

phantom-oden-integration

v0.0.2

Published

## Audio configuration Please see the docs in Oden for more details (Top menu -> Help -> Manual).

Readme

Phantom Oden Integration

Audio configuration

Please see the docs in Oden for more details (Top menu -> Help -> Manual).

JACK is needed for low latency audio streaming on Linux.

sudo apt install -y jackd2

Jabra Speakerphone specifics

Start jackd with these settings (should be run at before Oden is started):

JACK_NO_AUDIO_RESERVATION=1 pasuspender -- /usr/bin/jackd -d alsa -d hw:USB -r 48000 -p 240 -n 3 -C -i 1 &
alsa_out -d hw:USB -r 48000 -p 240 -n 3 -c 2 &

This starts jackd with a single input channel from the USB device and then adds a output device using alsa_out.

Other audio devices

See the Oden docs (Top menu -> Help -> Manual)

Startup script

Configuration script(start_oden_streamer.sh):

#!/bin/bash

trap "pkill -P $$" EXIT

sudo /usr/bin/jetson_clocks

JACK_NO_AUDIO_RESERVATION=1 pasuspender -- /usr/bin/jackd -d alsa -d hw:USB -r 48000 -p 240 -n 3 -C -i 1 &
alsa_out -d hw:USB -r 48000 -p 240 -n 3 -c 2 &

sleep 15

cd /opt/oden-streamer
/opt/oden-streamer/oden-streamer --headless --configurator

Oden Service:

Setup service for oden to be runned at startup(oden.service):

[Unit]
After=NetworkManager-wait-online.service
After=nvargus-daemon.service

[Service]
WorkingDirectory=/opt/oden-streamer
Environment=HOME=/home/voysys
ExecStart=/home/voysys/start_oden_streamer.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

Copy the oden.service and enable it:

sudo cp ./oden.service /etc/systemd/system/oden.service
sudo systemctl enable oden

Barcode Scanner

The barcode scanner is currently only supported on Linux and Arm.

Setup

For the barcode scanner to work some steps are necessary besides just compiling.

  • The barcode scanner needs a license to be used, the plugin reads the license from the environment variable SCANNER_LICENSE which needs to be set. If the enviroment variable is not set it will look for the license in the same location as the Oden binary. The license lies in folder ./barcode-reader-sys/thirdparty/DynamSoft/license.txt
  • The file libDynamsoftBarcodeReader.so need to be placed in the same location as the Phantom Streamer binary. The file is located at ./barcode-reader-sys/thirdparty/DynamSoft/lib/amd64/ or ./barcode-reader-sys/thirdparty/DynamSoft/lib/aarch64/ depending on architecture.
  • The barcode scanner need a settings file. The plugin tries to get the path from env variable SNAP_USER_COMMON and open the file from that folder. If the env variable is not set it will look for the settings file in the same location as the binary. The file is located in ./barcode-reader-sys/thirdparty/DynamSoft/scanner_config.json
  • The 2D video entity should have the same name as the stream_label in the QRRequest.