-
-
Notifications
You must be signed in to change notification settings - Fork 173
flutterpi_gstreamer_video_player and Asus TinkerBoard 2 #356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Can you try This seems like something with the video is wrong, or something with gstreamer. You could try using a newer gstreamer (building it yourself). But it's weird that Though that's not exactly what flutter-pi is doing, flutter-pi is using a playbin since some time ago, you could launch it like this: |
Both
Also I forgot to mention that I had to patch
|
Okay, can you try with branch Implemented the fix for the missing context attribs there, and I attempted to fix what I think is the issue with the |
With the mentioned branch, there is no Now I have the following error: Video format is Tried converting the video to I added some logs to track the problem and it seems the
And I got this: If I remove the modifier check, the next failing thing is buffer object allocation: Did some research and tried the following patch
Now I am getting error Anyway I was just randomly trying some stuff and I am not sure if that is the right direction, but decided to share with you. Best regards! |
The general problem in your case is that your EGL driver does not support
Those two procedures it couldn't resolve are normally used for querying what pixel formats and format modifiers EGL supports for import. If those are not there, flutter-pi is basically blind and can't really tell what buffers it can import. (It configures gstreamer to decode the video frames into one of the supported formats) In the previous patch, I changed it so that flutter-pi in that case will fall back to a set of commonly supported pixel formats (and But apparently even then, some of those pixel formats seem to not be supported (that's where the |
Is there a way to enable As I see, it requires
If not, Here is mentioned that there is way to achieve conversion using |
Quick update. I got it working with several patches: First I added a Second I added I had to skip adding caps to the sink, since we converted the video. This is my patch right now on the
Do you plan to keep that in the project? I can clean it up and integrate it properly, so I can make pull request. If not, I can keep it as a patch since I am using yocto. Anyway, thank you very much for the assistance. |
I'm afraid not, if it's not listed in the supported extensions it's just not supported. (There's actual C/C++ code that needs to be written in the driver)
Those are just 2 extensions with functionality that
I'm afraid that's not applicable, the FSL suffix in the egl calls & enums in that example mean they are from some vendor extension, in this case some Freescale extension called
The problematic part is creating an EGL image in the first place, from a YUV DMA buffer.
Nice 👍 But that conversion from YUV to RGB is pretty expensive and exactly what I am trying to avoid in the first place. I mean it works, so it's good to have it as a fallback. But ideally this conversion would only happen when there's really no other way around. I have an idea though on how to fix it. What I said previously:
is not really correct, you don't need to test every pixel format / modifier combination, you just need to test every pixel format, of which there aren't thaat many. So that could work. |
@ardera i'm facing what i think is the same issue with a Raspberry Pi 4 and gstreamer_video_plaier. I installed the main of flutter-pi and all the additional requirements but on time of running i have the issue
Should i use this branch for flutter-pi https://github.com/ardera/flutter-pi/tree/fix/mali ? EDIT |
@kekko7072 What's the concrete issue in your case? App crashing? In that case, feel free to open a new issue :) (it's probably not related to this one since you're on Raspberry Pi) If it's just this message being printed, it's probably fine. I'd guess it's coming from libinput / libudev somehow.
@bojidartonchev I just bought a Banana Pi M2 Zero myself so I can reproduce this issue on there and maybe prevent regressions like #367 in the future. It does have a different GPU than your board (Mali 400MP2 vs Mali T860), so the driver could still behave entirely differently, but I'm hoping it still works similar enough for compatibility testing |
Yes it was not an issue due to this but due to the --arch=arm64 missing in build phase. Now i'm facing an issue with video looping thats stops. ISSUE |
@ardera I think i am running into the same issue on my Odroid M1S board (Rockchip RK3566 with Mali G52). Using the main flutter-pi branch stops the app on the assert here:
This is caused by EGL_EXT_image_dma_buf_import_modifiers not being supported. I tried the fix/mali branch but then it complains that YU12 is not supported:
I noticed that there is an extra commit 34e0238, but unfortunately i cannot build it here. Is that because i am using an outdated gstreamer here? I am currently using 1.16.3. The video i am trying to play does work when playing with gst-launch on weston. Do you have an idea how to fix this?
|
Hello,
I am currently trying to get gstreamer working on Asus TinkerBoard 2 RK3399 using yocto, but I have some problems playing an .mp4 video through flutter app using the flutterpi_gstreamer_video_player plugin.
I am initializing the VideoController with an asset:
And this is the
GST_DEBUG=3
output:I have tried launching the following pipeline, since I believe this is what your plugin does with
gst-launch-1.0
from terminal and there are no errors. (I am still using appsink, so I can't see any video output, but it seems playing).gst-launch-1.0 uridecodebin uri=file:///usr/share/flutter/kiosk/data/flutter_assets/assets/videos/movie.mp4 ! video/x-raw ! appsink sync=true
EGL version:
Any suggestions would be appreciated!
The text was updated successfully, but these errors were encountered: