Commit graph

310 commits

Author SHA1 Message Date
Xavi Artigas
d3e1c8fc46 Use a different clip which does not have letterboxing, to better exemplify aspect ratio preservation. Comments. 2012-10-25 10:11:30 +02:00
Xavi Artigas
39a036ccd1 Comments and debug output 2012-10-24 18:27:19 +02:00
Xavi Artigas
7170790b5a Beautify subtitle flag 2012-10-24 18:23:31 +02:00
Xavi Artigas
df304f1bae Retrieve media size from video sink once the pipe is in PAUSED and infom the application. 2012-10-24 18:14:36 +02:00
Xavi Artigas
9b4ce1ee63 Some advances, nothing functional. 2012-10-24 12:41:53 +02:00
Xavi Artigas
ff1b8da189 Initial Android Tutorial 4 2012-10-23 16:59:18 +02:00
Xavi Artigas
3c81bfb207 Tutorial 3 requires OpenGL ES 2.0 2012-10-23 16:48:22 +02:00
Xavi Artigas
ba19badffa Change screen name from Android tutorials to GStreamer tutorials. It think this makes more sense once the tutorials are installed on the device. 2012-10-23 16:22:37 +02:00
Xavi Artigas
15a7f54fb0 Comment 2012-10-23 15:52:04 +02:00
Xavi Artigas
349cad43cc Fix the case where a new surface is provided without destroying the previous one. We have never observed this scenario, tough. 2012-10-23 12:30:25 +02:00
Xavi Artigas
a62471700f Code cleanup: only call gst_x_overlay_set_window_handle from one place. 2012-10-22 18:17:31 +02:00
Xavi Artigas
1c4d79835a Remove runtime detection of media size as it causes the layout to be recalculated once a frame has already been shown, and it looks ugly. A different solution will be tried for future tutorials. 2012-10-22 12:14:21 +02:00
Xavi Artigas
b0e6a3ba73 Missing braces! 2012-10-19 15:38:12 +02:00
Xavi Artigas
a35d1f390c Whitespacey in layout 2012-10-19 14:38:46 +02:00
Xavi Artigas
67461d3156 Comment 2012-10-19 14:36:01 +02:00
Xavi Artigas
dea0bd1f0b Implement remaining aspect ratio calculations 2012-10-19 14:35:10 +02:00
Xavi Artigas
3cfa87cbb7 Give the default media size a 4:3 aspect ratio. This will make the tutorial look right, but it is not a fix for the first frame jumping into position. 2012-10-19 14:05:41 +02:00
Xavi Artigas
e8010b654f Fix (workaround?, hack?) for expose() having the wrong surface size. 2012-10-19 14:03:35 +02:00
Xavi Artigas
efbde418b2 Package for the GStreamer class changed to com.gstreamer 2012-10-19 10:37:21 +02:00
Xavi Artigas
334661044f Implement Aspect ratio preservation in GStreamerSurfaceView. Fix some corner cases that this triggers in the surface size reporting code. 2012-10-18 17:55:43 +02:00
Xavi Artigas
aeefdd86bc Fix memleak :) 2012-10-18 13:40:42 +02:00
Xavi Artigas
2f602601f0 Remove video sink debug 2012-10-17 15:58:17 +02:00
Xavi Artigas
a00f4d59d3 Add warptv to the pipeline, for added awesomeness. 2012-10-17 15:49:14 +02:00
Xavi Artigas
33450c17d2 Proper reporting of media size. Now the Android layout controls the appearance of the clip, instead of it always being maximized. 2012-10-17 14:01:12 +02:00
Xavi Artigas
c4a3f608e5 Simplify playing state tracking (and fix some problems) 2012-10-17 11:41:14 +02:00
Xavi Artigas
124f71f179 Remove unnecessary comment 2012-10-17 11:33:55 +02:00
Xavi Artigas
6b6dddde98 Simplify playing state tracking (and fix some problems) 2012-10-17 11:29:51 +02:00
Xavi Artigas
2fd79e5b3f Whitespacey & comments 2012-10-17 10:28:53 +02:00
Xavi Artigas
ad13250d93 Some layout beautifying 2012-10-16 11:45:34 +02:00
Xavi Artigas
8548d90aac Make sure the pipeline is in READY state before trying to set any window handle to the video sink. Send the app the Initialized signal after surface re-creation. 2012-10-16 11:14:08 +02:00
Xavi Artigas
ad8f0daffa With proper debug output 2012-10-15 18:50:28 +02:00
Xavi Artigas
10a4d1a28c Tutorial 3 2012-10-15 18:48:58 +02:00
Xavi Artigas
1c3c4ee7b7 Do not use GST_ERROR before GStreamer has been initialized (tutorial 5) 2012-10-15 14:03:40 +02:00
Xavi Artigas
0ccc6fe8c8 Do not use GST_ERROR before GStreamer has been initialized (tutorial 2) 2012-10-15 13:50:34 +02:00
Xavi Artigas
332de96d51 Fix tutorial number in debug output 2012-10-15 13:21:47 +02:00
Xavi Artigas
6bdae5f2a6 Do not use GST_ERROR before GStreamer has been initialized 2012-10-15 13:19:27 +02:00
Xavi Artigas
686de232a6 Make our GLib context is the default one to make sure GSource created from libraries using the default context are properly disposed of. 2012-10-11 10:52:45 +02:00
Xavi Artigas
e7199e5a18 Make all methods static except JNI_OnLoad 2012-10-11 10:37:49 +02:00
Xavi Artigas
b6243454c8 Proper initialization of GSources (setup before attach) 2012-10-10 15:43:25 +02:00
Xavi Artigas
ec305a0826 Beautify the layout a bit 2012-10-10 12:15:38 +02:00
Xavi Artigas
108d3a1ffb Fix button re-enabling: it has to be done from the UI thread. 2012-10-10 11:32:26 +02:00
Xavi Artigas
58a597aa20 Add audioconvert and audioresample, for the sake of completeness. 2012-10-09 17:11:11 +02:00
Xavi Artigas
bce0f1d2fc New icons to better follow the Android design guidelines (and get rid of some Android Lint warnings) 2012-10-09 12:42:24 +02:00
Xavi Artigas
a5d36ecb3e Regexp mangled some comments 2012-10-09 10:41:32 +02:00
Xavi Artigas
768e602485 Changed all comments to //, because Confluence has problems syntax highlighting Java with /* */ comments. Awesome. 2012-10-09 10:39:38 +02:00
Xavi Artigas
4b608c3ca7 Add comments. Whitespace. Some function renaming. 2012-10-08 15:36:16 +02:00
Xavi Artigas
4ce09964d9 Initial tutorial 2 2012-10-08 11:55:59 +02:00
Xavi Artigas
3c3388a5a6 Remove unused GIO module from Android.mk 2012-10-05 15:31:50 +02:00
Xavi Artigas
3df9913eb9 More copyright notices removed 2012-10-05 14:56:03 +02:00
Xavi Artigas
e7b066f06e Remove copyright notices 2012-10-05 11:21:26 +02:00
Xavi Artigas
a99fac623c Whitespacey 2012-10-04 17:54:41 +02:00
Xavi Artigas
0a57e2c403 Move icons to proper folder. Replace generic Android icon with GStreamer SDK. 2012-10-04 16:22:03 +02:00
Sebastian Dröge
f3a259d959 Reset duration after changing the URI 2012-10-04 16:15:59 +02:00
Xavi Artigas
87daf274ca First tutorial. 2012-10-04 12:15:02 +02:00
Sebastian Dröge
5389c1548b Disable subtitles for now 2012-10-03 16:38:03 +02:00
Xavi Artigas
e030812824 Rename tutorial-1 to tutorial-5 2012-10-03 14:17:08 +02:00
Xavi Artigas
90638fdd0e Highlight selected file in the file dialog chooser (could be highlighted MORE). 2012-10-03 13:40:50 +02:00
Sebastian Dröge
ac82125966 Link with all the useful plugins 2012-10-03 12:14:45 +02:00
Sebastian Dröge
2bec2df002 Add copyright/license foo for the file dialog 2012-10-03 11:07:17 +02:00
Sebastian Dröge
e67b567904 Add new filechooser 2012-10-02 16:54:27 +02:00
Sebastian Dröge
e3b897f4b5 Add support for selecting files 2012-10-02 13:31:54 +02:00
Xavi Artigas
f574c00ea1 Merge branch 'android' 2012-10-01 17:43:12 +02:00
Sebastian Dröge
9a4b1977d4 Fix seeking 2012-10-01 16:56:49 +02:00
Sebastian Dröge
5ad29d568e Don't queue multiple timeouts for delayed seeking 2012-10-01 15:46:17 +02:00
Sebastian Dröge
3123532841 Implement throttling of seeks, only one seek per 500ms 2012-10-01 14:43:33 +02:00
Xavi Artigas
76c883fb8b Fix restoration of playing state after orientation change 2012-10-01 14:27:25 +02:00
Xavi Artigas
af9437ff7d Now that playbin2 is used, remove the vsink variable, and use factory_make instead of parse_launch. 2012-10-01 12:47:09 +02:00
Xavi Artigas
b809b23b24 Whitespacey 2012-10-01 12:37:57 +02:00
Xavi Artigas
ceaab451f2 Fix Seeking: Disable scrubbing seek for remote files, remember playing state after seek. Use media from gstreamer.com instead of freedesktop.org (weird buffering from the later) 2012-10-01 12:37:07 +02:00
Xavi Artigas
cf083414f6 Add API to set the URI instead of hardcoding it in the gst_launch 2012-10-01 10:41:23 +02:00
Sebastian Dröge
74543783c0 Only set GSTREAMER_SDK_ROOT if it wasn't set yet 2012-10-01 10:08:52 +02:00
Xavi Artigas
929f8eb55f Some debug output beautifying 2012-09-28 15:27:33 +02:00
Xavi Artigas
9eb55274bc Fix Android.mk and make it use GSTREAMER_SDK_ROOT_ANDROID 2012-09-28 12:12:21 +02:00
Sebastian Dröge
2ca5b7356c Use the OGV variant by default and use the fd.o server 2012-09-28 09:31:35 +02:00
Sebastian Dröge
555c456e9e Add some UI feedback for the buffering messages 2012-09-27 14:18:05 +02:00
Sebastian Dröge
6184907bbf Make sure to not go out of the target state due to buffering messages
E.g. go to PLAYING although we're only requested to PAUSED
2012-09-26 13:46:47 +02:00
Sebastian Dröge
3e795c9a19 Implement handling of buffering and clock-lost messages 2012-09-26 10:27:27 +02:00
Sebastian Dröge
a247dddc71 The volume element is needed by playbin2 too 2012-09-24 14:06:15 +02:00
Sebastian Dröge
5d66cfd40f Also link OpenSL ES plugin 2012-09-24 13:50:06 +02:00
Sebastian Dröge
4909c6489d Catch DURATION message and query new duration on the next UI refresh
This makes sure we always show the latest, real duration. Might
help with OGV streaming.
2012-09-24 11:29:39 +02:00
Sebastian Dröge
c375592018 Make the playbin2 pipeline the default 2012-09-24 11:23:40 +02:00
Sebastian Dröge
634bad5edd videofilter plugin is needed for playbin2 too 2012-09-24 10:19:00 +02:00
Xavi Artigas
a11dffbbc1 Better handling of state tracking in the UI. It now tracks what gst does, instead of just guessing from the buttons the user pressed. 2012-09-21 14:29:11 +02:00
Xavi Artigas
81bb469d72 Catch the exception thrown by GStreamer.init() and terminate application. 2012-09-21 10:58:17 +02:00
Xavi Artigas
56697bc5d5 Add some resilience. In many occasions native methods can be called where Gst is not yet initialized or being re-initialized. 2012-09-21 10:57:33 +02:00
Xavi Artigas
d7735e0f6d Reduce the number of gst plugins used, to approach what will be really needed. 2012-09-21 10:56:35 +02:00
Andoni Morales Alastruey
ec83a11e33 android-tutorial-1: update Android.mk with last changes 2012-09-20 12:29:40 +02:00
Xavi Artigas
eb5a50c851 Remove unused constructor 2012-09-20 11:38:35 +02:00
Sebastian Dröge
d685fd9281 Use the WebM video by default 2012-09-20 11:16:12 +02:00
Sebastian Dröge
20ab7db117 It's GStreamer.init(), not Init() 2012-09-20 11:13:36 +02:00
Sebastian Dröge
56e49fac4e Call GStreamer.Init() from onCreate(), otherwise the Context is not set up yet 2012-09-20 11:13:35 +02:00
Xavi Artigas
2baed2a80c Whitespacey 2012-09-20 10:32:49 +02:00
Xavi Artigas
049ac0438b Add a queue to the test pipeline 2012-09-19 17:58:23 +02:00
Xavi Artigas
1fdad2d112 Use the new GStreamer.Init() method to initialize GStreamer. 2012-09-19 16:50:38 +02:00
Xavi Artigas
fa77581edc Remove unnecessary destruction of GSources 2012-09-19 13:16:45 +02:00
Xavi Artigas
9cdcecf4f8 Use custom GMainContext to avoid potential interference with other libraries using GLib 2012-09-19 12:18:41 +02:00
Xavi Artigas
8876ada4ea Remove compiler warning 2012-09-18 16:48:39 +02:00
Xavi Artigas
553978a030 Prevent the C code from notifying Java too many times about GStreamer being initialized 2012-09-18 16:02:43 +02:00
Xavi Artigas
e7d13a9120 Revamp initialization code. Now the library informs java when initialization is complete (pipeline built and native window received). 2012-09-18 14:32:02 +02:00
Xavi Artigas
e35be6e5df Remove unused variable 2012-09-18 13:40:22 +02:00
Xavi Artigas
5e065f2b89 Beautify hardcoded time values 2012-09-18 12:39:39 +02:00
Xavi Artigas
c763636b97 Add a bit of resilience at class initialization 2012-09-18 12:36:17 +02:00
Xavi Artigas
2048b11b90 Rename some methods for clarity 2012-09-18 12:09:49 +02:00
Xavi Artigas
4b7b9e0106 Remove video app sink now that there is a working egl sink. 2012-09-18 11:55:46 +02:00
Xavi Artigas
336a85b928 Add comment regarding previoud rounding. 2012-09-17 18:26:55 +02:00
Xavi Artigas
803622382e Prevent successive orientation changes from moving the clip backwards in time due to gst-nanos / java-millis rounding errors plus seeking to keyframes. 2012-09-17 18:24:00 +02:00
Xavi Artigas
7a8142417c Remove invalid extra unref on the gst bus 2012-09-17 17:35:32 +02:00
Xavi Artigas
e1927aca14 Typo in comment 2012-09-17 17:24:04 +02:00
Andoni Morales Alastruey
bb2adae455 Update for multilib 2012-09-17 16:26:01 +02:00
Xavi Artigas
4874f00144 Start in PAUSED so clip length is shown since the beginning. Allow orientation changes in PAUSED. 2012-09-17 13:48:08 +02:00
Xavi Artigas
392705a913 Do not set the pipeline to NULL on EOS, as parse_launch pipelines are not reusable. 2012-09-17 13:31:24 +02:00
Xavi Artigas
0b6448389a Allow refreshing the ui (the timer, basically) when in PAUSED (when seeking, basically) 2012-09-17 12:59:33 +02:00
Xavi Artigas
425a23ef98 Seeking in PAUSED updates the video 2012-09-17 12:53:53 +02:00
Xavi Artigas
206415b27b Allow seeking from the SeekBar (video does not refresh until you release the SeekBar, though) 2012-09-17 12:31:23 +02:00
Xavi Artigas
ff9ff2c549 Delay seeks if not in the playing state. Verify return value of ANativeWindow_Lock. 2012-09-17 11:54:45 +02:00
Xavi Artigas
1d7c2a6f87 Add hardware decoding capabilities 2012-09-14 17:08:15 +02:00
Xavi Artigas
f780c13852 Add missing fix 2012-09-14 16:08:37 +02:00
Xavi Artigas
f81f2c4347 Send XOverlay messages directly to the sink. Try to resume playing in the place where it stopped. Assorted fixes. 2012-09-14 16:01:07 +02:00
Xavi Artigas
c892f35193 Protect against surfaces being destroyed after the app is killed 2012-09-14 12:45:54 +02:00
Xavi Artigas
63f19c69ab Display video via an appsink. 2012-09-14 12:02:19 +02:00
Xavi Artigas
f15a624e93 Set the targetSDK to 14 (Gingerbread). This uses cooler (more recent) UI elements when available. 2012-09-13 18:29:02 +02:00
Xavi Artigas
3bc044cba4 Add a SeekBar to show current position / duration 2012-09-13 16:35:51 +02:00
Xavi Artigas
8f8258e4b9 Report current position/duration back to the UI. Refactor. 2012-09-13 14:36:06 +02:00
Xavi Artigas
0156029e06 Remove unneeded import 2012-09-13 12:09:22 +02:00
Xavi Artigas
48f9983fbd Formatting 2012-09-13 12:05:43 +02:00
Xavi Artigas
d6c101954b Add missing properties needed while testing 2012-09-12 18:49:06 +02:00
Xavi Artigas
a449e48aea Use a eglglessink (does not work yet) 2012-09-12 18:45:03 +02:00
Xavi Artigas
f7446956c9 Add a SurfaceView and tell native code about it. Still no sink though. 2012-09-12 17:39:14 +02:00
Xavi Artigas
c4363559c8 Update minimum SDk version to 9 2012-09-12 17:38:17 +02:00
Xavi Artigas
6c3dcf5730 Assorted small fixes, string leaks and beautifying 2012-09-12 10:59:23 +02:00
Xavi Artigas
e4a142b38a Add missing layour file 2012-09-10 16:45:19 +02:00
Xavi Artigas
ba4182c470 Add method to test Java UI code being called from C callbacks 2012-09-10 16:10:48 +02:00
Xavi Artigas
66d4f1873b Whitespace 2012-09-10 12:16:09 +02:00
Xavi Artigas
ca35131d47 Remove unused variable 2012-09-10 12:09:56 +02:00
Xavi Artigas
30f8381ac9 Remove copyright note from Android samples 2012-09-10 12:08:33 +02:00
Xavi Artigas
4f23fc027c Remove warnings due to storing 32bits pointers inside jlongs. Fix handling of TLS (still unused, though) 2012-09-10 12:06:16 +02:00
Xavi Artigas
b0e6ae8eb7 Having a running pipeline now, controlled from the UI 2012-09-07 16:26:04 +02:00
Xavi Artigas
112f4f92f3 In this way, -it's more ndk-build-ish- 2012-09-06 15:56:13 +02:00
Xavi Artigas
70242780c3 Testing logging facilities 2012-09-06 13:13:44 +02:00
Xavi Artigas
734e54ddfb Add more plugins 2012-09-06 13:13:02 +02:00
Xavi Artigas
7b3c680da5 Better memory management during string construction 2012-09-04 17:10:40 +02:00
Xavi Artigas
1947de8006 More test plugins and nicer scrolling effect 2012-09-04 16:54:11 +02:00
Xavi Artigas
77c4117da5 Allow the textview to scroll 2012-09-04 16:07:11 +02:00
Xavi Artigas
2905b5073a Add more plugins, to test 2012-09-04 16:06:51 +02:00
Xavi Artigas
24136b8011 List available plugins and features 2012-09-04 13:55:04 +02:00
Xavi Artigas
625bed6844 Added icon 2012-09-04 12:53:20 +02:00
Xavi Artigas
ef7757b7ca Initial tutorial-1 2012-09-04 12:20:02 +02:00
Xavi Artigas
d72831ea72 Fix forward seeks stop position (it should be the EOF, not the previous stop position). 2012-07-13 12:01:27 +02:00
Xavi Artigas
37de9e77c6 Comments and cosmetics 2012-07-10 16:21:33 +02:00
Xavi Artigas
669b10b6f6 Added basic tutorial 15 (Clutter) 2012-07-09 14:44:44 +02:00