Difference between revisions of "RidgeRun Mobile Framework"

From RidgeRun Developer Connection
Jump to: navigation, search
m
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Introduction =
+
<seo title="RidgeRun Mobile Framework | Android & iOS Multimedia Solutions" titlemode="replace" keywords="GStreamer, Linux SDK, Linux BSP,  Embedded Linux, Device Drivers, Nvidia, Xilinx, TI, NXP, Freescale, Embedded Linux driver development, Linux Software development, Embedded Linux SDK, Embedded Linux Application development, GStreamer Multimedia Framework."  description="RidgeRun's mobile framework is a library that eases multimedia solutions for Android and iOS operating systems. Learn about this framework's advantages today."></seo>
 +
 
 +
{{Ambox
 +
|type=notice
 +
|small=left
 +
|issue=<center>''' <span style="color:red;font-size:150%;">NOTE: Mobile Media Framework is deprecated. Contact us for customized GStreamer solutions:</span></center>'''
 +
<center>
 +
[https://www.ridgerun.com/contact Contact us]
 +
</center>
 +
|style=width:unset;
 +
}}
 +
 
 +
<table>
 +
<tr>
 +
<td><div class="clear; float:right">__TOC__</div></td>
 +
<td>
 +
<html>
 +
<div id='product-component-2da88838c7d'></div>
 +
    <script type="text/javascript">
 +
    /*<![CDATA[*/
 +
 
 +
    (function () {
 +
      var scriptURL = 'https://sdks.shopifycdn.com/buy-button/latest/buy-button-storefront.min.js';
 +
      if (window.ShopifyBuy) {
 +
        if (window.ShopifyBuy.UI) {
 +
          ShopifyBuyInit();
 +
        } else {
 +
          loadScript();
 +
        }
 +
      } else {
 +
        loadScript();
 +
      }
 +
 
 +
      function loadScript() {
 +
        var script = document.createElement('script');
 +
        script.async = true;
 +
        script.src = scriptURL;
 +
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);
 +
        script.onload = ShopifyBuyInit;
 +
      }
 +
 
 +
      function ShopifyBuyInit() {
 +
        var client = ShopifyBuy.buildClient({
 +
          domain: 'ridgerun1.myshopify.com',
 +
          storefrontAccessToken: 'b0ca98633a82de5d2f63cd51f5af30ac',
 +
        });
 +
 
 +
        ShopifyBuy.UI.onReady(client).then(function (ui) {
 +
          ui.createComponent('product', {
 +
            id: [1684383531079],
 +
            node: document.getElementById('product-component-2da88838c7d'),
 +
            moneyFormat: '%24%7B%7Bamount%7D%7D',
 +
            options: {
 +
  "product": {
 +
    "variantId": "all",
 +
    "width": "240px",
 +
    "contents": {
 +
      "imgWithCarousel": false,
 +
      "variantTitle": false,
 +
      "description": false,
 +
      "buttonWithQuantity": false,
 +
      "quantity": false
 +
    },
 +
    "text": {
 +
      "button": "BUY NOW"
 +
    },
 +
    "styles": {
 +
      "product": {
 +
        "@media (min-width: 601px)": {
 +
          "max-width": "100%",
 +
          "margin-left": "0",
 +
          "margin-bottom": "50px"
 +
        }
 +
      },
 +
      "button": {
 +
        "background-color": "#007493",
 +
        "font-size": "18px",
 +
        "padding-top": "17px",
 +
        "padding-bottom": "17px",
 +
        ":hover": {
 +
          "background-color": "#006884"
 +
        },
 +
        ":focus": {
 +
          "background-color": "#006884"
 +
        }
 +
      },
 +
      "quantityInput": {
 +
        "font-size": "18px",
 +
        "padding-top": "17px",
 +
        "padding-bottom": "17px"
 +
      },
 +
      "compareAt": {
 +
        "font-size": "12px"
 +
      }
 +
    }
 +
  },
 +
  "cart": {
 +
    "contents": {
 +
      "button": true
 +
    },
 +
    "styles": {
 +
      "button": {
 +
        "background-color": "#007493",
 +
        "font-size": "18px",
 +
        "padding-top": "17px",
 +
        "padding-bottom": "17px",
 +
        ":hover": {
 +
          "background-color": "#006884"
 +
        },
 +
        ":focus": {
 +
          "background-color": "#006884"
 +
        }
 +
      },
 +
      "footer": {
 +
        "background-color": "#ffffff"
 +
      }
 +
    }
 +
  },
 +
  "modalProduct": {
 +
    "contents": {
 +
      "img": false,
 +
      "imgWithCarousel": true,
 +
      "variantTitle": false,
 +
      "buttonWithQuantity": true,
 +
      "button": false,
 +
      "quantity": false
 +
    },
 +
    "styles": {
 +
      "product": {
 +
        "@media (min-width: 601px)": {
 +
          "max-width": "100%",
 +
          "margin-left": "0px",
 +
          "margin-bottom": "0px"
 +
        }
 +
      },
 +
      "button": {
 +
        "background-color": "#007493",
 +
        "font-size": "18px",
 +
        "padding-top": "17px",
 +
        "padding-bottom": "17px",
 +
        ":hover": {
 +
          "background-color": "#006884"
 +
        },
 +
        ":focus": {
 +
          "background-color": "#006884"
 +
        }
 +
      },
 +
      "quantityInput": {
 +
        "font-size": "18px",
 +
        "padding-top": "17px",
 +
        "padding-bottom": "17px"
 +
      }
 +
    }
 +
  },
 +
  "toggle": {
 +
    "styles": {
 +
      "toggle": {
 +
        "background-color": "#007493",
 +
        ":hover": {
 +
          "background-color": "#006884"
 +
        },
 +
        ":focus": {
 +
          "background-color": "#006884"
 +
        }
 +
      },
 +
      "count": {
 +
        "font-size": "18px"
 +
      }
 +
    }
 +
  },
 +
  "productSet": {
 +
    "styles": {
 +
      "products": {
 +
        "@media (min-width: 601px)": {
 +
          "margin-left": "-20px"
 +
        }
 +
      }
 +
    }
 +
  }
 +
}
 +
          });
 +
        });
 +
      }
 +
    })();
 +
    /*]]>*/
 +
    </script>
 +
</html>
 +
</td>
 +
<td><center>
 +
{{Template:ContactUs Button}}
 +
</center></td></tr></table>
 +
 
 +
== Introduction ==
  
 
RidgeRun's Mobile Framework is a library that eases multimedia solutions for Android and iOS operating systems. It's based on the GStreamer project therefore it inherits all of its power, exposing a custom and robust design, allowing an easy usage of audio and video features like streaming, recording, playback, and others. The main idea behind the framework is to accelerate the time-to-market of media based products by abstracting all the GStreamer complexities into simple OS specific classes, which any mobile developer may instantiate.
 
RidgeRun's Mobile Framework is a library that eases multimedia solutions for Android and iOS operating systems. It's based on the GStreamer project therefore it inherits all of its power, exposing a custom and robust design, allowing an easy usage of audio and video features like streaming, recording, playback, and others. The main idea behind the framework is to accelerate the time-to-market of media based products by abstracting all the GStreamer complexities into simple OS specific classes, which any mobile developer may instantiate.
Line 14: Line 206:
 
* Complete documentation.
 
* Complete documentation.
  
= Architecture =  
+
== Architecture ==  
  
 
RidgeRun's Mobile Framework provides a common layer on top of GStreamer for the different mobile operating systems. This layer abstracts low-level media handling into high-level object-like streams. On top of these stream objects the Framework provides language specific bindings for each OS, exposing classes which users can instantiate in their custom application. These classes are delivered in the OS standard packaging system: AAR for Android and Framework for iOS. Figure 1 summarizes the architecture described above. The layer in blue represents the software distributed in the Mobile Framework.
 
RidgeRun's Mobile Framework provides a common layer on top of GStreamer for the different mobile operating systems. This layer abstracts low-level media handling into high-level object-like streams. On top of these stream objects the Framework provides language specific bindings for each OS, exposing classes which users can instantiate in their custom application. These classes are delivered in the OS standard packaging system: AAR for Android and Framework for iOS. Figure 1 summarizes the architecture described above. The layer in blue represents the software distributed in the Mobile Framework.
Line 22: Line 214:
 
The solution proposed above provides a scalable and modular solution for users who wish to deploy their multimedia product on multiple OS. This is achieved by maintaining a common code base with the media logic and encapsulating it in OS specific classes.  
 
The solution proposed above provides a scalable and modular solution for users who wish to deploy their multimedia product on multiple OS. This is achieved by maintaining a common code base with the media logic and encapsulating it in OS specific classes.  
  
== Multimedia ==
+
=== Multimedia ===
  
 
The multimedia section is encapsulated in a set of classes, each one representing a different functionality. For example, encoding format, stream protocol and render mechanism, are all represented by orthogonal classes implementing common interfaces, allowing the user to change each of them independently without breaking the rest of the code. Moreover, additional formats and protocols may be implemented by extending the proposed interfaces, again, without breaking existing code.
 
The multimedia section is encapsulated in a set of classes, each one representing a different functionality. For example, encoding format, stream protocol and render mechanism, are all represented by orthogonal classes implementing common interfaces, allowing the user to change each of them independently without breaking the rest of the code. Moreover, additional formats and protocols may be implemented by extending the proposed interfaces, again, without breaking existing code.
Line 28: Line 220:
 
The class hierarchy is documented in a standard UML class diagram, which is distributed along with the code.
 
The class hierarchy is documented in a standard UML class diagram, which is distributed along with the code.
  
== Autodiscovery ==
+
=== Autodiscovery ===
  
 
Device autodiscovery is a mechanism by which a set of devices find themselves in a network based on certain criteria, without the need for the user to specify the device's IP addresses. Multimedia streaming usually requires one device knowing the address of the other, therefore device auto discovery is a very common use case in media solutions. As such, RidgeRun's Mobile Framework exposes a module dedicated to autodiscovery which will, underneath, use the OS specific facilities. This is, mDNS in Android and Bonjour in iOS.
 
Device autodiscovery is a mechanism by which a set of devices find themselves in a network based on certain criteria, without the need for the user to specify the device's IP addresses. Multimedia streaming usually requires one device knowing the address of the other, therefore device auto discovery is a very common use case in media solutions. As such, RidgeRun's Mobile Framework exposes a module dedicated to autodiscovery which will, underneath, use the OS specific facilities. This is, mDNS in Android and Bonjour in iOS.
Line 45: Line 237:
  
  
= Mobile Framework Support =
+
== Mobile Framework Support ==
  
 
The Framework supports its install on both Android and iOS, and it's a straight forward process. The requirements are just a few and they are summarized on the setting up documentation. The next wiki-pages can guide you with the set up and the development process once you get the Mobile Framework.
 
The Framework supports its install on both Android and iOS, and it's a straight forward process. The requirements are just a few and they are summarized on the setting up documentation. The next wiki-pages can guide you with the set up and the development process once you get the Mobile Framework.
  
== Android ==
+
=== Android ===
 
All the information you need to know in order to start your Android Development with our Framework can be found here:
 
All the information you need to know in order to start your Android Development with our Framework can be found here:
  
 
* [https://developer.ridgerun.com/wiki/index.php?title=Getting_Started_Guide_with_RidgeRun%27s_Mobile_Framework_for_Android Getting Started Guide with RidgeRun's Mobile Framework for Android]
 
* [https://developer.ridgerun.com/wiki/index.php?title=Getting_Started_Guide_with_RidgeRun%27s_Mobile_Framework_for_Android Getting Started Guide with RidgeRun's Mobile Framework for Android]
  
== iOS ==
+
=== iOS ===
 
Also, the iOS version provides the same documentation for the apple brand, to ease you in the process of bring up a powerful application:
 
Also, the iOS version provides the same documentation for the apple brand, to ease you in the process of bring up a powerful application:
  
 
* [https://developer.ridgerun.com/wiki/index.php?title=Getting_Started_Guide_with_RidgeRun%27s_Mobile_Framework_for_iOS Getting Started Guide with RidgeRun's Mobile Framework for iOS]
 
* [https://developer.ridgerun.com/wiki/index.php?title=Getting_Started_Guide_with_RidgeRun%27s_Mobile_Framework_for_iOS Getting Started Guide with RidgeRun's Mobile Framework for iOS]
  
== API ==
+
=== API ===
  
 
Last, we provide you a complete API Documentation that can serve as reference for your own custom application that uses our Mobile Framework.  
 
Last, we provide you a complete API Documentation that can serve as reference for your own custom application that uses our Mobile Framework.  
  
* [http://downloads.ridgerun.com/mobile-media-framework/functions_func.html RidgeRun's Mobile Framework API for iOS]
+
* [http://downloads.ridgerun.com/documentation/public/mobile-media-framework/functions_func.html RidgeRun's Mobile Framework API for iOS]
 
 
'''Note''': This API reference is for iOS but RidgeRun also offers an Android version, please send us an email to [mailto:inquiries@ridgerun.com inquiries@ridgerun.com] and we will be glad to help you!
 
  
 +
'''Note''': This API reference is for iOS but RidgeRun also offers an Android version, please send us an email to [mailto:support@ridgerun.com '''support@ridgerun.com'''] and we will be glad to help you!
  
= Mobile Framework Demos =
+
== Mobile Framework Demos ==
  
 
Our Framework works! and to show you how it looks we prepared two videos, one for each supported OS. The videos can be found here:
 
Our Framework works! and to show you how it looks we prepared two videos, one for each supported OS. The videos can be found here:
  
== Mobile Media Framework -- Android Demo ==
+
=== Mobile Media Framework -- Android Demo ===
 
+
<br>
 
<center>
 
<center>
 
<embedvideo service="vimeo">https://vimeo.com/173104242</embedvideo>
 
<embedvideo service="vimeo">https://vimeo.com/173104242</embedvideo>
 
</center>
 
</center>
 
+
<br>
== Mobile Media Framework -- IOS Demo ==
+
=== Mobile Media Framework -- IOS Demo ===
 
+
<br>
 
<center>
 
<center>
 
<embedvideo service="vimeo">https://vimeo.com/173104243</embedvideo>
 
<embedvideo service="vimeo">https://vimeo.com/173104243</embedvideo>
 
</center>
 
</center>
 +
<br>
  
= Pricing =
+
{{ContactUs}}
 
 
For pricing information please contact us on our [http://www.ridgerun.com/contact Contact Us Page]
 
 
 
or write an email to [mailto:inquiries@ridgerun.com inquiries@ridgerun.com].
 
  
  
  
[[Category:RidgeRunMobileFramework]] [[Category:SdkAddOn]][[Category:RidgeRunTechnology]]
+
[[Category:RidgeRunMobileFramework]] [[Category:RidgeRunTechnology]]

Latest revision as of 13:20, 20 January 2023

RR Contact Us.png

Introduction

RidgeRun's Mobile Framework is a library that eases multimedia solutions for Android and iOS operating systems. It's based on the GStreamer project therefore it inherits all of its power, exposing a custom and robust design, allowing an easy usage of audio and video features like streaming, recording, playback, and others. The main idea behind the framework is to accelerate the time-to-market of media based products by abstracting all the GStreamer complexities into simple OS specific classes, which any mobile developer may instantiate.

 Ideal for any mobile developer since no prior GStreamer knowledge is required

Using our Framework can give you the following advantages:

  • Leverages the features of the GStreamer framework in a mobile application!
  • Hardware resources usage instead of Software algorithms: less power consumption and higher performance.
  • Real encapsulation and efficiency with low-level C code.
  • Several stream and containers formats.
  • Improved portability to match your own ARM-based platform.
  • Complete documentation.

Architecture

RidgeRun's Mobile Framework provides a common layer on top of GStreamer for the different mobile operating systems. This layer abstracts low-level media handling into high-level object-like streams. On top of these stream objects the Framework provides language specific bindings for each OS, exposing classes which users can instantiate in their custom application. These classes are delivered in the OS standard packaging system: AAR for Android and Framework for iOS. Figure 1 summarizes the architecture described above. The layer in blue represents the software distributed in the Mobile Framework.

Figure 1. Mobile Framework software architecture. Layer in blue represents software provided by the Framework.

The solution proposed above provides a scalable and modular solution for users who wish to deploy their multimedia product on multiple OS. This is achieved by maintaining a common code base with the media logic and encapsulating it in OS specific classes.

Multimedia

The multimedia section is encapsulated in a set of classes, each one representing a different functionality. For example, encoding format, stream protocol and render mechanism, are all represented by orthogonal classes implementing common interfaces, allowing the user to change each of them independently without breaking the rest of the code. Moreover, additional formats and protocols may be implemented by extending the proposed interfaces, again, without breaking existing code.

The class hierarchy is documented in a standard UML class diagram, which is distributed along with the code.

Autodiscovery

Device autodiscovery is a mechanism by which a set of devices find themselves in a network based on certain criteria, without the need for the user to specify the device's IP addresses. Multimedia streaming usually requires one device knowing the address of the other, therefore device auto discovery is a very common use case in media solutions. As such, RidgeRun's Mobile Framework exposes a module dedicated to autodiscovery which will, underneath, use the OS specific facilities. This is, mDNS in Android and Bonjour in iOS.

Table 1 summarizes OS specific bindings and the technology behind them.

Table 1. Summary of OS specific binding layers
OS Language Binding Distributed as Device Autodiscovery
Android JAVA AAR MDNS
iOS Objective-C Framework Bonjour


Mobile Framework Support

The Framework supports its install on both Android and iOS, and it's a straight forward process. The requirements are just a few and they are summarized on the setting up documentation. The next wiki-pages can guide you with the set up and the development process once you get the Mobile Framework.

Android

All the information you need to know in order to start your Android Development with our Framework can be found here:

iOS

Also, the iOS version provides the same documentation for the apple brand, to ease you in the process of bring up a powerful application:

API

Last, we provide you a complete API Documentation that can serve as reference for your own custom application that uses our Mobile Framework.

Note: This API reference is for iOS but RidgeRun also offers an Android version, please send us an email to support@ridgerun.com and we will be glad to help you!

Mobile Framework Demos

Our Framework works! and to show you how it looks we prepared two videos, one for each supported OS. The videos can be found here:

Mobile Media Framework -- Android Demo



Mobile Media Framework -- IOS Demo




RidgeRun Resources

Quick Start Client Engagement Process RidgeRun Blog Homepage
Technical and Sales Support RidgeRun Online Store RidgeRun Videos Contact Us

OOjs UI icon message-progressive.svg Contact Us

Visit our Main Website for the RidgeRun Products and Online Store. RidgeRun Engineering informations are available in RidgeRun Professional Services, RidgeRun Subscription Model and Client Engagement Process wiki pages. Please email to support@ridgerun.com for technical questions and contactus@ridgerun.com for other queries. Contact details for sponsoring the RidgeRun GStreamer projects are available in Sponsor Projects page. Ridgerun-logo.svg
RR Contact Us.png