GStreamer source element for AirPlay video streams

Overview

A GStreamer plugin that provides an airplaysrc element for receiving video streamed from Apple devices using the AirPlay protocol. Audio is currently not supported.

Here's a screenshot showing the iPad screen in OBS Studio:

iPad screen in OBS Studio

Installation

See below for build instructions. Once you have the file libgstairplay.so, you must let GStreamer find it. Possibilities include:

  • Placing the libgstairplay.so file in ~/.local/share/gstreamer-1.0/plugins.
  • Using the --gst-plugin-path option with gst-launch (for example gst-launch-1.0 --gst-plugin-path=~/my-gst-plugins airplaysrc ! ...`, see below for complete pipelines).
  • Add the directory containing the plugin to the GST_PLUGIN_PATH environment variable.

Usage

The airplaysrc element can be used like other video sources in GStreamer pipelines. Examples are shown below.

Typical use will require the following packages (tested on Ubuntu 20.04):

gstreamer1.0-tools
gstreamer1.0-plugins-good
gstreamer1.0-plugins-bad
gstreamer1.0-libav
libavahi-compat-libdnssd1
libplist3

To stream the video from an iPad, once you have a GStreamer pipeline running, select "Screen Mirroring" in the iPad control center. You should see "gstairplay" as a mirroring destination. Select it, and the streaming should start after a few seconds.

Showing the video in a window

The gst-launch tool can be used to run a pipeline that shows the video stream in a new window:

gst-launch-1.0 airplaysrc ! queue ! h264parse ! avdec_h264 max-threads=1 ! autovideosink

Explanation: the video stream is received in the H.264 format. The stream must be parsed (h264parse) and decoded (avdec_h264) before showing in a window (autovideosink). The queue element adds some buffering. The max-threads=1 decoding option can help reduce latency.

Using as a source in OBS Studio

The airplaysrc element can be used with the OBS GStreamer plugin to configure an OBS source that shows the AirPlay video stream:

  1. Install the OBS Gstreamer plugin. After compiling, I put the file obs-gstreamer.so in the directory ~/.config/obs-studio/plugins/obs-gstreamer/bin/64bit/.

  2. In your OBS scene, add a "GStreamer Source"

  3. Set the pipeline parameter, using airplaysrc as first element. I use the following:

    airplaysrc ! queue ! h264parse ! avdec_h264 max-threads=1 ! videoconvert ! videoscale ! video.
    
  4. For best results, set the canvas and output sizes to the resolution of the AirPlay stream.

Using as a Linux camera device

Using the v4l2loopback kernel module, you can expose the AirPlay video stream as a camera device in Linux.

  1. Install the v4l2loopback module. Your distribution might have it as a package, for example v4l2loopback-dkms in Ubuntu 20.04.

  2. Load the module with appropriate options. I use the following:

    sudo modprobe v4l2loopback devices=1 video_nr=10 card_label="AirPlay Cam" exclusive_caps=1 max_buffers=3
    

    This creates a virtual camera with name "AirPlay Cam" and device /dev/video10.

  3. Start a GStreamer pipeline that feeds the AirPlay stream to the video device:

    gst-launch-1.0 -v airplaysrc ! queue ! h264parse ! avdec_h264 max-threads=1 ! videoconvert ! videoscale ! v4l2sink device=/dev/video10
    

Once you start streaming from the Apple device, you should see "AirPlay Cam" in the list of cameras on your computer.

Troubleshooting

Call gst-inspect-1.0 libgstairplay.so (giving the path where the libgstairplay.so file is located) to check for problems such as missing libraries. For example if it says libplist.so.3: cannot open shared object file: No such file or directory, you can fix it by installing the libplist3 package (on Ubuntu 20.04 at least).

If you get an uninformative error message such as Could not load plugin file: File "libgstairplay.so" appears to be a GStreamer plugin, but it failed to initialize, try running again with GST_DEBUG=4 gst-inspect-1.0 build/libgstairplay.so.

Building

First install the build dependencies. The following packages are needed on Ubuntu 20.04:

git
gcc
pkg-config
cmake
gstreamer1.0-tools
libgstreamer1.0-dev
libgstreamer-plugins-base1.0-dev
libavahi-compat-libdnssd-dev
libplist-dev
libssl-dev
meson
ninja-build

Then clone and build RPiPlay. The fork at https://github.com/knuesel/RPiPlay is currently required. I use the following commands:

git clone https://github.com/knuesel/RPiPlay
cd RPiPlay
mkdir -p build install
cd build
cmake -DCMAKE_INSTALL_PREFIX=../install ..
make install

Then clone and build this project. I use the following:

cd ../..  # Get out of the RPiPlay directory
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$PWD/RPiPlay/install/lib/pkgconfig
git clone https://github.com/knuesel/gst-airplay
cd gst-airplay
meson build
ninja -C build

You should now have the compiled plugin libgstairplay.so in the build directory. To check that it is a valid GStreamer plugin, run:

gst-inspect-1.0 build/libgstairplay.so 

This should display something such as

Plugin Details:
  Name                     airplay
  Description              receive video through Apple AirPlay
  Filename                 build/libgstairplay.so
  Version                  0.1
  License                  GPL
  Source module            gst-airplay-plugin
  Binary package           GStreamer airplay Plug-ins
  Origin URL               https://github.com/knuesel/gst-airplay

  airplaysrc: AirPlay source

  1 features:
  +-- 1 elements

If you get an error message, see the troubleshooting section.

Credits

The pluging code is based on gst-template and uses the AirPlay implementation from RPiPlay.

License

The plugin makes use of RPiPlay so it is licensed under the GNU GPL 3.0.

You might also like...
ArduinoIoTCloud library is the central element of the firmware enabling certain Arduino boards to connect to the Arduino IoT Cloud

ArduinoIoTCloud What? The ArduinoIoTCloud library is the central element of the firmware enabling certain Arduino boards to connect to the Arduino IoT

OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

A non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams

Name libsregex - A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams Table of Contents Name Statu

This is a simple filter that will block any attempt to access streams beginning with

Triggering the notification only requires that you visit a particular path on an NTFS volume.

High Performance Streams Based on Coroutine TS ⚡

Conduit ⚡ Lazy High Performance Streams using Coroutine TS Conduit is a utility library for building and transforming, ranges and lazy (infinite) iter

The purpose of these streams is to be educational and entertaining for viewers to learn about systems architecture, reverse engineering, software security, etc., and NOT to encourage nor endorse malicious game hacking.
The purpose of these streams is to be educational and entertaining for viewers to learn about systems architecture, reverse engineering, software security, etc., and NOT to encourage nor endorse malicious game hacking.

Memestream This repository holds the code that I develop during my live game "modding" 😉 sessions. When I stream, I like to speedrun making a success

An OBS plugin that allows capture of independant application audio streams on Windows, in a similar fashion to OBS's game capture and Discord's application streaming.
An OBS plugin that allows capture of independant application audio streams on Windows, in a similar fashion to OBS's game capture and Discord's application streaming.

win-capture-audio An OBS plugin based on OBS's win-capture/game-capture that hooks WASAPI's audio output functions (rather than the various graphics A

JSON Input Output Streams

JIOS : JSON Input Output Streams Similar to C++ streams, but the stream elements are structured JSON data rather than characters. Contents Features [P

Similar to C++ streams, but the stream elements are structured JSON data rather than characters.

JIOS : JSON Input Output Streams Similar to C++ streams, but the stream elements are structured JSON data rather than characters. Contents Features [P

HashLibPlus is a recommended C++11 hashing library that provides a fluent interface for computing hashes and checksums of strings, files, streams, bytearrays and untyped data to mention but a few.

HashLibPlus HashLibPlus is a recommended C++11 hashing library that provides a fluent interface for computing hashes and checksums of strings, files,

Video++, a C++14 high performance video and image processing library.

Video++ Video++ is a video and image processing library taking advantage of the C++14 standard to ease the writing of fast video and image processing

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR,  Anime4K, RIFE, CAIN, DAIN and ACNet.
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content.
Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content.

This project is a Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content. The application decodes the h.264/5 compressed content using an HW accelerated decoder, the decoded YCbCr frames are processed with Vulkan Graphics and then presented via the Vulkan WSI.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR,  Anime4K, RIFE, CAIN, DAIN and ACNet.
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.

Video Stabilization Contents General Info Installation To Do General Info Video stabilization is a software-based approach in real-time to eliminating

Minimalist video maker -- simplify your music score video making process!

VisualScores 极简视频制作程序,简化你的乐谱视频制作! 如果需要编译,请解压 lib 文件夹中压缩包。 使用前请参考 manual 文件夹中的用户手册。 请勿修改、移动或删除 resource 文件夹中的任何文件。 VisualScores Minimalist video maker

 Shotcut - a free, open source, cross-platform video editor
Shotcut - a free, open source, cross-platform video editor

cross-platform (Qt), open-source (GPLv3) video editor

An open source iOS framework for GPU-based image and video processing
An open source iOS framework for GPU-based image and video processing

GPUImage Brad Larson http://www.sunsetlakesoftware.com @bradlarson [email protected] Overview The GPUImage framework is a BSD-licensed iO

Comments
  • Use RPiPlay as a meson subproject

    Use RPiPlay as a meson subproject

    meson knows how to use subproject through wrap files, and has a compatibility module that allows building cmake subprojects.

    This would make it easier to build this project, pass the right options, etc.

    See https://mesonbuild.com/CMake-module.html

    opened by hadess 9
  • Unable to connect to

    Unable to connect to "gstairplay"

    I managed to finish building.

    Running gst-inspect-1.0 shows some plugins but doesn't show libgstairplay.so. I updated the $GST_PLUGIN_PATH to point to the libgstairplay.so object.

    I also tried providing the path in gst-launch-1.0, but mirroring still doesn't work. More specifically, I can see gstairplay as a destination, but my ipad simply says ' Unable to connect to "gstairplay" '.

    Any pointers would be appreciated!

    opened by SaiSrini 7
  • Export use as a property

    Export use as a property

    It would be super useful for building applications to know whether there's a client connected or not, so that the application could show a "rest" screen and only switch when a connection has been made.

    opened by hadess 4
  • Cannot find run-time dependency airplay during `meson build`

    Cannot find run-time dependency airplay during `meson build`

    Hi! I'm running Pop OS 21.04 and am following the build instructions. I got as far as the meson build step without issue, but then I get this error:

    The Meson build system
    Version: 0.56.2
    Source dir: /home/marcel/GitHub/gst-airplay
    Build dir: /home/marcel/GitHub/gst-airplay/build
    Build type: native build
    Project name: gst-airplay
    Project version: 0.1
    C compiler for the host machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
    C linker for the host machine: cc ld.bfd 2.36.1
    Host machine cpu family: x86_64
    Host machine cpu: x86_64
    Found pkg-config: /usr/bin/pkg-config (0.29.2)
    Run-time dependency gio-2.0 found: YES 2.68.1
    Run-time dependency gstreamer-1.0 found: YES 1.18.4
    Run-time dependency gstreamer-base-1.0 found: YES 1.18.4
    Run-time dependency gstreamer-video-1.0 found: YES 1.18.4
    Configuring config.h using configuration
    Found CMake: /usr/bin/cmake (3.18.4)
    Run-time dependency airplay found: NO (tried pkgconfig and cmake)
    
    meson.build:40:0: ERROR: Dependency "airplay" not found, tried pkgconfig and cmake
    
    A full log can be found at /home/marcel/GitHub/gst-airplay/build/meson-logs/meson-log.txt
    

    Here is the full log:

    Build started at 2021-12-16T17:40:52.300053
    Main binary: /usr/bin/python3
    Build Options: 
    Python system: Linux
    The Meson build system
    Version: 0.56.2
    Source dir: /home/marcel/GitHub/gst-airplay
    Build dir: /home/marcel/GitHub/gst-airplay/build
    Build type: native build
    Project name: gst-airplay
    Project version: 0.1
    None of 'CC' are defined in the environment, not changing global flags.
    None of 'CFLAGS' are defined in the environment, not changing global flags.
    None of 'LDFLAGS' are defined in the environment, not changing global flags.
    None of 'CPPFLAGS' are defined in the environment, not changing global flags.
    None of 'CC_LD' are defined in the environment, not changing global flags.
    Sanity testing C compiler: cc
    Is cross compiler: False.
    None of 'CC_LD' are defined in the environment, not changing global flags.
    Sanity check compiler command line: cc /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe -pipe -D_FILE_OFFSET_BITS=64
    Sanity check compile stdout:
    
    -----
    Sanity check compile stderr:
    
    -----
    Running test binary command: /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe
    C compiler for the host machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
    C linker for the host machine: cc ld.bfd 2.36.1
    None of 'AR' are defined in the environment, not changing global flags.
    None of 'CC' are defined in the environment, not changing global flags.
    None of 'CFLAGS' are defined in the environment, not changing global flags.
    None of 'LDFLAGS' are defined in the environment, not changing global flags.
    None of 'CPPFLAGS' are defined in the environment, not changing global flags.
    None of 'CC_LD' are defined in the environment, not changing global flags.
    Sanity testing C compiler: cc
    Is cross compiler: False.
    None of 'CC_LD' are defined in the environment, not changing global flags.
    Sanity check compiler command line: cc /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe -pipe -D_FILE_OFFSET_BITS=64
    Sanity check compile stdout:
    
    -----
    Sanity check compile stderr:
    
    -----
    Running test binary command: /home/marcel/GitHub/gst-airplay/build/meson-private/sanitycheckc.exe
    C compiler for the build machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
    C linker for the build machine: cc ld.bfd 2.36.1
    None of 'AR' are defined in the environment, not changing global flags.
    Build machine cpu family: x86_64
    Build machine cpu: x86_64
    Host machine cpu family: x86_64
    Host machine cpu: x86_64
    Target machine cpu family: x86_64
    Target machine cpu: x86_64
    Pkg-config binary for MachineChoice.HOST is not cached.
    None of 'PKG_CONFIG' are defined in the environment, not changing global flags.
    Pkg-config binary missing from cross or native file, or env var undefined.
    Trying a default Pkg-config fallback at pkg-config
    Found pkg-config: /usr/bin/pkg-config (0.29.2)
    Determining dependency 'gio-2.0' with pkg-config executable '/usr/bin/pkg-config'
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --modversion gio-2.0` -> 0
    2.68.1
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --cflags gio-2.0` -> 0
    -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gio-2.0 --libs` -> 0
    -L/usr/lib/x86_64-linux-gnu -lgio-2.0 -lgobject-2.0 -lglib-2.0
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gio-2.0 --libs` -> 0
    -lgio-2.0 -lgobject-2.0 -lglib-2.0
    None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
    None of 'CC_LD' are defined in the environment, not changing global flags.
    Running compile:
    Working directory:  /home/marcel/GitHub/gst-airplay/build/meson-private/tmpb4bdnl1r
    Command line:  cc /home/marcel/GitHub/gst-airplay/build/meson-private/tmpb4bdnl1r/testfile.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/tmpb4bdnl1r/output.exe -pipe -D_FILE_OFFSET_BITS=64 -O0 
    
    Code:
     #include<stdio.h>
            
            int main(void) {
                printf("%ld\n", (long)(sizeof(void *)));
                return 0;
            };
    Compiler stdout:
     
    Compiler stderr:
     
    Program stdout:
    
    8
    
    Program stderr:
    
    
    Running compile:
    Working directory:  /home/marcel/GitHub/gst-airplay/build/meson-private/tmpxuqn3ksh
    Command line:  cc /home/marcel/GitHub/gst-airplay/build/meson-private/tmpxuqn3ksh/testfile.c -o /home/marcel/GitHub/gst-airplay/build/meson-private/tmpxuqn3ksh/output.obj -pipe -c -D_FILE_OFFSET_BITS=64 -O0 --print-search-dirs 
    
    Code:
     
    Compiler stdout:
     install: /usr/lib/gcc/x86_64-linux-gnu/10/
    programs: =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/
    libraries: =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/:/lib/x86_64-linux-gnu/10/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/10/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../:/lib/:/usr/lib/
    
    Compiler stderr:
     
    Run-time dependency gio-2.0 found: YES 2.68.1
    Pkg-config binary for MachineChoice.HOST is cached.
    Determining dependency 'gstreamer-1.0' with pkg-config executable '/usr/bin/pkg-config'
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --modversion gstreamer-1.0` -> 0
    1.18.4
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --cflags gstreamer-1.0` -> 0
    -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gstreamer-1.0 --libs` -> 0
    -L/usr/lib/x86_64-linux-gnu -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gstreamer-1.0 --libs` -> 0
    -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
    None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
    Run-time dependency gstreamer-1.0 found: YES 1.18.4
    Pkg-config binary for MachineChoice.HOST is cached.
    Determining dependency 'gstreamer-base-1.0' with pkg-config executable '/usr/bin/pkg-config'
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --modversion gstreamer-base-1.0` -> 0
    1.18.4
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --cflags gstreamer-base-1.0` -> 0
    -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gstreamer-base-1.0 --libs` -> 0
    -L/usr/lib/x86_64-linux-gnu -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gstreamer-base-1.0 --libs` -> 0
    -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
    None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
    Run-time dependency gstreamer-base-1.0 found: YES 1.18.4
    Pkg-config binary for MachineChoice.HOST is cached.
    Determining dependency 'gstreamer-video-1.0' with pkg-config executable '/usr/bin/pkg-config'
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --modversion gstreamer-video-1.0` -> 0
    1.18.4
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --cflags gstreamer-video-1.0` -> 0
    -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/include/gstreamer-1.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gstreamer-video-1.0 --libs` -> 0
    -L/usr/lib/x86_64-linux-gnu -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config gstreamer-video-1.0 --libs` -> 0
    -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
    None of 'PKG_CONFIG_PATH' are defined in the environment, not changing global flags.
    Run-time dependency gstreamer-video-1.0 found: YES 1.18.4
    Configuring config.h using configuration
    Pkg-config binary for MachineChoice.HOST is cached.
    Determining dependency 'airplay' with pkg-config executable '/usr/bin/pkg-config'
    PKG_CONFIG_PATH: 
    Called `/usr/bin/pkg-config --modversion airplay` -> 1
    
    CMake binary for MachineChoice.HOST is not cached
    None of 'CMAKE' are defined in the environment, not changing global flags.
    CMake binary missing from cross or native file, or env var undefined.
    Trying a default CMake fallback at cmake
    Found CMake: /usr/bin/cmake (3.18.4)
    None of 'CMAKE_PREFIX_PATH' are defined in the environment, not changing global flags.
    Extracting basic cmake information
    Try CMake generator: auto
    Calling CMake (['/usr/bin/cmake']) in /home/marcel/GitHub/gst-airplay/build/meson-private/cmake_airplay with:
      - "--trace-expand"
      - "--trace-format=json-v1"
      - "--no-warn-unused-cli"
      - "--trace-redirect=cmake_trace.txt"
      - "-DCMAKE_TOOLCHAIN_FILE=/home/marcel/GitHub/gst-airplay/build/meson-private/cmake_airplay/CMakeMesonToolchainFile.cmake"
      - "."
      -- Module search paths:    ['/', '/opt', '/usr', '/usr/local']
      -- CMake root:             /usr/share/cmake-3.18
      -- CMake architectures:    ['x86_64-linux-gnu']
      -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share', 'lib/x86_64-linux-gnu']
    Preliminary CMake check failed. Aborting.
    Run-time dependency airplay found: NO (tried pkgconfig and cmake)
    
    meson.build:40:0: ERROR: Dependency "airplay" not found, tried pkgconfig and cmake
    

    Is there something I'm doing wrong? Thanks!

    opened by marcelgoh 3
Owner
Jeremie Knuesel
Jeremie Knuesel
Given two arrays X and Y of positive integers, find the number of pairs such that x^y > y^x (raised to power of) where x is an element from X and y is an element from Y.

Number-of-pairs Given two arrays X and Y of positive integers, find the number of pairs such that x^y > y^x (raised to power of) where x is an element

Rajesh Kumar Sah 1 Nov 20, 2021
GStreamer open-source multimedia framework

GStreamer open-source multimedia framework

GStreamer GitHub mirrors 1.4k Sep 19, 2022
SuanPan - 🧮 An Open Source, Parallel and Heterogeneous Finite Element Analysis Framework

suanPan Introduction ?? suanPan is a finite element method (FEM) simulation platform for applications in fields such as solid mechanics and civil/stru

Theodore 17 May 14, 2022
Gstreamer plugin that allows use of NVIDIA Maxine SDK in a generic pipeline.

GST-NVMAXINE Gstreamer plugin that allows use of NVIDIA MaxineTM sdk in a generic pipeline. This plugin is intended for use with NVIDIA hardware. Visi

Alex Pitrolo 15 Aug 30, 2022
Simple WHIP Client (based on GStreamer's webrtcbin)

Simple WHIP Client This is an attempt to create a simple prototype of a WHIP client, to be used mostly for testing with my Simple WHIP Server (based o

Lorenzo Miniero 28 Sep 8, 2022
TengineGst is a streaming media analytics framework, based on GStreamer multimedia framework, for creating varied complex media analytics pipelines.

TengineGst is a streaming media analytics framework, based on GStreamer multimedia framework, for creating varied complex media analytics pipelines. It ensures pipeline interoperability and provides optimized media, and inference operations using Tengine Toolkit Inference Engine backend, across varied architecture - CPU, iGPU and VPU.

OAID 64 May 30, 2022
This is a list of different open-source video games and commercial video games open-source remakes.

This is a list of different open-source video games and commercial video games open-source remakes.

Ivan Bobev 103 Sep 12, 2022
Chromium fork for linux named after radioactive element No. 90

Thorium Chromium fork for linux named after radioactive element No. 90 Always built with latest x64 tip-o-tree "Trunk" build of chromium \ Intended to

Alexander David Frick 170 Sep 22, 2022
Chromium fork for windows named after radioactive element No. 90

Chromium fork for windows named after radioactive element No. 90

Alexander David Frick 38 Sep 19, 2022
WiFi connectivity module for SAM Element.

ACS-M1128 SAM Element IoT WiFi Connectivity SAM Element is an IoT platform. Visit our website to get to know more. Quick Links & Requirements Knowledg

SAM Element 1 Mar 13, 2020