├── screenshot_1.png
├── screenshot_2.png
├── screenshot_3.png
├── GStreamerSwiftUIDemo
├── Assets.xcassets
│ ├── Contents.json
│ ├── AccentColor.colorset
│ │ └── Contents.json
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── GStreamerSwiftUIDemo-Bridging-Header.h
├── GStreamerBackendProtocol.swift
├── GStreamerSwiftUIDemoApp.swift
├── GStreamerBackend.h
├── CameraView.swift
├── gst_ios_init.h
├── CameraViewController.swift
├── MainView.swift
├── GStreamerBackend.m
└── gst_ios_init.m
├── GStreamerSwiftUIDemo.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── xcuserdata
│ └── raktimbora.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── project.pbxproj
└── README.md
/screenshot_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/borarak/GStreamerSwiftUIDemo/HEAD/screenshot_1.png
--------------------------------------------------------------------------------
/screenshot_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/borarak/GStreamerSwiftUIDemo/HEAD/screenshot_2.png
--------------------------------------------------------------------------------
/screenshot_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/borarak/GStreamerSwiftUIDemo/HEAD/screenshot_3.png
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/GStreamerSwiftUIDemo-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | #import "GStreamerBackend.h"
6 | #import "gst_ios_init.h"
7 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "platform" : "ios",
6 | "size" : "1024x1024"
7 | }
8 | ],
9 | "info" : {
10 | "author" : "xcode",
11 | "version" : 1
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/GStreamerBackendProtocol.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GStreamerBackendProtocol.swift
3 | // GStreamerSwiftUIDemo
4 | //
5 | // Created by Raktim Bora on 19.06.23.
6 | //
7 |
8 | import Foundation
9 |
10 |
11 | protocol GStreamerBackendProtocol{
12 | func gStreamerInitialized()
13 | func gstreamerSetUIMessageWithMessage(message: String)
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## GStreamerSwiftUIDemo
2 |
3 | A demo app that uses gstreamer with a SwiftUI interface to display a local RTSP feed.
4 |
5 | **Note**: Before building the app, change the RTSP address [here](https://github.com/borarak/GStreamerSwiftUIDemo/blob/9d257a84243bd4c9063f1909020eae028bf3a319/GStreamerSwiftUIDemo/GStreamerBackend.m#L163) to a valid one.
6 |
7 |
8 | 
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/GStreamerSwiftUIDemoApp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GStreamerSwiftUIDemoApp.swift
3 | // GStreamerSwiftUIDemo
4 | //
5 | // Created by Raktim Bora on 19.06.23.
6 | //
7 |
8 | import SwiftUI
9 |
10 | @main
11 | struct GStreamerSwiftUIDemoApp: App {
12 | init(){
13 | gst_ios_init()
14 | }
15 | var body: some Scene {
16 | WindowGroup {
17 | MainView()
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo.xcodeproj/xcuserdata/raktimbora.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | GStreamerSwiftUIDemo.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/GStreamerBackend.h:
--------------------------------------------------------------------------------
1 | //
2 | // GStreamerBackend.h
3 | // GStreamerSwiftUIDemo
4 | //
5 | // Created by Raktim Bora on 13.06.23.
6 | //
7 |
8 | #ifndef GStreamerBackend_h
9 | #define GStreamerBackend_h
10 |
11 | #include
12 | #include
13 | #import
14 |
15 | @interface GStreamerBackend : NSObject
16 |
17 | -(id) init:(id) uiDelegate videoView:(UIView*) video_view;
18 |
19 | -(void) play;
20 |
21 | -(void) pause;
22 |
23 | -(void) run_app_pipeline_threaded;
24 | @end
25 |
26 | #endif /* GStreamerBackend_h */
27 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/CameraView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CameraView.swift
3 | // GStreamerSwiftUIDemo
4 | //
5 | // Created by Raktim Bora on 14.06.23.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct CameraView: UIViewRepresentable {
11 |
12 | var placeholderView:UIView
13 |
14 | init(placeholderView: UIView) {
15 | self.placeholderView = placeholderView
16 | }
17 |
18 | func makeUIView(context: Context) -> some UIView {
19 | return placeholderView
20 | }
21 |
22 | func updateUIView(_ uiView: UIViewType, context: Context) {
23 |
24 | }
25 |
26 | }
27 |
28 | //struct CameraView_Previews: PreviewProvider {
29 | // static var previews: some View {
30 | // CameraView()
31 | // }
32 | //}
33 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/gst_ios_init.h:
--------------------------------------------------------------------------------
1 | #ifndef __GST_IOS_INIT_H__
2 | #define __GST_IOS_INIT_H__
3 |
4 | #include
5 |
6 | G_BEGIN_DECLS
7 |
8 | #define GST_G_IO_MODULE_DECLARE(name) \
9 | extern void G_PASTE(g_io_, G_PASTE(name, _load)) (gpointer module)
10 |
11 | #define GST_G_IO_MODULE_LOAD(name) \
12 | G_PASTE(g_io_, G_PASTE(name, _load)) (NULL)
13 |
14 | /* Uncomment each line to enable the plugin categories that your application needs.
15 | * You can also enable individual plugins. See gst_ios_init.c to see their names
16 | */
17 |
18 | #define GST_IOS_PLUGINS_CORE
19 | #define GST_IOS_PLUGINS_CODECS
20 | #define GST_IOS_PLUGINS_ENCODING
21 | #define GST_IOS_PLUGINS_NET
22 | #define GST_IOS_PLUGINS_PLAYBACK
23 | #define GST_IOS_PLUGINS_VIS
24 | #define GST_IOS_PLUGINS_SYS
25 | #define GST_IOS_PLUGINS_EFFECTS
26 | #define GST_IOS_PLUGINS_CAPTURE
27 | #define GST_IOS_PLUGINS_CODECS_GPL
28 | #define GST_IOS_PLUGINS_CODECS_RESTRICTED
29 | #define GST_IOS_PLUGINS_NET_RESTRICTED
30 | #define GST_IOS_PLUGINS_GES
31 |
32 |
33 | //#define GST_IOS_GIO_MODULE_GNUTLS
34 |
35 | void gst_ios_init (void);
36 |
37 | G_END_DECLS
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/CameraViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CameraViewController.swift
3 | // GStreamerSwiftUIDemo
4 | //
5 | // Created by Raktim Bora on 19.06.23.
6 | //
7 |
8 | import Foundation
9 | import UIKit
10 | import Dispatch
11 | import SwiftUI
12 |
13 |
14 | @objc class CameraViewController: NSObject, GStreamerBackendProtocol, ObservableObject{
15 |
16 | var gstBackend:GStreamerBackend?
17 | var camUIView:UIView
18 | @Published var gStreamerInitializationStatus:Bool = false
19 | @Published var messageFromGstBackend:String?
20 |
21 | init(camUIView:UIView) {
22 | self.camUIView = camUIView
23 | }
24 |
25 | func initBackend(){
26 | self.gstBackend = GStreamerBackend(self, videoView: self.camUIView)
27 | let queue = DispatchQueue(label: "run_app_q")
28 | queue.async{
29 | self.gstBackend?.run_app_pipeline_threaded()
30 | }
31 | return
32 | }
33 |
34 | func play(){
35 | if gstBackend == nil{
36 | self.initBackend()
37 | }
38 | self.gstBackend!.play()
39 | }
40 |
41 | func pause(){
42 | self.gstBackend!.pause()
43 | }
44 |
45 | @objc func gStreamerInitialized() {
46 | self.gStreamerInitializationStatus = true
47 | }
48 |
49 | @objc func gstreamerSetUIMessageWithMessage(message: String) {
50 | self.messageFromGstBackend = message
51 | }
52 |
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/MainView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContentView.swift
3 | // GStreamerSwiftUIDemo
4 | //
5 | // Created by Raktim Bora on 14.06.23.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct MainView: View {
11 |
12 | @ObservedObject var camViewController:CameraViewController
13 |
14 | init() {
15 | self.camViewController = CameraViewController(camUIView: UIView())
16 | }
17 |
18 | func play_stream(){
19 | self.camViewController.play()
20 | }
21 |
22 |
23 | func pause_stream(){
24 | self.camViewController.pause()
25 | }
26 |
27 | var body: some View {
28 | GeometryReader { geometry in
29 | VStack {
30 | CameraContainerView(camContainerViewController: self.camViewController).padding(.all, 20)
31 | Spacer()
32 | GStreamerStatusMessageView(camContainerViewController: self.camViewController)
33 | HStack(spacing: 10){
34 | Button{
35 | play_stream()
36 | }label: {
37 | Image(systemName: "play")
38 | }.padding()
39 | Button{
40 | pause_stream()
41 | }label: {
42 | Image(systemName: "pause")
43 | }.padding()
44 | }.frame(height: CGFloat(geometry.size.height * 0.10))
45 | .disabled(!self.camViewController.gStreamerInitializationStatus)
46 | }.position(x: geometry.size.width / 2, y: geometry.size.height / 2)
47 | }
48 |
49 |
50 | }
51 |
52 |
53 | }
54 |
55 |
56 | struct CameraContainerView:View{
57 | @ObservedObject var camContainerViewController:CameraViewController
58 | var body: some View{
59 | Group{
60 | if camContainerViewController.gstBackend != nil{
61 | CameraView(placeholderView: camContainerViewController.camUIView)
62 |
63 | } else {
64 | let _ = camContainerViewController.initBackend()
65 | Text("Initializing GStreamer, please wait...").frame(alignment: .center)
66 | }
67 | }
68 |
69 | }
70 | }
71 |
72 |
73 | struct GStreamerStatusMessageView: View{
74 | @ObservedObject var camContainerViewController:CameraViewController
75 | var body: some View{
76 | if self.camContainerViewController.gStreamerInitializationStatus, let msg = self.camContainerViewController.messageFromGstBackend{
77 | Text(msg)
78 | }else{
79 | EmptyView()
80 | }
81 |
82 | }
83 | }
84 |
85 |
86 | //struct MainView_Previews: PreviewProvider {
87 | // static var previews: some View {
88 | // MainView()
89 | // }
90 | //}
91 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/GStreamerBackend.m:
--------------------------------------------------------------------------------
1 | //
2 | // GStreamerBackend.c
3 | // GStreamerSwiftUIDemo
4 | //
5 | // Created by Raktim Bora on 19.06.23.
6 | //
7 |
8 | #include
9 | #include "GStreamerBackend.h"
10 | # include "gst_ios_init.h"
11 | #include
12 |
13 | #include
14 | #include
15 | #import "GStreamerSwiftUIDemo-Swift.h"
16 |
17 | GST_DEBUG_CATEGORY_STATIC (debug_category);
18 | #define GST_CAT_DEFAULT debug_category
19 |
20 | @interface GStreamerBackend()
21 | -(void)setUIMessage:(gchar*) message;
22 | -(void)run_app_pipeline;
23 | -(void)check_initialization_complete;
24 | @end
25 |
26 | @implementation GStreamerBackend {
27 | id ui_delegate; /* Class that we use to interact with the user interface */
28 | GstElement *pipeline; /* The running pipeline */
29 | GstElement *video_sink;/* The video sink element which receives XOverlay commands */
30 | GMainContext *context; /* GLib context used to run the main loop */
31 | GMainLoop *main_loop; /* GLib main loop */
32 | gboolean initialized; /* To avoid informing the UI multiple times about the initialization */
33 | GstBus *bus;
34 | UIView *ui_video_view; /* UIView that holds the video */
35 | GstMessage* eos_msg;
36 | }
37 |
38 | /*
39 | * Interface methods
40 | */
41 |
42 | -(id) init:(id) uiDelegate videoView:(UIView *)video_view
43 | {
44 | if (self = [super init])
45 | {
46 | self->ui_delegate = uiDelegate;
47 | self->ui_video_view = video_view;
48 |
49 | GST_DEBUG_CATEGORY_INIT (debug_category, "GStreamerSwiftUIDemo", 0, "GStreamerSwiftUIDemo-Backend");
50 | gst_debug_set_threshold_for_name("GStreamerSwiftUIDemo", GST_LEVEL_INFO);
51 | }
52 |
53 | return self;
54 | }
55 |
56 | -(void) run_app_pipeline_threaded
57 | {
58 | [self run_app_pipeline];
59 | return;
60 | }
61 |
62 |
63 |
64 | -(void) play
65 | {
66 | if(gst_element_set_state(pipeline, GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) {
67 | [self setUIMessage:"Failed to set pipeline to playing"];
68 | }
69 | }
70 |
71 |
72 | -(void) pause
73 | {
74 | if(gst_element_set_state(pipeline, GST_STATE_PAUSED) == GST_STATE_CHANGE_FAILURE) {
75 | [self setUIMessage:"Failed to set pipeline to paused"];
76 | }
77 | }
78 |
79 | -(void) destroy
80 | {
81 | if(gst_element_set_state(pipeline, GST_STATE_PAUSED) == GST_STATE_CHANGE_FAILURE) {
82 | [self setUIMessage:"Failed to set pipeline to READY"];
83 | }
84 | eos_msg = gst_message_new_eos(GST_OBJECT(pipeline));
85 | gst_element_post_message (pipeline, eos_msg);
86 | }
87 |
88 |
89 | /* Change the message on the UI through the UI delegate */
90 | -(void)setUIMessage:(gchar*) message
91 | {
92 | NSString *messagString = [NSString stringWithUTF8String:message];
93 | if(ui_delegate && [ui_delegate respondsToSelector:@selector(gstreamerSetUIMessageWithMessageWithMessage:)])
94 | {
95 | [ui_delegate gstreamerSetUIMessageWithMessageWithMessage:messagString];
96 | }
97 | }
98 |
99 | static void eos_cb(GstBus *bus, GstMessage *msg, GStreamerBackend *self){
100 | printf("\neos called\n");
101 | gst_element_set_state (self->pipeline, GST_STATE_NULL);
102 | g_main_loop_quit(self->main_loop);
103 | }
104 |
105 | /* Retrieve errors from the bus and show them on the UI */
106 | static void error_cb (GstBus *bus, GstMessage *msg, GStreamerBackend *self)
107 | {
108 | GError *err;
109 | gchar *debug_info;
110 | gchar *message_string;
111 |
112 | gst_message_parse_error (msg, &err, &debug_info);
113 | message_string = g_strdup_printf ("Error received from element %s: %s", GST_OBJECT_NAME (msg->src), err->message);
114 | printf("Some error occured in from element %s: %s", GST_OBJECT_NAME (msg->src), err->message);
115 | g_clear_error (&err);
116 | g_free (debug_info);
117 | [self setUIMessage:message_string];
118 | g_free (message_string);
119 | gst_element_set_state (self->pipeline, GST_STATE_NULL);
120 | }
121 |
122 | /* Notify UI about pipeline state changes */
123 | static void state_changed_cb (GstBus *bus, GstMessage *msg, GStreamerBackend *self)
124 | {
125 | GstState old_state, new_state, pending_state;
126 | gst_message_parse_state_changed (msg, &old_state, &new_state, &pending_state);
127 | /* Only pay attention to messages coming from the pipeline, not its children */
128 | if (GST_MESSAGE_SRC (msg) == GST_OBJECT (self->pipeline)) {
129 | gchar *message = g_strdup_printf("State changed from %s to %s", gst_element_state_get_name(old_state), gst_element_state_get_name(new_state));
130 | [self setUIMessage:message];
131 | g_free (message);
132 | }
133 | }
134 |
135 | /* Check if all conditions are met to report GStreamer as initialized.
136 | * These conditions will change depending on the application */
137 | -(void) check_initialization_complete
138 | {
139 | if (!initialized && main_loop) {
140 | GST_DEBUG ("Initialization complete, notifying application.");
141 | if (ui_delegate && [ui_delegate respondsToSelector:@selector(gStreamerInitialized)])
142 | {
143 | [ui_delegate gStreamerInitialized];
144 | }
145 | initialized = TRUE;
146 | }
147 | }
148 |
149 | /* Main method */
150 | -(void) run_app_pipeline
151 | {
152 | GSource *bus_source;
153 | GError *error = NULL;
154 |
155 | GST_DEBUG ("Creating pipeline");
156 |
157 | /* Create our own GLib Main Context and make it the default one */
158 | context = g_main_context_new ();
159 | g_main_context_push_thread_default(context);
160 |
161 | /* Build pipeline */
162 | /* Change the RTSP URL to your desired URL below */
163 | pipeline = gst_parse_launch("playbin uri=rtsp://username:password@ip_address/additional_stream_url", &error);
164 |
165 |
166 | if (error && !GST_IS_ELEMENT(pipeline)) {
167 | gchar *message = g_strdup_printf("Unable to build pipeline: %s", error->message);
168 | g_clear_error (&error);
169 | [self setUIMessage:message];
170 | g_free (message);
171 | return;
172 | }
173 |
174 | /* Set the pipeline to READY, so it can already accept a window handle */
175 | gst_element_set_state(pipeline, GST_STATE_READY);
176 |
177 | video_sink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY);
178 | if (!video_sink) {
179 | GST_ERROR ("Could not retrieve video sink");
180 | return;
181 | }
182 | gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(video_sink), (guintptr) (id) ui_video_view);
183 |
184 | /* Signals to watch */
185 | bus = gst_element_get_bus (pipeline);
186 | bus_source = gst_bus_create_watch (bus);
187 | g_source_set_callback (bus_source, (GSourceFunc) gst_bus_async_signal_func, NULL, NULL);
188 | g_source_attach (bus_source, context);
189 | g_source_unref (bus_source);
190 | g_signal_connect (G_OBJECT (bus), "message::error", (GCallback)error_cb, (__bridge void *)self);
191 | g_signal_connect (G_OBJECT (bus), "message::eos", (GCallback)eos_cb, (__bridge void *)self);
192 | g_signal_connect (G_OBJECT (bus), "message::state-changed", (GCallback)state_changed_cb, (__bridge void *)self);
193 | gst_object_unref (bus);
194 |
195 | /* Create a GLib Main Loop and set it to run */
196 | GST_DEBUG ("Entering main loop...");
197 | printf("\nEntering main loop..\n");
198 | main_loop = g_main_loop_new (context, FALSE);
199 | //sleep(5);
200 | [self check_initialization_complete];
201 | g_main_loop_run (main_loop);
202 | GST_DEBUG ("Exited main loop");
203 | g_main_loop_unref (main_loop);
204 | main_loop = NULL;
205 |
206 | /* Free resources */
207 | g_main_context_pop_thread_default(context);
208 | g_main_context_unref (context);
209 | gst_element_set_state (pipeline, GST_STATE_NULL);
210 | gst_object_unref (pipeline);
211 | return;
212 | }
213 |
214 | @end
215 |
216 |
217 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 56;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 095960022A407D3A00C0C1BC /* GStreamerSwiftUIDemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 095960012A407D3A00C0C1BC /* GStreamerSwiftUIDemoApp.swift */; };
11 | 095960042A407D3A00C0C1BC /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 095960032A407D3A00C0C1BC /* MainView.swift */; };
12 | 095960062A407D3A00C0C1BC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 095960052A407D3A00C0C1BC /* Assets.xcassets */; };
13 | 095960092A407D3A00C0C1BC /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 095960082A407D3A00C0C1BC /* Preview Assets.xcassets */; };
14 | 095960112A407E6E00C0C1BC /* GStreamer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 095960102A407E6E00C0C1BC /* GStreamer.framework */; };
15 | 095960132A407EDD00C0C1BC /* libiconv.2.4.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 095960122A407EDD00C0C1BC /* libiconv.2.4.0.tbd */; };
16 | 095960152A407EE700C0C1BC /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 095960142A407EE700C0C1BC /* VideoToolbox.framework */; };
17 | 095960172A407EF100C0C1BC /* libc++.1.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 095960162A407EF100C0C1BC /* libc++.1.tbd */; };
18 | 0959601B2A4086D500C0C1BC /* gst_ios_init.m in Sources */ = {isa = PBXBuildFile; fileRef = 0959601A2A4086D500C0C1BC /* gst_ios_init.m */; };
19 | 0959601F2A40D67000C0C1BC /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0959601E2A40D67000C0C1BC /* AVFoundation.framework */; };
20 | 095960212A40D69400C0C1BC /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 095960202A40D69400C0C1BC /* AudioToolbox.framework */; };
21 | 095960232A40D6D300C0C1BC /* libcmph.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 095960222A40D6D300C0C1BC /* libcmph.tbd */; };
22 | 095960262A40EAFF00C0C1BC /* GStreamerBackend.m in Sources */ = {isa = PBXBuildFile; fileRef = 095960252A40EAFF00C0C1BC /* GStreamerBackend.m */; };
23 | 095960282A40EB7100C0C1BC /* GStreamerBackendProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 095960272A40EB7100C0C1BC /* GStreamerBackendProtocol.swift */; };
24 | 0959602A2A40EB9400C0C1BC /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 095960292A40EB9400C0C1BC /* CameraView.swift */; };
25 | 0959602C2A40EBBE00C0C1BC /* CameraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0959602B2A40EBBE00C0C1BC /* CameraViewController.swift */; };
26 | /* End PBXBuildFile section */
27 |
28 | /* Begin PBXFileReference section */
29 | 09595FFE2A407D3A00C0C1BC /* GStreamerSwiftUIDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GStreamerSwiftUIDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
30 | 095960012A407D3A00C0C1BC /* GStreamerSwiftUIDemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GStreamerSwiftUIDemoApp.swift; sourceTree = ""; };
31 | 095960032A407D3A00C0C1BC /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; };
32 | 095960052A407D3A00C0C1BC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
33 | 095960082A407D3A00C0C1BC /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
34 | 095960102A407E6E00C0C1BC /* GStreamer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GStreamer.framework; path = ../../Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework; sourceTree = ""; };
35 | 095960122A407EDD00C0C1BC /* libiconv.2.4.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.2.4.0.tbd; path = usr/lib/libiconv.2.4.0.tbd; sourceTree = SDKROOT; };
36 | 095960142A407EE700C0C1BC /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = System/Library/Frameworks/VideoToolbox.framework; sourceTree = SDKROOT; };
37 | 095960162A407EF100C0C1BC /* libc++.1.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.1.tbd"; path = "usr/lib/libc++.1.tbd"; sourceTree = SDKROOT; };
38 | 095960182A4086D400C0C1BC /* GStreamerSwiftUIDemo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "GStreamerSwiftUIDemo-Bridging-Header.h"; sourceTree = ""; };
39 | 095960192A4086D500C0C1BC /* gst_ios_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gst_ios_init.h; sourceTree = ""; };
40 | 0959601A2A4086D500C0C1BC /* gst_ios_init.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = gst_ios_init.m; sourceTree = ""; };
41 | 0959601E2A40D67000C0C1BC /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
42 | 095960202A40D69400C0C1BC /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
43 | 095960222A40D6D300C0C1BC /* libcmph.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcmph.tbd; path = usr/lib/libcmph.tbd; sourceTree = SDKROOT; };
44 | 095960242A40EAFF00C0C1BC /* GStreamerBackend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GStreamerBackend.h; sourceTree = ""; };
45 | 095960252A40EAFF00C0C1BC /* GStreamerBackend.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GStreamerBackend.m; sourceTree = ""; };
46 | 095960272A40EB7100C0C1BC /* GStreamerBackendProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GStreamerBackendProtocol.swift; sourceTree = ""; };
47 | 095960292A40EB9400C0C1BC /* CameraView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraView.swift; sourceTree = ""; };
48 | 0959602B2A40EBBE00C0C1BC /* CameraViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraViewController.swift; sourceTree = ""; };
49 | /* End PBXFileReference section */
50 |
51 | /* Begin PBXFrameworksBuildPhase section */
52 | 09595FFB2A407D3A00C0C1BC /* Frameworks */ = {
53 | isa = PBXFrameworksBuildPhase;
54 | buildActionMask = 2147483647;
55 | files = (
56 | 095960232A40D6D300C0C1BC /* libcmph.tbd in Frameworks */,
57 | 095960212A40D69400C0C1BC /* AudioToolbox.framework in Frameworks */,
58 | 0959601F2A40D67000C0C1BC /* AVFoundation.framework in Frameworks */,
59 | 095960172A407EF100C0C1BC /* libc++.1.tbd in Frameworks */,
60 | 095960152A407EE700C0C1BC /* VideoToolbox.framework in Frameworks */,
61 | 095960132A407EDD00C0C1BC /* libiconv.2.4.0.tbd in Frameworks */,
62 | 095960112A407E6E00C0C1BC /* GStreamer.framework in Frameworks */,
63 | );
64 | runOnlyForDeploymentPostprocessing = 0;
65 | };
66 | /* End PBXFrameworksBuildPhase section */
67 |
68 | /* Begin PBXGroup section */
69 | 09595FF52A407D3A00C0C1BC = {
70 | isa = PBXGroup;
71 | children = (
72 | 095960002A407D3A00C0C1BC /* GStreamerSwiftUIDemo */,
73 | 09595FFF2A407D3A00C0C1BC /* Products */,
74 | 0959600F2A407E6E00C0C1BC /* Frameworks */,
75 | );
76 | sourceTree = "";
77 | };
78 | 09595FFF2A407D3A00C0C1BC /* Products */ = {
79 | isa = PBXGroup;
80 | children = (
81 | 09595FFE2A407D3A00C0C1BC /* GStreamerSwiftUIDemo.app */,
82 | );
83 | name = Products;
84 | sourceTree = "";
85 | };
86 | 095960002A407D3A00C0C1BC /* GStreamerSwiftUIDemo */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 095960012A407D3A00C0C1BC /* GStreamerSwiftUIDemoApp.swift */,
90 | 095960242A40EAFF00C0C1BC /* GStreamerBackend.h */,
91 | 095960252A40EAFF00C0C1BC /* GStreamerBackend.m */,
92 | 095960032A407D3A00C0C1BC /* MainView.swift */,
93 | 095960052A407D3A00C0C1BC /* Assets.xcassets */,
94 | 095960072A407D3A00C0C1BC /* Preview Content */,
95 | 095960192A4086D500C0C1BC /* gst_ios_init.h */,
96 | 0959601A2A4086D500C0C1BC /* gst_ios_init.m */,
97 | 095960182A4086D400C0C1BC /* GStreamerSwiftUIDemo-Bridging-Header.h */,
98 | 095960272A40EB7100C0C1BC /* GStreamerBackendProtocol.swift */,
99 | 095960292A40EB9400C0C1BC /* CameraView.swift */,
100 | 0959602B2A40EBBE00C0C1BC /* CameraViewController.swift */,
101 | );
102 | path = GStreamerSwiftUIDemo;
103 | sourceTree = "";
104 | };
105 | 095960072A407D3A00C0C1BC /* Preview Content */ = {
106 | isa = PBXGroup;
107 | children = (
108 | 095960082A407D3A00C0C1BC /* Preview Assets.xcassets */,
109 | );
110 | path = "Preview Content";
111 | sourceTree = "";
112 | };
113 | 0959600F2A407E6E00C0C1BC /* Frameworks */ = {
114 | isa = PBXGroup;
115 | children = (
116 | 095960222A40D6D300C0C1BC /* libcmph.tbd */,
117 | 095960202A40D69400C0C1BC /* AudioToolbox.framework */,
118 | 0959601E2A40D67000C0C1BC /* AVFoundation.framework */,
119 | 095960162A407EF100C0C1BC /* libc++.1.tbd */,
120 | 095960142A407EE700C0C1BC /* VideoToolbox.framework */,
121 | 095960122A407EDD00C0C1BC /* libiconv.2.4.0.tbd */,
122 | 095960102A407E6E00C0C1BC /* GStreamer.framework */,
123 | );
124 | name = Frameworks;
125 | sourceTree = "";
126 | };
127 | /* End PBXGroup section */
128 |
129 | /* Begin PBXNativeTarget section */
130 | 09595FFD2A407D3A00C0C1BC /* GStreamerSwiftUIDemo */ = {
131 | isa = PBXNativeTarget;
132 | buildConfigurationList = 0959600C2A407D3A00C0C1BC /* Build configuration list for PBXNativeTarget "GStreamerSwiftUIDemo" */;
133 | buildPhases = (
134 | 09595FFA2A407D3A00C0C1BC /* Sources */,
135 | 09595FFB2A407D3A00C0C1BC /* Frameworks */,
136 | 09595FFC2A407D3A00C0C1BC /* Resources */,
137 | );
138 | buildRules = (
139 | );
140 | dependencies = (
141 | );
142 | name = GStreamerSwiftUIDemo;
143 | productName = GStreamerSwiftUIDemo;
144 | productReference = 09595FFE2A407D3A00C0C1BC /* GStreamerSwiftUIDemo.app */;
145 | productType = "com.apple.product-type.application";
146 | };
147 | /* End PBXNativeTarget section */
148 |
149 | /* Begin PBXProject section */
150 | 09595FF62A407D3A00C0C1BC /* Project object */ = {
151 | isa = PBXProject;
152 | attributes = {
153 | BuildIndependentTargetsInParallel = 1;
154 | LastSwiftUpdateCheck = 1430;
155 | LastUpgradeCheck = 1430;
156 | TargetAttributes = {
157 | 09595FFD2A407D3A00C0C1BC = {
158 | CreatedOnToolsVersion = 14.3.1;
159 | LastSwiftMigration = 1430;
160 | };
161 | };
162 | };
163 | buildConfigurationList = 09595FF92A407D3A00C0C1BC /* Build configuration list for PBXProject "GStreamerSwiftUIDemo" */;
164 | compatibilityVersion = "Xcode 14.0";
165 | developmentRegion = en;
166 | hasScannedForEncodings = 0;
167 | knownRegions = (
168 | en,
169 | Base,
170 | );
171 | mainGroup = 09595FF52A407D3A00C0C1BC;
172 | productRefGroup = 09595FFF2A407D3A00C0C1BC /* Products */;
173 | projectDirPath = "";
174 | projectRoot = "";
175 | targets = (
176 | 09595FFD2A407D3A00C0C1BC /* GStreamerSwiftUIDemo */,
177 | );
178 | };
179 | /* End PBXProject section */
180 |
181 | /* Begin PBXResourcesBuildPhase section */
182 | 09595FFC2A407D3A00C0C1BC /* Resources */ = {
183 | isa = PBXResourcesBuildPhase;
184 | buildActionMask = 2147483647;
185 | files = (
186 | 095960092A407D3A00C0C1BC /* Preview Assets.xcassets in Resources */,
187 | 095960062A407D3A00C0C1BC /* Assets.xcassets in Resources */,
188 | );
189 | runOnlyForDeploymentPostprocessing = 0;
190 | };
191 | /* End PBXResourcesBuildPhase section */
192 |
193 | /* Begin PBXSourcesBuildPhase section */
194 | 09595FFA2A407D3A00C0C1BC /* Sources */ = {
195 | isa = PBXSourcesBuildPhase;
196 | buildActionMask = 2147483647;
197 | files = (
198 | 0959601B2A4086D500C0C1BC /* gst_ios_init.m in Sources */,
199 | 095960262A40EAFF00C0C1BC /* GStreamerBackend.m in Sources */,
200 | 095960042A407D3A00C0C1BC /* MainView.swift in Sources */,
201 | 0959602A2A40EB9400C0C1BC /* CameraView.swift in Sources */,
202 | 0959602C2A40EBBE00C0C1BC /* CameraViewController.swift in Sources */,
203 | 095960282A40EB7100C0C1BC /* GStreamerBackendProtocol.swift in Sources */,
204 | 095960022A407D3A00C0C1BC /* GStreamerSwiftUIDemoApp.swift in Sources */,
205 | );
206 | runOnlyForDeploymentPostprocessing = 0;
207 | };
208 | /* End PBXSourcesBuildPhase section */
209 |
210 | /* Begin XCBuildConfiguration section */
211 | 0959600A2A407D3A00C0C1BC /* Debug */ = {
212 | isa = XCBuildConfiguration;
213 | buildSettings = {
214 | ALWAYS_SEARCH_USER_PATHS = NO;
215 | CLANG_ANALYZER_NONNULL = YES;
216 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
217 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
218 | CLANG_ENABLE_MODULES = YES;
219 | CLANG_ENABLE_OBJC_ARC = YES;
220 | CLANG_ENABLE_OBJC_WEAK = YES;
221 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
222 | CLANG_WARN_BOOL_CONVERSION = YES;
223 | CLANG_WARN_COMMA = YES;
224 | CLANG_WARN_CONSTANT_CONVERSION = YES;
225 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
226 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
227 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
228 | CLANG_WARN_EMPTY_BODY = YES;
229 | CLANG_WARN_ENUM_CONVERSION = YES;
230 | CLANG_WARN_INFINITE_RECURSION = YES;
231 | CLANG_WARN_INT_CONVERSION = YES;
232 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
233 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
234 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
235 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
236 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
237 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
238 | CLANG_WARN_STRICT_PROTOTYPES = YES;
239 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
240 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
241 | CLANG_WARN_UNREACHABLE_CODE = YES;
242 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
243 | COPY_PHASE_STRIP = NO;
244 | DEBUG_INFORMATION_FORMAT = dwarf;
245 | ENABLE_STRICT_OBJC_MSGSEND = YES;
246 | ENABLE_TESTABILITY = YES;
247 | EXCLUDED_ARCHS = arm64;
248 | FRAMEWORK_SEARCH_PATHS = /Users/raktimbora/Library/Developer/GStreamer/iPhone.sdk/;
249 | GCC_C_LANGUAGE_STANDARD = gnu11;
250 | GCC_DYNAMIC_NO_PIC = NO;
251 | GCC_NO_COMMON_BLOCKS = YES;
252 | GCC_OPTIMIZATION_LEVEL = 0;
253 | GCC_PREPROCESSOR_DEFINITIONS = (
254 | "DEBUG=1",
255 | "$(inherited)",
256 | );
257 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
258 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
259 | GCC_WARN_UNDECLARED_SELECTOR = YES;
260 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
261 | GCC_WARN_UNUSED_FUNCTION = YES;
262 | GCC_WARN_UNUSED_VARIABLE = YES;
263 | HEADER_SEARCH_PATHS = "";
264 | IPHONEOS_DEPLOYMENT_TARGET = 16.4;
265 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
266 | MTL_FAST_MATH = YES;
267 | ONLY_ACTIVE_ARCH = YES;
268 | SDKROOT = iphoneos;
269 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
270 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
271 | };
272 | name = Debug;
273 | };
274 | 0959600B2A407D3A00C0C1BC /* Release */ = {
275 | isa = XCBuildConfiguration;
276 | buildSettings = {
277 | ALWAYS_SEARCH_USER_PATHS = NO;
278 | CLANG_ANALYZER_NONNULL = YES;
279 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
280 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
281 | CLANG_ENABLE_MODULES = YES;
282 | CLANG_ENABLE_OBJC_ARC = YES;
283 | CLANG_ENABLE_OBJC_WEAK = YES;
284 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
285 | CLANG_WARN_BOOL_CONVERSION = YES;
286 | CLANG_WARN_COMMA = YES;
287 | CLANG_WARN_CONSTANT_CONVERSION = YES;
288 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
289 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
290 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
291 | CLANG_WARN_EMPTY_BODY = YES;
292 | CLANG_WARN_ENUM_CONVERSION = YES;
293 | CLANG_WARN_INFINITE_RECURSION = YES;
294 | CLANG_WARN_INT_CONVERSION = YES;
295 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
296 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
297 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
298 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
299 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
300 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
301 | CLANG_WARN_STRICT_PROTOTYPES = YES;
302 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
303 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
304 | CLANG_WARN_UNREACHABLE_CODE = YES;
305 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
306 | COPY_PHASE_STRIP = NO;
307 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
308 | ENABLE_NS_ASSERTIONS = NO;
309 | ENABLE_STRICT_OBJC_MSGSEND = YES;
310 | EXCLUDED_ARCHS = arm64;
311 | FRAMEWORK_SEARCH_PATHS = /Users/raktimbora/Library/Developer/GStreamer/iPhone.sdk/;
312 | GCC_C_LANGUAGE_STANDARD = gnu11;
313 | GCC_NO_COMMON_BLOCKS = YES;
314 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
315 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
316 | GCC_WARN_UNDECLARED_SELECTOR = YES;
317 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
318 | GCC_WARN_UNUSED_FUNCTION = YES;
319 | GCC_WARN_UNUSED_VARIABLE = YES;
320 | HEADER_SEARCH_PATHS = "";
321 | IPHONEOS_DEPLOYMENT_TARGET = 16.4;
322 | MTL_ENABLE_DEBUG_INFO = NO;
323 | MTL_FAST_MATH = YES;
324 | SDKROOT = iphoneos;
325 | SWIFT_COMPILATION_MODE = wholemodule;
326 | SWIFT_OPTIMIZATION_LEVEL = "-O";
327 | VALIDATE_PRODUCT = YES;
328 | };
329 | name = Release;
330 | };
331 | 0959600D2A407D3A00C0C1BC /* Debug */ = {
332 | isa = XCBuildConfiguration;
333 | buildSettings = {
334 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
335 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
336 | CLANG_ENABLE_MODULES = YES;
337 | CLANG_WARN_DOCUMENTATION_COMMENTS = NO;
338 | CODE_SIGN_STYLE = Automatic;
339 | CURRENT_PROJECT_VERSION = 1;
340 | DEVELOPMENT_ASSET_PATHS = "\"GStreamerSwiftUIDemo/Preview Content\"";
341 | DEVELOPMENT_TEAM = 58N3QYAX7K;
342 | ENABLE_PREVIEWS = YES;
343 | FRAMEWORK_SEARCH_PATHS = "${HOME}/Library/Developer/GStreamer/iPhone.sdk/";
344 | GENERATE_INFOPLIST_FILE = YES;
345 | HEADER_SEARCH_PATHS = "/Users/raktimbora/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers/**";
346 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
347 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
348 | INFOPLIST_KEY_UILaunchScreen_Generation = YES;
349 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
350 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
351 | IPHONEOS_DEPLOYMENT_TARGET = 16.3;
352 | LD_RUNPATH_SEARCH_PATHS = (
353 | "$(inherited)",
354 | "@executable_path/Frameworks",
355 | );
356 | MARKETING_VERSION = 1.0;
357 | OTHER_LDFLAGS = (
358 | "-lresolv",
359 | "-framework",
360 | CoreFoundation,
361 | "-framework",
362 | Foundation,
363 | "-framework",
364 | AVFoundation,
365 | "-framework",
366 | CoreMedia,
367 | "-framework",
368 | CoreVideo,
369 | "-framework",
370 | CoreAudio,
371 | "-framework",
372 | AudioToolbox,
373 | "-framework",
374 | OpenGLES,
375 | "-framework",
376 | AssetsLibrary,
377 | "-framework",
378 | QuartzCore,
379 | "-framework",
380 | AssetsLibrary,
381 | "-framework",
382 | Metal,
383 | "-framework",
384 | IOSurface,
385 | "$(inherited)",
386 | );
387 | PRODUCT_BUNDLE_IDENTIFIER = com.itonimanalytics.iosapps.GStreamerSwiftUIDemo;
388 | PRODUCT_NAME = "$(TARGET_NAME)";
389 | SWIFT_EMIT_LOC_STRINGS = YES;
390 | SWIFT_OBJC_BRIDGING_HEADER = "GStreamerSwiftUIDemo/GStreamerSwiftUIDemo-Bridging-Header.h";
391 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
392 | SWIFT_VERSION = 5.0;
393 | TARGETED_DEVICE_FAMILY = "1,2";
394 | };
395 | name = Debug;
396 | };
397 | 0959600E2A407D3A00C0C1BC /* Release */ = {
398 | isa = XCBuildConfiguration;
399 | buildSettings = {
400 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
401 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
402 | CLANG_ENABLE_MODULES = YES;
403 | CLANG_WARN_DOCUMENTATION_COMMENTS = NO;
404 | CODE_SIGN_STYLE = Automatic;
405 | CURRENT_PROJECT_VERSION = 1;
406 | DEVELOPMENT_ASSET_PATHS = "\"GStreamerSwiftUIDemo/Preview Content\"";
407 | DEVELOPMENT_TEAM = 58N3QYAX7K;
408 | ENABLE_PREVIEWS = YES;
409 | FRAMEWORK_SEARCH_PATHS = "${HOME}/Library/Developer/GStreamer/iPhone.sdk/";
410 | GENERATE_INFOPLIST_FILE = YES;
411 | HEADER_SEARCH_PATHS = "/Users/raktimbora/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers/**";
412 | INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
413 | INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
414 | INFOPLIST_KEY_UILaunchScreen_Generation = YES;
415 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
416 | INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
417 | IPHONEOS_DEPLOYMENT_TARGET = 16.3;
418 | LD_RUNPATH_SEARCH_PATHS = (
419 | "$(inherited)",
420 | "@executable_path/Frameworks",
421 | );
422 | MARKETING_VERSION = 1.0;
423 | OTHER_LDFLAGS = (
424 | "-lresolv",
425 | "-framework",
426 | CoreFoundation,
427 | "-framework",
428 | Foundation,
429 | "-framework",
430 | AVFoundation,
431 | "-framework",
432 | CoreMedia,
433 | "-framework",
434 | CoreVideo,
435 | "-framework",
436 | CoreAudio,
437 | "-framework",
438 | AudioToolbox,
439 | "-framework",
440 | OpenGLES,
441 | "-framework",
442 | AssetsLibrary,
443 | "-framework",
444 | QuartzCore,
445 | "-framework",
446 | AssetsLibrary,
447 | "-framework",
448 | Metal,
449 | "-framework",
450 | IOSurface,
451 | "$(inherited)",
452 | );
453 | PRODUCT_BUNDLE_IDENTIFIER = com.itonimanalytics.iosapps.GStreamerSwiftUIDemo;
454 | PRODUCT_NAME = "$(TARGET_NAME)";
455 | SWIFT_EMIT_LOC_STRINGS = YES;
456 | SWIFT_OBJC_BRIDGING_HEADER = "GStreamerSwiftUIDemo/GStreamerSwiftUIDemo-Bridging-Header.h";
457 | SWIFT_VERSION = 5.0;
458 | TARGETED_DEVICE_FAMILY = "1,2";
459 | };
460 | name = Release;
461 | };
462 | /* End XCBuildConfiguration section */
463 |
464 | /* Begin XCConfigurationList section */
465 | 09595FF92A407D3A00C0C1BC /* Build configuration list for PBXProject "GStreamerSwiftUIDemo" */ = {
466 | isa = XCConfigurationList;
467 | buildConfigurations = (
468 | 0959600A2A407D3A00C0C1BC /* Debug */,
469 | 0959600B2A407D3A00C0C1BC /* Release */,
470 | );
471 | defaultConfigurationIsVisible = 0;
472 | defaultConfigurationName = Release;
473 | };
474 | 0959600C2A407D3A00C0C1BC /* Build configuration list for PBXNativeTarget "GStreamerSwiftUIDemo" */ = {
475 | isa = XCConfigurationList;
476 | buildConfigurations = (
477 | 0959600D2A407D3A00C0C1BC /* Debug */,
478 | 0959600E2A407D3A00C0C1BC /* Release */,
479 | );
480 | defaultConfigurationIsVisible = 0;
481 | defaultConfigurationName = Release;
482 | };
483 | /* End XCConfigurationList section */
484 | };
485 | rootObject = 09595FF62A407D3A00C0C1BC /* Project object */;
486 | }
487 |
--------------------------------------------------------------------------------
/GStreamerSwiftUIDemo/gst_ios_init.m:
--------------------------------------------------------------------------------
1 | #include "gst_ios_init.h"
2 |
3 | #include
4 | #include
5 |
6 | #if defined(GST_IOS_PLUGIN_COREELEMENTS) || defined(GST_IOS_PLUGINS_CORE)
7 | GST_PLUGIN_STATIC_DECLARE(coreelements);
8 | #endif
9 | #if defined(GST_IOS_PLUGIN_CORETRACERS) || defined(GST_IOS_PLUGINS_CORE)
10 | GST_PLUGIN_STATIC_DECLARE(coretracers);
11 | #endif
12 | #if defined(GST_IOS_PLUGIN_ADDER) || defined(GST_IOS_PLUGINS_CORE)
13 | GST_PLUGIN_STATIC_DECLARE(adder);
14 | #endif
15 | #if defined(GST_IOS_PLUGIN_APP) || defined(GST_IOS_PLUGINS_CORE)
16 | GST_PLUGIN_STATIC_DECLARE(app);
17 | #endif
18 | #if defined(GST_IOS_PLUGIN_AUDIOCONVERT) || defined(GST_IOS_PLUGINS_CORE)
19 | GST_PLUGIN_STATIC_DECLARE(audioconvert);
20 | #endif
21 | #if defined(GST_IOS_PLUGIN_AUDIOMIXER) || defined(GST_IOS_PLUGINS_CORE)
22 | GST_PLUGIN_STATIC_DECLARE(audiomixer);
23 | #endif
24 | #if defined(GST_IOS_PLUGIN_AUDIORATE) || defined(GST_IOS_PLUGINS_CORE)
25 | GST_PLUGIN_STATIC_DECLARE(audiorate);
26 | #endif
27 | #if defined(GST_IOS_PLUGIN_AUDIORESAMPLE) || defined(GST_IOS_PLUGINS_CORE)
28 | GST_PLUGIN_STATIC_DECLARE(audioresample);
29 | #endif
30 | #if defined(GST_IOS_PLUGIN_AUDIOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
31 | GST_PLUGIN_STATIC_DECLARE(audiotestsrc);
32 | #endif
33 | #if defined(GST_IOS_PLUGIN_COMPOSITOR) || defined(GST_IOS_PLUGINS_CORE)
34 | GST_PLUGIN_STATIC_DECLARE(compositor);
35 | #endif
36 | #if defined(GST_IOS_PLUGIN_GIO) || defined(GST_IOS_PLUGINS_CORE)
37 | GST_PLUGIN_STATIC_DECLARE(gio);
38 | #endif
39 | #if defined(GST_IOS_PLUGIN_OVERLAYCOMPOSITION) || defined(GST_IOS_PLUGINS_CORE)
40 | GST_PLUGIN_STATIC_DECLARE(overlaycomposition);
41 | #endif
42 | #if defined(GST_IOS_PLUGIN_PANGO) || defined(GST_IOS_PLUGINS_CORE)
43 | GST_PLUGIN_STATIC_DECLARE(pango);
44 | #endif
45 | #if defined(GST_IOS_PLUGIN_RAWPARSE) || defined(GST_IOS_PLUGINS_CORE)
46 | GST_PLUGIN_STATIC_DECLARE(rawparse);
47 | #endif
48 | #if defined(GST_IOS_PLUGIN_TYPEFINDFUNCTIONS) || defined(GST_IOS_PLUGINS_CORE)
49 | GST_PLUGIN_STATIC_DECLARE(typefindfunctions);
50 | #endif
51 | #if defined(GST_IOS_PLUGIN_VIDEOCONVERTSCALE) || defined(GST_IOS_PLUGINS_CORE)
52 | GST_PLUGIN_STATIC_DECLARE(videoconvertscale);
53 | #endif
54 | #if defined(GST_IOS_PLUGIN_VIDEORATE) || defined(GST_IOS_PLUGINS_CORE)
55 | GST_PLUGIN_STATIC_DECLARE(videorate);
56 | #endif
57 | #if defined(GST_IOS_PLUGIN_VIDEOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
58 | GST_PLUGIN_STATIC_DECLARE(videotestsrc);
59 | #endif
60 | #if defined(GST_IOS_PLUGIN_VOLUME) || defined(GST_IOS_PLUGINS_CORE)
61 | GST_PLUGIN_STATIC_DECLARE(volume);
62 | #endif
63 | #if defined(GST_IOS_PLUGIN_AUTODETECT) || defined(GST_IOS_PLUGINS_CORE)
64 | GST_PLUGIN_STATIC_DECLARE(autodetect);
65 | #endif
66 | #if defined(GST_IOS_PLUGIN_VIDEOFILTER) || defined(GST_IOS_PLUGINS_CORE)
67 | GST_PLUGIN_STATIC_DECLARE(videofilter);
68 | #endif
69 | #if defined(GST_IOS_PLUGIN_SUBPARSE) || defined(GST_IOS_PLUGINS_CODECS)
70 | GST_PLUGIN_STATIC_DECLARE(subparse);
71 | #endif
72 | #if defined(GST_IOS_PLUGIN_OGG) || defined(GST_IOS_PLUGINS_CODECS)
73 | GST_PLUGIN_STATIC_DECLARE(ogg);
74 | #endif
75 | #if defined(GST_IOS_PLUGIN_THEORA) || defined(GST_IOS_PLUGINS_CODECS)
76 | GST_PLUGIN_STATIC_DECLARE(theora);
77 | #endif
78 | #if defined(GST_IOS_PLUGIN_VORBIS) || defined(GST_IOS_PLUGINS_CODECS)
79 | GST_PLUGIN_STATIC_DECLARE(vorbis);
80 | #endif
81 | #if defined(GST_IOS_PLUGIN_OPUS) || defined(GST_IOS_PLUGINS_CODECS)
82 | GST_PLUGIN_STATIC_DECLARE(opus);
83 | #endif
84 | #if defined(GST_IOS_PLUGIN_ALAW) || defined(GST_IOS_PLUGINS_CODECS)
85 | GST_PLUGIN_STATIC_DECLARE(alaw);
86 | #endif
87 | #if defined(GST_IOS_PLUGIN_APETAG) || defined(GST_IOS_PLUGINS_CODECS)
88 | GST_PLUGIN_STATIC_DECLARE(apetag);
89 | #endif
90 | #if defined(GST_IOS_PLUGIN_AUDIOPARSERS) || defined(GST_IOS_PLUGINS_CODECS)
91 | GST_PLUGIN_STATIC_DECLARE(audioparsers);
92 | #endif
93 | #if defined(GST_IOS_PLUGIN_AUPARSE) || defined(GST_IOS_PLUGINS_CODECS)
94 | GST_PLUGIN_STATIC_DECLARE(auparse);
95 | #endif
96 | #if defined(GST_IOS_PLUGIN_AVI) || defined(GST_IOS_PLUGINS_CODECS)
97 | GST_PLUGIN_STATIC_DECLARE(avi);
98 | #endif
99 | #if defined(GST_IOS_PLUGIN_DV) || defined(GST_IOS_PLUGINS_CODECS)
100 | GST_PLUGIN_STATIC_DECLARE(dv);
101 | #endif
102 | #if defined(GST_IOS_PLUGIN_FLAC) || defined(GST_IOS_PLUGINS_CODECS)
103 | GST_PLUGIN_STATIC_DECLARE(flac);
104 | #endif
105 | #if defined(GST_IOS_PLUGIN_FLV) || defined(GST_IOS_PLUGINS_CODECS)
106 | GST_PLUGIN_STATIC_DECLARE(flv);
107 | #endif
108 | #if defined(GST_IOS_PLUGIN_FLXDEC) || defined(GST_IOS_PLUGINS_CODECS)
109 | GST_PLUGIN_STATIC_DECLARE(flxdec);
110 | #endif
111 | #if defined(GST_IOS_PLUGIN_ICYDEMUX) || defined(GST_IOS_PLUGINS_CODECS)
112 | GST_PLUGIN_STATIC_DECLARE(icydemux);
113 | #endif
114 | #if defined(GST_IOS_PLUGIN_ID3DEMUX) || defined(GST_IOS_PLUGINS_CODECS)
115 | GST_PLUGIN_STATIC_DECLARE(id3demux);
116 | #endif
117 | #if defined(GST_IOS_PLUGIN_ISOMP4) || defined(GST_IOS_PLUGINS_CODECS)
118 | GST_PLUGIN_STATIC_DECLARE(isomp4);
119 | #endif
120 | #if defined(GST_IOS_PLUGIN_JPEG) || defined(GST_IOS_PLUGINS_CODECS)
121 | GST_PLUGIN_STATIC_DECLARE(jpeg);
122 | #endif
123 | #if defined(GST_IOS_PLUGIN_LAME) || defined(GST_IOS_PLUGINS_CODECS)
124 | GST_PLUGIN_STATIC_DECLARE(lame);
125 | #endif
126 | #if defined(GST_IOS_PLUGIN_MATROSKA) || defined(GST_IOS_PLUGINS_CODECS)
127 | GST_PLUGIN_STATIC_DECLARE(matroska);
128 | #endif
129 | #if defined(GST_IOS_PLUGIN_MPG123) || defined(GST_IOS_PLUGINS_CODECS)
130 | GST_PLUGIN_STATIC_DECLARE(mpg123);
131 | #endif
132 | #if defined(GST_IOS_PLUGIN_MULAW) || defined(GST_IOS_PLUGINS_CODECS)
133 | GST_PLUGIN_STATIC_DECLARE(mulaw);
134 | #endif
135 | #if defined(GST_IOS_PLUGIN_MULTIPART) || defined(GST_IOS_PLUGINS_CODECS)
136 | GST_PLUGIN_STATIC_DECLARE(multipart);
137 | #endif
138 | #if defined(GST_IOS_PLUGIN_PNG) || defined(GST_IOS_PLUGINS_CODECS)
139 | GST_PLUGIN_STATIC_DECLARE(png);
140 | #endif
141 | #if defined(GST_IOS_PLUGIN_SPEEX) || defined(GST_IOS_PLUGINS_CODECS)
142 | GST_PLUGIN_STATIC_DECLARE(speex);
143 | #endif
144 | #if defined(GST_IOS_PLUGIN_TAGLIB) || defined(GST_IOS_PLUGINS_CODECS)
145 | GST_PLUGIN_STATIC_DECLARE(taglib);
146 | #endif
147 | #if defined(GST_IOS_PLUGIN_VPX) || defined(GST_IOS_PLUGINS_CODECS)
148 | GST_PLUGIN_STATIC_DECLARE(vpx);
149 | #endif
150 | #if defined(GST_IOS_PLUGIN_WAVENC) || defined(GST_IOS_PLUGINS_CODECS)
151 | GST_PLUGIN_STATIC_DECLARE(wavenc);
152 | #endif
153 | #if defined(GST_IOS_PLUGIN_WAVPACK) || defined(GST_IOS_PLUGINS_CODECS)
154 | GST_PLUGIN_STATIC_DECLARE(wavpack);
155 | #endif
156 | #if defined(GST_IOS_PLUGIN_WAVPARSE) || defined(GST_IOS_PLUGINS_CODECS)
157 | GST_PLUGIN_STATIC_DECLARE(wavparse);
158 | #endif
159 | #if defined(GST_IOS_PLUGIN_Y4MENC) || defined(GST_IOS_PLUGINS_CODECS)
160 | GST_PLUGIN_STATIC_DECLARE(y4menc);
161 | #endif
162 | #if defined(GST_IOS_PLUGIN_ADPCMDEC) || defined(GST_IOS_PLUGINS_CODECS)
163 | GST_PLUGIN_STATIC_DECLARE(adpcmdec);
164 | #endif
165 | #if defined(GST_IOS_PLUGIN_ADPCMENC) || defined(GST_IOS_PLUGINS_CODECS)
166 | GST_PLUGIN_STATIC_DECLARE(adpcmenc);
167 | #endif
168 | #if defined(GST_IOS_PLUGIN_DASH) || defined(GST_IOS_PLUGINS_CODECS)
169 | GST_PLUGIN_STATIC_DECLARE(dash);
170 | #endif
171 | #if defined(GST_IOS_PLUGIN_DVBSUBOVERLAY) || defined(GST_IOS_PLUGINS_CODECS)
172 | GST_PLUGIN_STATIC_DECLARE(dvbsuboverlay);
173 | #endif
174 | #if defined(GST_IOS_PLUGIN_DVDSPU) || defined(GST_IOS_PLUGINS_CODECS)
175 | GST_PLUGIN_STATIC_DECLARE(dvdspu);
176 | #endif
177 | #if defined(GST_IOS_PLUGIN_HLS) || defined(GST_IOS_PLUGINS_CODECS)
178 | GST_PLUGIN_STATIC_DECLARE(hls);
179 | #endif
180 | #if defined(GST_IOS_PLUGIN_ID3TAG) || defined(GST_IOS_PLUGINS_CODECS)
181 | GST_PLUGIN_STATIC_DECLARE(id3tag);
182 | #endif
183 | #if defined(GST_IOS_PLUGIN_MIDI) || defined(GST_IOS_PLUGINS_CODECS)
184 | GST_PLUGIN_STATIC_DECLARE(midi);
185 | #endif
186 | #if defined(GST_IOS_PLUGIN_MXF) || defined(GST_IOS_PLUGINS_CODECS)
187 | GST_PLUGIN_STATIC_DECLARE(mxf);
188 | #endif
189 | #if defined(GST_IOS_PLUGIN_OPENH264) || defined(GST_IOS_PLUGINS_CODECS)
190 | GST_PLUGIN_STATIC_DECLARE(openh264);
191 | #endif
192 | #if defined(GST_IOS_PLUGIN_OPUSPARSE) || defined(GST_IOS_PLUGINS_CODECS)
193 | GST_PLUGIN_STATIC_DECLARE(opusparse);
194 | #endif
195 | #if defined(GST_IOS_PLUGIN_PCAPPARSE) || defined(GST_IOS_PLUGINS_CODECS)
196 | GST_PLUGIN_STATIC_DECLARE(pcapparse);
197 | #endif
198 | #if defined(GST_IOS_PLUGIN_PNM) || defined(GST_IOS_PLUGINS_CODECS)
199 | GST_PLUGIN_STATIC_DECLARE(pnm);
200 | #endif
201 | #if defined(GST_IOS_PLUGIN_RFBSRC) || defined(GST_IOS_PLUGINS_CODECS)
202 | GST_PLUGIN_STATIC_DECLARE(rfbsrc);
203 | #endif
204 | #if defined(GST_IOS_PLUGIN_SIREN) || defined(GST_IOS_PLUGINS_CODECS)
205 | GST_PLUGIN_STATIC_DECLARE(siren);
206 | #endif
207 | #if defined(GST_IOS_PLUGIN_SMOOTHSTREAMING) || defined(GST_IOS_PLUGINS_CODECS)
208 | GST_PLUGIN_STATIC_DECLARE(smoothstreaming);
209 | #endif
210 | #if defined(GST_IOS_PLUGIN_SUBENC) || defined(GST_IOS_PLUGINS_CODECS)
211 | GST_PLUGIN_STATIC_DECLARE(subenc);
212 | #endif
213 | #if defined(GST_IOS_PLUGIN_VIDEOPARSERSBAD) || defined(GST_IOS_PLUGINS_CODECS)
214 | GST_PLUGIN_STATIC_DECLARE(videoparsersbad);
215 | #endif
216 | #if defined(GST_IOS_PLUGIN_Y4MDEC) || defined(GST_IOS_PLUGINS_CODECS)
217 | GST_PLUGIN_STATIC_DECLARE(y4mdec);
218 | #endif
219 | #if defined(GST_IOS_PLUGIN_JPEGFORMAT) || defined(GST_IOS_PLUGINS_CODECS)
220 | GST_PLUGIN_STATIC_DECLARE(jpegformat);
221 | #endif
222 | #if defined(GST_IOS_PLUGIN_GDP) || defined(GST_IOS_PLUGINS_CODECS)
223 | GST_PLUGIN_STATIC_DECLARE(gdp);
224 | #endif
225 | #if defined(GST_IOS_PLUGIN_RSVG) || defined(GST_IOS_PLUGINS_CODECS)
226 | GST_PLUGIN_STATIC_DECLARE(rsvg);
227 | #endif
228 | #if defined(GST_IOS_PLUGIN_OPENJPEG) || defined(GST_IOS_PLUGINS_CODECS)
229 | GST_PLUGIN_STATIC_DECLARE(openjpeg);
230 | #endif
231 | #if defined(GST_IOS_PLUGIN_SPANDSP) || defined(GST_IOS_PLUGINS_CODECS)
232 | GST_PLUGIN_STATIC_DECLARE(spandsp);
233 | #endif
234 | #if defined(GST_IOS_PLUGIN_SBC) || defined(GST_IOS_PLUGINS_CODECS)
235 | GST_PLUGIN_STATIC_DECLARE(sbc);
236 | #endif
237 | #if defined(GST_IOS_PLUGIN_ENCODING) || defined(GST_IOS_PLUGINS_ENCODING)
238 | GST_PLUGIN_STATIC_DECLARE(encoding);
239 | #endif
240 | #if defined(GST_IOS_PLUGIN_TCP) || defined(GST_IOS_PLUGINS_NET)
241 | GST_PLUGIN_STATIC_DECLARE(tcp);
242 | #endif
243 | #if defined(GST_IOS_PLUGIN_RTSP) || defined(GST_IOS_PLUGINS_NET)
244 | GST_PLUGIN_STATIC_DECLARE(rtsp);
245 | #endif
246 | #if defined(GST_IOS_PLUGIN_RTP) || defined(GST_IOS_PLUGINS_NET)
247 | GST_PLUGIN_STATIC_DECLARE(rtp);
248 | #endif
249 | #if defined(GST_IOS_PLUGIN_RTPMANAGER) || defined(GST_IOS_PLUGINS_NET)
250 | GST_PLUGIN_STATIC_DECLARE(rtpmanager);
251 | #endif
252 | #if defined(GST_IOS_PLUGIN_SOUP) || defined(GST_IOS_PLUGINS_NET)
253 | GST_PLUGIN_STATIC_DECLARE(soup);
254 | #endif
255 | #if defined(GST_IOS_PLUGIN_UDP) || defined(GST_IOS_PLUGINS_NET)
256 | GST_PLUGIN_STATIC_DECLARE(udp);
257 | #endif
258 | #if defined(GST_IOS_PLUGIN_DTLS) || defined(GST_IOS_PLUGINS_NET)
259 | GST_PLUGIN_STATIC_DECLARE(dtls);
260 | #endif
261 | #if defined(GST_IOS_PLUGIN_SDPELEM) || defined(GST_IOS_PLUGINS_NET)
262 | GST_PLUGIN_STATIC_DECLARE(sdpelem);
263 | #endif
264 | #if defined(GST_IOS_PLUGIN_SRTP) || defined(GST_IOS_PLUGINS_NET)
265 | GST_PLUGIN_STATIC_DECLARE(srtp);
266 | #endif
267 | #if defined(GST_IOS_PLUGIN_WEBRTC) || defined(GST_IOS_PLUGINS_NET)
268 | GST_PLUGIN_STATIC_DECLARE(webrtc);
269 | #endif
270 | #if defined(GST_IOS_PLUGIN_SRT) || defined(GST_IOS_PLUGINS_NET)
271 | GST_PLUGIN_STATIC_DECLARE(srt);
272 | #endif
273 | #if defined(GST_IOS_PLUGIN_SCTP) || defined(GST_IOS_PLUGINS_NET)
274 | GST_PLUGIN_STATIC_DECLARE(sctp);
275 | #endif
276 | #if defined(GST_IOS_PLUGIN_NICE) || defined(GST_IOS_PLUGINS_NET)
277 | GST_PLUGIN_STATIC_DECLARE(nice);
278 | #endif
279 | #if defined(GST_IOS_PLUGIN_RTSPCLIENTSINK) || defined(GST_IOS_PLUGINS_NET)
280 | GST_PLUGIN_STATIC_DECLARE(rtspclientsink);
281 | #endif
282 | #if defined(GST_IOS_PLUGIN_PLAYBACK) || defined(GST_IOS_PLUGINS_PLAYBACK)
283 | GST_PLUGIN_STATIC_DECLARE(playback);
284 | #endif
285 | #if defined(GST_IOS_PLUGIN_GOOM) || defined(GST_IOS_PLUGINS_VIS)
286 | GST_PLUGIN_STATIC_DECLARE(goom);
287 | #endif
288 | #if defined(GST_IOS_PLUGIN_GOOM2K1) || defined(GST_IOS_PLUGINS_VIS)
289 | GST_PLUGIN_STATIC_DECLARE(goom2k1);
290 | #endif
291 | #if defined(GST_IOS_PLUGIN_AUDIOVISUALIZERS) || defined(GST_IOS_PLUGINS_VIS)
292 | GST_PLUGIN_STATIC_DECLARE(audiovisualizers);
293 | #endif
294 | #if defined(GST_IOS_PLUGIN_OPENGL) || defined(GST_IOS_PLUGINS_SYS)
295 | GST_PLUGIN_STATIC_DECLARE(opengl);
296 | #endif
297 | #if defined(GST_IOS_PLUGIN_OSXAUDIO) || defined(GST_IOS_PLUGINS_SYS)
298 | GST_PLUGIN_STATIC_DECLARE(osxaudio);
299 | #endif
300 | #if defined(GST_IOS_PLUGIN_APPLEMEDIA) || defined(GST_IOS_PLUGINS_SYS)
301 | GST_PLUGIN_STATIC_DECLARE(applemedia);
302 | #endif
303 | #if defined(GST_IOS_PLUGIN_SHM) || defined(GST_IOS_PLUGINS_SYS)
304 | GST_PLUGIN_STATIC_DECLARE(shm);
305 | #endif
306 | #if defined(GST_IOS_PLUGIN_ALPHA) || defined(GST_IOS_PLUGINS_EFFECTS)
307 | GST_PLUGIN_STATIC_DECLARE(alpha);
308 | #endif
309 | #if defined(GST_IOS_PLUGIN_ALPHACOLOR) || defined(GST_IOS_PLUGINS_EFFECTS)
310 | GST_PLUGIN_STATIC_DECLARE(alphacolor);
311 | #endif
312 | #if defined(GST_IOS_PLUGIN_AUDIOFX) || defined(GST_IOS_PLUGINS_EFFECTS)
313 | GST_PLUGIN_STATIC_DECLARE(audiofx);
314 | #endif
315 | #if defined(GST_IOS_PLUGIN_CAIRO) || defined(GST_IOS_PLUGINS_EFFECTS)
316 | GST_PLUGIN_STATIC_DECLARE(cairo);
317 | #endif
318 | #if defined(GST_IOS_PLUGIN_CUTTER) || defined(GST_IOS_PLUGINS_EFFECTS)
319 | GST_PLUGIN_STATIC_DECLARE(cutter);
320 | #endif
321 | #if defined(GST_IOS_PLUGIN_DEBUG) || defined(GST_IOS_PLUGINS_EFFECTS)
322 | GST_PLUGIN_STATIC_DECLARE(debug);
323 | #endif
324 | #if defined(GST_IOS_PLUGIN_DEINTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
325 | GST_PLUGIN_STATIC_DECLARE(deinterlace);
326 | #endif
327 | #if defined(GST_IOS_PLUGIN_DTMF) || defined(GST_IOS_PLUGINS_EFFECTS)
328 | GST_PLUGIN_STATIC_DECLARE(dtmf);
329 | #endif
330 | #if defined(GST_IOS_PLUGIN_EFFECTV) || defined(GST_IOS_PLUGINS_EFFECTS)
331 | GST_PLUGIN_STATIC_DECLARE(effectv);
332 | #endif
333 | #if defined(GST_IOS_PLUGIN_EQUALIZER) || defined(GST_IOS_PLUGINS_EFFECTS)
334 | GST_PLUGIN_STATIC_DECLARE(equalizer);
335 | #endif
336 | #if defined(GST_IOS_PLUGIN_GDKPIXBUF) || defined(GST_IOS_PLUGINS_EFFECTS)
337 | GST_PLUGIN_STATIC_DECLARE(gdkpixbuf);
338 | #endif
339 | #if defined(GST_IOS_PLUGIN_IMAGEFREEZE) || defined(GST_IOS_PLUGINS_EFFECTS)
340 | GST_PLUGIN_STATIC_DECLARE(imagefreeze);
341 | #endif
342 | #if defined(GST_IOS_PLUGIN_INTERLEAVE) || defined(GST_IOS_PLUGINS_EFFECTS)
343 | GST_PLUGIN_STATIC_DECLARE(interleave);
344 | #endif
345 | #if defined(GST_IOS_PLUGIN_LEVEL) || defined(GST_IOS_PLUGINS_EFFECTS)
346 | GST_PLUGIN_STATIC_DECLARE(level);
347 | #endif
348 | #if defined(GST_IOS_PLUGIN_MULTIFILE) || defined(GST_IOS_PLUGINS_EFFECTS)
349 | GST_PLUGIN_STATIC_DECLARE(multifile);
350 | #endif
351 | #if defined(GST_IOS_PLUGIN_REPLAYGAIN) || defined(GST_IOS_PLUGINS_EFFECTS)
352 | GST_PLUGIN_STATIC_DECLARE(replaygain);
353 | #endif
354 | #if defined(GST_IOS_PLUGIN_SHAPEWIPE) || defined(GST_IOS_PLUGINS_EFFECTS)
355 | GST_PLUGIN_STATIC_DECLARE(shapewipe);
356 | #endif
357 | #if defined(GST_IOS_PLUGIN_SMPTE) || defined(GST_IOS_PLUGINS_EFFECTS)
358 | GST_PLUGIN_STATIC_DECLARE(smpte);
359 | #endif
360 | #if defined(GST_IOS_PLUGIN_SPECTRUM) || defined(GST_IOS_PLUGINS_EFFECTS)
361 | GST_PLUGIN_STATIC_DECLARE(spectrum);
362 | #endif
363 | #if defined(GST_IOS_PLUGIN_VIDEOBOX) || defined(GST_IOS_PLUGINS_EFFECTS)
364 | GST_PLUGIN_STATIC_DECLARE(videobox);
365 | #endif
366 | #if defined(GST_IOS_PLUGIN_VIDEOCROP) || defined(GST_IOS_PLUGINS_EFFECTS)
367 | GST_PLUGIN_STATIC_DECLARE(videocrop);
368 | #endif
369 | #if defined(GST_IOS_PLUGIN_VIDEOMIXER) || defined(GST_IOS_PLUGINS_EFFECTS)
370 | GST_PLUGIN_STATIC_DECLARE(videomixer);
371 | #endif
372 | #if defined(GST_IOS_PLUGIN_ACCURIP) || defined(GST_IOS_PLUGINS_EFFECTS)
373 | GST_PLUGIN_STATIC_DECLARE(accurip);
374 | #endif
375 | #if defined(GST_IOS_PLUGIN_AIFF) || defined(GST_IOS_PLUGINS_EFFECTS)
376 | GST_PLUGIN_STATIC_DECLARE(aiff);
377 | #endif
378 | #if defined(GST_IOS_PLUGIN_AUDIOFXBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
379 | GST_PLUGIN_STATIC_DECLARE(audiofxbad);
380 | #endif
381 | #if defined(GST_IOS_PLUGIN_AUTOCONVERT) || defined(GST_IOS_PLUGINS_EFFECTS)
382 | GST_PLUGIN_STATIC_DECLARE(autoconvert);
383 | #endif
384 | #if defined(GST_IOS_PLUGIN_BAYER) || defined(GST_IOS_PLUGINS_EFFECTS)
385 | GST_PLUGIN_STATIC_DECLARE(bayer);
386 | #endif
387 | #if defined(GST_IOS_PLUGIN_COLOREFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
388 | GST_PLUGIN_STATIC_DECLARE(coloreffects);
389 | #endif
390 | #if defined(GST_IOS_PLUGIN_CLOSEDCAPTION) || defined(GST_IOS_PLUGINS_EFFECTS)
391 | GST_PLUGIN_STATIC_DECLARE(closedcaption);
392 | #endif
393 | #if defined(GST_IOS_PLUGIN_DEBUGUTILSBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
394 | GST_PLUGIN_STATIC_DECLARE(debugutilsbad);
395 | #endif
396 | #if defined(GST_IOS_PLUGIN_FIELDANALYSIS) || defined(GST_IOS_PLUGINS_EFFECTS)
397 | GST_PLUGIN_STATIC_DECLARE(fieldanalysis);
398 | #endif
399 | #if defined(GST_IOS_PLUGIN_FREEVERB) || defined(GST_IOS_PLUGINS_EFFECTS)
400 | GST_PLUGIN_STATIC_DECLARE(freeverb);
401 | #endif
402 | #if defined(GST_IOS_PLUGIN_FREI0R) || defined(GST_IOS_PLUGINS_EFFECTS)
403 | GST_PLUGIN_STATIC_DECLARE(frei0r);
404 | #endif
405 | #if defined(GST_IOS_PLUGIN_GAUDIEFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
406 | GST_PLUGIN_STATIC_DECLARE(gaudieffects);
407 | #endif
408 | #if defined(GST_IOS_PLUGIN_GEOMETRICTRANSFORM) || defined(GST_IOS_PLUGINS_EFFECTS)
409 | GST_PLUGIN_STATIC_DECLARE(geometrictransform);
410 | #endif
411 | #if defined(GST_IOS_PLUGIN_INTER) || defined(GST_IOS_PLUGINS_EFFECTS)
412 | GST_PLUGIN_STATIC_DECLARE(inter);
413 | #endif
414 | #if defined(GST_IOS_PLUGIN_INTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
415 | GST_PLUGIN_STATIC_DECLARE(interlace);
416 | #endif
417 | #if defined(GST_IOS_PLUGIN_IVTC) || defined(GST_IOS_PLUGINS_EFFECTS)
418 | GST_PLUGIN_STATIC_DECLARE(ivtc);
419 | #endif
420 | #if defined(GST_IOS_PLUGIN_LEGACYRAWPARSE) || defined(GST_IOS_PLUGINS_EFFECTS)
421 | GST_PLUGIN_STATIC_DECLARE(legacyrawparse);
422 | #endif
423 | #if defined(GST_IOS_PLUGIN_PROXY) || defined(GST_IOS_PLUGINS_EFFECTS)
424 | GST_PLUGIN_STATIC_DECLARE(proxy);
425 | #endif
426 | #if defined(GST_IOS_PLUGIN_REMOVESILENCE) || defined(GST_IOS_PLUGINS_EFFECTS)
427 | GST_PLUGIN_STATIC_DECLARE(removesilence);
428 | #endif
429 | #if defined(GST_IOS_PLUGIN_SEGMENTCLIP) || defined(GST_IOS_PLUGINS_EFFECTS)
430 | GST_PLUGIN_STATIC_DECLARE(segmentclip);
431 | #endif
432 | #if defined(GST_IOS_PLUGIN_SMOOTH) || defined(GST_IOS_PLUGINS_EFFECTS)
433 | GST_PLUGIN_STATIC_DECLARE(smooth);
434 | #endif
435 | #if defined(GST_IOS_PLUGIN_SPEED) || defined(GST_IOS_PLUGINS_EFFECTS)
436 | GST_PLUGIN_STATIC_DECLARE(speed);
437 | #endif
438 | #if defined(GST_IOS_PLUGIN_SOUNDTOUCH) || defined(GST_IOS_PLUGINS_EFFECTS)
439 | GST_PLUGIN_STATIC_DECLARE(soundtouch);
440 | #endif
441 | #if defined(GST_IOS_PLUGIN_VIDEOFILTERSBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
442 | GST_PLUGIN_STATIC_DECLARE(videofiltersbad);
443 | #endif
444 | #if defined(GST_IOS_PLUGIN_WEBRTCDSP) || defined(GST_IOS_PLUGINS_EFFECTS)
445 | GST_PLUGIN_STATIC_DECLARE(webrtcdsp);
446 | #endif
447 | #if defined(GST_IOS_PLUGIN_LADSPA) || defined(GST_IOS_PLUGINS_EFFECTS)
448 | GST_PLUGIN_STATIC_DECLARE(ladspa);
449 | #endif
450 | #if defined(GST_IOS_PLUGIN_AUDIOBUFFERSPLIT) || defined(GST_IOS_PLUGINS_EFFECTS)
451 | GST_PLUGIN_STATIC_DECLARE(audiobuffersplit);
452 | #endif
453 | #if defined(GST_IOS_PLUGIN_CAMERABIN) || defined(GST_IOS_PLUGINS_CAPTURE)
454 | GST_PLUGIN_STATIC_DECLARE(camerabin);
455 | #endif
456 | #if defined(GST_IOS_PLUGIN_ASSRENDER) || defined(GST_IOS_PLUGINS_CODECS_GPL)
457 | GST_PLUGIN_STATIC_DECLARE(assrender);
458 | #endif
459 | #if defined(GST_IOS_PLUGIN_ASFMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
460 | GST_PLUGIN_STATIC_DECLARE(asfmux);
461 | #endif
462 | #if defined(GST_IOS_PLUGIN_DTSDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
463 | GST_PLUGIN_STATIC_DECLARE(dtsdec);
464 | #endif
465 | #if defined(GST_IOS_PLUGIN_MPEGPSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
466 | GST_PLUGIN_STATIC_DECLARE(mpegpsdemux);
467 | #endif
468 | #if defined(GST_IOS_PLUGIN_MPEGPSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
469 | GST_PLUGIN_STATIC_DECLARE(mpegpsmux);
470 | #endif
471 | #if defined(GST_IOS_PLUGIN_MPEGTSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
472 | GST_PLUGIN_STATIC_DECLARE(mpegtsdemux);
473 | #endif
474 | #if defined(GST_IOS_PLUGIN_MPEGTSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
475 | GST_PLUGIN_STATIC_DECLARE(mpegtsmux);
476 | #endif
477 | #if defined(GST_IOS_PLUGIN_VOAACENC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
478 | GST_PLUGIN_STATIC_DECLARE(voaacenc);
479 | #endif
480 | #if defined(GST_IOS_PLUGIN_A52DEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
481 | GST_PLUGIN_STATIC_DECLARE(a52dec);
482 | #endif
483 | #if defined(GST_IOS_PLUGIN_AMRNB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
484 | GST_PLUGIN_STATIC_DECLARE(amrnb);
485 | #endif
486 | #if defined(GST_IOS_PLUGIN_AMRWBDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
487 | GST_PLUGIN_STATIC_DECLARE(amrwbdec);
488 | #endif
489 | #if defined(GST_IOS_PLUGIN_ASF) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
490 | GST_PLUGIN_STATIC_DECLARE(asf);
491 | #endif
492 | #if defined(GST_IOS_PLUGIN_DVDSUB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
493 | GST_PLUGIN_STATIC_DECLARE(dvdsub);
494 | #endif
495 | #if defined(GST_IOS_PLUGIN_DVDLPCMDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
496 | GST_PLUGIN_STATIC_DECLARE(dvdlpcmdec);
497 | #endif
498 | #if defined(GST_IOS_PLUGIN_XINGMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
499 | GST_PLUGIN_STATIC_DECLARE(xingmux);
500 | #endif
501 | #if defined(GST_IOS_PLUGIN_REALMEDIA) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
502 | GST_PLUGIN_STATIC_DECLARE(realmedia);
503 | #endif
504 | #if defined(GST_IOS_PLUGIN_X264) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
505 | GST_PLUGIN_STATIC_DECLARE(x264);
506 | #endif
507 | #if defined(GST_IOS_PLUGIN_LIBAV) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
508 | GST_PLUGIN_STATIC_DECLARE(libav);
509 | #endif
510 | #if defined(GST_IOS_PLUGIN_RTMP) || defined(GST_IOS_PLUGINS_NET_RESTRICTED)
511 | GST_PLUGIN_STATIC_DECLARE(rtmp);
512 | #endif
513 | #if defined(GST_IOS_PLUGIN_NLE) || defined(GST_IOS_PLUGINS_GES)
514 | GST_PLUGIN_STATIC_DECLARE(nle);
515 | #endif
516 |
517 | #if defined(GST_IOS_GIO_MODULE_OPENSSL)
518 | GST_G_IO_MODULE_DECLARE(openssl);
519 | #endif
520 |
521 | void
522 | gst_ios_init (void)
523 | {
524 | GstPluginFeature *plugin;
525 | GstRegistry *reg;
526 | NSString *resources = [[NSBundle mainBundle] resourcePath];
527 | NSString *tmp = NSTemporaryDirectory();
528 | NSString *cache = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"];
529 | NSString *docs = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
530 |
531 | const gchar *resources_dir = [resources UTF8String];
532 | const gchar *tmp_dir = [tmp UTF8String];
533 | const gchar *cache_dir = [cache UTF8String];
534 | const gchar *docs_dir = [docs UTF8String];
535 | gchar *ca_certificates;
536 |
537 | g_setenv ("TMP", tmp_dir, TRUE);
538 | g_setenv ("TEMP", tmp_dir, TRUE);
539 | g_setenv ("TMPDIR", tmp_dir, TRUE);
540 | g_setenv ("XDG_RUNTIME_DIR", resources_dir, TRUE);
541 | g_setenv ("XDG_CACHE_HOME", cache_dir, TRUE);
542 |
543 | g_setenv ("HOME", docs_dir, TRUE);
544 | g_setenv ("XDG_DATA_DIRS", resources_dir, TRUE);
545 | g_setenv ("XDG_CONFIG_DIRS", resources_dir, TRUE);
546 | g_setenv ("XDG_CONFIG_HOME", cache_dir, TRUE);
547 | g_setenv ("XDG_DATA_HOME", resources_dir, TRUE);
548 | g_setenv ("FONTCONFIG_PATH", resources_dir, TRUE);
549 |
550 | ca_certificates = g_build_filename (resources_dir, "ssl", "certs", "ca-certificates.crt", NULL);
551 | g_setenv ("CA_CERTIFICATES", ca_certificates, TRUE);
552 |
553 | #if defined(GST_IOS_GIO_MODULE_OPENSSL)
554 | GST_G_IO_MODULE_LOAD(openssl);
555 | #endif
556 |
557 | if (ca_certificates) {
558 | GTlsBackend *backend = g_tls_backend_get_default ();
559 | if (backend) {
560 | GTlsDatabase *db = g_tls_file_database_new (ca_certificates, NULL);
561 | if (db)
562 | g_tls_backend_set_default_database (backend, db);
563 | }
564 | }
565 | g_free (ca_certificates);
566 |
567 | gst_init (NULL, NULL);
568 |
569 | #if defined(GST_IOS_PLUGIN_COREELEMENTS) || defined(GST_IOS_PLUGINS_CORE)
570 | GST_PLUGIN_STATIC_REGISTER(coreelements);
571 | #endif
572 | #if defined(GST_IOS_PLUGIN_CORETRACERS) || defined(GST_IOS_PLUGINS_CORE)
573 | GST_PLUGIN_STATIC_REGISTER(coretracers);
574 | #endif
575 | #if defined(GST_IOS_PLUGIN_ADDER) || defined(GST_IOS_PLUGINS_CORE)
576 | GST_PLUGIN_STATIC_REGISTER(adder);
577 | #endif
578 | #if defined(GST_IOS_PLUGIN_APP) || defined(GST_IOS_PLUGINS_CORE)
579 | GST_PLUGIN_STATIC_REGISTER(app);
580 | #endif
581 | #if defined(GST_IOS_PLUGIN_AUDIOCONVERT) || defined(GST_IOS_PLUGINS_CORE)
582 | GST_PLUGIN_STATIC_REGISTER(audioconvert);
583 | #endif
584 | #if defined(GST_IOS_PLUGIN_AUDIOMIXER) || defined(GST_IOS_PLUGINS_CORE)
585 | GST_PLUGIN_STATIC_REGISTER(audiomixer);
586 | #endif
587 | #if defined(GST_IOS_PLUGIN_AUDIORATE) || defined(GST_IOS_PLUGINS_CORE)
588 | GST_PLUGIN_STATIC_REGISTER(audiorate);
589 | #endif
590 | #if defined(GST_IOS_PLUGIN_AUDIORESAMPLE) || defined(GST_IOS_PLUGINS_CORE)
591 | GST_PLUGIN_STATIC_REGISTER(audioresample);
592 | #endif
593 | #if defined(GST_IOS_PLUGIN_AUDIOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
594 | GST_PLUGIN_STATIC_REGISTER(audiotestsrc);
595 | #endif
596 | #if defined(GST_IOS_PLUGIN_COMPOSITOR) || defined(GST_IOS_PLUGINS_CORE)
597 | GST_PLUGIN_STATIC_REGISTER(compositor);
598 | #endif
599 | #if defined(GST_IOS_PLUGIN_GIO) || defined(GST_IOS_PLUGINS_CORE)
600 | GST_PLUGIN_STATIC_REGISTER(gio);
601 | #endif
602 | #if defined(GST_IOS_PLUGIN_OVERLAYCOMPOSITION) || defined(GST_IOS_PLUGINS_CORE)
603 | GST_PLUGIN_STATIC_REGISTER(overlaycomposition);
604 | #endif
605 | #if defined(GST_IOS_PLUGIN_PANGO) || defined(GST_IOS_PLUGINS_CORE)
606 | GST_PLUGIN_STATIC_REGISTER(pango);
607 | #endif
608 | #if defined(GST_IOS_PLUGIN_RAWPARSE) || defined(GST_IOS_PLUGINS_CORE)
609 | GST_PLUGIN_STATIC_REGISTER(rawparse);
610 | #endif
611 | #if defined(GST_IOS_PLUGIN_TYPEFINDFUNCTIONS) || defined(GST_IOS_PLUGINS_CORE)
612 | GST_PLUGIN_STATIC_REGISTER(typefindfunctions);
613 | #endif
614 | #if defined(GST_IOS_PLUGIN_VIDEOCONVERTSCALE) || defined(GST_IOS_PLUGINS_CORE)
615 | GST_PLUGIN_STATIC_REGISTER(videoconvertscale);
616 | #endif
617 | #if defined(GST_IOS_PLUGIN_VIDEORATE) || defined(GST_IOS_PLUGINS_CORE)
618 | GST_PLUGIN_STATIC_REGISTER(videorate);
619 | #endif
620 | #if defined(GST_IOS_PLUGIN_VIDEOTESTSRC) || defined(GST_IOS_PLUGINS_CORE)
621 | GST_PLUGIN_STATIC_REGISTER(videotestsrc);
622 | #endif
623 | #if defined(GST_IOS_PLUGIN_VOLUME) || defined(GST_IOS_PLUGINS_CORE)
624 | GST_PLUGIN_STATIC_REGISTER(volume);
625 | #endif
626 | #if defined(GST_IOS_PLUGIN_AUTODETECT) || defined(GST_IOS_PLUGINS_CORE)
627 | GST_PLUGIN_STATIC_REGISTER(autodetect);
628 | #endif
629 | #if defined(GST_IOS_PLUGIN_VIDEOFILTER) || defined(GST_IOS_PLUGINS_CORE)
630 | GST_PLUGIN_STATIC_REGISTER(videofilter);
631 | #endif
632 | #if defined(GST_IOS_PLUGIN_SUBPARSE) || defined(GST_IOS_PLUGINS_CODECS)
633 | GST_PLUGIN_STATIC_REGISTER(subparse);
634 | #endif
635 | #if defined(GST_IOS_PLUGIN_OGG) || defined(GST_IOS_PLUGINS_CODECS)
636 | GST_PLUGIN_STATIC_REGISTER(ogg);
637 | #endif
638 | #if defined(GST_IOS_PLUGIN_THEORA) || defined(GST_IOS_PLUGINS_CODECS)
639 | GST_PLUGIN_STATIC_REGISTER(theora);
640 | #endif
641 | #if defined(GST_IOS_PLUGIN_VORBIS) || defined(GST_IOS_PLUGINS_CODECS)
642 | GST_PLUGIN_STATIC_REGISTER(vorbis);
643 | #endif
644 | #if defined(GST_IOS_PLUGIN_OPUS) || defined(GST_IOS_PLUGINS_CODECS)
645 | GST_PLUGIN_STATIC_REGISTER(opus);
646 | #endif
647 | #if defined(GST_IOS_PLUGIN_ALAW) || defined(GST_IOS_PLUGINS_CODECS)
648 | GST_PLUGIN_STATIC_REGISTER(alaw);
649 | #endif
650 | #if defined(GST_IOS_PLUGIN_APETAG) || defined(GST_IOS_PLUGINS_CODECS)
651 | GST_PLUGIN_STATIC_REGISTER(apetag);
652 | #endif
653 | #if defined(GST_IOS_PLUGIN_AUDIOPARSERS) || defined(GST_IOS_PLUGINS_CODECS)
654 | GST_PLUGIN_STATIC_REGISTER(audioparsers);
655 | #endif
656 | #if defined(GST_IOS_PLUGIN_AUPARSE) || defined(GST_IOS_PLUGINS_CODECS)
657 | GST_PLUGIN_STATIC_REGISTER(auparse);
658 | #endif
659 | #if defined(GST_IOS_PLUGIN_AVI) || defined(GST_IOS_PLUGINS_CODECS)
660 | GST_PLUGIN_STATIC_REGISTER(avi);
661 | #endif
662 | #if defined(GST_IOS_PLUGIN_DV) || defined(GST_IOS_PLUGINS_CODECS)
663 | GST_PLUGIN_STATIC_REGISTER(dv);
664 | #endif
665 | #if defined(GST_IOS_PLUGIN_FLAC) || defined(GST_IOS_PLUGINS_CODECS)
666 | GST_PLUGIN_STATIC_REGISTER(flac);
667 | #endif
668 | #if defined(GST_IOS_PLUGIN_FLV) || defined(GST_IOS_PLUGINS_CODECS)
669 | GST_PLUGIN_STATIC_REGISTER(flv);
670 | #endif
671 | #if defined(GST_IOS_PLUGIN_FLXDEC) || defined(GST_IOS_PLUGINS_CODECS)
672 | GST_PLUGIN_STATIC_REGISTER(flxdec);
673 | #endif
674 | #if defined(GST_IOS_PLUGIN_ICYDEMUX) || defined(GST_IOS_PLUGINS_CODECS)
675 | GST_PLUGIN_STATIC_REGISTER(icydemux);
676 | #endif
677 | #if defined(GST_IOS_PLUGIN_ID3DEMUX) || defined(GST_IOS_PLUGINS_CODECS)
678 | GST_PLUGIN_STATIC_REGISTER(id3demux);
679 | #endif
680 | #if defined(GST_IOS_PLUGIN_ISOMP4) || defined(GST_IOS_PLUGINS_CODECS)
681 | GST_PLUGIN_STATIC_REGISTER(isomp4);
682 | #endif
683 | #if defined(GST_IOS_PLUGIN_JPEG) || defined(GST_IOS_PLUGINS_CODECS)
684 | GST_PLUGIN_STATIC_REGISTER(jpeg);
685 | #endif
686 | #if defined(GST_IOS_PLUGIN_LAME) || defined(GST_IOS_PLUGINS_CODECS)
687 | GST_PLUGIN_STATIC_REGISTER(lame);
688 | #endif
689 | #if defined(GST_IOS_PLUGIN_MATROSKA) || defined(GST_IOS_PLUGINS_CODECS)
690 | GST_PLUGIN_STATIC_REGISTER(matroska);
691 | #endif
692 | #if defined(GST_IOS_PLUGIN_MPG123) || defined(GST_IOS_PLUGINS_CODECS)
693 | GST_PLUGIN_STATIC_REGISTER(mpg123);
694 | #endif
695 | #if defined(GST_IOS_PLUGIN_MULAW) || defined(GST_IOS_PLUGINS_CODECS)
696 | GST_PLUGIN_STATIC_REGISTER(mulaw);
697 | #endif
698 | #if defined(GST_IOS_PLUGIN_MULTIPART) || defined(GST_IOS_PLUGINS_CODECS)
699 | GST_PLUGIN_STATIC_REGISTER(multipart);
700 | #endif
701 | #if defined(GST_IOS_PLUGIN_PNG) || defined(GST_IOS_PLUGINS_CODECS)
702 | GST_PLUGIN_STATIC_REGISTER(png);
703 | #endif
704 | #if defined(GST_IOS_PLUGIN_SPEEX) || defined(GST_IOS_PLUGINS_CODECS)
705 | GST_PLUGIN_STATIC_REGISTER(speex);
706 | #endif
707 | #if defined(GST_IOS_PLUGIN_TAGLIB) || defined(GST_IOS_PLUGINS_CODECS)
708 | GST_PLUGIN_STATIC_REGISTER(taglib);
709 | #endif
710 | #if defined(GST_IOS_PLUGIN_VPX) || defined(GST_IOS_PLUGINS_CODECS)
711 | GST_PLUGIN_STATIC_REGISTER(vpx);
712 | #endif
713 | #if defined(GST_IOS_PLUGIN_WAVENC) || defined(GST_IOS_PLUGINS_CODECS)
714 | GST_PLUGIN_STATIC_REGISTER(wavenc);
715 | #endif
716 | #if defined(GST_IOS_PLUGIN_WAVPACK) || defined(GST_IOS_PLUGINS_CODECS)
717 | GST_PLUGIN_STATIC_REGISTER(wavpack);
718 | #endif
719 | #if defined(GST_IOS_PLUGIN_WAVPARSE) || defined(GST_IOS_PLUGINS_CODECS)
720 | GST_PLUGIN_STATIC_REGISTER(wavparse);
721 | #endif
722 | #if defined(GST_IOS_PLUGIN_Y4MENC) || defined(GST_IOS_PLUGINS_CODECS)
723 | GST_PLUGIN_STATIC_REGISTER(y4menc);
724 | #endif
725 | #if defined(GST_IOS_PLUGIN_ADPCMDEC) || defined(GST_IOS_PLUGINS_CODECS)
726 | GST_PLUGIN_STATIC_REGISTER(adpcmdec);
727 | #endif
728 | #if defined(GST_IOS_PLUGIN_ADPCMENC) || defined(GST_IOS_PLUGINS_CODECS)
729 | GST_PLUGIN_STATIC_REGISTER(adpcmenc);
730 | #endif
731 | #if defined(GST_IOS_PLUGIN_DASH) || defined(GST_IOS_PLUGINS_CODECS)
732 | GST_PLUGIN_STATIC_REGISTER(dash);
733 | #endif
734 | #if defined(GST_IOS_PLUGIN_DVBSUBOVERLAY) || defined(GST_IOS_PLUGINS_CODECS)
735 | GST_PLUGIN_STATIC_REGISTER(dvbsuboverlay);
736 | #endif
737 | #if defined(GST_IOS_PLUGIN_DVDSPU) || defined(GST_IOS_PLUGINS_CODECS)
738 | GST_PLUGIN_STATIC_REGISTER(dvdspu);
739 | #endif
740 | #if defined(GST_IOS_PLUGIN_HLS) || defined(GST_IOS_PLUGINS_CODECS)
741 | GST_PLUGIN_STATIC_REGISTER(hls);
742 | #endif
743 | #if defined(GST_IOS_PLUGIN_ID3TAG) || defined(GST_IOS_PLUGINS_CODECS)
744 | GST_PLUGIN_STATIC_REGISTER(id3tag);
745 | #endif
746 | #if defined(GST_IOS_PLUGIN_MIDI) || defined(GST_IOS_PLUGINS_CODECS)
747 | GST_PLUGIN_STATIC_REGISTER(midi);
748 | #endif
749 | #if defined(GST_IOS_PLUGIN_MXF) || defined(GST_IOS_PLUGINS_CODECS)
750 | GST_PLUGIN_STATIC_REGISTER(mxf);
751 | #endif
752 | #if defined(GST_IOS_PLUGIN_OPENH264) || defined(GST_IOS_PLUGINS_CODECS)
753 | GST_PLUGIN_STATIC_REGISTER(openh264);
754 | #endif
755 | #if defined(GST_IOS_PLUGIN_OPUSPARSE) || defined(GST_IOS_PLUGINS_CODECS)
756 | GST_PLUGIN_STATIC_REGISTER(opusparse);
757 | #endif
758 | #if defined(GST_IOS_PLUGIN_PCAPPARSE) || defined(GST_IOS_PLUGINS_CODECS)
759 | GST_PLUGIN_STATIC_REGISTER(pcapparse);
760 | #endif
761 | #if defined(GST_IOS_PLUGIN_PNM) || defined(GST_IOS_PLUGINS_CODECS)
762 | GST_PLUGIN_STATIC_REGISTER(pnm);
763 | #endif
764 | #if defined(GST_IOS_PLUGIN_RFBSRC) || defined(GST_IOS_PLUGINS_CODECS)
765 | GST_PLUGIN_STATIC_REGISTER(rfbsrc);
766 | #endif
767 | #if defined(GST_IOS_PLUGIN_SIREN) || defined(GST_IOS_PLUGINS_CODECS)
768 | GST_PLUGIN_STATIC_REGISTER(siren);
769 | #endif
770 | #if defined(GST_IOS_PLUGIN_SMOOTHSTREAMING) || defined(GST_IOS_PLUGINS_CODECS)
771 | GST_PLUGIN_STATIC_REGISTER(smoothstreaming);
772 | #endif
773 | #if defined(GST_IOS_PLUGIN_SUBENC) || defined(GST_IOS_PLUGINS_CODECS)
774 | GST_PLUGIN_STATIC_REGISTER(subenc);
775 | #endif
776 | #if defined(GST_IOS_PLUGIN_VIDEOPARSERSBAD) || defined(GST_IOS_PLUGINS_CODECS)
777 | GST_PLUGIN_STATIC_REGISTER(videoparsersbad);
778 | #endif
779 | #if defined(GST_IOS_PLUGIN_Y4MDEC) || defined(GST_IOS_PLUGINS_CODECS)
780 | GST_PLUGIN_STATIC_REGISTER(y4mdec);
781 | #endif
782 | #if defined(GST_IOS_PLUGIN_JPEGFORMAT) || defined(GST_IOS_PLUGINS_CODECS)
783 | GST_PLUGIN_STATIC_REGISTER(jpegformat);
784 | #endif
785 | #if defined(GST_IOS_PLUGIN_GDP) || defined(GST_IOS_PLUGINS_CODECS)
786 | GST_PLUGIN_STATIC_REGISTER(gdp);
787 | #endif
788 | #if defined(GST_IOS_PLUGIN_RSVG) || defined(GST_IOS_PLUGINS_CODECS)
789 | GST_PLUGIN_STATIC_REGISTER(rsvg);
790 | #endif
791 | #if defined(GST_IOS_PLUGIN_OPENJPEG) || defined(GST_IOS_PLUGINS_CODECS)
792 | GST_PLUGIN_STATIC_REGISTER(openjpeg);
793 | #endif
794 | #if defined(GST_IOS_PLUGIN_SPANDSP) || defined(GST_IOS_PLUGINS_CODECS)
795 | GST_PLUGIN_STATIC_REGISTER(spandsp);
796 | #endif
797 | #if defined(GST_IOS_PLUGIN_SBC) || defined(GST_IOS_PLUGINS_CODECS)
798 | GST_PLUGIN_STATIC_REGISTER(sbc);
799 | #endif
800 | #if defined(GST_IOS_PLUGIN_ENCODING) || defined(GST_IOS_PLUGINS_ENCODING)
801 | GST_PLUGIN_STATIC_REGISTER(encoding);
802 | #endif
803 | #if defined(GST_IOS_PLUGIN_TCP) || defined(GST_IOS_PLUGINS_NET)
804 | GST_PLUGIN_STATIC_REGISTER(tcp);
805 | #endif
806 | #if defined(GST_IOS_PLUGIN_RTSP) || defined(GST_IOS_PLUGINS_NET)
807 | GST_PLUGIN_STATIC_REGISTER(rtsp);
808 | #endif
809 | #if defined(GST_IOS_PLUGIN_RTP) || defined(GST_IOS_PLUGINS_NET)
810 | GST_PLUGIN_STATIC_REGISTER(rtp);
811 | #endif
812 | #if defined(GST_IOS_PLUGIN_RTPMANAGER) || defined(GST_IOS_PLUGINS_NET)
813 | GST_PLUGIN_STATIC_REGISTER(rtpmanager);
814 | #endif
815 | #if defined(GST_IOS_PLUGIN_SOUP) || defined(GST_IOS_PLUGINS_NET)
816 | GST_PLUGIN_STATIC_REGISTER(soup);
817 | #endif
818 | #if defined(GST_IOS_PLUGIN_UDP) || defined(GST_IOS_PLUGINS_NET)
819 | GST_PLUGIN_STATIC_REGISTER(udp);
820 | #endif
821 | #if defined(GST_IOS_PLUGIN_DTLS) || defined(GST_IOS_PLUGINS_NET)
822 | GST_PLUGIN_STATIC_REGISTER(dtls);
823 | #endif
824 | #if defined(GST_IOS_PLUGIN_SDPELEM) || defined(GST_IOS_PLUGINS_NET)
825 | GST_PLUGIN_STATIC_REGISTER(sdpelem);
826 | #endif
827 | #if defined(GST_IOS_PLUGIN_SRTP) || defined(GST_IOS_PLUGINS_NET)
828 | GST_PLUGIN_STATIC_REGISTER(srtp);
829 | #endif
830 | #if defined(GST_IOS_PLUGIN_WEBRTC) || defined(GST_IOS_PLUGINS_NET)
831 | GST_PLUGIN_STATIC_REGISTER(webrtc);
832 | #endif
833 | #if defined(GST_IOS_PLUGIN_SRT) || defined(GST_IOS_PLUGINS_NET)
834 | GST_PLUGIN_STATIC_REGISTER(srt);
835 | #endif
836 | #if defined(GST_IOS_PLUGIN_SCTP) || defined(GST_IOS_PLUGINS_NET)
837 | GST_PLUGIN_STATIC_REGISTER(sctp);
838 | #endif
839 | #if defined(GST_IOS_PLUGIN_NICE) || defined(GST_IOS_PLUGINS_NET)
840 | GST_PLUGIN_STATIC_REGISTER(nice);
841 | #endif
842 | #if defined(GST_IOS_PLUGIN_RTSPCLIENTSINK) || defined(GST_IOS_PLUGINS_NET)
843 | GST_PLUGIN_STATIC_REGISTER(rtspclientsink);
844 | #endif
845 | #if defined(GST_IOS_PLUGIN_PLAYBACK) || defined(GST_IOS_PLUGINS_PLAYBACK)
846 | GST_PLUGIN_STATIC_REGISTER(playback);
847 | #endif
848 | #if defined(GST_IOS_PLUGIN_GOOM) || defined(GST_IOS_PLUGINS_VIS)
849 | GST_PLUGIN_STATIC_REGISTER(goom);
850 | #endif
851 | #if defined(GST_IOS_PLUGIN_GOOM2K1) || defined(GST_IOS_PLUGINS_VIS)
852 | GST_PLUGIN_STATIC_REGISTER(goom2k1);
853 | #endif
854 | #if defined(GST_IOS_PLUGIN_AUDIOVISUALIZERS) || defined(GST_IOS_PLUGINS_VIS)
855 | GST_PLUGIN_STATIC_REGISTER(audiovisualizers);
856 | #endif
857 | #if defined(GST_IOS_PLUGIN_OPENGL) || defined(GST_IOS_PLUGINS_SYS)
858 | GST_PLUGIN_STATIC_REGISTER(opengl);
859 | #endif
860 | #if defined(GST_IOS_PLUGIN_OSXAUDIO) || defined(GST_IOS_PLUGINS_SYS)
861 | GST_PLUGIN_STATIC_REGISTER(osxaudio);
862 | #endif
863 | #if defined(GST_IOS_PLUGIN_APPLEMEDIA) || defined(GST_IOS_PLUGINS_SYS)
864 | GST_PLUGIN_STATIC_REGISTER(applemedia);
865 | #endif
866 | #if defined(GST_IOS_PLUGIN_SHM) || defined(GST_IOS_PLUGINS_SYS)
867 | GST_PLUGIN_STATIC_REGISTER(shm);
868 | #endif
869 | #if defined(GST_IOS_PLUGIN_ALPHA) || defined(GST_IOS_PLUGINS_EFFECTS)
870 | GST_PLUGIN_STATIC_REGISTER(alpha);
871 | #endif
872 | #if defined(GST_IOS_PLUGIN_ALPHACOLOR) || defined(GST_IOS_PLUGINS_EFFECTS)
873 | GST_PLUGIN_STATIC_REGISTER(alphacolor);
874 | #endif
875 | #if defined(GST_IOS_PLUGIN_AUDIOFX) || defined(GST_IOS_PLUGINS_EFFECTS)
876 | GST_PLUGIN_STATIC_REGISTER(audiofx);
877 | #endif
878 | #if defined(GST_IOS_PLUGIN_CAIRO) || defined(GST_IOS_PLUGINS_EFFECTS)
879 | GST_PLUGIN_STATIC_REGISTER(cairo);
880 | #endif
881 | #if defined(GST_IOS_PLUGIN_CUTTER) || defined(GST_IOS_PLUGINS_EFFECTS)
882 | GST_PLUGIN_STATIC_REGISTER(cutter);
883 | #endif
884 | #if defined(GST_IOS_PLUGIN_DEBUG) || defined(GST_IOS_PLUGINS_EFFECTS)
885 | GST_PLUGIN_STATIC_REGISTER(debug);
886 | #endif
887 | #if defined(GST_IOS_PLUGIN_DEINTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
888 | GST_PLUGIN_STATIC_REGISTER(deinterlace);
889 | #endif
890 | #if defined(GST_IOS_PLUGIN_DTMF) || defined(GST_IOS_PLUGINS_EFFECTS)
891 | GST_PLUGIN_STATIC_REGISTER(dtmf);
892 | #endif
893 | #if defined(GST_IOS_PLUGIN_EFFECTV) || defined(GST_IOS_PLUGINS_EFFECTS)
894 | GST_PLUGIN_STATIC_REGISTER(effectv);
895 | #endif
896 | #if defined(GST_IOS_PLUGIN_EQUALIZER) || defined(GST_IOS_PLUGINS_EFFECTS)
897 | GST_PLUGIN_STATIC_REGISTER(equalizer);
898 | #endif
899 | #if defined(GST_IOS_PLUGIN_GDKPIXBUF) || defined(GST_IOS_PLUGINS_EFFECTS)
900 | GST_PLUGIN_STATIC_REGISTER(gdkpixbuf);
901 | #endif
902 | #if defined(GST_IOS_PLUGIN_IMAGEFREEZE) || defined(GST_IOS_PLUGINS_EFFECTS)
903 | GST_PLUGIN_STATIC_REGISTER(imagefreeze);
904 | #endif
905 | #if defined(GST_IOS_PLUGIN_INTERLEAVE) || defined(GST_IOS_PLUGINS_EFFECTS)
906 | GST_PLUGIN_STATIC_REGISTER(interleave);
907 | #endif
908 | #if defined(GST_IOS_PLUGIN_LEVEL) || defined(GST_IOS_PLUGINS_EFFECTS)
909 | GST_PLUGIN_STATIC_REGISTER(level);
910 | #endif
911 | #if defined(GST_IOS_PLUGIN_MULTIFILE) || defined(GST_IOS_PLUGINS_EFFECTS)
912 | GST_PLUGIN_STATIC_REGISTER(multifile);
913 | #endif
914 | #if defined(GST_IOS_PLUGIN_REPLAYGAIN) || defined(GST_IOS_PLUGINS_EFFECTS)
915 | GST_PLUGIN_STATIC_REGISTER(replaygain);
916 | #endif
917 | #if defined(GST_IOS_PLUGIN_SHAPEWIPE) || defined(GST_IOS_PLUGINS_EFFECTS)
918 | GST_PLUGIN_STATIC_REGISTER(shapewipe);
919 | #endif
920 | #if defined(GST_IOS_PLUGIN_SMPTE) || defined(GST_IOS_PLUGINS_EFFECTS)
921 | GST_PLUGIN_STATIC_REGISTER(smpte);
922 | #endif
923 | #if defined(GST_IOS_PLUGIN_SPECTRUM) || defined(GST_IOS_PLUGINS_EFFECTS)
924 | GST_PLUGIN_STATIC_REGISTER(spectrum);
925 | #endif
926 | #if defined(GST_IOS_PLUGIN_VIDEOBOX) || defined(GST_IOS_PLUGINS_EFFECTS)
927 | GST_PLUGIN_STATIC_REGISTER(videobox);
928 | #endif
929 | #if defined(GST_IOS_PLUGIN_VIDEOCROP) || defined(GST_IOS_PLUGINS_EFFECTS)
930 | GST_PLUGIN_STATIC_REGISTER(videocrop);
931 | #endif
932 | #if defined(GST_IOS_PLUGIN_VIDEOMIXER) || defined(GST_IOS_PLUGINS_EFFECTS)
933 | GST_PLUGIN_STATIC_REGISTER(videomixer);
934 | #endif
935 | #if defined(GST_IOS_PLUGIN_ACCURIP) || defined(GST_IOS_PLUGINS_EFFECTS)
936 | GST_PLUGIN_STATIC_REGISTER(accurip);
937 | #endif
938 | #if defined(GST_IOS_PLUGIN_AIFF) || defined(GST_IOS_PLUGINS_EFFECTS)
939 | GST_PLUGIN_STATIC_REGISTER(aiff);
940 | #endif
941 | #if defined(GST_IOS_PLUGIN_AUDIOFXBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
942 | GST_PLUGIN_STATIC_REGISTER(audiofxbad);
943 | #endif
944 | #if defined(GST_IOS_PLUGIN_AUTOCONVERT) || defined(GST_IOS_PLUGINS_EFFECTS)
945 | GST_PLUGIN_STATIC_REGISTER(autoconvert);
946 | #endif
947 | #if defined(GST_IOS_PLUGIN_BAYER) || defined(GST_IOS_PLUGINS_EFFECTS)
948 | GST_PLUGIN_STATIC_REGISTER(bayer);
949 | #endif
950 | #if defined(GST_IOS_PLUGIN_COLOREFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
951 | GST_PLUGIN_STATIC_REGISTER(coloreffects);
952 | #endif
953 | #if defined(GST_IOS_PLUGIN_CLOSEDCAPTION) || defined(GST_IOS_PLUGINS_EFFECTS)
954 | GST_PLUGIN_STATIC_REGISTER(closedcaption);
955 | #endif
956 | #if defined(GST_IOS_PLUGIN_DEBUGUTILSBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
957 | GST_PLUGIN_STATIC_REGISTER(debugutilsbad);
958 | #endif
959 | #if defined(GST_IOS_PLUGIN_FIELDANALYSIS) || defined(GST_IOS_PLUGINS_EFFECTS)
960 | GST_PLUGIN_STATIC_REGISTER(fieldanalysis);
961 | #endif
962 | #if defined(GST_IOS_PLUGIN_FREEVERB) || defined(GST_IOS_PLUGINS_EFFECTS)
963 | GST_PLUGIN_STATIC_REGISTER(freeverb);
964 | #endif
965 | #if defined(GST_IOS_PLUGIN_FREI0R) || defined(GST_IOS_PLUGINS_EFFECTS)
966 | GST_PLUGIN_STATIC_REGISTER(frei0r);
967 | #endif
968 | #if defined(GST_IOS_PLUGIN_GAUDIEFFECTS) || defined(GST_IOS_PLUGINS_EFFECTS)
969 | GST_PLUGIN_STATIC_REGISTER(gaudieffects);
970 | #endif
971 | #if defined(GST_IOS_PLUGIN_GEOMETRICTRANSFORM) || defined(GST_IOS_PLUGINS_EFFECTS)
972 | GST_PLUGIN_STATIC_REGISTER(geometrictransform);
973 | #endif
974 | #if defined(GST_IOS_PLUGIN_INTER) || defined(GST_IOS_PLUGINS_EFFECTS)
975 | GST_PLUGIN_STATIC_REGISTER(inter);
976 | #endif
977 | #if defined(GST_IOS_PLUGIN_INTERLACE) || defined(GST_IOS_PLUGINS_EFFECTS)
978 | GST_PLUGIN_STATIC_REGISTER(interlace);
979 | #endif
980 | #if defined(GST_IOS_PLUGIN_IVTC) || defined(GST_IOS_PLUGINS_EFFECTS)
981 | GST_PLUGIN_STATIC_REGISTER(ivtc);
982 | #endif
983 | #if defined(GST_IOS_PLUGIN_LEGACYRAWPARSE) || defined(GST_IOS_PLUGINS_EFFECTS)
984 | GST_PLUGIN_STATIC_REGISTER(legacyrawparse);
985 | #endif
986 | #if defined(GST_IOS_PLUGIN_PROXY) || defined(GST_IOS_PLUGINS_EFFECTS)
987 | GST_PLUGIN_STATIC_REGISTER(proxy);
988 | #endif
989 | #if defined(GST_IOS_PLUGIN_REMOVESILENCE) || defined(GST_IOS_PLUGINS_EFFECTS)
990 | GST_PLUGIN_STATIC_REGISTER(removesilence);
991 | #endif
992 | #if defined(GST_IOS_PLUGIN_SEGMENTCLIP) || defined(GST_IOS_PLUGINS_EFFECTS)
993 | GST_PLUGIN_STATIC_REGISTER(segmentclip);
994 | #endif
995 | #if defined(GST_IOS_PLUGIN_SMOOTH) || defined(GST_IOS_PLUGINS_EFFECTS)
996 | GST_PLUGIN_STATIC_REGISTER(smooth);
997 | #endif
998 | #if defined(GST_IOS_PLUGIN_SPEED) || defined(GST_IOS_PLUGINS_EFFECTS)
999 | GST_PLUGIN_STATIC_REGISTER(speed);
1000 | #endif
1001 | #if defined(GST_IOS_PLUGIN_SOUNDTOUCH) || defined(GST_IOS_PLUGINS_EFFECTS)
1002 | GST_PLUGIN_STATIC_REGISTER(soundtouch);
1003 | #endif
1004 | #if defined(GST_IOS_PLUGIN_VIDEOFILTERSBAD) || defined(GST_IOS_PLUGINS_EFFECTS)
1005 | GST_PLUGIN_STATIC_REGISTER(videofiltersbad);
1006 | #endif
1007 | #if defined(GST_IOS_PLUGIN_WEBRTCDSP) || defined(GST_IOS_PLUGINS_EFFECTS)
1008 | GST_PLUGIN_STATIC_REGISTER(webrtcdsp);
1009 | #endif
1010 | #if defined(GST_IOS_PLUGIN_LADSPA) || defined(GST_IOS_PLUGINS_EFFECTS)
1011 | GST_PLUGIN_STATIC_REGISTER(ladspa);
1012 | #endif
1013 | #if defined(GST_IOS_PLUGIN_AUDIOBUFFERSPLIT) || defined(GST_IOS_PLUGINS_EFFECTS)
1014 | GST_PLUGIN_STATIC_REGISTER(audiobuffersplit);
1015 | #endif
1016 | #if defined(GST_IOS_PLUGIN_CAMERABIN) || defined(GST_IOS_PLUGINS_CAPTURE)
1017 | GST_PLUGIN_STATIC_REGISTER(camerabin);
1018 | #endif
1019 | #if defined(GST_IOS_PLUGIN_ASSRENDER) || defined(GST_IOS_PLUGINS_CODECS_GPL)
1020 | GST_PLUGIN_STATIC_REGISTER(assrender);
1021 | #endif
1022 | #if defined(GST_IOS_PLUGIN_ASFMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1023 | GST_PLUGIN_STATIC_REGISTER(asfmux);
1024 | #endif
1025 | #if defined(GST_IOS_PLUGIN_DTSDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1026 | GST_PLUGIN_STATIC_REGISTER(dtsdec);
1027 | #endif
1028 | #if defined(GST_IOS_PLUGIN_MPEGPSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1029 | GST_PLUGIN_STATIC_REGISTER(mpegpsdemux);
1030 | #endif
1031 | #if defined(GST_IOS_PLUGIN_MPEGPSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1032 | GST_PLUGIN_STATIC_REGISTER(mpegpsmux);
1033 | #endif
1034 | #if defined(GST_IOS_PLUGIN_MPEGTSDEMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1035 | GST_PLUGIN_STATIC_REGISTER(mpegtsdemux);
1036 | #endif
1037 | #if defined(GST_IOS_PLUGIN_MPEGTSMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1038 | GST_PLUGIN_STATIC_REGISTER(mpegtsmux);
1039 | #endif
1040 | #if defined(GST_IOS_PLUGIN_VOAACENC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1041 | GST_PLUGIN_STATIC_REGISTER(voaacenc);
1042 | #endif
1043 | #if defined(GST_IOS_PLUGIN_A52DEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1044 | GST_PLUGIN_STATIC_REGISTER(a52dec);
1045 | #endif
1046 | #if defined(GST_IOS_PLUGIN_AMRNB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1047 | GST_PLUGIN_STATIC_REGISTER(amrnb);
1048 | #endif
1049 | #if defined(GST_IOS_PLUGIN_AMRWBDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1050 | GST_PLUGIN_STATIC_REGISTER(amrwbdec);
1051 | #endif
1052 | #if defined(GST_IOS_PLUGIN_ASF) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1053 | GST_PLUGIN_STATIC_REGISTER(asf);
1054 | #endif
1055 | #if defined(GST_IOS_PLUGIN_DVDSUB) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1056 | GST_PLUGIN_STATIC_REGISTER(dvdsub);
1057 | #endif
1058 | #if defined(GST_IOS_PLUGIN_DVDLPCMDEC) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1059 | GST_PLUGIN_STATIC_REGISTER(dvdlpcmdec);
1060 | #endif
1061 | #if defined(GST_IOS_PLUGIN_XINGMUX) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1062 | GST_PLUGIN_STATIC_REGISTER(xingmux);
1063 | #endif
1064 | #if defined(GST_IOS_PLUGIN_REALMEDIA) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1065 | GST_PLUGIN_STATIC_REGISTER(realmedia);
1066 | #endif
1067 | #if defined(GST_IOS_PLUGIN_X264) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1068 | GST_PLUGIN_STATIC_REGISTER(x264);
1069 | #endif
1070 | #if defined(GST_IOS_PLUGIN_LIBAV) || defined(GST_IOS_PLUGINS_CODECS_RESTRICTED)
1071 | GST_PLUGIN_STATIC_REGISTER(libav);
1072 | #endif
1073 | #if defined(GST_IOS_PLUGIN_RTMP) || defined(GST_IOS_PLUGINS_NET_RESTRICTED)
1074 | GST_PLUGIN_STATIC_REGISTER(rtmp);
1075 | #endif
1076 | #if defined(GST_IOS_PLUGIN_NLE) || defined(GST_IOS_PLUGINS_GES)
1077 | GST_PLUGIN_STATIC_REGISTER(nle);
1078 | #endif
1079 |
1080 | /* Lower the ranks of filesrc and giosrc so iosavassetsrc is
1081 | * tried first in gst_element_make_from_uri() for file:// */
1082 | reg = gst_registry_get();
1083 | plugin = gst_registry_lookup_feature(reg, "filesrc");
1084 | if (plugin)
1085 | gst_plugin_feature_set_rank(plugin, GST_RANK_SECONDARY);
1086 | plugin = gst_registry_lookup_feature(reg, "giosrc");
1087 | if (plugin)
1088 | gst_plugin_feature_set_rank(plugin, GST_RANK_SECONDARY-1);
1089 | }
1090 |
--------------------------------------------------------------------------------