Skip to content

Commit

Permalink
MobileSDK 2.0.299
Browse files Browse the repository at this point in the history
CloudSDK
Version 2.0.299_20220707:
- updated versions of used SDK:
  PlayerSDK: 6.96.20220707,
  EncoderSDK: 6.13.20220707

PlayerSDK
Version 6.96.20220707:
- migrated to openssl version 1.1.1q

EncoderSDK
Version 6.13.20220707:
- migrated to openssl version 1.1.1q

MobileSDK 2.0.298

CloudSDK
Version 2.0.298_20220705:
- updated versions of used SDK:
  PlayerSDK: 6.96.20220705,
  EncoderSDK: 6.13.20220705

PlayerSDK
Version 6.96.20220705:
- migrated openssl to version 1.1.1p
- migrated to FFMPEG version 4.4.2

EncoderSDK
Version 6.13.20220705:
- migrated openssl to version 1.1.1p
- migrated to FFMPEG version 4.4.2

MobileSDK 2.0.297

CloudSDK
Version 2.0.297_20220622:
- updated versions of used SDK:
  PlayerSDK: 6.96.20220622
- added the ability to configure the behavior of the sequence of double taps

PlayerSDK
Version 6.96.20220622:
- added support double tap gesture for all aspect ratio zoom/move modes
- added the ability to configure the behavior of the sequence of double taps

EncoderSDK
Version 6.13.20220518:

MobileSDK 2.0.296

CloudSDK
Version 2.0.296_20220618:
- fixed CloudStreamer connection conflict issue

PlayerSDK
Version 6.96.20220411:

EncoderSDK
Version 6.13.20220518:
  • Loading branch information
maxkutsanov committed Aug 9, 2022
1 parent f9b9616 commit f6f2d71
Show file tree
Hide file tree
Showing 59 changed files with 893 additions and 281 deletions.
62 changes: 62 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,67 @@
# VXG Mobile SDK Android

### MobileSDK 2.0.299

CloudSDK
Version 2.0.299_20220707:
- updated versions of used SDK:
PlayerSDK: 6.96.20220707,
EncoderSDK: 6.13.20220707

PlayerSDK
Version 6.96.20220707:
- migrated to openssl version 1.1.1q

EncoderSDK
Version 6.13.20220707:
- migrated to openssl version 1.1.1q

### MobileSDK 2.0.298

CloudSDK
Version 2.0.298_20220705:
- updated versions of used SDK:
PlayerSDK: 6.96.20220705,
EncoderSDK: 6.13.20220705

PlayerSDK
Version 6.96.20220705:
- migrated openssl to version 1.1.1p
- migrated to FFMPEG version 4.4.2

EncoderSDK
Version 6.13.20220705:
- migrated openssl to version 1.1.1p
- migrated to FFMPEG version 4.4.2

### MobileSDK 2.0.297

CloudSDK
Version 2.0.297_20220622:
- updated versions of used SDK:
PlayerSDK: 6.96.20220622
- added the ability to configure the behavior of the sequence of double taps

PlayerSDK
Version 6.96.20220622:
- added support double tap gesture for all aspect ratio zoom/move modes
- added the ability to configure the behavior of the sequence of double taps

EncoderSDK
Version 6.13.20220518:

### MobileSDK 2.0.296

CloudSDK
Version 2.0.296_20220618:
- fixed CloudStreamer connection conflict issue

PlayerSDK
Version 6.96.20220411:

EncoderSDK
Version 6.13.20220518:

### MobileSDK 2.0.294

CloudSDK
Expand Down
Binary file not shown.
1 change: 1 addition & 0 deletions CloudSDK/bin/readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
All binary apk can be downloaded in following link:
55 changes: 44 additions & 11 deletions CloudSDK/src/build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,31 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
ext {
cloudsdk_ver = project.hasProperty('cloudsdk_ver') ? project.getProperty('cloudsdk_ver') : "2.0.294"
playersdk_ver = project.hasProperty('playersdk_ver') ? project.getProperty('playersdk_ver') : "6.96.20220411"
cloudsdk_ver = project.hasProperty('cloudsdk_ver') ? project.getProperty('cloudsdk_ver') : "2.0.299"
playersdk_ver = project.hasProperty('playersdk_ver') ? project.getProperty('playersdk_ver') : "6.96.20220707"
}

buildscript {
if (!project.hasProperty("art_userName") || !project.hasProperty('art_password')) {
if (file("./art/properties").exists()) {
def props = new Properties()
file("./art/properties").withInputStream { props.load(it) }
project.ext.set("art_userName", props.getProperty("art_userName"))
project.ext.set("art_password", props.getProperty("art_password"))
} else {
project.ext.set("art_userName", "")
project.ext.set("art_password", "")
}
}

if (!project.hasProperty("isLocalDependencies")) {
project.ext.set("isLocalDependencies", "")
}
if (!project.hasProperty("art_url")) {
project.ext.set("art_url_cloudsdk", "../../aar")
project.ext.set("art_url_playersdk", "../../../MediaSDK/PlayerSDK/aar")
project.ext.set("isLocalDependencies", "true")
}

repositories {
jcenter()
google()
Expand All @@ -18,24 +39,36 @@ allprojects {
repositories {
jcenter()
google()
maven {
credentials {
username "developer"
password "developer1"
if (project.isLocalDependencies.isEmpty()) {
maven {
credentials {
username project.art_userName
password project.art_password
}
url project.art_url
allowInsecureProtocol true
}
} else {
flatDir {
dirs project.art_url_playersdk, project.art_url_cloudsdk
}
url 'http://android.vxg.io/repository/internal/'
name 'VXG'
allowInsecureProtocol true
}
}
}

subprojects {
// Force dependencies version for all subprojects
configurations.all {
if (project.isLocalDependencies.isEmpty()) {
resolutionStrategy {
force "com.vxg.mediasdk:playersdk:$project.playersdk_ver"
force "com.vxg.cloudsdk:cloudsdk:$project.cloudsdk_ver"
}
}
}

configurations.all {
resolutionStrategy {
force "com.vxg.mediasdk:playersdk:$project.playersdk_ver"
force "com.vxg.cloudsdk:cloudsdk:$project.cloudsdk_ver"
}
}

Expand Down
7 changes: 6 additions & 1 deletion CloudSDK/src/streamland_player/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,10 @@ dependencies {
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.0.0'

implementation 'com.vxg.cloudsdk:cloudsdk:'
if (project.hasProperty("isLocalDependencies") && !project.isLocalDependencies.isEmpty()) {
implementation fileTree(dir: project.art_url_cloudsdk, include: '*.aar')
} else {
implementation 'com.vxg.cloudsdk:cloudsdk:'
}
implementation 'com.prolificinteractive:material-calendarview:1.4.3'
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,29 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RelativeLayout
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>

<Button
android:id="@+id/but_show_timeline"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:id="@+id/but_show_timeline"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_gravity="start"
android:text="show timeline"
android:textColor="#ffffff"
/>
android:textColor="#ffffff" />

<Button
android:id="@+id/but_record"
android:id="@+id/but_record"
android:layout_width="150dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:text="START RECORD"
android:textColor="#ffffff" />

</RelativeLayout>
android:textColor="#ffffff" />
</RelativeLayout>

<LinearLayout
android:id="@+id/linearLayout1"
Expand Down
7 changes: 6 additions & 1 deletion CloudSDK/src/streamland_streamer/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,10 @@ dependencies {
implementation 'androidx.vectordrawable:vectordrawable:1.0.0'
implementation 'com.google.android.gms:play-services-base:11.6.0'

implementation 'com.vxg.cloudsdk:cloudsdk:'
if (project.hasProperty("isLocalDependencies") && !project.isLocalDependencies.isEmpty()) {
implementation fileTree(dir: project.art_url_cloudsdk, include: '*.aar')
} else {
implementation 'com.vxg.cloudsdk:cloudsdk:'
}
implementation 'com.prolificinteractive:material-calendarview:1.4.3'
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,9 @@ public class MainActivity extends Activity implements OnClickListener, MediaCapt
final boolean TEST_THUMBNAIL_UPLOAD_SYNC = false;

//SET Channel
String msAccessToken = "";
private long expireTimout = 2 * 60 * 1000;
private String msPreviousAccessToken = "";
private String msAccessToken = "";

private SharedPreferences sharedPref = null;

Expand Down Expand Up @@ -292,15 +294,21 @@ public void onCreate(Bundle savedInstanceState)

mCloudStreamer = new CloudStreamerSDK(new ICloudStreamerCallback() {
@Override
public void onStarted(String surl) {
Log.v(TAG, "=>onStarted surl="+surl);
rtmp_url = surl;

public void onConfigUpdated() {
Log.v(TAG, "=>onConfigUpdated");
String config = mCloudStreamer.getConfig();
Log.v(TAG, "TestConfig: save config: " + config);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("token", msAccessToken);
editor.putString("config", config);
editor.putLong("time", System.currentTimeMillis());
editor.apply();
}

@Override
public void onStarted(String surl) {
Log.v(TAG, "=>onStarted surl="+surl);
rtmp_url = surl;

capturer.getConfig().setUrl(surl);
capturer.StartStreaming();
Expand Down Expand Up @@ -343,6 +351,8 @@ public void run() {
@Override
public void onCameraConnected() {

Log.v(TAG, "=>onCameraConnected");

if(TEST_SEGMENT_UPLOAD_SYNC || TEST_SEGMENT_UPLOAD_ASYNC) {
//test segment upload
final long minute = 60 * 1000;
Expand Down Expand Up @@ -435,9 +445,13 @@ public void run() {
}
});
mCloudStreamer.getStreamerConfig().useProtocolDefaults(CloudStreamerConfig.ProtocolDefaults.SECURE);
long time = sharedPref.getLong("time", 0);
msPreviousAccessToken = sharedPref.getString("token", "");
String config = sharedPref.getString("config", "");
if (!config.isEmpty()) {
Log.v(TAG, "TestConfig: restore config: " + config);
long delta = (System.currentTimeMillis() - time);
if (!config.isEmpty() && !msAccessToken.isEmpty() &&
msAccessToken.equals(msPreviousAccessToken) && (delta < expireTimout)) {
Log.v(TAG, "TestConfig: restore config: " + config + ", delta: " + delta + ", token: " + msPreviousAccessToken);
mCloudStreamer.setConfig(config);
}
mCloudStreamer.setSource(msAccessToken);
Expand Down
22 changes: 8 additions & 14 deletions Documentation/Android.EncoderSDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,28 +35,22 @@ VXG Mobile SDK structure:
## SDK structure
The SDK package consists of the following files and folders:

* aar (Aar archive)
* bin (Link on the samples applications binaries)
* docs (Files with links to documentation)
* src (Sample applications source code)
* bin (Sample application package)
- MediaStreamTest.apk
* libs (Library files to be linked to the application)
- mediacapturedk.jar
- libstreamer.so
- librtstm.so
* src (Sample project to test the SDK)

## Block diagram

![Screenshot](https://user-images.githubusercontent.com/11888021/156012158-549670a6-b66b-4436-8407-e722bb33b568.png)

![Screenshot](img/Android.Encoder.png)

## How to apply the license key

This is **not required for evaluation and testing**. It is only required after purchasing a license in order to remove the evaluation version limitations.

**Step 1:** Copy the Mobile license key from the License & Plans page

![Screenshot](https://user-images.githubusercontent.com/11888021/156011640-5da87a5d-c208-4b90-87ed-0adca54b9213.png)

**Step 2:** Create an empty file called **license** in your application folder **assets** and paste your license key into this file. See the picture below how it should look in corresponded test application **\streamland_streamer**.

![Screenshot](https://user-images.githubusercontent.com/11888021/156011770-cdba7598-5547-4f94-b697-2fa2db34d359.png)

## Integration with an application
#### Integration using a resource file in 2 steps:

Expand Down
22 changes: 10 additions & 12 deletions Documentation/Android.PlayerSDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,25 +40,23 @@ VXG Mobile SDK structure:
## SDK structure
The SDK package consists of following files and folders:

VXG.Mobile.SDK/MediaSDK/MediaPlayer.Android/

* aar (Aar archive)
* bin (Link on the samples applications binaries)
* docs (Files with links to documentation)
* bin (Sample application binaries)
* libs (Shared libraries)
- mediaplayersdk.jar
- librtspplr-xx.so
- librtstm-xx.so
- libSDL2-xx.so
- libyuv_shared-xx.so
(where 'xx' is one of the platforms: ARM general, x86, ARV V7, ARM V7a)
* src (Sample applications source code)

## How to apply a license key

This is **not required for evaluation and testing**. It’s required only after purchasing a license in order to remove evaluation version limitations.

**Step 1:** Copy the Mobile license key from the License & Plans page of the dashboard

![Screenshot](https://user-images.githubusercontent.com/11888021/156011640-5da87a5d-c208-4b90-87ed-0adca54b9213.png)


**Step 2:** Create an empty file called **license** in your application folder **assets** and paste your license key into this file. See on the example below how it should look in a test application **\streamland_player**.

![Screenshot](https://user-images.githubusercontent.com/11888021/156011770-cdba7598-5547-4f94-b697-2fa2db34d359.png)


## Integration with an application

#### Integration using a resource file in 2 steps:
Expand Down
Binary file removed Documentation/How to use the license key.pdf
Binary file not shown.
Binary file not shown.
1 change: 0 additions & 1 deletion MediaSDK/EncoderSDK/bin/readme.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
All binary apk can be downloaded in following link:
https://docs.vxg.io/downloads/bin/
Original file line number Diff line number Diff line change
@@ -1 +1 @@
https://github.com/VideoExpertsGroup/VXG.Media.SDK.Android/blob/master/Documentation/Android.EncoderSDK.md
https://github.com/mts-ai/VSAAS.Media.SDK.Android/blob/master/Documentation/Android.EncoderSDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ android {
dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.vxg.mediasdk:encodersdk:6.13.20220419'
if (project.hasProperty("isLocalDependencies") && !project.isLocalDependencies.isEmpty()) {
implementation fileTree(dir: project.art_url_encodersdk, include: '*.aar')
} else {
implementation 'com.vxg.mediasdk:encodersdk:6.13.20220707'
}
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
Loading

0 comments on commit f6f2d71

Please sign in to comment.