Coder Social home page Coder Social logo

hpdragon1618 / flutter_gstreamer_player Goto Github PK

View Code? Open in Web Editor NEW
24.0 3.0 12.0 1.78 MB

A GStreamer-powered alternative to Flutter's video_player that support Linux, iOS and Android.

License: MIT License

Dart 6.74% CMake 8.24% C++ 14.75% C 3.36% Kotlin 2.93% Java 8.12% Makefile 1.59% Ruby 2.68% Swift 5.65% Objective-C 45.94%

flutter_gstreamer_player's Introduction

GStreamer Player Plugin

A GStreamer-powered alternative to Flutter's video_player that support Linux, iOS and Android.

Buy Me A Coffee

Installation

Linux

Follow GStreamer's Install on Linux instuction.

iOS

Follow GStreamer's Install on iOS instuction, step Prerequisites and Download and install GStreamer binaries.

Link GStreamer framework to ios directory for flutter's ios build system.

ln -s /Users/<Your_User_Name>/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework ios/GStreamer.framework

Android

Follow GStreamer's Install on Android instuction, step Prerequisites and Download and install GStreamer binaries.

In Android, you need to init GStreamer in main activity of your flutter application. In your flutter application, edit MainActivity.kt or MainActivity.java file, depends on your flutter config (This file is usually located at android/app/src/main/<PATH_DEPPEND_ON_YOUR_FLUTTER_APPLICATION>/MainActivity.kt). Import GStreamer module and override onCreate of MainActivity class to init GStreamer, the end result should looks like bellow.

import org.freedesktop.gstreamer.GStreamer

class MainActivity: FlutterActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    GStreamer.init(this);
  }
}

This source code has been tested with GStreamer 1.20.1 prebuild binary

Getting Started

To start using the plugin, copy this code or follow the example project in example

import 'package:flutter/material.dart';

import 'package:flutter/services.dart';
import 'package:flutter_gstreamer_player/flutter_gstreamer_player.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: GstPlayer(
            pipeline:
              '''rtspsrc location=
                  rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 !
                rtph264depay !
                h264parse !
                decodebin !
                videoconvert !
                video/x-raw,format=RGBA !
                appsink name=sink''',
          ),
        ),
      ),
    );
  }
}

License

Copyright (c) 2022, Nguyen Hoai Phong [email protected].

This library & work under this repository is licensed under MIT License.

flutter_gstreamer_player's People

Contributors

hpdragon1618 avatar ntvkhoasgt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flutter_gstreamer_player's Issues

Unhandled Exception: MissingPluginException on RaspberryPi (flutter-pi)

After compile app as:

$flutter build bundle

for Raspbery Pi under flutter-pi

and run app

I got this error

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method PlayerRegisterTexture on channel flutter_gstreamer_player)
#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:294:7)

#1 GstPlayerTextureController.initialize (package:flutter_gstreamer_player/flutter_gstreamer_player.dart:18:17)

#2 _GstPlayerState.initializeController (package:flutter_gstreamer_player/flutter_gstreamer_player.dart:60:5)

It's mean plugin doesn't exist after compile app? On desktop works.

Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed

I'm trying to build the app for android, but i when i do i get:

Launching lib\main.dart on sdk gphone x86 64 in debug mode...
Upgrading build.gradle
Conflict detected between Android Studio Java version and Gradle version, upgrading Gradle version from 6.7 to 7.6.1.
Upgrading gradle-wrapper.properties
Running Gradle task 'assembleDebug'...
One or more plugins require a higher Android NDK version.
Fix this issue by adding the following to C:\Users\Gabriel\development\flutter_gstreamer_player-master\example\android\app\build.gradle:
android {
ndkVersion "21.4.7075529"
...
}

Checking the license for package Android SDK Build-Tools 29.0.2 in C:\Users\Gabriel\AppData\Local\Android\Sdk\licenses
License for package Android SDK Build-Tools 29.0.2 accepted.
Preparing "Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)".
"Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)" ready.
Installing Android SDK Build-Tools 29.0.2 in C:\Users\Gabriel\AppData\Local\Android\Sdk\build-tools\29.0.2
"Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)" complete.
"Install Android SDK Build-Tools 29.0.2 (revision: 29.0.2)" finished.

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:processDebugMainManifest'.

Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @806171c

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

BUILD FAILED in 2m 25s
Exception: Gradle task assembleDebug failed with exit code 1

I'm using Gstreamer android 1.20.1 like in the example and OpenJDK 11.0.18 2023-01-17. I'm on Windows 11, but I also tried on Linux and I can get the Linux desktop app working, but not the android one.

Gstreamer Sink

Odd question and long shot.... I want to create a UI for UxPlay (an airplay receiver) that uses gstreamer. It uses sinks to determinate who is rendering the image. Rightnow, on my buildroot instalation it goes to kmssink.

Is there a way to link this two projects (preferably without rtspsink?), can a widget be used as a sink? That would be ideal. or... do you know any other way to make this work?

Thank you!

iOS: Undefined symbols for architecture arm64: in mac M1 chip

Hi

  • I'm getting undefined symbols for architecture error in both simulator and iPhone device.
  • i'm tried this to enable and disable rosetta in xcode.

Please refer xcode error logs.
Undefined symbols for architecture arm64:

"__gst_debug_category_new", referenced from:
    -[GStreamerBackend init:videoView:] in GStreamerBackend.o
"_g_build_filename", referenced from:
    _gst_ios_init in gst_ios_init.o
"_g_clear_error", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
    _error_cb in GStreamerBackend.o
"_g_free", referenced from:
    _gst_ios_init in gst_ios_init.o
    -[GStreamerBackend app_function:] in GStreamerBackend.o
    _error_cb in GStreamerBackend.o
    _state_changed_cb in GStreamerBackend.o
"_g_main_context_new", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_main_context_pop_thread_default", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_main_context_push_thread_default", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_main_context_unref", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_main_loop_new", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_main_loop_run", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_main_loop_unref", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_setenv", referenced from:
    _gst_ios_init in gst_ios_init.o
"_g_signal_connect_data", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_source_attach", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_source_set_callback", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_source_unref", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_g_strdup_printf", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
    _error_cb in GStreamerBackend.o
    _state_changed_cb in GStreamerBackend.o
"_g_tls_backend_get_default", referenced from:
    _gst_ios_init in gst_ios_init.o
"_g_tls_backend_set_default_database", referenced from:
    _gst_ios_init in gst_ios_init.o
"_g_tls_file_database_new", referenced from:
    _gst_ios_init in gst_ios_init.o
"_g_type_check_instance_cast", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
    _state_changed_cb in GStreamerBackend.o
"_gst_bin_get_by_interface", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_bin_get_type", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_bus_async_signal_func", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_bus_create_watch", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_debug_set_threshold_for_name", referenced from:
    -[GStreamerBackend init:videoView:] in GStreamerBackend.o
"_gst_element_get_bus", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_element_set_state", referenced from:
    -[GStreamerBackend dealloc] in GStreamerBackend.o
    -[GStreamerBackend check_initialization_complete] in GStreamerBackend.o
    -[GStreamerBackend app_function:] in GStreamerBackend.o
    _error_cb in GStreamerBackend.o
"_gst_element_state_get_name", referenced from:
    _state_changed_cb in GStreamerBackend.o
"_gst_init", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_message_parse_error", referenced from:
    _error_cb in GStreamerBackend.o
"_gst_message_parse_state_changed", referenced from:
    _state_changed_cb in GStreamerBackend.o
"_gst_object_get_type", referenced from:
    _state_changed_cb in GStreamerBackend.o
"_gst_object_unref", referenced from:
    -[GStreamerBackend dealloc] in GStreamerBackend.o
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_parse_launch", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_plugin_a52dec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_accurip_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_adder_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_adpcmdec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_adpcmenc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_aiff_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_alaw_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_alpha_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_alphacolor_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_amrnb_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_amrwbdec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_apetag_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_app_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_applemedia_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_asf_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_asfmux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_assrender_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audiobuffersplit_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audioconvert_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audiofx_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audiofxbad_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audiomixer_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audioparsers_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audiorate_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audioresample_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audiotestsrc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_audiovisualizers_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_auparse_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_autoconvert_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_autodetect_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_avi_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_bayer_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_cairo_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_camerabin_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_closedcaption_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_coloreffects_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_compositor_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_coreelements_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_coretracers_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_cutter_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dash_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_debug_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_debugutilsbad_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_deinterlace_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dtls_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dtmf_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dtsdec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dv_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dvbsuboverlay_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dvdlpcmdec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dvdspu_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_dvdsub_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_effectv_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_encoding_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_equalizer_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_feature_set_rank", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_fieldanalysis_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_flac_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_flv_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_flxdec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_freeverb_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_frei0r_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_gaudieffects_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_gdkpixbuf_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_gdp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_geometrictransform_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_gio_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_goom2k1_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_goom_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_hls_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_icydemux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_id3demux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_id3tag_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_imagefreeze_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_inter_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_interlace_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_interleave_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_isomp4_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_ivorbisdec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_ivtc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_jpeg_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_jpegformat_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_kate_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_ladspa_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_lame_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_legacyrawparse_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_level_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_libav_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_matroska_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_midi_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_mpegpsdemux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_mpegpsmux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_mpegtsdemux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_mpegtsmux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_mpg123_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_mulaw_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_multifile_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_multipart_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_mxf_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_nice_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_nle_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_ogg_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_opengl_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_openh264_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_openjpeg_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_opus_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_opusparse_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_osxaudio_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_overlaycomposition_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_pango_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_pcapparse_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_playback_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_png_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_pnm_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_proxy_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rawparse_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_realmedia_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_removesilence_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_replaygain_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rfbsrc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rsvg_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rtmp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rtp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rtpmanager_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rtsp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_rtspclientsink_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_sbc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_sctp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_sdpelem_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_segmentclip_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_shapewipe_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_shm_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_siren_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_smooth_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_smoothstreaming_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_smpte_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_soundtouch_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_soup_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_spandsp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_spectrum_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_speed_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_speex_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_srt_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_srtp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_subenc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_subparse_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_taglib_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_tcp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_theora_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_typefindfunctions_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_udp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videobox_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videoconvert_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videocrop_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videofilter_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videofiltersbad_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videomixer_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videoparsersbad_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videorate_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videoscale_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_videotestsrc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_voaacenc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_volume_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_vorbis_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_vpx_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_wavenc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_wavpack_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_wavparse_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_webrtc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_webrtcdsp_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_x264_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_xingmux_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_y4mdec_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_plugin_y4menc_register", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_registry_get", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_registry_lookup_feature", referenced from:
    _gst_ios_init in gst_ios_init.o
"_gst_video_overlay_get_type", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
"_gst_video_overlay_set_window_handle", referenced from:
    -[GStreamerBackend app_function:] in GStreamerBackend.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Undefined symbol: __gst_debug_category_new

Undefined symbol: _g_build_filename

Undefined symbol: _g_clear_error

Undefined symbol: _g_free

Undefined symbol: _g_main_context_new

Undefined symbol: _g_main_context_pop_thread_default

Undefined symbol: _g_main_context_push_thread_default

Undefined symbol: _g_main_context_unref

Undefined symbol: _g_main_loop_new

Undefined symbol: _g_main_loop_run

Undefined symbol: _g_main_loop_unref

Undefined symbol: _g_setenv

Undefined symbol: _g_signal_connect_data

Undefined symbol: _g_source_attach

Undefined symbol: _g_source_set_callback

Undefined symbol: _g_source_unref

Undefined symbol: _g_strdup_printf

Undefined symbol: _g_tls_backend_get_default

Undefined symbol: _g_tls_backend_set_default_database

Undefined symbol: _g_tls_file_database_new

Undefined symbol: _g_type_check_instance_cast

Undefined symbol: _gst_bin_get_by_interface

Undefined symbol: _gst_bin_get_type

Undefined symbol: _gst_bus_async_signal_func

Undefined symbol: _gst_bus_create_watch

Undefined symbol: _gst_debug_set_threshold_for_name

Undefined symbol: _gst_element_get_bus

Undefined symbol: _gst_element_set_state

Undefined symbol: _gst_element_state_get_name

Undefined symbol: _gst_init

Undefined symbol: _gst_message_parse_error

Undefined symbol: _gst_message_parse_state_changed

Undefined symbol: _gst_object_get_type

Undefined symbol: _gst_object_unref

Undefined symbol: _gst_parse_launch

Undefined symbol: _gst_plugin_a52dec_register

Undefined symbol: _gst_plugin_accurip_register

Undefined symbol: _gst_plugin_adder_register

Undefined symbol: _gst_plugin_adpcmdec_register

Undefined symbol: _gst_plugin_adpcmenc_register

Undefined symbol: _gst_plugin_aiff_register

Undefined symbol: _gst_plugin_alaw_register

Undefined symbol: _gst_plugin_alpha_register

Undefined symbol: _gst_plugin_alphacolor_register

Undefined symbol: _gst_plugin_amrnb_register

Undefined symbol: _gst_plugin_amrwbdec_register

Undefined symbol: _gst_plugin_apetag_register

Undefined symbol: _gst_plugin_app_register

Undefined symbol: _gst_plugin_applemedia_register

Undefined symbol: _gst_plugin_asf_register

Undefined symbol: _gst_plugin_asfmux_register

Undefined symbol: _gst_plugin_assrender_register

Undefined symbol: _gst_plugin_audiobuffersplit_register

Undefined symbol: _gst_plugin_audioconvert_register

Undefined symbol: _gst_plugin_audiofx_register

Undefined symbol: _gst_plugin_audiofxbad_register

Undefined symbol: _gst_plugin_audiomixer_register

Undefined symbol: _gst_plugin_audioparsers_register

Undefined symbol: _gst_plugin_audiorate_register

Undefined symbol: _gst_plugin_audioresample_register

Undefined symbol: _gst_plugin_audiotestsrc_register

Undefined symbol: _gst_plugin_audiovisualizers_register

Undefined symbol: _gst_plugin_auparse_register

Undefined symbol: _gst_plugin_autoconvert_register

Undefined symbol: _gst_plugin_autodetect_register

Undefined symbol: _gst_plugin_avi_register

Undefined symbol: _gst_plugin_bayer_register

Undefined symbol: _gst_plugin_cairo_register

Undefined symbol: _gst_plugin_camerabin_register

Undefined symbol: _gst_plugin_closedcaption_register

Undefined symbol: _gst_plugin_coloreffects_register

Undefined symbol: _gst_plugin_compositor_register

Undefined symbol: _gst_plugin_coreelements_register

Undefined symbol: _gst_plugin_coretracers_register

Undefined symbol: _gst_plugin_cutter_register

Undefined symbol: _gst_plugin_dash_register

Undefined symbol: _gst_plugin_debug_register

Undefined symbol: _gst_plugin_debugutilsbad_register

Undefined symbol: _gst_plugin_deinterlace_register

Undefined symbol: _gst_plugin_dtls_register

Undefined symbol: _gst_plugin_dtmf_register

Undefined symbol: _gst_plugin_dtsdec_register

Undefined symbol: _gst_plugin_dv_register

Undefined symbol: _gst_plugin_dvbsuboverlay_register

Undefined symbol: _gst_plugin_dvdlpcmdec_register

Undefined symbol: _gst_plugin_dvdspu_register

Undefined symbol: _gst_plugin_dvdsub_register

Undefined symbol: _gst_plugin_effectv_register

Undefined symbol: _gst_plugin_encoding_register

Undefined symbol: _gst_plugin_equalizer_register

Undefined symbol: _gst_plugin_feature_set_rank

Undefined symbol: _gst_plugin_fieldanalysis_register

Undefined symbol: _gst_plugin_flac_register

Undefined symbol: _gst_plugin_flv_register

Undefined symbol: _gst_plugin_flxdec_register

Undefined symbol: _gst_plugin_freeverb_register

Undefined symbol: _gst_plugin_frei0r_register

Undefined symbol: _gst_plugin_gaudieffects_register

Undefined symbol: _gst_plugin_gdkpixbuf_register

Undefined symbol: _gst_plugin_gdp_register


Plugin crashing in Linux

Hello, this dependency is amazing! Thanks for that.

I have a single board computer running a USB camera, which I have been trying to stream over WiFi via gstreamer into my laptop's Flutter application, which is running this package.

I have this error whenever I try to pipe in data from the single board computer, and the the entire Flutter App just crashes. The gstreamer command from the single board computer utilises a udpsink to the app.

Gdk-CRITICAL **: 16:00:36.618: gdk_window_get_state: assertion 'GDK_IS_WINDOW (window)' failed
Lost connection to device.

Exited.

gstreamer from single board computer
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720,framerate=60/1 ! jpegdec ! videoconvert ! x264enc tune=zerolatency bitrate=5000 speed-preset=ultrafast ! rtph264pay config-interval=1 pt=96 ! udpsink host=HOST_IP port=5000

GstPlayer pipeline
udpsrc port=5000 ! queue ! application/x-rtp, encoding-name=H264,payload=96 ! queue ! rtph264depay ! queue ! avdec_h264 ! queue ! videoconvert ! queue ! appsink name=sink sync=false

Any help would be greatly appreciated, thank you!

The Window opens outside Flutter App

Hi, I have noticed while testing,

The g streamer window opens outside the flutter app . And I can see the error flutter gstreamer failed to read XDG desktop portal settings: GDBus.Error:org.freedesktop.portal.Error.NotFount: Requested setting not found in the console.

How to resolve this error ?

Execution failed for task ':flutter_gstreamer_player:generateJsonModelDebug'.

I'm trying to build the example app for android, but i when i do i get:

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':flutter_gstreamer_player:generateJsonModelDebug'.

executing external native build for ndkBuild /Users/xxx/.pub-cache/hosted/pub.dev/flutter_gstreamer_player-0.0.3/gst_player/Android.mk

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

BUILD FAILED in 5s

Architecture error on build

Hello!

I'm currently experiencing the following error when trying to build my application:

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':flutter_gstreamer_player:configureNdkBuildDebug[arm64-v8a]'.

[CXX1415] C:\Repos\h264_test\build\flutter_gstreamer_player.cxx\Debug\5w4p5m73\arm64-v8a\android_gradle_build.json debug|arm64-v8a : gstreamer_android-debug-gst-build-arm64-v8a.abi 'gst-build-arm64-v8a' is invalid. Valid values are 'armeabi-v7a, arm64-v8a, x86, x86_64'

I'm building the app on a Windows machine for an Android tablet.
I'm using the recommended (tested) 1.20.1 gstreamer binary.
My NDK version is 21.4.7075529.

Would you know why this is happening? Any information would be appreciated!

Texture ID not getting Initialized in Linux

======== Exception caught by widgets library =======================================================
The following LateError was thrown building GstPlayer(dirty, dependencies: [_InheritedTheme, _LocalizationsScope-[GlobalKey#05318]], state: _GstPlayerState#23a84):
LateInitializationError: Field 'textureId' has not been initialized.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.