plugins icon indicating copy to clipboard operation
plugins copied to clipboard

[video_player] Remaining issues

Open swift-kim opened this issue 4 years ago • 10 comments

The 1.0.0 version of video_player (#48) has been merged but there are still problems to be fixed.

  • [x] A video cannot be played on a TV emulator (only white screen). (analysis)
  • [ ] An exception occurs when the playback speed is changed just before a video ends.
  • [x] A video doesn't repeat (even if setLooping is set) after the playback speed is changed.
  • [ ] seekTo doesn't work properly if the playback speed is not 1.0
  • [ ] Too many frames are lost (error message FlutterMarkExternalTextureFrameAvailable(204) > OnFrameAvailable fail)

swift-kim avatar Apr 03 '21 03:04 swift-kim

Discussions are going on in the flutter repo (https://github.com/flutter/flutter/issues?q=is%3Aissue+drm+video) to switch the video_player plugin implementation to use platform views (rather than Texture) to allow playing DRM contents on Android/macOS. Does it have something to do with our upcoming video hole approach, or do we still need a "hole" for the hardware decoder even if we use a platform view?

swift-kim avatar Apr 11 '21 05:04 swift-kim

I think platform view is still implemented by texture now, DRM content could be supported by video hole solution.

xuelian-bai avatar Apr 12 '21 00:04 xuelian-bai

I think platform view is still implemented by texture now.

Need to check, but as far as I understand the technologies are not something that overlap with each other.

DRM content could be supported by video hole solution.

I didn't mean we would have to support playing DRM contents on Tizen. I just wanted to know if the platform view approach could effectively replace the hole approach.

swift-kim avatar Apr 12 '21 02:04 swift-kim

https://flutter.dev/docs/development/platform-integration/platform-views it's android implementation:

  1. Virtual display

Virtual displays renders the android.view.View instance to a texture.

you can check code in PlatformViewsController.java & VirtualDisplayController.java

  1. Hybrid composition:

Prior to Android 10, Hybrid composition copies each Flutter frame out of the graphic memory into main memory, and then copies it back to a GPU texture. In Android 10 or above, the graphics memory is copied twice. As this copy happens per frame, the performance of the entire Flutter UI may be impacted.

I don't know where is the coresponding code, but it seems to be not a solution of good performance

xuelian-bai avatar Apr 12 '21 02:04 xuelian-bai

  • A video cannot be played on a TV emulator (only white screen) (analysis)

Any news on this?

renanmgs avatar Mar 23 '22 18:03 renanmgs

@renanmgs As far as I know, no.

@xuelian-bai Will the plus_player-based video_player_tizen plugin support TV emulator?

swift-kim avatar Mar 25 '22 02:03 swift-kim

@swift-kim we need some time to confirm this

xuelian-bai avatar Mar 25 '22 02:03 xuelian-bai

@renanmgs As far as I know, no.

@xuelian-bai Will the plus_player-based video_player_tizen plugin support TV emulator?

I created a Tizen 6.5 TV emulator, and tested video player plugin which based on plus player. Play remote mp4 file and DRM successful, but we found setPlaybackSpeed fail, we need check all API.

xiaowei-guan avatar Mar 28 '22 07:03 xiaowei-guan

Is there any new update on this issue. I'm still unable to play video in TV emulator. @xiaowei-guan , how did you make it work. Can you tell me the exact procedure you followed ?

ale-russ-kabbee avatar Oct 11 '22 05:10 ale-russ-kabbee

https://pub.dev/packages/video_player_videohole can be used with TV emulators.

swift-kim avatar Nov 27 '23 06:11 swift-kim