Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
992df91
support find add-to-app mode flutter.sdk
cenumi Oct 14, 2024
9be9b1c
change detect order
cenumi Oct 14, 2024
ad3efa4
feat: add player extensions
julienbm Nov 26, 2024
6bcc281
fix web build
julienbm Nov 26, 2024
b8ff988
Merge pull request #185 from JulienDev/feat/add-player-extensions
wang-bin Nov 26, 2024
02ad386
fix warning on android
abdelaziz-mahdy Dec 12, 2024
2e8d6bf
add gradle condition to allow older versions of sdk
abdelaziz-mahdy Dec 12, 2024
a39b8c3
Merge pull request #191 from abdelaziz-mahdy/fix-warning
wang-bin Dec 12, 2024
e155062
Merge pull request #169 from cenumi/master
wang-bin Dec 13, 2024
5b44ceb
fix warnings, format
wang-bin Dec 13, 2024
dad3071
ci: build beta channel
wang-bin Dec 13, 2024
409227d
update readme
wang-bin Dec 17, 2024
7090c3a
remove video_player: video_player, requires manually registerWith()
wang-bin Dec 19, 2024
4c107cd
fix resetting VideoPlayerPlatform.instance #170
wang-bin Dec 21, 2024
2e2ad8a
fix main() is not executed when debugging #125 #183
wang-bin Dec 21, 2024
f857be9
v0.29.0
wang-bin Dec 23, 2024
725612d
fix vo_opaque & snapshot for android
wang-bin Dec 30, 2024
037796b
update issue template to ensure log is not truncated
wang-bin Dec 31, 2024
a02b921
ci: add linux arm64
wang-bin Jan 21, 2025
01c7456
ios: set audio playback category, fix #210
wang-bin Jan 30, 2025
6a02294
android: onSurfaceCleanup
wang-bin Feb 18, 2025
cbfb02d
subtitleFontFile option value can be an http url
wang-bin Feb 18, 2025
0a11125
v0.30.0
wang-bin Feb 24, 2025
b160cba
format
wang-bin Feb 24, 2025
5ec7307
linux: fix player map destroyed too late
wang-bin Mar 2, 2025
0711afd
fix crash when killing app on iOS
LinXunFeng Mar 5, 2025
457d8f8
fix macOS build
LinXunFeng Mar 5, 2025
218712e
Merge pull request #221 from LinXunFeng/fix_ios_crash
wang-bin Mar 5, 2025
5d494df
v0.31.0
wang-bin Mar 27, 2025
9904556
linux: fix cmake 4.0 link error #231
wang-bin Mar 31, 2025
77f15bd
update bindings
wang-bin Apr 7, 2025
c4e1ce2
v0.31.1
wang-bin Apr 10, 2025
529ca73
cmake: add env var FVP_DEPS_URL
wang-bin Apr 10, 2025
aa7295b
set global options w/o delay
wang-bin Apr 10, 2025
5c89490
doc for MediaInfo.bitRate
wang-bin Apr 12, 2025
82b36fa
linux: fix rpath
wang-bin Apr 14, 2025
3887037
v0.31.2
wang-bin Apr 14, 2025
581d6ae
add rpi and rk decoders
wang-bin May 10, 2025
3e11ec5
linux: restore fbo
wang-bin May 22, 2025
cffafa8
support flutter-elinux
wang-bin May 22, 2025
e765e7c
elinux: unable to make current context
wang-bin May 22, 2025
a7883c6
disable ffmpeg safe option
wang-bin May 25, 2025
64c1ac4
elinux: unregister and release gl resources iff header is correct
wang-bin May 27, 2025
e74f272
format. global options override
wang-bin May 29, 2025
de70e0a
v0.32.0
wang-bin May 29, 2025
72dd39b
controller: compatible with video_player 2.10
wang-bin Jun 3, 2025
eb77d85
v0.32.1
wang-bin Jun 3, 2025
f6b57be
test textureId/playerId getter only once
wang-bin Jun 4, 2025
5b0edc1
set linux decoders depending on device model
wang-bin Jun 11, 2025
ca049f8
add VideoPlayerController.setProgram()
wang-bin Jun 11, 2025
130ccf5
fix web/wasm build
wang-bin Jun 12, 2025
4246baf
use highest resolution of all tracks
wang-bin Jun 12, 2025
3994556
add missing dispose for textureId
LinXunFeng Jun 13, 2025
fb0c018
Merge pull request #267 from LinXunFeng/add_missing_dispose
wang-bin Jun 13, 2025
241d60b
linux: set wayland display
wang-bin Jun 15, 2025
194571c
linux: fix gl resouces cleanup in a wrong context. #270
wang-bin Jun 16, 2025
c0467ef
linux: return immediately if gl resource not created #270
wang-bin Jun 17, 2025
f7dd4c5
linux: add env FVP_GL_CLEANUP_DELAY
wang-bin Jun 18, 2025
b7a688e
linux: gl resource cleanup ASAP
wang-bin Jun 20, 2025
4dc12db
elinux: release gl resources with wrong texture_registrar.h
wang-bin Jun 21, 2025
3045dc4
v0.33.0
wang-bin Jul 1, 2025
78bddb6
don't set protocol_whitelist for network source. fix #274
wang-bin Jul 5, 2025
0daf97c
readme: hwdec for rpi & rk
wang-bin Jul 10, 2025
44913ff
enable dav1d hap decoder. #276
wang-bin Jul 12, 2025
43fd873
v0.33.1
wang-bin Jul 18, 2025
9361def
add 'rockchip' decoder
wang-bin Aug 15, 2025
c60262c
install plugins
wang-bin Aug 19, 2025
311110d
ci
wang-bin Aug 19, 2025
f5c524f
v0.34.0
wang-bin Sep 2, 2025
01aa972
allow hls & segments w/o extension. fix #218
wang-bin Sep 5, 2025
1f82090
add Player.onSubtitleText #291
wang-bin Sep 11, 2025
d82923c
v0.35.0
wang-bin Sep 30, 2025
4a8fe2e
upgrade gradle
wang-bin Oct 11, 2025
6d8d7ef
cmake: fix linux arch for cmake4.0+
wang-bin Oct 28, 2025
ad70844
fix: Flutter 3.38.0 flutter version file not found
Nicoeevee Nov 13, 2025
a0ea01d
Merge pull request #305 from Nicoeevee/master
wang-bin Nov 17, 2025
0c1ecb2
v0.35.1
wang-bin Nov 19, 2025
f19448e
ffigen version range
wang-bin Nov 19, 2025
e7638c1
textureId => playerId
wang-bin Nov 19, 2025
8c79c50
log plugin version
wang-bin Dec 4, 2025
f310ab0
Create dependabot.yml
wang-bin Dec 24, 2025
3d61d80
build(deps): bump actions/upload-artifact from 4 to 6
dependabot[bot] Dec 24, 2025
263aa75
build(deps): bump actions/checkout from 4 to 6
dependabot[bot] Dec 24, 2025
e26a253
[dependabot]: Bump com.android.tools.build:gradle
dependabot[bot] Dec 24, 2025
203a28e
Merge pull request #316 from wang-bin/dependabot/github_actions/actio…
wang-bin Dec 24, 2025
7fcf5f4
Merge pull request #317 from wang-bin/dependabot/github_actions/actio…
wang-bin Dec 24, 2025
e7cc4c9
Merge pull request #319 from wang-bin/dependabot/gradle/android/gradl…
wang-bin Dec 24, 2025
96eaf85
update dep download url
wang-bin Dec 25, 2025
08af71d
v0.35.2
wang-bin Dec 31, 2025
6a2d588
use StreamController for onXXX callbacks, more dart idiomatic
wang-bin Jan 26, 2026
444815a
cmake: fix dir
wang-bin Apr 14, 2026
37323ee
add ohos platform (#344)
Copilot Apr 14, 2026
38e349c
Rename plugin shared library to `fvp` set key from dart (#345)
Copilot Apr 16, 2026
8ae19d6
android: plugin name
wang-bin Apr 21, 2026
a75b765
ohos: asset path
wang-bin Apr 21, 2026
02046e3
format
wang-bin Apr 21, 2026
b67e16e
v0.36.0
wang-bin Apr 26, 2026
94364d6
ohos: fix plugin native lib name. (#347)
qinshah Apr 29, 2026
3fc631f
remove unused import. format
wang-bin Apr 27, 2026
267f3b6
v0.36.1
wang-bin Apr 29, 2026
10c0b0c
disable TCO. #350
wang-bin May 1, 2026
8a820ef
v0.36.2
wang-bin May 1, 2026
2e46bcd
ohos: rawfile asset
wang-bin May 18, 2026
87fc9c8
add mapPoint, setPointMap. #354
wang-bin May 20, 2026
bbfcfcf
remove z in Player.mapPoint()
wang-bin May 20, 2026
2938485
controller: prefer playerId over textureId
wang-bin May 20, 2026
43cc0ed
v0.37.0
wang-bin May 21, 2026
601a8d1
cmake: lower cmake version requirement, make ci happy
wang-bin May 21, 2026
ce43748
support SPM
wang-bin May 21, 2026
eebfb1c
v0.37.1
wang-bin May 30, 2026
2e5bf1e
fix(darwin): change SPM to dynamically link the framework (#359)
jonafeucht Jun 3, 2026
c52e677
v0.37.2
wang-bin Jun 3, 2026
ce6236d
fix(windows): extract mdk-sdk via realpath to avoid CMake symlink rej…
abdelaziz-mahdy Jun 20, 2026
203c607
ci: remove 3.19 for win
wang-bin Jun 21, 2026
032b969
fix(darwin): ship PrivacyInfo.xcprivacy as a real file for SwiftPM (#…
abdelaziz-mahdy Jun 28, 2026
c2a74fb
android: ensure jvm is set first. fix #375
wang-bin Jun 29, 2026
41dfb54
v0.37.3
wang-bin Jul 1, 2026
a58bca5
add onSubtitleText for VideoPlayerController extension #377
wang-bin Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,37 @@ assignees: ''
---

**Describe the bug**

A clear and concise description of what the bug is.


**Expected behavior**

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

**Log**

Add
```
```dart
import 'package:logging/logging.dart';
import 'package:intl/intl.dart';
```
add the following lines before `registerWith()`
```
```dart
Logger.root.level = Level.ALL;
final df = DateFormat("HH:mm:ss.SSS");
Logger.root.onRecord.listen((record) {
print('${record.loggerName}.${record.level.name}: ${df.format(record.time)}: ${record.message}');
debugPrint(
'${record.loggerName}.${record.level.name}: ${df.format(record.time)}: ${record.message}',
wrapWidth: 0x7FFFFFFFFFFFFFFF);
});
```
and

<details>
<summary>log</summary>

```
Past log here
PASTE LOG HERE
```
</details>
72 changes: 72 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-patch"]

# Android example apps.
- package-ecosystem: "gradle"
directories:
- /example/android/app
commit-message:
prefix: "[dependabot]"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
labels:
- "autosubmit"
open-pull-requests-limit: 10
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-minor", "version-update:semver-patch"]

# Android packages (excluding example apps).
- package-ecosystem: "gradle"
directories:
- /android
commit-message:
prefix: "[dependabot]"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
labels:
- "autosubmit"
groups:
test-dependencies:
patterns:
- "androidx.test:*"
- "io.mockk:*"
- "junit:junit"
- "org.mockito:*"
- "org.robolectric:*"
kotlin-gradle-plugin:
patterns:
- "org.jetbrains.kotlin:kotlin-gradle-plugin"
gradle-plugin:
patterns:
- "com.android.tools.build:gradle"
androidx:
patterns:
- "androidx.annotation:annotation"
ignore:
- dependency-name: "com.android.tools.build:gradle"
update-types: ["version-update:semver-patch"]
- dependency-name: "junit:junit"
update-types: ["version-update:semver-patch"]
- dependency-name: "org.mockito:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "androidx.test:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "org.robolectric:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "io.mockk:mockk:*"
update-types: ["version-update:semver-patch"]
108 changes: 84 additions & 24 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ on:

jobs:
macOS:
runs-on: macos-14
runs-on: macos-15
defaults:
run:
working-directory: example
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
Expand All @@ -41,20 +41,20 @@ jobs:
mv build/macos/Build/Products/Release/fvp_example.app .
cmake -E tar cvf fvp_example_macos.7z --format=7zip fvp_example.app
- name: Upload
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: fvp-example-macOS
path: example/fvp_example_macos.7z

iOS:
runs-on: macos-14
runs-on: macos-15
defaults:
run:
working-directory: example
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
Expand All @@ -68,7 +68,7 @@ jobs:
mv build/ios/iphoneos/Runner.app .
cmake -E tar cvf fvp_example_ios.7z --format=7zip Runner.app
- name: Upload
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: fvp-example-iOS
path: example/fvp_example_ios.7z
Expand All @@ -82,13 +82,10 @@ jobs:
strategy:
fail-fast: false
matrix:
version: ['3.19.x', 'any'] # 3.19 for win7
channel: ['stable', 'master']
exclude:
- version: '3.19.x'
channel: 'master'
version: ['any'] # 3.19 for win7, but requires vs2019 on gha
channel: ['stable', 'beta']
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
Expand All @@ -102,7 +99,7 @@ jobs:
- run: mv build/windows/x64/runner/Release .
- run: cmake -E tar cvf fvp_example_windows-flutter-${{ matrix.version }}-${{ matrix.channel }}.7z --format=7zip Release
- name: Upload
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: fvp-example-windows-flutter-${{ matrix.version }}-${{ matrix.channel }}
path: |
Expand All @@ -118,12 +115,12 @@ jobs:
fail-fast: false
matrix:
version: ['3.10.x', 'any']
channel: ['stable', 'master']
channel: ['stable', 'beta']
exclude:
- version: '3.10.x'
channel: 'master'
channel: 'beta'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
Expand All @@ -141,11 +138,74 @@ jobs:
- run: mv build/linux/x64/release/bundle .
- run: cmake -E tar Jcvf fvp_example_linux-${{ matrix.channel }}-${{ matrix.version }}.tar.xz bundle
- name: Upload
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: fvp-example-linux-${{ matrix.channel }}-${{ matrix.version }}
path: example/fvp_example_linux*.tar.xz


Linux-arm64:
if: true
runs-on: ubuntu-24.04-arm
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
version: ['any']
channel: ['master']
steps:
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- run: |
sudo apt-get update -y
sudo apt-get install -y cmake clang ninja-build libgtk-3-dev libpulse-dev
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ matrix.version }}
channel: ${{ matrix.channel }}
cache: true
# - run: flutter config --enable-linux-desktop
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build linux --verbose
- run: mv build/linux/arm64/release/bundle .
- run: cmake -E tar Jcvf fvp_example_linux-arm64-${{ matrix.channel }}-${{ matrix.version }}.tar.xz bundle
- name: Upload
uses: actions/upload-artifact@v6
with:
name: fvp-example-linux-arm64-${{ matrix.channel }}-${{ matrix.version }}
path: example/fvp_example_linux*.tar.xz


Snap-arm64:
if: false
runs-on: ubuntu-24.04-arm
defaults:
run:
working-directory: example
steps:
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- name: Install dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y cmake clang ninja-build libgtk-3-dev libpulse-dev
sudo snap install flutter --classic
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build linux --verbose
- run: mv build/linux/arm64/release/bundle .
- run: cmake -E tar Jcvf fvp_example_linux-arm64-snap.tar.xz bundle
- name: Upload
uses: actions/upload-artifact@v6
with:
name: fvp-example-linux-arm64-snap
path: example/fvp_example_linux*.tar.xz

Snap:
runs-on: ubuntu-latest
defaults:
Expand All @@ -156,10 +216,10 @@ jobs:
matrix:
target: [linux] #, apk]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: actions/setup-java@v4
- uses: actions/setup-java@v5
if: ${{ matrix.target == 'apk' }}
with:
distribution: 'zulu'
Expand All @@ -184,15 +244,15 @@ jobs:
host: [ubuntu]
version: ['3.22.x', 'any']
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ matrix.version }}
channel: 'stable'
cache: true
- uses: actions/setup-java@v4
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '17'
Expand All @@ -201,7 +261,7 @@ jobs:
- run: flutter build apk --verbose
- run: mv ./build/app/outputs/apk/release/app-release.apk fvp_example_android.apk
- name: Upload
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: fvp-example-android-${{ matrix.host }}-${{ matrix.version }}
path: example/fvp_example_android.apk
Expand All @@ -217,7 +277,7 @@ jobs:
matrix:
wasm: ['--wasm', '']
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
Expand All @@ -226,4 +286,4 @@ jobs:
cache: true
- run: flutter doctor --verbose
- run: flutter pub get
- run: flutter build web ${{ matrix.wasm }} --verbose
- run: flutter build web ${{ matrix.wasm }} --verbose
3 changes: 2 additions & 1 deletion .github/workflows/pub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
id-token: write # Required for authentication using OIDC
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: 'recursive'
- uses: subosito/flutter-action@v2
Expand All @@ -24,5 +24,6 @@ jobs:
- uses: dart-lang/setup-dart@v1
# Here you can insert custom steps you need
# - run: dart tool/generate-code.dart
- run: dart format lib
- name: Publish
run: dart pub publish --force
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ migrate_working_dir/
# is commented out by default.
#.vscode/

# OHOS local configuration (machine-specific)
local.properties

# Flutter/Dart/Pub related
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
/pubspec.lock
Expand Down
Loading