Skip to content

Add gstreamer video player #228

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

Merged
merged 22 commits into from
Feb 23, 2022
Merged

Add gstreamer video player #228

merged 22 commits into from
Feb 23, 2022

Conversation

ardera
Copy link
Owner

@ardera ardera commented Feb 23, 2022

No description provided.

- remove some old code in the texture registry
- simplify texture registry
- make video player format hint an enum instead of a string
- add refcounting utility to collection.h
- add generic event source
- add STDLIST macros
- implement gstplayer video info callback
- fix some issues in the texture registry
- fix DEBUG_ASSERT_MSG macro
- make cmake export compile commands by default
- set video sink `sync` property to true
- don't drop video frames when they're not pulled by the video player
- only reference texture frames once, since flutter only destroys them once when everything goes well (but it destroys them twice when not)
- fix video URI for asset bundle video player
- add backward-CPP for printing stacktrace on crash
- clean up CMakeLists.txt a bit
- don't wait blockingly for gstreamer state change in "apply_playback_state"
- refactor the gstreamer player playback state a bit
- enable forward and backward stepping
- different playback speeds for forward and backward playback (only forward can be set right now though)
- update copyright of CMakeLists.txt
- reorder some arguments in CMakeLists
- call the correct destructors inside gstplayer_destroy
- add missing destructors in gstplayer_destroy
- fix lockup (forgot to read eventfd in sd_event_source_generic)
- add fallback to software decoding if the hw decoder emits "no valid frames found before end of stream"
- copy video frames from system memory into dmabuf memory to be able to use them as a texture
- make frame_interface shared so individual video frames can keep a reference to it even after gstplayer was already destroyed
- add notifier/listener API to make async stuff a bit easier
- fix incorrect playback speed when single-frame stepping backwards
- report a sane playback position when gstreamer is currently seeking (either the last known one or the position we're seeking to)
- no longer store the initialized event in gstplayer_meta
- convert to notifier/listeners for video info event, buffering state updates
- respond when an error when getting the playback position fails
- fix json message encoding bug
- unregister gstplayer event channel listeners on player destruction
- make texture_registry_gl_external_texture_frame_callback handle the case where the texture was destroyed after notifying the engine
- unreference gst framebuffers earlier, inside frame_new
- make gstplayer unref seeking, buffering queries
- add a build option to invoke GNU mtrace() on startup
- make every platform channel method of the gstreamer plugin provide some more error details
- in particular, provide details when flutter side specified an invalid textureId
- fast seeking for gstplayer
- fix gstplayer setMixWithOthers
- fix some warnings
- add plugin registry receiver functions again
- (refactor those out into a seperate API later)
- move LOG_DEBUG, LOG_ERROR macros into collection.h
- make those use a prefix defined by FILE_DESCR macro
- (so every file that uses logging should have a FILE_DESCR macro at the top)
- silence some unused variable warnings
@ardera ardera force-pushed the feature/gstreamer-video-player branch from 51c7c69 to 902cf2d Compare February 23, 2022 14:55
@ardera ardera merged commit 933a5f3 into master Feb 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant