Skip to content

Commit

Permalink
Sync from upstream
Browse files Browse the repository at this point in the history
  • Loading branch information
WyattBlue committed May 7, 2024
1 parent 6bdf8ed commit fb805c3
Show file tree
Hide file tree
Showing 58 changed files with 939 additions and 467 deletions.
67 changes: 67 additions & 0 deletions .github/ISSUE_TEMPLATE/build-bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
name: Build bug report
about: Report on an issue while building or installing PyAV.
title: "FOO does not build."
labels: build
assignees: ''

---

**IMPORTANT:** Be sure to replace all template sections {{ like this }} or your issue may be discarded.


## Overview

{{ A clear and concise description of what the bug is. }}


## Expected behavior

{{ A clear and concise description of what you expected to happen. }}


## Actual behavior

{{ A clear and concise description of what actually happened. }}

Build report:
```
{{ Complete output of `python setup.py build`. Reports that do not show compiler commands will not be accepted (e.g. results from `pip install av`). }}
```


## Investigation

{{ What you did to isolate the problem. }}


## Reproduction

{{ Steps to reproduce the behavior. }}


## Versions

- OS: {{ e.g. macOS 10.13.6 }}
- PyAV runtime:
```
{{ Complete output of `python -m av --version` if you can run it. }}
```
- PyAV build:
```
{{ Complete output of `python setup.py config --verbose`. }}
```

## Research

I have done the following:

- [ ] Checked the [PyAV documentation](https://pyav.basswood-io.com)
- [ ] Searched on [Google](https://www.google.com/search?q=pyav+how+do+I+foo)
- [ ] Searched on [Stack Overflow](https://stackoverflow.com/search?q=pyav)
- [ ] Looked through [old GitHub issues](https://github.com/PyAV-Org/PyAV/issues?&q=is%3Aissue)


## Additional context

{{ Add any other context about the problem here. }}
62 changes: 62 additions & 0 deletions .github/ISSUE_TEMPLATE/ffmpeg-feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
name: FFmpeg feature request
about: Request a feature of FFmpeg be exposed or supported by PyAV.
title: "Allow FOO to BAR"
labels: enhancement
assignees: ''

---

**IMPORTANT:** Be sure to replace all template sections {{ like this }} or your issue may be discarded.


## Overview

{{ A clear and concise description of what the feature is. }}


## Existing FFmpeg API

{{ Link to appropriate FFmpeg documentation, ideally the API doxygen files at https://ffmpeg.org/doxygen/trunk/ }}


## Expected PyAV API

{{ A description of how you think PyAV should behave. }}

Example:
```
{{ An example of how you think PyAV should behave. }}
```


## Investigation

{{ What you did to isolate the problem. }}


## Reproduction

{{ Steps to reproduce the behavior. If the problem is media specific, include a link to it. Only send media that you have the rights to. }}


## Versions

- OS: {{ e.g. macOS 10.13.6 }}
- PyAV runtime:
```
{{ Complete output of `python -m av --version`. If this command won't run, you are likely dealing with the build issue and should use the appropriate template. }}
```
- PyAV build:
```
{{ Complete output of `python setup.py config --verbose`. }}
```
- FFmpeg:
```
{{ Complete output of `ffmpeg -version` }}
```


## Additional context

{{ Add any other context about the problem here. }}
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/pyav-feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: PyAV feature request
about: Request a feature of PyAV that is not provided by FFmpeg.
title: "Allow FOO to BAR"
labels: enhancement
assignees: ''

---

**IMPORTANT:** Be sure to replace all template sections {{ like this }} or your issue may be discarded.


## Overview

{{ A clear and concise description of what the feature is. }}


## Desired Behavior

{{ A description of how you think PyAV should behave. }}


## Example API

```
{{ An example of how you think PyAV should behave. }}
```


## Additional context

{{ Add any other context about the problem here. }}
66 changes: 66 additions & 0 deletions .github/ISSUE_TEMPLATE/runtime-bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
name: Runtime bug report
about: Report on an issue while running PyAV.
title: "The FOO does not BAR."
labels: bug
assignees: ''

---

**IMPORTANT:** Be sure to replace all template sections {{ like this }} or your issue may be discarded.


## Overview

{{ A clear and concise description of what the bug is. }}


## Expected behavior

{{ A clear and concise description of what you expected to happen. }}


## Actual behavior

{{ A clear and concise description of what actually happened. }}

Traceback:
```
{{ Include complete tracebacks if there are any exceptions. }}
```


## Investigation

{{ What you did to isolate the problem. }}


## Reproduction

{{ Steps to reproduce the behavior. If the problem is media specific, include a link to it. Only send media that you have the rights to. }}


## Versions

- OS: {{ e.g. macOS 10.13.6 }}
- PyAV runtime:
```
{{ Complete output of `python -m av --version`. If this command won't run, you are likely dealing with the build issue and should use the appropriate template. }}
```
- PyAV build:
```
{{ Complete output of `python setup.py config --verbose`. }}
```

## Research

I have done the following:

- [ ] Checked the [PyAV documentation](https://pyav.basswood-io.com)
- [ ] Searched on [Google](https://www.google.com/search?q=pyav+how+do+I+foo)
- [ ] Searched on [Stack Overflow](https://stackoverflow.com/search?q=pyav)
- [ ] Looked through [old GitHub issues](https://github.com/PyAV-Org/PyAV/issues?&q=is%3Aissue)

## Additional context

{{ Add any other context about the problem here. }}
152 changes: 152 additions & 0 deletions .github/workflows/smoke.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
name: smoke
on:
push:
branches: main
paths-ignore:
- '**.md'
- '**.rst'
- '**.txt'
pull_request:
branches: main
paths-ignore:
- '**.md'
- '**.rst'
- '**.txt'
jobs:
style:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Python
uses: actions/setup-python@v5
with:
python-version: 3.12

- name: Packages
run: pip install -r tests/requirements.txt

- name: Linters
run: make lint

nix:
name: "py-${{ matrix.config.python }} lib-${{ matrix.config.ffmpeg }} ${{matrix.config.os}}"
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {os: ubuntu-latest, python: 3.9, ffmpeg: "6.1", extras: true}
- {os: ubuntu-latest, python: 3.9, ffmpeg: "6.0"}
- {os: ubuntu-latest, python: pypy3.9, ffmpeg: "6.1"}
- {os: macos-12, python: 3.9, ffmpeg: "6.1"}

env:
PYAV_PYTHON: python${{ matrix.config.python }}
PYAV_LIBRARY: ffmpeg-${{ matrix.config.ffmpeg }}

steps:
- uses: actions/checkout@v4
name: Checkout

- name: Python ${{ matrix.config.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.config.python }}

- name: OS Packages
run: |
case ${{ matrix.config.os }} in
ubuntu-latest)
sudo apt-get update
sudo apt-get install autoconf automake build-essential cmake \
libtool mercurial pkg-config texinfo wget yasm zlib1g-dev
sudo apt-get install libass-dev libfreetype6-dev libjpeg-dev \
libtheora-dev libvorbis-dev libx264-dev
if [[ "${{ matrix.config.extras }}" ]]; then
sudo apt-get install doxygen
fi
;;
macos-12)
brew install automake libtool nasm pkg-config shtool texi2html wget
brew install libass libjpeg libpng libvorbis libvpx opus theora x264
;;
esac
- name: Pip and FFmpeg
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
scripts/build-deps
- name: Build
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
scripts/build
- name: Test
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
python -m av --version # Assert it can import.
scripts/test
- name: Docs
if: matrix.config.extras
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
make -C docs html
- name: Doctest
if: matrix.config.extras
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
make -C docs test
- name: Examples
if: matrix.config.extras
run: |
. scripts/activate.sh ffmpeg-${{ matrix.config.ffmpeg }}
scripts/test examples
windows:
name: "py-${{ matrix.config.python }} lib-${{ matrix.config.ffmpeg }} ${{matrix.config.os}}"
runs-on: ${{ matrix.config.os }}

strategy:
fail-fast: false
matrix:
config:
- {os: windows-latest, python: 3.9, ffmpeg: "6.1"}
- {os: windows-latest, python: 3.9, ffmpeg: "6.0"}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Conda
shell: bash
run: |
. $CONDA/etc/profile.d/conda.sh
conda config --set always_yes true
conda config --add channels conda-forge
conda create -q -n pyav \
cython \
numpy \
pillow \
python=${{ matrix.config.python }} \
setuptools
- name: Build
shell: bash
run: |
. $CONDA/etc/profile.d/conda.sh
conda activate pyav
python scripts\\fetch-vendor.py --config-file scripts\\ffmpeg-${{ matrix.config.ffmpeg }}.json $CONDA_PREFIX\\Library
python setup.py build_ext --inplace --ffmpeg-dir=$CONDA_PREFIX\\Library
- name: Test
shell: bash
run: |
. $CONDA/etc/profile.d/conda.sh
conda activate pyav
python setup.py test
Loading

0 comments on commit fb805c3

Please sign in to comment.