├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── LICENSE.BSD ├── LICENSE.CC-BY-SA-4.0 ├── LICENSE.LGPL-2.1 ├── LICENSE.MIT ├── LICENSE.OPL ├── README.md ├── TODO.md ├── examples ├── bus_example.c ├── snippets.c └── tutorials │ ├── android │ ├── .gitignore │ ├── android-tutorial-1 │ │ ├── .gitignore │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── jni │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── dummy.cpp │ │ │ └── tutorial-1.c │ │ ├── res │ │ │ ├── drawable-hdpi │ │ │ │ └── gstreamer_logo_1.png │ │ │ ├── drawable-ldpi │ │ │ │ └── gstreamer_logo_1.png │ │ │ ├── drawable-mdpi │ │ │ │ └── gstreamer_logo_1.png │ │ │ ├── drawable-xhdpi │ │ │ │ └── gstreamer_logo_1.png │ │ │ ├── drawable-xxhdpi │ │ │ │ └── gstreamer_logo_1.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ └── gstreamer_logo_1.png │ │ │ ├── layout │ │ │ │ └── main.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── src │ │ │ └── org │ │ │ └── freedesktop │ │ │ └── gstreamer │ │ │ └── tutorials │ │ │ └── tutorial_1 │ │ │ └── Tutorial1.java │ ├── android-tutorial-2 │ │ ├── .gitignore │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── jni │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── dummy.cpp │ │ │ └── tutorial-2.c │ │ ├── res │ │ │ ├── drawable-hdpi │ │ │ │ └── gstreamer_logo_2.png │ │ │ ├── drawable-ldpi │ │ │ │ └── gstreamer_logo_2.png │ │ │ ├── drawable-mdpi │ │ │ │ └── gstreamer_logo_2.png │ │ │ ├── drawable-xhdpi │ │ │ │ └── gstreamer_logo_2.png │ │ │ ├── drawable-xxhdpi │ │ │ │ └── gstreamer_logo_2.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ └── gstreamer_logo_2.png │ │ │ ├── layout │ │ │ │ └── main.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── src │ │ │ └── org │ │ │ └── freedesktop │ │ │ └── gstreamer │ │ │ └── tutorials │ │ │ └── tutorial_2 │ │ │ └── Tutorial2.java │ ├── android-tutorial-3 │ │ ├── .gitignore │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── jni │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── dummy.cpp │ │ │ └── tutorial-3.c │ │ ├── res │ │ │ ├── drawable-hdpi │ │ │ │ └── gstreamer_logo_3.png │ │ │ ├── drawable-ldpi │ │ │ │ └── gstreamer_logo_3.png │ │ │ ├── drawable-mdpi │ │ │ │ └── gstreamer_logo_3.png │ │ │ ├── drawable-xhdpi │ │ │ │ └── gstreamer_logo_3.png │ │ │ ├── drawable-xxhdpi │ │ │ │ └── gstreamer_logo_3.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ └── gstreamer_logo_3.png │ │ │ ├── layout │ │ │ │ └── main.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── src │ │ │ └── org │ │ │ └── freedesktop │ │ │ └── gstreamer │ │ │ └── tutorials │ │ │ └── tutorial_3 │ │ │ ├── GStreamerSurfaceView.java │ │ │ └── Tutorial3.java │ ├── android-tutorial-4 │ │ ├── .gitignore │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── jni │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── dummy.cpp │ │ │ └── tutorial-4.c │ │ ├── res │ │ │ ├── drawable-hdpi │ │ │ │ └── gstreamer_logo_4.png │ │ │ ├── drawable-ldpi │ │ │ │ └── gstreamer_logo_4.png │ │ │ ├── drawable-mdpi │ │ │ │ └── gstreamer_logo_4.png │ │ │ ├── drawable-xhdpi │ │ │ │ └── gstreamer_logo_4.png │ │ │ ├── drawable-xxhdpi │ │ │ │ └── gstreamer_logo_4.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ └── gstreamer_logo_4.png │ │ │ ├── layout │ │ │ │ └── main.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── src │ │ │ └── org │ │ │ └── freedesktop │ │ │ └── gstreamer │ │ │ └── tutorials │ │ │ └── tutorial_4 │ │ │ ├── GStreamerSurfaceView.java │ │ │ └── Tutorial4.java │ ├── android-tutorial-5 │ │ ├── .gitignore │ │ ├── AndroidManifest.xml │ │ ├── build.gradle │ │ ├── jni │ │ │ ├── Android.mk │ │ │ ├── Application.mk │ │ │ ├── dummy.cpp │ │ │ └── tutorial-5.c │ │ ├── res │ │ │ ├── drawable-ldpi │ │ │ │ ├── file.png │ │ │ │ ├── folder.png │ │ │ │ └── gstreamer_logo_5.png │ │ │ ├── drawable-mdpi │ │ │ │ └── gstreamer_logo_5.png │ │ │ ├── drawable-xhdpi │ │ │ │ └── gstreamer_logo_5.png │ │ │ ├── drawable-xxhdpi │ │ │ │ └── gstreamer_logo_5.png │ │ │ ├── drawable-xxxhdpi │ │ │ │ └── gstreamer_logo_5.png │ │ │ ├── layout │ │ │ │ ├── file_dialog_main.xml │ │ │ │ ├── file_dialog_row.xml │ │ │ │ └── main.xml │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── src │ │ │ ├── com │ │ │ └── lamerman │ │ │ │ └── FileDialog.java │ │ │ └── org │ │ │ └── freedesktop │ │ │ └── gstreamer │ │ │ └── tutorials │ │ │ └── tutorial_5 │ │ │ ├── GStreamerSurfaceView.java │ │ │ └── Tutorial5.java │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ └── settings.gradle │ ├── basic-tutorial-1.c │ ├── basic-tutorial-12.c │ ├── basic-tutorial-13.c │ ├── basic-tutorial-15.c │ ├── basic-tutorial-2.c │ ├── basic-tutorial-3.c │ ├── basic-tutorial-4.c │ ├── basic-tutorial-5.c │ ├── basic-tutorial-6.c │ ├── basic-tutorial-7.c │ ├── basic-tutorial-8.c │ ├── basic-tutorial-9.c │ ├── icons │ ├── gstreamer-logo-1.svg │ ├── gstreamer-logo-2.svg │ ├── gstreamer-logo-3.svg │ ├── gstreamer-logo-4.svg │ └── gstreamer-logo-5.svg │ ├── playback-tutorial-1.c │ ├── playback-tutorial-2.c │ ├── playback-tutorial-3.c │ ├── playback-tutorial-4.c │ ├── playback-tutorial-5.c │ ├── playback-tutorial-6.c │ ├── playback-tutorial-7.c │ ├── python │ ├── basic-tutorial-1.py │ └── basic-tutorial-2.py │ ├── vs2010 │ ├── basic-tutorial-1 │ │ ├── basic-tutorial-1.vcxproj │ │ └── basic-tutorial-1.vcxproj.filters │ ├── basic-tutorial-12 │ │ ├── basic-tutorial-12.vcxproj │ │ └── basic-tutorial-12.vcxproj.filters │ ├── basic-tutorial-13 │ │ ├── basic-tutorial-13.vcxproj │ │ └── basic-tutorial-13.vcxproj.filters │ ├── basic-tutorial-15 │ │ ├── basic-tutorial-15.vcxproj │ │ └── basic-tutorial-15.vcxproj.filters │ ├── basic-tutorial-2 │ │ ├── basic-tutorial-2.vcxproj │ │ └── basic-tutorial-2.vcxproj.filters │ ├── basic-tutorial-3 │ │ ├── basic-tutorial-3.vcxproj │ │ └── basic-tutorial-3.vcxproj.filters │ ├── basic-tutorial-4 │ │ ├── basic-tutorial-4.vcxproj │ │ └── basic-tutorial-4.vcxproj.filters │ ├── basic-tutorial-5 │ │ ├── basic-tutorial-5.vcxproj │ │ └── basic-tutorial-5.vcxproj.filters │ ├── basic-tutorial-6 │ │ ├── basic-tutorial-6.vcxproj │ │ └── basic-tutorial-6.vcxproj.filters │ ├── basic-tutorial-7 │ │ ├── basic-tutorial-7.vcxproj │ │ └── basic-tutorial-7.vcxproj.filters │ ├── basic-tutorial-8 │ │ ├── basic-tutorial-8.vcxproj │ │ └── basic-tutorial-8.vcxproj.filters │ ├── basic-tutorial-9 │ │ ├── basic-tutorial-9.vcxproj │ │ └── basic-tutorial-9.vcxproj.filters │ ├── playback-tutorial-1 │ │ ├── playback-tutorial-1.vcxproj │ │ └── playback-tutorial-1.vcxproj.filters │ ├── playback-tutorial-2 │ │ ├── playback-tutorial-2.vcxproj │ │ └── playback-tutorial-2.vcxproj.filters │ ├── playback-tutorial-3 │ │ ├── playback-tutorial-3.vcxproj │ │ └── playback-tutorial-3.vcxproj.filters │ ├── playback-tutorial-4 │ │ ├── playback-tutorial-4.vcxproj │ │ └── playback-tutorial-4.vcxproj.filters │ ├── playback-tutorial-5 │ │ ├── playback-tutorial-5.vcxproj │ │ └── playback-tutorial-5.vcxproj.filters │ ├── playback-tutorial-6 │ │ ├── playback-tutorial-6.vcxproj │ │ └── playback-tutorial-6.vcxproj.filters │ ├── playback-tutorial-7 │ │ ├── playback-tutorial-7.vcxproj │ │ └── playback-tutorial-7.vcxproj.filters │ └── tutorials.sln │ ├── xcode iOS │ ├── GStreamer iOS Tutorials.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ ├── Tutorial 1 │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── GStreamerBackend.h │ │ ├── GStreamerBackend.m │ │ ├── Images-1.xcassets │ │ │ ├── AppIcon-1.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-60@2x.png │ │ │ │ ├── Icon-72.png │ │ │ │ ├── Icon-72@2x.png │ │ │ │ ├── Icon-76.png │ │ │ │ ├── Icon-76@2x.png │ │ │ │ ├── Icon-83.5@2x.png │ │ │ │ ├── Icon.png │ │ │ │ └── Icon@2x.png │ │ │ ├── Contents.json │ │ │ └── LaunchImage-1.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x-1.png │ │ │ │ └── Default-568h@2x.png │ │ ├── Tutorial 1-Info.plist │ │ ├── Tutorial 1-Prefix.pch │ │ ├── Ubuntu-R.ttf │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ ├── MainStoryboard_iPad.storyboard │ │ │ └── MainStoryboard_iPhone.storyboard │ │ ├── fonts.conf │ │ ├── gst_ios_init.h │ │ ├── gst_ios_init.m │ │ └── main.m │ ├── Tutorial 2 │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── GStreamerBackend.h │ │ ├── GStreamerBackend.m │ │ ├── GStreamerBackendDelegate.h │ │ ├── Images-2.xcassets │ │ │ ├── AppIcon-2.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-60@2x.png │ │ │ │ ├── Icon-72.png │ │ │ │ ├── Icon-72@2x.png │ │ │ │ ├── Icon-76.png │ │ │ │ ├── Icon-76@2x.png │ │ │ │ ├── Icon-83.5@2x.png │ │ │ │ ├── Icon.png │ │ │ │ └── Icon@2x.png │ │ │ ├── Contents.json │ │ │ └── LaunchImage-2.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x-1.png │ │ │ │ └── Default-568h@2x.png │ │ ├── Tutorial 2-Info.plist │ │ ├── Tutorial 2-Prefix.pch │ │ ├── Tutorial2-Info.plist │ │ ├── Ubuntu-R.ttf │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ ├── MainStoryboard_iPad.storyboard │ │ │ └── MainStoryboard_iPhone.storyboard │ │ ├── fonts.conf │ │ ├── gst_ios_init.h │ │ ├── gst_ios_init.m │ │ └── main.m │ ├── Tutorial 3 │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── EaglUIVIew.h │ │ ├── EaglUIVIew.m │ │ ├── GStreamerBackend.h │ │ ├── GStreamerBackend.m │ │ ├── GStreamerBackendDelegate.h │ │ ├── Images-3.xcassets │ │ │ ├── AppIcon-3.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-60@2x.png │ │ │ │ ├── Icon-72.png │ │ │ │ ├── Icon-72@2x.png │ │ │ │ ├── Icon-76.png │ │ │ │ ├── Icon-76@2x.png │ │ │ │ ├── Icon-83.5@2x.png │ │ │ │ ├── Icon.png │ │ │ │ └── Icon@2x.png │ │ │ ├── Contents.json │ │ │ └── LaunchImage-3.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x-1.png │ │ │ │ └── Default-568h@2x.png │ │ ├── Tutorial 3-Info.plist │ │ ├── Tutorial 3-Prefix.pch │ │ ├── Ubuntu-R.ttf │ │ ├── ViewController.h │ │ ├── ViewController.m │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ ├── MainStoryboard_iPad.storyboard │ │ │ └── MainStoryboard_iPhone.storyboard │ │ ├── fonts.conf │ │ ├── gst_ios_init.h │ │ ├── gst_ios_init.m │ │ └── main.m │ ├── Tutorial 4 │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── EaglUIVIew.h │ │ ├── EaglUIVIew.m │ │ ├── GStreamerBackend.h │ │ ├── GStreamerBackend.m │ │ ├── GStreamerBackendDelegate.h │ │ ├── Images-4.xcassets │ │ │ ├── AppIcon-4.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-60@2x.png │ │ │ │ ├── Icon-72.png │ │ │ │ ├── Icon-72@2x.png │ │ │ │ ├── Icon-76.png │ │ │ │ ├── Icon-76@2x.png │ │ │ │ ├── Icon-83.5@2x.png │ │ │ │ ├── Icon.png │ │ │ │ └── Icon@2x.png │ │ │ ├── Contents.json │ │ │ └── LaunchImage-4.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x-1.png │ │ │ │ └── Default-568h@2x.png │ │ ├── Tutorial 4-Info.plist │ │ ├── Tutorial 4-Prefix.pch │ │ ├── Ubuntu-R.ttf │ │ ├── VideoViewController.h │ │ ├── VideoViewController.m │ │ ├── en.lproj │ │ │ ├── InfoPlist.strings │ │ │ ├── MainStoryboard_iPad.storyboard │ │ │ └── MainStoryboard_iPhone.storyboard │ │ ├── fonts.conf │ │ ├── gst_ios_init.h │ │ ├── gst_ios_init.m │ │ ├── main.m │ │ └── ssl │ │ │ └── certs │ │ │ └── ca-certificates.crt │ └── Tutorial 5 │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── EaglUIVIew.h │ │ ├── EaglUIVIew.m │ │ ├── GStreamerBackend.h │ │ ├── GStreamerBackend.m │ │ ├── GStreamerBackendDelegate.h │ │ ├── Images-5.xcassets │ │ ├── AppIcon-5.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-72.png │ │ │ ├── Icon-72@2x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-83.5@2x.png │ │ │ ├── Icon.png │ │ │ └── Icon@2x.png │ │ ├── Contents.json │ │ └── LaunchImage-5.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x-1.png │ │ │ └── Default-568h@2x.png │ │ ├── LibraryViewController.h │ │ ├── LibraryViewController.m │ │ ├── Tutorial 5-Info.plist │ │ ├── Tutorial 5-Prefix.pch │ │ ├── Ubuntu-R.ttf │ │ ├── VideoViewController.h │ │ ├── VideoViewController.m │ │ ├── en.lproj │ │ ├── InfoPlist.strings │ │ ├── MainStoryboard_iPad.storyboard │ │ └── MainStoryboard_iPhone.storyboard │ │ ├── fonts.conf │ │ ├── gst_ios_init.h │ │ ├── gst_ios_init.m │ │ ├── main.m │ │ └── ssl │ │ └── certs │ │ └── ca-certificates.crt │ └── xcode │ └── GStreamer Tutorials.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ └── contents.xcworkspacedata │ └── xcshareddata │ └── xcschemes │ ├── 01-Tutorial 1.xcscheme │ ├── 02-Tutorial 2.xcscheme │ ├── 03-Turorial 3.xcscheme │ ├── 04-Tutorial 4.xcscheme │ ├── 05-Tutorial 5.xcscheme │ ├── 06-Tutorial 6.xcscheme │ ├── 07-Tutorial 7.xcscheme │ ├── 08-Tutorial 8.xcscheme │ ├── 09-Tutorial 9.xcscheme │ ├── 12-Tutorial 12.xcscheme │ ├── 13-Tutorial 13.xcscheme │ ├── 15-Tutorial 15.xcscheme │ ├── 21-Playback Tutorial 1.xcscheme │ ├── 22-Playback Tutorial 2.xcscheme │ ├── 23-Playback Tutorial 3.xcscheme │ ├── 24-Playback Tutorial 4.xcscheme │ ├── 25-Playback Tutorial 5.xcscheme │ ├── 26-Playback Tutorial 6.xcscheme │ ├── 27-Playback Tutorial 7.xcscheme │ └── xcschememanagement.plist ├── images ├── WindowsInstall-BuildSolution.png ├── WindowsInstall-Configuration.png ├── WindowsInstall1.png ├── WindowsInstall10.png ├── WindowsInstall11.png ├── WindowsInstall2.png ├── WindowsInstall3.png ├── WindowsInstall4.png ├── WindowsInstall5.png ├── WindowsInstall6.png ├── WindowsInstall7.png ├── WindowsInstall8.png ├── WindowsInstall9.png ├── android.png ├── basic-concepts-pipeline.png ├── bin-element-ghost.png ├── bin-element-noghost.png ├── bin-element.png ├── cerbero │ ├── git-installer-PATH.png │ ├── git-installer-line-endings.png │ ├── msys-install-packages.png │ ├── py-installer-page1.png │ ├── py-installer-page3.png │ ├── vs-installer-uwp-workload.png │ ├── vs2017-installer-workloads.png │ └── windows-settings-developer-mode.png ├── clocks.png ├── communication.png ├── contact.png ├── distribute.svg ├── download.png ├── emoticons │ └── information.png ├── faq.png ├── figure-1.png ├── filter-element-multi.png ├── filter-element.png ├── gstreamer-overview.png ├── hello-world.png ├── icons │ ├── bullet_blue.gif │ ├── contenttypes │ │ ├── comment_16.png │ │ └── home_page_16.png │ ├── emoticons │ │ ├── forbidden.svg │ │ ├── information.svg │ │ └── warning.svg │ └── grey_arrow_down.gif ├── ios.jpeg ├── legal.png ├── linked-elements.png ├── linux.png ├── mac.png ├── media-next.png ├── mime-world.png ├── playbin.png ├── reference.png ├── releases.png ├── simple-player.png ├── sink-element.png ├── src-element.png ├── thread-buffering.png ├── thread-synchronizing.png ├── tutorials │ ├── android-a-complete-media-player-screenshot.png │ ├── android-a-running-pipeline-screenshot.png │ ├── android-link-against-gstreamer-screenshot.png │ ├── android-media-player-screenshot.png │ ├── android-video-screenshot.png │ ├── basic-tutorial-5.png │ ├── basic-tutorial-7.png │ ├── basic-tutorial-8.png │ ├── ios-a-basic-media-player-screenshot.png │ ├── ios-a-complete-media-player-screenshot-0.png │ ├── ios-a-complete-media-player-screenshot-1.png │ ├── ios-a-running-pipeline-screenshot.png │ ├── ios-link-against-gstreamer-screenshot.png │ └── ios-video-screenshot.png └── windows.png ├── markdown ├── additional │ ├── design │ │ ├── MT-refcounting.md │ │ ├── TODO.md │ │ ├── activation.md │ │ ├── audiosinks.md │ │ ├── buffer.md │ │ ├── buffering.md │ │ ├── bufferpool.md │ │ ├── caps.md │ │ ├── clocks.md │ │ ├── context.md │ │ ├── controller.md │ │ ├── conventions.md │ │ ├── decodebin.md │ │ ├── draft-klass.md │ │ ├── draft-metadata.md │ │ ├── draft-push-pull.md │ │ ├── draft-tagreading.md │ │ ├── dynamic.md │ │ ├── element-sink.md │ │ ├── element-source.md │ │ ├── element-transform.md │ │ ├── encoding.md │ │ ├── events.md │ │ ├── framestep.md │ │ ├── gstbin.md │ │ ├── gstbus.md │ │ ├── gstelement.md │ │ ├── gstghostpad.md │ │ ├── gstobject.md │ │ ├── gstpipeline.md │ │ ├── index.md │ │ ├── interlaced-video.md │ │ ├── keyframe-force.md │ │ ├── latency.md │ │ ├── live-source.md │ │ ├── mediatype-audio-raw.md │ │ ├── mediatype-text-raw.md │ │ ├── mediatype-video-raw.md │ │ ├── memory.md │ │ ├── messages.md │ │ ├── meta.md │ │ ├── miniobject.md │ │ ├── missing-plugins.md │ │ ├── negotiation.md │ │ ├── opengl.md │ │ ├── orc-integration.md │ │ ├── overview.md │ │ ├── playbin.md │ │ ├── preroll.md │ │ ├── probes.md │ │ ├── progress.md │ │ ├── push-pull.md │ │ ├── qos.md │ │ ├── query.md │ │ ├── relations.md │ │ ├── rtp.md │ │ ├── scheduling.md │ │ ├── seeking.md │ │ ├── segments.md │ │ ├── seqnums.md │ │ ├── sparsestreams.md │ │ ├── standards.md │ │ ├── states.md │ │ ├── stereo-multiview-video.md │ │ ├── stream-selection.md │ │ ├── stream-status.md │ │ ├── streams.md │ │ ├── subtitle-overlays.md │ │ ├── synchronisation.md │ │ ├── toc.md │ │ ├── tracing.md │ │ └── trickmodes.md │ ├── index.md │ ├── rtp.md │ ├── splitup.md │ └── videos.md ├── application-development │ ├── advanced │ │ ├── autoplugging.md │ │ ├── buffering.md │ │ ├── clocks.md │ │ ├── dparams.md │ │ ├── index.md │ │ ├── interfaces.md │ │ ├── metadata.md │ │ ├── pipeline-manipulation.md │ │ ├── queryevents.md │ │ └── threads.md │ ├── appendix │ │ ├── checklist-element.md │ │ ├── compiling.md │ │ ├── index.md │ │ ├── integration.md │ │ ├── licensing.md │ │ ├── porting-1.0.md │ │ ├── porting.md │ │ ├── programs.md │ │ └── quotes.md │ ├── basics │ │ ├── bins.md │ │ ├── bus.md │ │ ├── data.md │ │ ├── elements.md │ │ ├── helloworld.md │ │ ├── index.md │ │ ├── init.md │ │ └── pads.md │ ├── highlevel │ │ ├── index.md │ │ └── playback-components.md │ ├── index.md │ └── introduction │ │ ├── basics.md │ │ ├── gstreamer.md │ │ ├── index.md │ │ └── motivation.md ├── contribute │ └── index.md ├── deploying │ ├── index.md │ ├── mac-osx.md │ ├── multiplatform-using-cerbero.md │ └── windows.md ├── for-later │ ├── basic-media-player.md │ ├── qt-gstreamer-vs-c-gstreamer.md │ └── using-appsink-appsrc-in-qt.md ├── frequently-asked-questions │ ├── dependencies.md │ ├── developing.md │ ├── general.md │ ├── getting.md │ ├── git.md │ ├── index.md │ ├── legal.md │ ├── licensing.md │ ├── troubleshooting.md │ └── using.md ├── gst_index.md ├── index.md ├── installing │ ├── building-from-source-using-cerbero.md │ ├── building-from-source-using-meson.md │ ├── for-android-development.md │ ├── for-ios-development.md │ ├── index.md │ ├── on-linux.md │ ├── on-mac-osx.md │ └── on-windows.md ├── legal-information.md ├── libs.md ├── plugin-development │ ├── advanced │ │ ├── allocation.md │ │ ├── clock.md │ │ ├── dparams.md │ │ ├── events.md │ │ ├── index.md │ │ ├── interfaces.md │ │ ├── media-types.md │ │ ├── negotiation.md │ │ ├── qos.md │ │ ├── request.md │ │ ├── scheduling.md │ │ └── tagging.md │ ├── appendix │ │ ├── checklist-element.md │ │ ├── index.md │ │ ├── licensing-advisory.md │ │ └── porting.md │ ├── basics │ │ ├── args.md │ │ ├── boiler.md │ │ ├── chainfn.md │ │ ├── eventfn.md │ │ ├── index.md │ │ ├── pads.md │ │ ├── queryfn.md │ │ ├── signals.md │ │ ├── states.md │ │ └── testapp.md │ ├── element-types │ │ ├── base-classes.md │ │ ├── index.md │ │ ├── manager.md │ │ ├── n-to-one.md │ │ └── one-to-n.md │ ├── index.md │ └── introduction │ │ ├── basics.md │ │ ├── index.md │ │ └── preface.md ├── plugins_doc.md ├── simple-index.md ├── templates │ ├── ALERT_JS.md │ ├── ALERT_PY.md │ ├── C+JS_FALLBACK.md │ ├── C+PY_FALLBACK.md │ ├── C.md │ ├── END_LANG.md │ ├── JS.md │ └── PY.md ├── tools │ ├── ges-launch.md │ ├── gst-inspect.md │ ├── gst-launch.md │ └── index.md └── tutorials │ ├── android │ ├── a-complete-media-player.md │ ├── a-running-pipeline.md │ ├── index.md │ ├── link-against-gstreamer.md │ ├── media-player.md │ └── video.md │ ├── basic │ ├── concepts.md │ ├── debugging-tools.md │ ├── dynamic-pipelines.md │ ├── gstreamer-tools.md │ ├── handy-elements.md │ ├── hello-world.md │ ├── index.md │ ├── media-formats-and-pad-capabilities.md │ ├── media-information-gathering.md │ ├── multithreading-and-pad-availability.md │ ├── platform-specific-elements.md │ ├── playback-speed.md │ ├── short-cutting-the-pipeline.md │ ├── streaming.md │ ├── time-management.md │ └── toolkit-integration.md │ ├── index.md │ ├── ios │ ├── a-basic-media-player.md │ ├── a-complete-media-player.md │ ├── a-running-pipeline.md │ ├── index.md │ ├── link-against-gstreamer.md │ └── video.md │ ├── playback │ ├── audio-visualization.md │ ├── color-balance.md │ ├── custom-playbin-sinks.md │ ├── digital-audio-pass-through.md │ ├── hardware-accelerated-video-decoding.md │ ├── index.md │ ├── playbin-usage.md │ ├── progressive-streaming.md │ ├── short-cutting-the-pipeline.md │ └── subtitle-management.md │ ├── qt-tutorials.md │ └── table-of-concepts.md ├── meson.build ├── meson_options.txt ├── scripts ├── RELEASE_README.md ├── generate_sitemap.py └── release.py ├── sitemap.txt ├── symbols ├── symbol_index.json └── symbols_version.txt └── theme └── extra ├── css └── extra_frontend.css ├── images ├── api-reference.svg ├── deploy.png ├── design-guidelines.svg ├── favicon.png ├── gstreamer-logo.svg └── tutorials.png └── templates ├── brand-logo.html ├── extra_head.html └── navbar_links.html /.gitignore: -------------------------------------------------------------------------------- 1 | /built_doc 2 | .vscode 3 | build/ 4 | /hotdoc-private* 5 | /.hotdoc.d 6 | /*.stamp 7 | Debug 8 | Release 9 | ipch 10 | *.user 11 | *.sdf 12 | *.suo 13 | *.opensdf 14 | vs/2010/libs 15 | bin 16 | gen 17 | libs 18 | obj 19 | .classpath 20 | .project 21 | .settings 22 | .libs 23 | .cproject 24 | gst-build 25 | project.properties 26 | gst_sdk 27 | .DS_Store 28 | xcuserdata 29 | /plugins-introspection/cache/ 30 | /hotdoc_env/ 31 | *.html 32 | *~ 33 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | include: 'https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/master/gitlab/ci_template.yml' 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/.gitmodules -------------------------------------------------------------------------------- /LICENSE.BSD: -------------------------------------------------------------------------------- 1 | Copyright (C) GStreamer developers 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions 6 | are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above copyright 12 | notice, this list of conditions and the following disclaimer in the 13 | documentation and/or other materials provided with the distribution. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 19 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 21 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 23 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 24 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25 | POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /LICENSE.MIT: -------------------------------------------------------------------------------- 1 | Copyright (C) GStreamer developers 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a 4 | copy of this software and associated documentation files (the "Software"), 5 | to deal in the Software without restriction, including without limitation 6 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | and/or sell copies of the Software, and to permit persons to whom the 8 | Software is furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included 11 | in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 16 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | DEALINGS IN THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | # Todo 2 | 3 | For-later pages: 4 | - tutorials/qt-tutorials.md [tpm: this should all be rewritten from scratch with qmlglsink; QtGStreamer is outdated and unmaintained, we should not promote it] 5 | - basic-media-player.md 6 | - qt-gstreamer-vs-c-gstreamer.md 7 | - using-appsink-appsrc-in-qt.md 8 | 9 | Miscellaneous: 10 | - faq/git.md should be renamed building.md and turned into general 11 | building Q+A or (better) point to a page we have for all that by then 12 | - faq/legal.md needs an overhaul, and be made more relevant 13 | - licensing.md and legal-information.md need to be reviewed + merged, 14 | possibly with FAQ section. 15 | 16 | old sitemap: 17 | 18 | Installing the SDK 19 | Installing on Linux 20 | Installing on Mac OS X 21 | Installing on Windows 22 | Installing for Android development 23 | Installing for iOS development 24 | Building from source using Cerbero 25 | Tutorials 26 | Basic tutorials 27 | Playback tutorials 28 | Android tutorials 29 | iOS tutorials 30 | Table of Concepts 31 | Upcoming tutorials 32 | Deploying your application 33 | Mac OS X deployment 34 | Windows deployment 35 | Multiplatform deployment using Cerbero 36 | GStreamer reference 37 | gst-inspect 38 | gst-launch 39 | Legal information 40 | Frequently Asked Questions 41 | Contact 42 | -------------------------------------------------------------------------------- /examples/snippets.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | static void 4 | link_to_multiplexer (GstPad * tolink_pad, GstElement * mux) 5 | { 6 | GstPad *pad; 7 | gchar *srcname, *sinkname; 8 | 9 | srcname = gst_pad_get_name (tolink_pad); 10 | pad = gst_element_get_compatible_pad (mux, tolink_pad, NULL); 11 | gst_pad_link (tolink_pad, pad); 12 | sinkname = gst_pad_get_name (pad); 13 | gst_object_unref (GST_OBJECT (pad)); 14 | 15 | g_print ("A new pad %s was created and linked to %s\n", sinkname, srcname); 16 | g_free (sinkname); 17 | g_free (srcname); 18 | } 19 | 20 | static void 21 | some_function (GstElement * tee) 22 | { 23 | GstPad *pad; 24 | gchar *name; 25 | 26 | pad = gst_element_request_pad_simple (tee, "src%d"); 27 | name = gst_pad_get_name (pad); 28 | g_print ("A new pad %s was created\n", name); 29 | g_free (name); 30 | 31 | /* here, you would link the pad */ 32 | 33 | /* [..] */ 34 | 35 | /* and, after doing that, free our reference */ 36 | gst_object_unref (GST_OBJECT (pad)); 37 | } 38 | -------------------------------------------------------------------------------- /examples/tutorials/android/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build/ 3 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/.gitignore: -------------------------------------------------------------------------------- 1 | .externalNativeBuild/ 2 | assets/ 3 | gst-build-*/ 4 | src/org/freedesktop/gstreamer/GStreamer.java 5 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_MODULE := tutorial-1 6 | LOCAL_SRC_FILES := tutorial-1.c dummy.cpp 7 | LOCAL_SHARED_LIBRARIES := gstreamer_android 8 | LOCAL_LDLIBS := -llog 9 | include $(BUILD_SHARED_LIBRARY) 10 | 11 | ifndef GSTREAMER_ROOT_ANDROID 12 | $(error GSTREAMER_ROOT_ANDROID is not defined!) 13 | endif 14 | 15 | ifeq ($(TARGET_ARCH_ABI),armeabi) 16 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm 17 | else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) 18 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7 19 | else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) 20 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64 21 | else ifeq ($(TARGET_ARCH_ABI),x86) 22 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86 23 | else ifeq ($(TARGET_ARCH_ABI),x86_64) 24 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64 25 | else 26 | $(error Target arch ABI not supported: $(TARGET_ARCH_ABI)) 27 | endif 28 | 29 | GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/ 30 | GSTREAMER_PLUGINS := coreelements 31 | GSTREAMER_EXTRA_LIBS := -liconv 32 | include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk 33 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 2 | APP_STL = c++_shared -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/jni/dummy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-1/jni/dummy.cpp -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/jni/tutorial-1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | /* 7 | * Java Bindings 8 | */ 9 | static jstring 10 | gst_native_get_gstreamer_info (JNIEnv * env, jobject thiz) 11 | { 12 | char *version_utf8 = gst_version_string (); 13 | jstring *version_jstring = (*env)->NewStringUTF (env, version_utf8); 14 | g_free (version_utf8); 15 | return version_jstring; 16 | } 17 | 18 | static JNINativeMethod native_methods[] = { 19 | {"nativeGetGStreamerInfo", "()Ljava/lang/String;", 20 | (void *) gst_native_get_gstreamer_info} 21 | }; 22 | 23 | jint 24 | JNI_OnLoad (JavaVM * vm, void *reserved) 25 | { 26 | JNIEnv *env = NULL; 27 | 28 | if ((*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_4) != JNI_OK) { 29 | __android_log_print (ANDROID_LOG_ERROR, "tutorial-1", 30 | "Could not retrieve JNIEnv"); 31 | return 0; 32 | } 33 | jclass klass = (*env)->FindClass (env, 34 | "org/freedesktop/gstreamer/tutorials/tutorial_1/Tutorial1"); 35 | (*env)->RegisterNatives (env, klass, native_methods, 36 | G_N_ELEMENTS (native_methods)); 37 | 38 | return JNI_VERSION_1_4; 39 | } 40 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/drawable-hdpi/gstreamer_logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-1/res/drawable-hdpi/gstreamer_logo_1.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/drawable-ldpi/gstreamer_logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-1/res/drawable-ldpi/gstreamer_logo_1.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/drawable-mdpi/gstreamer_logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-1/res/drawable-mdpi/gstreamer_logo_1.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/drawable-xhdpi/gstreamer_logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-1/res/drawable-xhdpi/gstreamer_logo_1.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/drawable-xxhdpi/gstreamer_logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-1/res/drawable-xxhdpi/gstreamer_logo_1.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/drawable-xxxhdpi/gstreamer_logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-1/res/drawable-xxxhdpi/gstreamer_logo_1.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | GStreamer tutorial 1 4 | 5 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-1/src/org/freedesktop/gstreamer/tutorials/tutorial_1/Tutorial1.java: -------------------------------------------------------------------------------- 1 | package org.freedesktop.gstreamer.tutorials.tutorial_1; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | import android.widget.TextView; 6 | import android.widget.Toast; 7 | 8 | import org.freedesktop.gstreamer.GStreamer; 9 | 10 | public class Tutorial1 extends Activity { 11 | private native String nativeGetGStreamerInfo(); 12 | 13 | // Called when the activity is first created. 14 | @Override 15 | public void onCreate(Bundle savedInstanceState) 16 | { 17 | super.onCreate(savedInstanceState); 18 | 19 | try { 20 | GStreamer.init(this); 21 | } catch (Exception e) { 22 | Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); 23 | finish(); 24 | return; 25 | } 26 | 27 | setContentView(R.layout.main); 28 | 29 | TextView tv = (TextView)findViewById(R.id.textview_info); 30 | tv.setText("Welcome to " + nativeGetGStreamerInfo() + " !"); 31 | } 32 | 33 | static { 34 | System.loadLibrary("gstreamer_android"); 35 | System.loadLibrary("tutorial-1"); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/.gitignore: -------------------------------------------------------------------------------- 1 | .externalNativeBuild/ 2 | assets/ 3 | gst-build-*/ 4 | src/org/freedesktop/gstreamer/GStreamer.java 5 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_MODULE := tutorial-2 6 | LOCAL_SRC_FILES := tutorial-2.c dummy.cpp 7 | LOCAL_SHARED_LIBRARIES := gstreamer_android 8 | LOCAL_LDLIBS := -llog 9 | include $(BUILD_SHARED_LIBRARY) 10 | 11 | ifndef GSTREAMER_ROOT_ANDROID 12 | $(error GSTREAMER_ROOT_ANDROID is not defined!) 13 | endif 14 | 15 | ifeq ($(TARGET_ARCH_ABI),armeabi) 16 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm 17 | else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) 18 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7 19 | else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) 20 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64 21 | else ifeq ($(TARGET_ARCH_ABI),x86) 22 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86 23 | else ifeq ($(TARGET_ARCH_ABI),x86_64) 24 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64 25 | else 26 | $(error Target arch ABI not supported: $(TARGET_ARCH_ABI)) 27 | endif 28 | 29 | GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/ 30 | include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk 31 | GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_SYS) 32 | GSTREAMER_EXTRA_LIBS := -liconv 33 | include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk 34 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 2 | APP_STL = c++_shared -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/jni/dummy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-2/jni/dummy.cpp -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/drawable-hdpi/gstreamer_logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-2/res/drawable-hdpi/gstreamer_logo_2.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/drawable-ldpi/gstreamer_logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-2/res/drawable-ldpi/gstreamer_logo_2.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/drawable-mdpi/gstreamer_logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-2/res/drawable-mdpi/gstreamer_logo_2.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/drawable-xhdpi/gstreamer_logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-2/res/drawable-xhdpi/gstreamer_logo_2.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/drawable-xxhdpi/gstreamer_logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-2/res/drawable-xxhdpi/gstreamer_logo_2.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/drawable-xxxhdpi/gstreamer_logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-2/res/drawable-xxxhdpi/gstreamer_logo_2.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 20 | 21 | 28 | 29 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-2/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | GStreamer tutorial 2 4 | Play 5 | Stop 6 | 7 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/.gitignore: -------------------------------------------------------------------------------- 1 | .externalNativeBuild/ 2 | assets/ 3 | gst-build-*/ 4 | src/org/freedesktop/gstreamer/GStreamer.java 5 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_MODULE := tutorial-3 6 | LOCAL_SRC_FILES := tutorial-3.c dummy.cpp 7 | LOCAL_SHARED_LIBRARIES := gstreamer_android 8 | LOCAL_LDLIBS := -llog -landroid 9 | include $(BUILD_SHARED_LIBRARY) 10 | 11 | ifndef GSTREAMER_ROOT_ANDROID 12 | $(error GSTREAMER_ROOT_ANDROID is not defined!) 13 | endif 14 | 15 | ifeq ($(TARGET_ARCH_ABI),armeabi) 16 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm 17 | else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) 18 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7 19 | else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) 20 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64 21 | else ifeq ($(TARGET_ARCH_ABI),x86) 22 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86 23 | else ifeq ($(TARGET_ARCH_ABI),x86_64) 24 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64 25 | else 26 | $(error Target arch ABI not supported: $(TARGET_ARCH_ABI)) 27 | endif 28 | 29 | GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/ 30 | include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk 31 | GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_SYS) $(GSTREAMER_PLUGINS_EFFECTS) 32 | GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0 gobject-2.0 33 | GSTREAMER_EXTRA_LIBS := -liconv 34 | include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk 35 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 2 | APP_STL = c++_shared -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/jni/dummy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-3/jni/dummy.cpp -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/drawable-hdpi/gstreamer_logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-3/res/drawable-hdpi/gstreamer_logo_3.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/drawable-ldpi/gstreamer_logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-3/res/drawable-ldpi/gstreamer_logo_3.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/drawable-mdpi/gstreamer_logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-3/res/drawable-mdpi/gstreamer_logo_3.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/drawable-xhdpi/gstreamer_logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-3/res/drawable-xhdpi/gstreamer_logo_3.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/drawable-xxhdpi/gstreamer_logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-3/res/drawable-xxhdpi/gstreamer_logo_3.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/drawable-xxxhdpi/gstreamer_logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-3/res/drawable-xxxhdpi/gstreamer_logo_3.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 29 | 30 | 37 | 38 | 39 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-3/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | GStreamer tutorial 3 4 | Play 5 | Stop 6 | 7 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/.gitignore: -------------------------------------------------------------------------------- 1 | .externalNativeBuild/ 2 | assets/ 3 | gst-build-*/ 4 | src/org/ 5 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_MODULE := tutorial-4 6 | LOCAL_SRC_FILES := tutorial-4.c dummy.cpp 7 | LOCAL_SHARED_LIBRARIES := gstreamer_android 8 | LOCAL_LDLIBS := -llog -landroid 9 | include $(BUILD_SHARED_LIBRARY) 10 | 11 | ifndef GSTREAMER_ROOT_ANDROID 12 | $(error GSTREAMER_ROOT_ANDROID is not defined!) 13 | endif 14 | 15 | ifeq ($(TARGET_ARCH_ABI),armeabi) 16 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm 17 | else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) 18 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7 19 | else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) 20 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64 21 | else ifeq ($(TARGET_ARCH_ABI),x86) 22 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86 23 | else ifeq ($(TARGET_ARCH_ABI),x86_64) 24 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64 25 | else 26 | $(error Target arch ABI not supported: $(TARGET_ARCH_ABI)) 27 | endif 28 | 29 | GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/ 30 | include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk 31 | GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_PLAYBACK) $(GSTREAMER_PLUGINS_CODECS) $(GSTREAMER_PLUGINS_NET) $(GSTREAMER_PLUGINS_SYS) 32 | G_IO_MODULES := openssl 33 | GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0 34 | include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk 35 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 2 | APP_STL = c++_shared -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/jni/dummy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-4/jni/dummy.cpp -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/res/drawable-hdpi/gstreamer_logo_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-4/res/drawable-hdpi/gstreamer_logo_4.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/res/drawable-ldpi/gstreamer_logo_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-4/res/drawable-ldpi/gstreamer_logo_4.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/res/drawable-mdpi/gstreamer_logo_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-4/res/drawable-mdpi/gstreamer_logo_4.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/res/drawable-xhdpi/gstreamer_logo_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-4/res/drawable-xhdpi/gstreamer_logo_4.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/res/drawable-xxhdpi/gstreamer_logo_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-4/res/drawable-xxhdpi/gstreamer_logo_4.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/res/drawable-xxxhdpi/gstreamer_logo_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-4/res/drawable-xxxhdpi/gstreamer_logo_4.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-4/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | GStreamer tutorial 4 4 | Play 5 | Stop 6 | 7 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/.gitignore: -------------------------------------------------------------------------------- 1 | .externalNativeBuild/ 2 | assets/ 3 | gst-build-*/ 4 | src/org/ 5 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/jni/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_MODULE := tutorial-5 6 | LOCAL_SRC_FILES := tutorial-5.c dummy.cpp 7 | LOCAL_SHARED_LIBRARIES := gstreamer_android 8 | LOCAL_LDLIBS := -llog -landroid 9 | include $(BUILD_SHARED_LIBRARY) 10 | 11 | ifndef GSTREAMER_ROOT_ANDROID 12 | $(error GSTREAMER_ROOT_ANDROID is not defined!) 13 | endif 14 | 15 | ifeq ($(TARGET_ARCH_ABI),armeabi) 16 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm 17 | else ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) 18 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/armv7 19 | else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) 20 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/arm64 21 | else ifeq ($(TARGET_ARCH_ABI),x86) 22 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86 23 | else ifeq ($(TARGET_ARCH_ABI),x86_64) 24 | GSTREAMER_ROOT := $(GSTREAMER_ROOT_ANDROID)/x86_64 25 | else 26 | $(error Target arch ABI not supported: $(TARGET_ARCH_ABI)) 27 | endif 28 | 29 | GSTREAMER_NDK_BUILD_PATH := $(GSTREAMER_ROOT)/share/gst-android/ndk-build/ 30 | include $(GSTREAMER_NDK_BUILD_PATH)/plugins.mk 31 | GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_PLAYBACK) $(GSTREAMER_PLUGINS_CODECS) $(GSTREAMER_PLUGINS_NET) $(GSTREAMER_PLUGINS_SYS) 32 | G_IO_MODULES := openssl 33 | GSTREAMER_EXTRA_DEPS := gstreamer-video-1.0 34 | include $(GSTREAMER_NDK_BUILD_PATH)/gstreamer-1.0.mk 35 | -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI = armeabi armeabi-v7a arm64-v8a x86 x86_64 2 | APP_STL = c++_shared -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/jni/dummy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/jni/dummy.cpp -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/drawable-ldpi/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/res/drawable-ldpi/file.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/drawable-ldpi/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/res/drawable-ldpi/folder.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/drawable-ldpi/gstreamer_logo_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/res/drawable-ldpi/gstreamer_logo_5.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/drawable-mdpi/gstreamer_logo_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/res/drawable-mdpi/gstreamer_logo_5.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/drawable-xhdpi/gstreamer_logo_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/res/drawable-xhdpi/gstreamer_logo_5.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/drawable-xxhdpi/gstreamer_logo_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/res/drawable-xxhdpi/gstreamer_logo_5.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/drawable-xxxhdpi/gstreamer_logo_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-docs/ce5b31a1b0b953dbc147a7ab564d656739cdc792/examples/tutorials/android/android-tutorial-5/res/drawable-xxxhdpi/gstreamer_logo_5.png -------------------------------------------------------------------------------- /examples/tutorials/android/android-tutorial-5/res/layout/file_dialog_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 18 | 19 | 23 | 24 |