Commit graph

146 commits

Author SHA1 Message Date
Sebastian Dröge
c581233464 playback/player: android: Fix video rendering after GstPlayerVideoRenderer refactoring 2015-08-18 13:20:15 +03:00
Sebastian Dröge
80e4c1abff playback/player: ios: Fix video rendering after GstPlayerVideoRenderer refactoring 2015-08-18 13:17:57 +03:00
trungdoan
2da236d871 playback/player: iOS: Fix build issue
Fix build issue on iOS by adding additional files in lib/gst/player to
the iOS project.
2015-08-18 13:02:41 +03:00
Sebastian Dröge
a8f8d1b032 playback/player: player: Refactor video rendering API
There's a GstPlayerVideoRenderer interface now, which defines how video
rendering happens in GstPlayer. Included is an implementation for the
GstVideoOverlay interface, and inside the GTK example application one for
gtksink/gtkglsink.
2015-08-14 17:13:39 +02:00
Sebastian Dröge
6ed6b58929 playback/player: player: Abstract the signal emission dispatching to a new interface
This allows to implement signal dispatching to other event loop systems than
GLib without having direct GLib support in the base GstPlayer class. A
implementation for the GLib main context is provided and used in the
applications and tests.
2015-08-12 18:13:31 +02:00
Sebastian Dröge
f68bac6318 playback/player: gtk-play: Fix indention 2015-07-30 15:54:26 +03:00
Brijesh Singh
7a874938a0 playback/player: gtk-play: if title is NULL then use uri basename in toolbar label
If stream title is not available in the stream then use file basename in
toolbar title label and full uri in window title bar.
2015-07-30 15:54:16 +03:00
Brijesh Singh
a18cefb73c playback/player: gtk-play: fix elapsed and remain time label
If elapsed or remain time is greater than 60 mins then add hours in
label text.
2015-07-30 15:54:16 +03:00
Víctor Manuel Jáquez Leal
a8bb7e0199 playback/player: gtk-play: handle keys
Add a mplayer alike key-binding.
2015-07-26 19:51:36 +03:00
Víctor Manuel Jáquez Leal
64a73ff36b playback/player: gtk-play: remove unused callback 2015-07-20 20:31:45 +03:00
Víctor Manuel Jáquez Leal
0a38d36996 playback/player: gtk-play: remove unused variables 2015-07-20 20:31:45 +03:00
Brijesh Singh
b59a893da7 playback/player: gtk-play: add support to build UI through gtkbuilder
- build toolbar ui from glade generated xml files
- build media info dialog from glade generated xml files
- add support to apply css style on widget
- multiple cleanups
2015-07-07 23:49:09 +03:00
Sebastian Dröge
cce3ab6381 playback/player: gtk-play: Add close button to the playback speed dialog 2015-06-16 09:54:25 +02:00
Brijesh Singh
efd3c03ab2 playback/player: gtk-play: add playback rate control menu item 2015-06-16 09:52:18 +02:00
Sebastian Dröge
3afafa30c6 playback/player: gtk: Also use gtksink if available 2015-06-15 20:55:29 +02:00
Víctor Manuel Jáquez Leal
ba1ea11823 playback/player: gtk-play: remove unused variables 2015-06-11 20:11:31 +02:00
Sebastian Dröge
40e21cea24 playback/player: gtk: Inhibit the screen saver when playing something 2015-06-11 18:52:12 +02:00
Sebastian Dröge
b5e35ad70b playback/player: gtk: Port to GtkApplication
And also clean up some other things.

https://github.com/sdroege/gst-player/issues/56
2015-06-11 18:42:38 +02:00
Sebastian Dröge
362b5ce2a5 playback/player: gtk: Remove redundant code 2015-06-11 16:25:49 +02:00
Sebastian Dröge
78142bf4ea playback/player: gtk: Use gtkglsink if available 2015-06-11 15:12:56 +02:00
Brijesh Singh
2a2c10ac25 playback/player: gtk-play: use volume-changed signal from player to update the volume slider. 2015-06-11 14:32:25 +02:00
Víctor Manuel Jáquez Leal
80eefca0d1 playback/player: gtk-play: color balance dialog 2015-06-11 14:27:38 +02:00
Sebastian Dröge
b647f6858a playback/player: gtk: Only go to PLAYING with the next file if we were in PLAYING state before
Otherwise setting a subtitle URI in PAUSED will automatically go to PLAYING.
2015-06-11 13:09:25 +02:00
Víctor Manuel Jáquez Leal
91379afe55 playback/player: gtk-play: remove unused variables 2015-06-10 22:38:35 +02:00
Víctor Manuel Jáquez Leal
ddc42da7fe playback/player: gtk-play: destroy dialog's parent window 2015-06-10 22:38:09 +02:00
danny song
07a074be04 playback/player: gtk-play: remove duplicate code 2015-06-10 22:33:21 +02:00
danny song
76fb77bfe8 playback/player: gtk-play: move play_current_uri after the signal handler registration 2015-06-10 22:30:09 +02:00
Sebastian Dröge
5aa6c468a0 playback/player: player: Change visualization API a bit to be more user friendly and fix some leaks and other bugs 2015-05-30 11:35:25 +02:00
Sebastian Dröge
999365f0d2 playback/player: Fix indention 2015-05-30 10:48:34 +02:00
Brijesh Singh
b69cbd6b70 playback/player: gtk-player: add visualization selection menu item. 2015-05-20 08:24:52 -05:00
Brijesh Singh
571cdae9da playback/player: gtk-play: add external subtitle selection menu 2015-05-19 10:34:49 -05:00
Sebastian Dröge
ddd7213959 playback/player: ios: Cast the seek slider value from float to integer after scaling
https://github.com/sdroege/gst-player/issues/33
2015-05-13 22:30:48 +03:00
Brijesh Singh
75404ed8e3 playback/player: gtk-play: move duplicate code into one function 2015-05-12 10:59:16 +03:00
Sebastian Dröge
21eb4b1ac7 playback/player: android: Unref player in native_free()
This makes sure it is actually shut down and does not emit any signals anymore
later, and also prevents a memory leak.
2015-05-11 09:23:27 +02:00
Sebastian Roth
4e899336b3 playback/player: README.md formatting. 2015-05-11 08:50:41 +02:00
Brijesh Singh
562c06c150 playback/player: gtk-play: add Open, Quit, Next and Previous menu items in popup menu. 2015-05-11 08:48:12 +02:00
Brijesh Singh
329902bcda playback/player: gtk-play: hide toolbar in fullscreen mode. 2015-05-11 08:48:12 +02:00
Brijesh Singh
f904897493 playback/player: gtk-play: add fullscreen button 2015-05-08 15:50:07 +02:00
Brijesh Singh
eb42154608 playback/player: gst-play: add playlist loop command line option 2015-05-08 15:50:07 +02:00
Brijesh Singh
9a7d2f031f playback/player: gtk-play: add playlist loop button. 2015-05-08 15:50:07 +02:00
Brijesh Singh
15b1167746 playback/player: gtk-play: do not set window title in resume button cb.
Window title is set from media-info-updated signal hence
updating the window title in resume button callback will override
the title set from media-info-updated signal.
2015-05-08 10:12:31 +02:00
Brijesh Singh
1b1aed87c5 playback/player: gtk-play: display cover art
We maintain two drawing widgets, image and video. Cover art is drawn in
image widget and video is rendered in video widget. Based on the following
conditions we show either image or video widget:

- if media info does not have active video stream then hide video widget
  and show image widget.
- if media info contains active video stream then show video widget and
  hide the image widget.
2015-05-08 10:12:31 +02:00
Sebastian Roth
d33cc6c876 playback/player: android: Fix Windows build of the app
Fixes #36
2015-05-08 10:06:11 +02:00
Sebastian Roth
a31f95d06d playback/player: android: Use gradle & ndk-build combo to generate the Android App
Also add a video List selector.
2015-05-07 14:58:03 +02:00
Sebastian Dröge
59d822fc2b playback/player: gtk-play: Fix compiler warning
gtk-play.c:269:60: warning: passing 'gint *' (aka 'int *') to parameter of type 'guint *' (aka 'unsigned int *') converts between pointers to integer types
      with different sign [-Wpointer-sign]
      gst_player_video_info_get_pixel_aspect_ratio (video, &par_n, &par_d);
                                                           ^~~~~~
../lib/gst/player/gstplayer-media-info.h:92:57: note: passing argument to parameter 'par_n' here
                (const GstPlayerVideoInfo* info, guint *par_n, guint *par_d);
                                                        ^
gtk-play.c:269:68: warning: passing 'gint *' (aka 'int *') to parameter of type 'guint *' (aka 'unsigned int *') converts between pointers to integer types
      with different sign [-Wpointer-sign]
      gst_player_video_info_get_pixel_aspect_ratio (video, &par_n, &par_d);
                                                                   ^~~~~~
../lib/gst/player/gstplayer-media-info.h:92:71: note: passing argument to parameter 'par_d' here
                (const GstPlayerVideoInfo* info, guint *par_n, guint *par_d);
                                                                      ^
2015-05-07 13:21:52 +02:00
Sebastian Dröge
7396c221ed playback/player: Fix indention 2015-05-07 13:21:02 +02:00
Brijesh Singh
1232e80e20 playback/player: gtk-play: add track selection menu 2015-05-07 13:20:35 +02:00
Brijesh Singh
bbc6f056b1 playback/player: gtk-play: variable rename for consistency
rename media_info varible holding button state to be consistent with others.
2015-05-07 13:20:35 +02:00
Brijesh Singh
653c8c973e playback/player: gtk-play: handle duplicate uri in playlist
current logic does not play all the files from playlist if the list contains
a duplicate uris.
2015-05-07 13:20:35 +02:00
Brijesh Singh
88e7131ae7 playback/player: gtk-play: set window title from media information
If media contains title then use it to set player window title.
2015-05-07 13:20:35 +02:00
Brijesh Singh
611f3cde4b playback/player: gtk-play: remove gtk deprecated API. 2015-05-07 13:20:35 +02:00
Sebastian Dröge
544c51fe11 playback/player: Fix indention 2015-05-06 10:58:27 +02:00
Brijesh Singh
ef751e3dfd playback/player: gst-play: display global taglist 2015-05-06 10:55:08 +02:00
Alex Moreno
696e1c9ab8 playback/player: android: fixed compilation error 2015-05-06 10:43:28 +02:00
Alex Moreno
261081aade playback/player: android: check return values from JNI methods in 'JNI_OnLoad' 2015-05-06 10:43:28 +02:00
Alex Moreno
c3928830cf playback/player: android: remove unused variable 'gst_app_thread' 2015-05-06 10:43:28 +02:00
Sebastian Dröge
2a5ba6574f playback/player: android: Add gstplayer-media-info.c to the build
JNI bindings still need updating for the new media info API.

https://github.com/sdroege/gst-player/issues/30
2015-05-04 22:38:15 +02:00
Sebastian Dröge
bf8604dcf3 playback/player: player/gtk: Fix indention 2015-04-26 18:33:00 +02:00
Brijesh Singh
81238fdbcd playback/player: gtk-play: add media information window 2015-04-26 18:33:00 +02:00
Sebastian Dröge
3180177fc7 playback/player: player: Rename some more functions for consistency 2015-04-25 19:37:39 +02:00
Sebastian Dröge
2cfa987d89 playback/player: player: Rename gst_player_subtitle_get_language() to gst_player_subtitle_info_get_language() 2015-04-25 19:30:55 +02:00
Sebastian Dröge
da76b893c7 playback/player: gst-play: Add copyright notice for Brijesh Singh 2015-04-25 14:32:52 +02:00
Brijesh Singh
34c7b45906 playback/player: player: Add media information API
https://github.com/sdroege/gst-player/pull/21
2015-04-25 14:16:08 +02:00
Sebastian Dröge
7ca4b495c2 playback/player: gst-play: Fix compiler warning
gst-play.c:89:11: error: comparison of unsigned expression >= 0 is always true
      [-Werror,-Wtautological-compare]
  if (pos >= 0 && dur > 0) {
      ~~~ ^  ~
2015-04-25 14:03:12 +02:00
Jan Berkel
d270aec9d1 playback/player: ios: Make sure dimensions are valid
Layouting code crashes if 0/0 get passed

https://github.com/sdroege/gst-player/pull/22
2015-04-23 16:27:33 +02:00
Jan Berkel
109e63d7d7 playback/player: ios: Extract online media into plist
https://github.com/sdroege/gst-player/pull/20
2015-04-23 16:25:59 +02:00
Sebastian Dröge
7638d52c47 playback/player: Add VideoToolbox to the iOS project linker flags 2015-04-22 09:35:24 +02:00
Sebastian Dröge
8ba8714b20 playback/player: Stop using GSlice for allocations, it's deprecated soon and slower than malloc in most places 2015-03-06 09:38:16 +01:00
Xavier Claessens
8b41422c77 playback/player: android: Cast pointers to gintptr to simplify code 2015-03-03 18:04:36 +01:00
Sebastian Dröge
5035124050 playback/player: Update Android bindings to the latest API 2015-03-01 14:20:17 +01:00
Sebastian Dröge
b7a1198170 playback/player: Add copyright header to GTK player 2015-03-01 14:04:00 +01:00
Sebastian Dröge
0b7383c104 playback/player: Make it possible to call play()/pause() after EOS to restart playback from the beginning 2015-03-01 14:01:17 +01:00
Sebastian Dröge
6342159440 playback/player: Fix indention 2015-03-01 13:59:03 +01:00
Sebastian Dröge
6f88388819 playback/player: Remove gst_player_is_playing()
The current state is now notified via the state-changed signal, and in
the GTK UI it was only used to keep track of the desired state.
2015-02-27 09:46:02 +02:00
Ross Burton
d0ef447da9 playback/player: gtk-play: show a file chooser if no URIs were passed 2015-02-27 09:41:17 +02:00
Sebastian Dröge
d828730591 playback/player: Don't skip to next track immediately in gst-play when seeking after the duration
Instead wait for end-of-stream for switching.
2015-02-08 11:52:11 +01:00
Sebastian Dröge
ae46c50138 playback/player: Make state handling more robust and notify the application about our states
The application now will get one of 4 states via a signal:
STOPPED: After EOS, error and when explicitely stopped
BUFFERING: When moving to the lower states, or we get buffering messages,
           also when seeking.
PAUSED and PLAYING: When having reached that state and it's our target

Also we now always first go to PAUSED state before we seek, and also before we
go to PLAYING. This allows us to deterministically change states and makes
everything a bit more robust.

As a side-effect, get rid of the is-playing property. Applications can now get
this from the corresponding signal if they need to know.

Additionally now notify the application about the buffering percentage.

Also fix a few bugs related to state handling and buffering.
2015-02-08 11:52:10 +01:00
Thibault Saunier
97c4cfc670 playback/player: android: Link against GLib 2.0 as it is necessary 2014-11-12 16:36:39 +01:00
Sebastian Dröge
d0dc785d77 playback/player: Fix indention with gst-indent 2014-08-07 10:59:37 +02:00
Sebastian Dröge
adf40eeefe playback/player: GTK: Fix prev/next button insensitivity logic in the EOS handler 2014-08-06 16:52:22 +02:00
Sebastian Dröge
ad694a24ea playback/player: GTK: Turn checks that must not fail into assertions in prev/next logic 2014-08-06 16:45:09 +02:00
Sebastian Dröge
ead64d43fa playback/player: GTK: Fix logic for setting the prev/next button insensitive at the end/beginning of the playlist 2014-08-06 16:45:03 +02:00
Parthasarathi Susarla
a622cb0d2c playback/player: GTK: Improvements to the GTK+ player
This patch contains a few improvements to the gtk-player:
* Uses unified play/pause button.
* Adds a Skip Previous/Next button.
* Volume control
* Takes multiple files/uri's as arguments.
* Switches to the next track (if any) when the current track
  reaches and end.

https://github.com/sdroege/gst-player/pull/1
2014-08-06 16:44:54 +02:00
Sebastian Dröge
7cb352aaa6 playback/player: Implement seek throttling 2014-08-05 19:12:02 +02:00
Sebastian Dröge
038cd47bfb playback/player: Add our own error domain and code 2014-08-03 17:06:26 +02:00
Sebastian Dröge
e85d26115a playback/player: Move dispatch-to-main-context out of the constructor and make it a normal property 2014-08-03 16:08:14 +02:00
Sebastian Dröge
e644c61286 playback/player: Always notify about video dimension changes
Without video we will notify width=height=0
2014-08-03 15:10:13 +02:00
Sebastian Dröge
4b9da857c0 playback/player: Add a single-include header 2014-08-03 12:47:27 +02:00
Sebastian Dröge
090c766562 playback/player: Add initial build system with docs and tests and magic 2014-08-03 12:38:37 +02:00
Sebastian Dröge
7071c121b6 playback/player: Add iOS app 2014-08-02 21:11:56 +02:00
Sebastian Dröge
b34e62884c playback/player: Move library around into a proper directory 2014-08-02 20:33:38 +02:00
Sebastian Dröge
3352d5aee0 playback/player: Add GTK+ sample application 2014-07-30 16:18:01 +02:00
Sebastian Dröge
be4f88ef41 playback/player: Add start of an Android player 2014-07-28 20:13:13 +02:00
Sebastian Dröge
10eabda41b playback/player: Add debug logging 2014-07-28 12:08:12 +02:00
Sebastian Dröge
153efa0077 playback/player: Add a simple Makefile for gst-play 2014-07-28 10:09:04 +02:00
Sebastian Dröge
5c289ec20a playback/player: Port gst-play from gst-plugins-base to GstPlayer 2014-07-27 18:01:39 +02:00