Giter Site home page Giter Site logo

xbox-smartglass-nano-python's Introduction

Xbox-Smartglass-Nano

PyPi version Docs Build status Discord chat

The gamestreaming part of the smartglass library, codename NANO.

Currently supported version:

  • NANO v1 (Xbox One family)

XCloud and new XHome streaming are Nano v3, required for Xbox Series S/X.

For in-depth information, check out the documentation: (https://openxbox.github.io)

Features

  • Stream from your local Xbox One (OG/S/X) console

Dependencies

Install

pip install xbox-smartglass-nano

How to use

xbox-nano-client

Known issues

  • Video / Audio / Input is not smooth yet
  • ChatAudio and Input Feedback not implemented

Development workflow

Ready to contribute? Here's how to set up xbox-smartglass-nano-python for local development.

  1. Fork the xbox-smartglass-nano-python repo on GitHub.
  2. Clone your fork locally
git clone [email protected]:your_name_here/xbox-smartglass-nano-python.git
  1. Install your local copy into a virtual environment. This is how you set up your fork for local development
python -m venv ~/pyvenv/xbox-smartglass
source ~/pyvenv/xbox-smartglass/bin/activate
cd xbox-smartglass-nano-python
pip install -e .[dev]
  1. Create a branch for local development::
git checkout -b name-of-your-bugfix-or-feature
  1. Make your changes.

  2. Before pushing the changes to git, please verify they actually work

pytest
  1. Commit your changes and push your branch to GitHub::
git commit -m "Your detailed description of your changes."
git push origin name-of-your-bugfix-or-feature
  1. Submit a pull request through the GitHub website.

Pull Request Guidelines

Before you submit a pull request, check that it meets these guidelines:

  1. Code includes unit-tests.
  2. Added code is properly named and documented.
  3. On major changes the README is updated.
  4. Run tests / linting locally before pushing to remote.

Credits

This package uses parts of Cookiecutter and the audreyr/cookiecutter-pypackage project template

xbox-smartglass-nano-python's People

Contributors

meganium97 avatar rgsilva avatar schamper avatar tuxuser avatar uzerjamal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xbox-smartglass-nano-python's Issues

wont install

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-MfotIv/pydantic/

Application fails to start

I get the following error when I try to start:

<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
<frozen importlib._bootstrap>:219: RuntimeWarning: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 152 from PyObject
INFO:authentication:Loaded token <class 'xbox.webapi.authentication.token.AccessToken'> from file
INFO:authentication:Loaded token <class 'xbox.webapi.authentication.token.RefreshToken'> from file
INFO:authentication:Loaded token <class 'xbox.webapi.authentication.token.UserToken'> from file
INFO:authentication:Loaded token <class 'xbox.webapi.authentication.token.XSTSToken'> from file
Traceback (most recent call last):
  File "/home/USER/.local/bin/xbox-nano-client", line 8, in <module>
    sys.exit(main())
  File "/home/USER/.local/lib/python3.8/site-packages/xbox/nano/scripts/client.py", line 40, in main
    if len(discovered):
TypeError: object of type 'coroutine' has no len()
sys:1: RuntimeWarning: coroutine 'Console.discover' was never awaited

input buttons issue

Hey,

I've opened the Input Channel and Feedback Channel and tried to send an input button in a game.

I got this in the debug:

frame_id = 2371469396
    timestamp = 19910
    created_ts = 1585050122
    buttons = None
    analog = None
    extension = None
    byte_6 = 1
    dpad_up = 0
    dpad_down = 0
    dpad_left = 0
    dpad_right = 0
    start = 0
    back = 0
    left_thumbstick = 0
    right_thumbstick = 0
    left_shoulder = 0
    right_shoulder = 0
    guide = 0
    unknown = 0
    a = 0
    b = 0
    x = 0
    y = 4
    left_trigger = 0
    right_trigger = 0
    left_thumb_x = 0
    left_thumb_y = 0
    right_thumb_x = 0
    right_thumb_y = 0
    rumble_trigger_l = 0
    rumble_trigger_r = 0
    rumble_handle_l = 0
    rumble_handle_r = 0

Any idea why the input channels dont work?

I have an unusual error on macOS - How do i fix SDL2

Traceback (most recent call last):
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/sdl2/dll.py", line 223, in <module>
    dll = DLL("SDL2", ["SDL2", "SDL2-2.0"], os.getenv("PYSDL2_DLL_PATH"))
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/sdl2/dll.py", line 104, in __init__
    raise RuntimeError("could not find any library for %s (%s)" %
RuntimeError: could not find any library for SDL2 (PYSDL2_DLL_PATH: unset)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/<username>/Library/Python/3.8/bin/xbox-nano-client", line 5, in <module>
    from xbox.nano.scripts.client import main
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/xbox/nano/scripts/client.py", line 12, in <module>
    from xbox.nano.render.client import SDLClient
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/xbox/nano/render/client/__init__.py", line 2, in <module>
    from xbox.nano.render.client.sdl import SDLClient
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/xbox/nano/render/client/sdl.py", line 2, in <module>
    from xbox.nano.render.video.sdl import SDLVideoRenderer
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/xbox/nano/render/video/sdl.py", line 5, in <module>
    import sdl2
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/sdl2/__init__.py", line 2, in <module>
    from .dll import get_dll_file, _bind
  File "/Users/<username>/Library/Python/3.8/lib/python/site-packages/sdl2/dll.py", line 225, in <module>
    raise ImportError(exc)
ImportError: could not find any library for SDL2 (PYSDL2_DLL_PATH: unset)

Could not install

Installing collected packages: av, xbox-smartglass-nano
Attempting uninstall: av
Found existing installation: av 8.0.3
Uninstalling av-8.0.3:
Successfully uninstalled av-8.0.3
Running setup.py install for av ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-j58v4ci6/av_0f060234e787425783bd7125801677e6/setup.py'"'"'; file='"'"'/tmp/pip-install-j58v4ci6/av_0f060234e787425783bd7125801677e6/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-ifet1fzt/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/shiv/.local/include/python3.9/av
cwd: /tmp/pip-install-j58v4ci6/av_0f060234e787425783bd7125801677e6/
Complete output (48 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/av
copying av/deprecation.py -> build/lib.linux-x86_64-3.9/av
copying av/datasets.py -> build/lib.linux-x86_64-3.9/av
copying av/main.py -> build/lib.linux-x86_64-3.9/av
copying av/init.py -> build/lib.linux-x86_64-3.9/av
creating build/lib.linux-x86_64-3.9/av/video
copying av/video/init.py -> build/lib.linux-x86_64-3.9/av/video
creating build/lib.linux-x86_64-3.9/av/subtitles
copying av/subtitles/init.py -> build/lib.linux-x86_64-3.9/av/subtitles
creating build/lib.linux-x86_64-3.9/av/sidedata
copying av/sidedata/init.py -> build/lib.linux-x86_64-3.9/av/sidedata
creating build/lib.linux-x86_64-3.9/av/filter
copying av/filter/init.py -> build/lib.linux-x86_64-3.9/av/filter
creating build/lib.linux-x86_64-3.9/av/data
copying av/data/init.py -> build/lib.linux-x86_64-3.9/av/data
creating build/lib.linux-x86_64-3.9/av/container
copying av/container/init.py -> build/lib.linux-x86_64-3.9/av/container
creating build/lib.linux-x86_64-3.9/av/codec
copying av/codec/init.py -> build/lib.linux-x86_64-3.9/av/codec
creating build/lib.linux-x86_64-3.9/av/audio
copying av/audio/init.py -> build/lib.linux-x86_64-3.9/av/audio
running build_ext
running config
PyAV: 8.0.2 (unknown commit)
Python: 3.9.6 (default, Jun 29 2021, 00:00:00) \n[GCC 11.1.1 20210531 (Red Hat 11.1.1-3)]
platform: Linux-5.12.14-300.fc34.x86_64-x86_64-with-glibc2.33
extension_extra:
include_dirs: [b'include']
libraries: []
library_dirs: []
define_macros: []
runtime_library_dirs: []
config_macros:
PYAV_COMMIT_STR="unknown-commit"
PYAV_VERSION=8.0.2
PYAV_VERSION_STR="8.0.2"
Could not find libavformat with pkg-config.
Could not find libavcodec with pkg-config.
Could not find libavdevice with pkg-config.
Could not find libavutil with pkg-config.
Could not find libavfilter with pkg-config.
Could not find libswscale with pkg-config.
Could not find libswresample with pkg-config.
----------------------------------------
Rolling back uninstall of av
Moving to /home/shiv/.local/bin/pyav
from /tmp/pip-uninstall-974xbu_u/pyav
Moving to /home/shiv/.local/lib/python3.9/site-packages/av-8.0.3.dist-info/
from /home/shiv/.local/lib/python3.9/site-packages/~v-8.0.3.dist-info
Moving to /home/shiv/.local/lib/python3.9/site-packages/av.libs/
from /home/shiv/.local/lib/python3.9/site-packages/~v.libs
Moving to /home/shiv/.local/lib/python3.9/site-packages/av/
from /home/shiv/.local/lib/python3.9/site-packages/~v
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-j58v4ci6/av_0f060234e787425783bd7125801677e6/setup.py'"'"'; file='"'"'/tmp/pip-install-j58v4ci6/av_0f060234e787425783bd7125801677e6/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-ifet1fzt/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/shiv/.local/include/python3.9/av Check the logs for full command output.

Incorrect Module?

from xbox.nano.render.client import SDLClient

Trying to run the xbox-nano-client checks out with module not found error for xbox.nano.render.client (line 11 scripts.client)
It appears there is no client.py module in nano.render, the actual file in repo.
I guess a bad merge.
Shouldn't line 11 be from xbox.nano.render.video import sdl
It seems the old SDLClient(width, height) has been replaced by the SDLVideoRenderer class in sdl module or simply the render.client is missing?

Copy controller_db.txt to bdist

Currently controller_db.txt is not copied to the bdist / pypi deployed package.

path: xbox/nano/render/input/controller_db.txt

  • Add path to include in Manifest.in
  • Add include_package_data=True to setup. py

XBox Series S/X Support

What is currently missing for supporting the new protocol version and therefore the new XBoxes? Is there a specific part where I could help with?

Import issues?

Had an issue running

.local/lib/python2.7/site-packages/xbox/webapi/authentication/manager.py", line 15, in <module>
    from urllib.parse import urlparse, parse_qs

Installed urlparse and changed it to from urlparse import urlparse

Now having

xbox/sg/enum.py", line 5, in <module>
    from enum import Enum
ImportError: cannot import name Enum

Not sure what to do about that one? :-(

Errors Installing xbox-smartglass-api through pip.

Having gotten the rest of the dependencies to set this up ready to go except for this, its time for me to move on to the api itself. When I insert the command "pip install xbox-smartglass-core" I receive the following output:

# pip install xbox-smartglass-core
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting xbox-smartglass-core
  Using cached https://files.pythonhosted.org/packages/89/e6/1ff0909838fb63fd225bbf949e2ee1f0e2909e6cdda3f03d4e285f54ec91/xbox_smartglass_core-1.1.1-py2.py3-none-any.whl
Collecting marshmallow-objects
  Using cached https://files.pythonhosted.org/packages/c8/d3/6d045a7d0436ede60ce7328a1a261b0c517dc36c49a6785559f3e43bb7f8/marshmallow-objects-2.3.0.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Collecting xbox-webapi>=1.1.8
  Using cached https://files.pythonhosted.org/packages/3a/6b/3c96584f9b3dcab2ff94983ea4eb3ab57efeed32923439e4483512923aa6/xbox_webapi-2.0.10-py2.py3-none-any.whl
Collecting dpkt==1.9.1
  Using cached https://files.pythonhosted.org/packages/e1/0f/30a8462ed17092a5d61ea12e212e9ce3740f19f5f9f2431287410429d306/dpkt-1.9.1-py2-none-any.whl
Collecting aenum==2.1.2; python_version <= "3.5"
  Using cached https://files.pythonhosted.org/packages/44/c4/7cda7e7e71e18ad999cb9d23f9969f818af1ed6be71d18db7963680b8320/aenum-2.1.2-py2-none-any.whl
Collecting Flask
  Using cached https://files.pythonhosted.org/packages/f2/28/2a03252dfb9ebf377f40fba6a7841b47083260bf8bd8e737b0c6952df83f/Flask-1.1.2-py2.py3-none-any.whl
Collecting gevent==1.3.7
  Using cached https://files.pythonhosted.org/packages/40/4f/222cefc08c1ffda69454908496e46c32f7b82da30ade4861178c6a72405e/gevent-1.3.7-cp27-cp27mu-manylinux1_x86_64.whl
Collecting construct==2.9.41
  Using cached https://files.pythonhosted.org/packages/e6/f5/064be5013506d54212b396e8fc3e9890e60ed6a27df6d52529f0b8361cd5/construct-2.9.41.tar.gz
Collecting cryptography==2.3.1
  Using cached https://files.pythonhosted.org/packages/87/e6/915a482dbfef98bbdce6be1e31825f591fc67038d4ee09864c1d2c3db371/cryptography-2.3.1-cp27-cp27mu-manylinux1_x86_64.whl
ERROR: Could not find a version that satisfies the requirement marshmallow>=3.0.0 (from marshmallow-objects->xbox-smartglass-core) (from versions: 0.1.0, 0.2.0, 0.2.1, 0.3.0, 0.3.1, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.6.0, 0.7.0, 1.0.0a0, 1.0.0, 1.0.1, 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 2.0.0a1, 2.0.0b1, 2.0.0b2, 2.0.0b3, 2.0.0b4, 2.0.0b5, 2.0.0rc1, 2.0.0rc2, 2.0.0, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.2.0, 2.2.1, 2.3.0, 2.4.0, 2.4.1, 2.4.2, 2.5.0, 2.6.0, 2.6.1, 2.7.0, 2.7.1, 2.7.2, 2.7.3, 2.8.0, 2.9.0, 2.9.1, 2.10.0, 2.10.1, 2.10.2, 2.10.3, 2.10.4, 2.10.5, 2.11.0, 2.11.1, 2.12.0, 2.12.1, 2.12.2, 2.13.0, 2.13.1, 2.13.2, 2.13.3, 2.13.4, 2.13.5, 2.13.6, 2.14.0, 2.15.0, 2.15.1, 2.15.2, 2.15.3, 2.15.4, 2.15.5, 2.15.6, 2.16.0, 2.16.1, 2.16.2, 2.16.3, 2.17.0, 2.18.0, 2.18.1, 2.19.0, 2.19.1, 2.19.2, 2.19.3, 2.19.4, 2.19.5, 2.20.0, 2.20.1, 2.20.2, 2.20.3, 2.20.4, 2.20.5, 2.21.0, 3.0.0a1, 3.0.0b1, 3.0.0b2, 3.0.0b3, 3.0.0b4, 3.0.0b5, 3.0.0b6, 3.0.0b7, 3.0.0b8, 3.0.0b9, 3.0.0b10, 3.0.0b11, 3.0.0b12, 3.0.0b13, 3.0.0b14, 3.0.0b15, 3.0.0b16, 3.0.0b17, 3.0.0b18, 3.0.0b19, 3.0.0b20, 3.0.0rc1, 3.0.0rc2, 3.0.0rc3, 3.0.0rc4, 3.0.0rc5)
ERROR: No matching distribution found for marshmallow>=3.0.0 (from marshmallow-objects->xbox-smartglass-core)

I've been searching and have found some similar problems with this kind of thing elsewhere but nothing I found specifically could help me with this, why isn't pip installing it normally as its supposed to? I should probably mention I'm running on Centos7 with Python3.6.8 and 2.7 installed. Pip 20.something, most recent before 21 I believe.

Unable to install through pip

Using Ubuntu 21.04.

My output log looks like this

pip3 install xbox-smartglass-nano
Collecting xbox-smartglass-nano
Using cached xbox_smartglass_nano-0.10.0-py2.py3-none-any.whl (50 kB)
Requirement already satisfied: PySDL2==0.9.7 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-nano) (0.9.7)
Requirement already satisfied: xbox-smartglass-core==1.3.0 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-nano) (1.3.0)
Collecting av==8.0.2
Using cached av-8.0.2.tar.gz (2.3 MB)
Requirement already satisfied: dpkt==1.9.4 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (1.9.4)
Requirement already satisfied: cryptography==3.2.1 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (3.2.1)
Requirement already satisfied: xbox-webapi==2.0.9 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (2.0.9)
Requirement already satisfied: pydantic==1.7.1 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (1.7.1)
Requirement already satisfied: aioconsole==0.3.0 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (0.3.0)
Requirement already satisfied: construct==2.10.56 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (2.10.56)
Requirement already satisfied: urwid==2.1.2 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (2.1.2)
Requirement already satisfied: fastapi==0.61.1 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (0.61.1)
Requirement already satisfied: uvicorn==0.12.2 in ./.local/lib/python3.9/site-packages (from xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (0.12.2)
Requirement already satisfied: six>=1.4.1 in /usr/lib/python3/dist-packages (from cryptography==3.2.1->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (1.15.0)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in ./.local/lib/python3.9/site-packages (from cryptography==3.2.1->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (1.14.6)
Requirement already satisfied: starlette==0.13.6 in ./.local/lib/python3.9/site-packages (from fastapi==0.61.1->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (0.13.6)
Requirement already satisfied: click==7.* in /usr/lib/python3/dist-packages (from uvicorn==0.12.2->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (7.1.2)
Requirement already satisfied: h11>=0.8 in ./.local/lib/python3.9/site-packages (from uvicorn==0.12.2->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (0.12.0)
Requirement already satisfied: appdirs in ./.local/lib/python3.9/site-packages (from xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (1.4.4)
Requirement already satisfied: ms-cv in ./.local/lib/python3.9/site-packages (from xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (0.1.1)
Requirement already satisfied: ecdsa in ./.local/lib/python3.9/site-packages (from xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (0.17.0)
Requirement already satisfied: aiohttp in ./.local/lib/python3.9/site-packages (from xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (3.7.4.post0)
Requirement already satisfied: pycparser in ./.local/lib/python3.9/site-packages (from cffi!=1.11.3,>=1.8->cryptography==3.2.1->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (2.20)
Requirement already satisfied: yarl<2.0,>=1.0 in ./.local/lib/python3.9/site-packages (from aiohttp->xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (1.6.3)
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp->xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (4.0.0)
Requirement already satisfied: multidict<7.0,>=4.5 in ./.local/lib/python3.9/site-packages (from aiohttp->xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (5.1.0)
Requirement already satisfied: attrs>=17.3.0 in ./.local/lib/python3.9/site-packages (from aiohttp->xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (21.2.0)
Requirement already satisfied: async-timeout<4.0,>=3.0 in ./.local/lib/python3.9/site-packages (from aiohttp->xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (3.0.1)
Requirement already satisfied: typing-extensions>=3.6.5 in ./.local/lib/python3.9/site-packages (from aiohttp->xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (3.10.0.0)
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp->xbox-webapi==2.0.9->xbox-smartglass-core==1.3.0->xbox-smartglass-nano) (2.10)
Building wheels for collected packages: av
Building wheel for av (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/setup.py'"'"'; file='"'"'/tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-dil35ohv
cwd: /tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/
Complete output (44 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/av
copying av/init.py -> build/lib.linux-x86_64-3.9/av
copying av/datasets.py -> build/lib.linux-x86_64-3.9/av
copying av/deprecation.py -> build/lib.linux-x86_64-3.9/av
copying av/main.py -> build/lib.linux-x86_64-3.9/av
creating build/lib.linux-x86_64-3.9/av/audio
copying av/audio/init.py -> build/lib.linux-x86_64-3.9/av/audio
creating build/lib.linux-x86_64-3.9/av/subtitles
copying av/subtitles/init.py -> build/lib.linux-x86_64-3.9/av/subtitles
creating build/lib.linux-x86_64-3.9/av/video
copying av/video/init.py -> build/lib.linux-x86_64-3.9/av/video
creating build/lib.linux-x86_64-3.9/av/data
copying av/data/init.py -> build/lib.linux-x86_64-3.9/av/data
creating build/lib.linux-x86_64-3.9/av/filter
copying av/filter/init.py -> build/lib.linux-x86_64-3.9/av/filter
creating build/lib.linux-x86_64-3.9/av/codec
copying av/codec/init.py -> build/lib.linux-x86_64-3.9/av/codec
creating build/lib.linux-x86_64-3.9/av/sidedata
copying av/sidedata/init.py -> build/lib.linux-x86_64-3.9/av/sidedata
creating build/lib.linux-x86_64-3.9/av/container
copying av/container/init.py -> build/lib.linux-x86_64-3.9/av/container
running build_ext
running config
PyAV: 8.0.2 (unknown commit)
Python: 3.9.5 (default, May 11 2021, 08:20:37) \n[GCC 10.3.0]
platform: Linux-5.11.0-22-generic-x86_64-with-glibc2.33
extension_extra:
include_dirs: [b'include', b'/usr/include/x86_64-linux-gnu']
libraries: [b'avformat', b'avcodec', b'avutil', b'swresample']
library_dirs: []
define_macros: []
runtime_library_dirs: []
config_macros:
PYAV_COMMIT_STR="unknown-commit"
PYAV_VERSION=8.0.2
PYAV_VERSION_STR="8.0.2"
Could not find libavdevice with pkg-config.
Could not find libavfilter with pkg-config.
Could not find libswscale with pkg-config.
(Deleted line here due to formatting problems)
ERROR: Failed building wheel for av
Running setup.py clean for av
Failed to build av
Installing collected packages: av, xbox-smartglass-nano
Attempting uninstall: av
Found existing installation: av 8.0.3
Uninstalling av-8.0.3:
Successfully uninstalled av-8.0.3
Running setup.py install for av ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/setup.py'"'"'; file='"'"'/tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-c2_zyw2t/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/ian/.local/include/python3.9/av
cwd: /tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/
Complete output (44 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/av
copying av/init.py -> build/lib.linux-x86_64-3.9/av
copying av/datasets.py -> build/lib.linux-x86_64-3.9/av
copying av/deprecation.py -> build/lib.linux-x86_64-3.9/av
copying av/main.py -> build/lib.linux-x86_64-3.9/av
creating build/lib.linux-x86_64-3.9/av/audio
copying av/audio/init.py -> build/lib.linux-x86_64-3.9/av/audio
creating build/lib.linux-x86_64-3.9/av/subtitles
copying av/subtitles/init.py -> build/lib.linux-x86_64-3.9/av/subtitles
creating build/lib.linux-x86_64-3.9/av/video
copying av/video/init.py -> build/lib.linux-x86_64-3.9/av/video
creating build/lib.linux-x86_64-3.9/av/data
copying av/data/init.py -> build/lib.linux-x86_64-3.9/av/data
creating build/lib.linux-x86_64-3.9/av/filter
copying av/filter/init.py -> build/lib.linux-x86_64-3.9/av/filter
creating build/lib.linux-x86_64-3.9/av/codec
copying av/codec/init.py -> build/lib.linux-x86_64-3.9/av/codec
creating build/lib.linux-x86_64-3.9/av/sidedata
copying av/sidedata/init.py -> build/lib.linux-x86_64-3.9/av/sidedata
creating build/lib.linux-x86_64-3.9/av/container
copying av/container/init.py -> build/lib.linux-x86_64-3.9/av/container
running build_ext
running config
PyAV: 8.0.2 (unknown commit)
Python: 3.9.5 (default, May 11 2021, 08:20:37) \n[GCC 10.3.0]
platform: Linux-5.11.0-22-generic-x86_64-with-glibc2.33
extension_extra:
include_dirs: [b'include', b'/usr/include/x86_64-linux-gnu']
libraries: [b'avformat', b'avcodec', b'avutil', b'swresample']
library_dirs: []
define_macros: []
runtime_library_dirs: []
config_macros:
PYAV_COMMIT_STR="unknown-commit"
PYAV_VERSION=8.0.2
PYAV_VERSION_STR="8.0.2"
Could not find libavdevice with pkg-config.
Could not find libavfilter with pkg-config.
Could not find libswscale with pkg-config.
(Deleted line here due to formatting problems)
Rolling back uninstall of av
Moving to /home/ian/.local/bin/pyav
from /tmp/pip-uninstall-fj80mcuc/pyav
Moving to /home/ian/.local/lib/python3.9/site-packages/av-8.0.3.dist-info/
from /home/ian/.local/lib/python3.9/site-packages/~v-8.0.3.dist-info
Moving to /home/ian/.local/lib/python3.9/site-packages/av.libs/
from /home/ian/.local/lib/python3.9/site-packages/~v.libs
Moving to /home/ian/.local/lib/python3.9/site-packages/av/
from /home/ian/.local/lib/python3.9/site-packages/~v
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/setup.py'"'"'; file='"'"'/tmp/pip-install-cjplcczv/av_1da1f3ff6eb045d6982f400c8312dbe6/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-c2_zyw2t/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/ian/.local/include/python3.9/av Check the logs for full command output.

No consoles discovered

I managed to install and get the project running on pc after a lot of troubles. Now when I run it using the command xbox-nano-client it takes some time and then returns the error

Error received: (10022, 'An invalid argument was supplied', None, 10022, None)
No consoles discovered

What should I do to fix this. Also, is there a more refined and all in one easy to use package of this project as I mainly want to implement it in an arm based sbc with some custom filters.

Audio?

Not sure if this a bug or just unsupported at this time, but when running the xbox-nano-client, everything works as expected except I don't seem to have any audio.

I'm currently running it on Arch Linux, Kernel 5.4.54-1-lts.

Let me know if you need anything else!

Setup breaks on av installation

Trying to install on Fedora 34 and getting following errors. First tried with av-8.0.2 installed but script is uninstalling that version.

Using legacy 'setup.py install' for av, since package 'wheel' is not installed.
Installing collected packages: av, xbox-smartglass-nano
    Running setup.py install for av ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ddtn_488/av/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ddtn_488/av/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-0kb1paxx/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/user/.local/include/python3.9/av
         cwd: /tmp/pip-install-ddtn_488/av/
    Complete output (315 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.9
    creating build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/show_frames_opencv.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/seekmany.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/second_seek_example.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/save_subtitles.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/resource_use.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/remux.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/qtproxy.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/player.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/merge-filmstrip.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/graph.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/glproxy.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/frame_seek_example.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/filmstrip.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/experimental.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/encode_frames.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/encode.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/dump_format.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/decode_threads.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/decode.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/cctx_encode.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/cctx_decode.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/average.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/audio_player.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/audio.py -> build/lib.linux-x86_64-3.9/scratchpad
    copying scratchpad/__init__.py -> build/lib.linux-x86_64-3.9/scratchpad
    creating build/lib.linux-x86_64-3.9/av
    copying av/deprecation.py -> build/lib.linux-x86_64-3.9/av
    copying av/datasets.py -> build/lib.linux-x86_64-3.9/av
    copying av/__main__.py -> build/lib.linux-x86_64-3.9/av
    copying av/__init__.py -> build/lib.linux-x86_64-3.9/av
    creating build/lib.linux-x86_64-3.9/av/video
    copying av/video/__init__.py -> build/lib.linux-x86_64-3.9/av/video
    creating build/lib.linux-x86_64-3.9/av/subtitles
    copying av/subtitles/__init__.py -> build/lib.linux-x86_64-3.9/av/subtitles
    creating build/lib.linux-x86_64-3.9/av/filter
    copying av/filter/__init__.py -> build/lib.linux-x86_64-3.9/av/filter
    creating build/lib.linux-x86_64-3.9/av/data
    copying av/data/__init__.py -> build/lib.linux-x86_64-3.9/av/data
    creating build/lib.linux-x86_64-3.9/av/container
    copying av/container/__init__.py -> build/lib.linux-x86_64-3.9/av/container
    creating build/lib.linux-x86_64-3.9/av/codec
    copying av/codec/__init__.py -> build/lib.linux-x86_64-3.9/av/codec
    creating build/lib.linux-x86_64-3.9/av/audio
    copying av/audio/__init__.py -> build/lib.linux-x86_64-3.9/av/audio
    running build_ext
    running config
    writing build/temp.linux-x86_64-3.9/include/pyav/config.h
    running cythonize
    building 'av.utils' extension
    creating build/temp.linux-x86_64-3.9/src
    creating build/temp.linux-x86_64-3.9/src/av
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/ffmpeg -I/usr/include/python3.9 -Ibuild/temp.linux-x86_64-3.9/include -Iinclude -I/usr/include/python3.9 -Ibuild/temp.linux-x86_64-3.9/include -c src/av/utils.c -o build/temp.linux-x86_64-3.9/src/av/utils.o
    src/av/utils.c: In function ‘__Pyx_ParseOptionalKeywords’:
    src/av/utils.c:4847:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4847 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4847:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     4847 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4847:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4847 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4847:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4847 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4847:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     4847 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4847:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4847 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4863:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4863 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4863:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     4863 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4863:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4863 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4863:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4863 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4863:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     4863 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/utils.c:4863:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     4863 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/utils.c: In function ‘__Pyx_decode_c_bytes’:
    src/av/utils.c:5576:9: warning: ‘PyUnicode_FromUnicode’ is deprecated [-Wdeprecated-declarations]
     5576 |         return PyUnicode_FromUnicode(NULL, 0);
          |         ^~~~~~
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/utils.c:58:
    /usr/include/python3.9/cpython/unicodeobject.h:551:42: note: declared here
      551 | Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
          |                                          ^~~~~~~~~~~~~~~~~~~~~
    gcc -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g build/temp.linux-x86_64-3.9/src/av/utils.o -L/usr/lib64 -L/usr/lib64 -lavcodec -lavformat -lavdevice -lswresample -lswscale -lavutil -lavfilter -o build/lib.linux-x86_64-3.9/av/utils.cpython-39-x86_64-linux-gnu.so
    building 'av.stream' extension
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/ffmpeg -I/usr/include/python3.9 -Ibuild/temp.linux-x86_64-3.9/include -Iinclude -I/usr/include/python3.9 -Ibuild/temp.linux-x86_64-3.9/include -c src/av/stream.c -o build/temp.linux-x86_64-3.9/src/av/stream.o
    src/av/stream.c: In function ‘__pyx_f_2av_6stream_wrap_stream’:
    src/av/stream.c:2180:3: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
     2180 |   switch (__pyx_v_c_stream->codec->codec_type) {
          |   ^~~~~~
    In file included from /usr/include/ffmpeg/libavdevice/avdevice.h:51,
                     from src/av/stream.c:679:
    /usr/include/ffmpeg/libavformat/avformat.h:880:21: note: declared here
      880 |     AVCodecContext *codec;
          |                     ^~~~~
    src/av/stream.c: In function ‘__pyx_f_2av_6stream_6Stream__init’:
    src/av/stream.c:2807:3: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
     2807 |   __pyx_t_2 = __pyx_v_stream->codec;
          |   ^~~~~~~~~
    In file included from /usr/include/ffmpeg/libavdevice/avdevice.h:51,
                     from src/av/stream.c:679:
    /usr/include/ffmpeg/libavformat/avformat.h:880:21: note: declared here
      880 |     AVCodecContext *codec;
          |                     ^~~~~
    src/av/stream.c:2930:15: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
     2930 |     __pyx_t_7 = __pyx_v_self->_codec_context->codec;
          |               ^
    src/av/stream.c: In function ‘__Pyx_modinit_type_init_code’:
    src/av/stream.c:5598:32: error: ‘PyTypeObject’ {aka ‘struct _typeobject’} has no member named ‘tp_print’
     5598 |   __pyx_type_2av_6stream_Stream.tp_print = 0;
          |                                ^
    src/av/stream.c: In function ‘__Pyx_ParseOptionalKeywords’:
    src/av/stream.c:6416:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6416 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6416:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6416 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6416:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6416 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6416:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6416 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6416:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6416 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6416:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6416 |                     (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                     ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6432:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6432 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6432:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6432 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6432:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6432 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6432:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6432 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6432:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations]
     6432 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:580:45: note: declared here
      580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
          |                                             ^~~~~~~~~~~~~~~~~~~
    src/av/stream.c:6432:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations]
     6432 |                         (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
          |                         ^
    In file included from /usr/include/python3.9/unicodeobject.h:1026,
                     from /usr/include/python3.9/Python.h:97,
                     from src/av/stream.c:59:
    /usr/include/python3.9/cpython/unicodeobject.h:446:26: note: declared here
      446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
          |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    error: command '/usr/bin/gcc' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ddtn_488/av/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ddtn_488/av/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-0kb1paxx/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/user/.local/include/python3.9/av Check the logs for full command output.

Issue installing xbox-smartglass-nano

After performing the command I will show below to install xbox-smartglass-nano, I got error messages at the end telling me my FFmpeg was out of date and that there was an error involving gcc. I'm running ffmpeg version 4.1.3, and have made sure both ffmpeg and gcc are updated with the most recent versions. Here is what the console spit out after i attempted to install the smartglass nano. Apologies if its a bit of a brick wall of text, but I didn't want to not include something and mess up because of it.

# pip3 install xbox-smartglass-nano
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting xbox-smartglass-nano
  Using cached https://files.pythonhosted.org/packages/40/ea/e7e943fd3cd2ec4b09ba8ed595502b3b067993131af25591f26aa603fb11/xbox_smartglass_nano-0.9.4-py2.py3-none-any.whl
Requirement already satisfied: xbox-smartglass-core>=1.1.0 in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-nano)
Requirement already satisfied: marshmallow-enum in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-nano)
Collecting av==6.1.0 (from xbox-smartglass-nano)
  Using cached https://files.pythonhosted.org/packages/15/80/edc9e110b2896ebe16863051e68bd4786efeda71ce94b81a048d146062cc/av-6.1.0.tar.gz
Requirement already satisfied: marshmallow-objects in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-nano)
Requirement already satisfied: PySDL2 in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-nano)
Requirement already satisfied: gevent==1.5a3 in /usr/local/lib64/python3.6/site-packages (from xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: dpkt in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: construct==2.10.56 in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: Flask in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: xbox-webapi>=1.1.8 in /usr/local/lib/python3.6/site-packages (from xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: cryptography==2.8 in /usr/local/lib64/python3.6/site-packages (from xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: marshmallow>=2.0.0 in /usr/local/lib/python3.6/site-packages (from marshmallow-enum->xbox-smartglass-nano)
Requirement already satisfied: greenlet>=0.4.14 in /usr/local/lib64/python3.6/site-packages (from gevent==1.5a3->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/lib/python3.6/site-packages (from Flask->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: click>=5.1 in /usr/local/lib/python3.6/site-packages (from Flask->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: Jinja2>=2.10.1 in /usr/local/lib/python3.6/site-packages (from Flask->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: Werkzeug>=0.15 in /usr/local/lib/python3.6/site-packages (from Flask->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: appdirs in /usr/local/lib/python3.6/site-packages (from xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: pydantic in /usr/local/lib/python3.6/site-packages (from xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: ecdsa in /usr/local/lib/python3.6/site-packages (from xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: aiohttp in /usr/local/lib64/python3.6/site-packages (from xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: ms-cv in /usr/local/lib/python3.6/site-packages (from xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: six>=1.4.1 in /usr/local/lib/python3.6/site-packages (from cryptography==2.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/local/lib64/python3.6/site-packages (from cryptography==2.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib64/python3.6/site-packages (from Jinja2>=2.10.1->Flask->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.6/site-packages (from pydantic->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: dataclasses>=0.6; python_version < "3.7" in /usr/local/lib/python3.6/site-packages (from pydantic->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.6/site-packages (from aiohttp->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: chardet<4.0,>=2.0 in /usr/local/lib/python3.6/site-packages (from aiohttp->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib64/python3.6/site-packages (from aiohttp->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: async_timeout<4.0,>=3.0 in /usr/local/lib/python3.6/site-packages (from aiohttp->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib64/python3.6/site-packages (from aiohttp->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: idna-ssl>=1.0 in /usr/local/lib/python3.6/site-packages (from aiohttp->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: pycparser in /usr/local/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography==2.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Requirement already satisfied: idna>=2.0 in /usr/local/lib/python3.6/site-packages (from yarl<2.0,>=1.0->aiohttp->xbox-webapi>=1.1.8->xbox-smartglass-core>=1.1.0->xbox-smartglass-nano)
Installing collected packages: av, xbox-smartglass-nano
  Running setup.py install for av ... error
    Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fxaatatg/av/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-y26tdk7d-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/av
    copying av/__init__.py -> build/lib.linux-x86_64-3.6/av
    copying av/__main__.py -> build/lib.linux-x86_64-3.6/av
    copying av/datasets.py -> build/lib.linux-x86_64-3.6/av
    copying av/deprecation.py -> build/lib.linux-x86_64-3.6/av
    creating build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/__init__.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/audio.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/audio_player.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/average.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/cctx_decode.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/cctx_encode.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/decode.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/decode_threads.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/dump_format.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/encode.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/encode_frames.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/experimental.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/filmstrip.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/frame_seek_example.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/glproxy.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/graph.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/merge-filmstrip.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/player.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/qtproxy.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/remux.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/resource_use.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/save_subtitles.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/second_seek_example.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/seekmany.py -> build/lib.linux-x86_64-3.6/scratchpad
    copying scratchpad/show_frames_opencv.py -> build/lib.linux-x86_64-3.6/scratchpad
    creating build/lib.linux-x86_64-3.6/av/audio
    copying av/audio/__init__.py -> build/lib.linux-x86_64-3.6/av/audio
    creating build/lib.linux-x86_64-3.6/av/codec
    copying av/codec/__init__.py -> build/lib.linux-x86_64-3.6/av/codec
    creating build/lib.linux-x86_64-3.6/av/container
    copying av/container/__init__.py -> build/lib.linux-x86_64-3.6/av/container
    creating build/lib.linux-x86_64-3.6/av/data
    copying av/data/__init__.py -> build/lib.linux-x86_64-3.6/av/data
    creating build/lib.linux-x86_64-3.6/av/filter
    copying av/filter/__init__.py -> build/lib.linux-x86_64-3.6/av/filter
    creating build/lib.linux-x86_64-3.6/av/subtitles
    copying av/subtitles/__init__.py -> build/lib.linux-x86_64-3.6/av/subtitles
    creating build/lib.linux-x86_64-3.6/av/video
    copying av/video/__init__.py -> build/lib.linux-x86_64-3.6/av/video
    running build_ext
    running config
    writing build/temp.linux-x86_64-3.6/include/pyav/config.h
    running cythonize
    building 'av._core' extension
    creating build/temp.linux-x86_64-3.6/src
    creating build/temp.linux-x86_64-3.6/src/av
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Iinclude -I/usr/include/python3.6m -I/usr/include/ffmpeg -Ibuild/temp.linux-x86_64-3.6/include -I/usr/include/python3.6m -Ibuild/temp.linux-x86_64-3.6/include -c src/av/_core.c -o build/temp.linux-x86_64-3.6/src/av/_core.o
    In file included from src/av/_core.c:679:0:
    include/libavcodec/avcodec.pyav.h:4:6: error: #error FFmpeg 3.2 or higher is required
         #error FFmpeg 3.2 or higher is required
          ^
    error: command 'gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fxaatatg/av/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-y26tdk7d-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-fxaatatg/av/

Please help out with any possible solutions you have, and thanks for your time reading this report.

Video formats (on_server_handshake)

Hi,
I'm surprised why the payload.formats in "on_server_handshake()" has only SD and 720p profiles available, see:

DEBUG:xbox.nano.channel:VideoChannel server handshake payload: \s<XStructObj: None>(Container:
    protocol_version = 5
    width = 1280
    height = 720
    fps = 30
    reference_timestamp = 1539400773757
    formats = ListContainer:
        Container:
            fps = 30
            width = 1280
            height = 720
            codec = VideoCodec.H264
            rgb = None
        Container:
            fps = 30
            width = 960
            height = 540
            codec = VideoCodec.H264
            rgb = None
        Container:
            fps = 30
            width = 640
            height = 360
            codec = VideoCodec.H264
            rgb = None
        Container:
            fps = 30
            width = 320
            height = 180
            codec = VideoCodec.H264
            rgb = None)

I've also tried to rise the ClientVersion as well as correcting the resolutions in constants.py like:

class WindowsClientInfo(object):
    """
    Client Info for Windows device, used for LocalJoin messages
    """
    DeviceType = ClientType.WindowsStore
    NativeWidth = 1920
    NativeHeight = 1080
    DpiX = 96
    DpiY = 96
    DeviceCapabilities = DeviceCapabilities.All
    ClientVersion = 41
    OSMajor = 6
    OSMinor = 2
    DisplayName = "SmartGlass-PC"

That leads to the question, how the device determines the formats it's offering.
I'm feeling a bit lost, because I can't find anything corresponding in the docs (https://github.com/OpenXbox/smartglass-documentation/blob/master/docs/nano.md).

Needless to say, great work guys! 👍

Stream starts but controller inputs not being received by xbox

System details:
Linux caliban 5.8.0-44-generic #50-Ubuntu SMP Tue Feb 9 06:29:41 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Ubuntu 20.10
Wired xbox controller: Bus 001 Device 008: ID 045e:028e Microsoft Corp. Xbox360 Controller

The client starts and streams video from the xbox. The controller movements and button presses are reflected in the logging. There is no response from the console, however.

Not sure what else you might need to look at this. Please let me know what you want as I can readily reproduce this issue.

master is out of sync with pip package

I'm not too familiar with pip, but it appears as if the code in master is newer than what pip installs. Most importantly, the changes that allow for controller input seem to be missing from 0.9.4.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.