Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ jobs:
if: github.ref == 'refs/heads/master'
run: ./gradlew publish
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
CENTRAL_PASSWORD: ${{ secrets.CENTRAL_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ jobs:
- name: Deploy to Sonatype
run: ./gradlew publish
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
CENTRAL_PASSWORD: ${{ secrets.CENTRAL_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
8 changes: 4 additions & 4 deletions scripts/deploy-variables.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
ext["signing.keyId"] = ''
ext["signing.password"] = ''
ext["signing.key"] = ''
ext["ossrhUsername"] = ''
ext["ossrhPassword"] = ''
ext["centralUsername"] = ''
ext["centralPassword"] = ''
ext["sonatypeStagingProfileId"] = ''

File secretPropsFile = project.rootProject.file('local.properties')
Expand All @@ -13,8 +13,8 @@ if (secretPropsFile.exists()) {
p.each { name, value -> ext[name] = value }
} else {
// Use system environment variables
ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME')
ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD')
ext["centralUsername"] = System.getenv('CENTRAL_USERNAME')
ext["centralPassword"] = System.getenv('CENTRAL_PASSWORD')
ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID')
ext["signing.password"] = System.getenv('SIGNING_PASSWORD')
ext["signing.key"] = System.getenv('SIGNING_KEY')
Expand Down
8 changes: 4 additions & 4 deletions webrtc-android-framework/publish-remote.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ afterEvaluate {
repositories {
maven {
credentials {
username ossrhUsername
password ossrhPassword
username centralUsername
password centralPassword
}

def releasesRepoUrl = 'https://oss.sonatype.org/service/local/repositories/releases/content'
def snapshotsRepoUrl = 'https://oss.sonatype.org/content/repositories/snapshots'
def releasesRepoUrl = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/"
def snapshotsRepoUrl = "https://central.sonatype.com/repository/maven-snapshots/"
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import de.tavendo.autobahn.WebSocket;
import io.antmedia.webrtcandroidframework.core.StreamInfo;
import io.antmedia.webrtcandroidframework.websocket.Broadcast;
import io.antmedia.webrtcandroidframework.websocket.Subscriber;

/**
* Default implementation of {@link IWebRTCListener}
Expand Down Expand Up @@ -280,4 +281,16 @@ protected void callbackCalled(String messageText) {
Log.d(DefaultWebRTCListener.class.getName(), messageText);
}

@Override
public void onSubscriberCount(String streamId, int count) {
String messageText = "On Subscriber Count "+streamId;
callbackCalled(messageText);
}

@Override
public void onSubscriberList(String streamId, Subscriber[] subscribers) {
String messageText = "On Subscriber List "+streamId;
callbackCalled(messageText);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,13 @@ void publish(String streamId, String token, boolean videoCallEnabled, boolean au
*/
void play(String streamId, String token, String[] tracks, String subscriberId, String subscriberCode, String viewerInfo);

/**
* This is used to play a WebRTC stream with a parameter object
*
* @param params the play parameters
*/
void play(PlayParams params);

/**
* This is used to join a peer to peer call
*
Expand Down Expand Up @@ -368,4 +375,26 @@ void publish(String streamId, String token, boolean videoCallEnabled, boolean au
*/
boolean isSendVideoEnabled();

/**
* Called to get the subscriber count for a broadcast
*
* @param streamId: id for the broadcast
*/
void getSubscriberCount(String streamId);

/**
* Called to get the subscriber list for a broadcast
*
* @param streamId: id for the broadcast
* @param offset: offset of the list
* @param size: size of the list
*/
void getSubscriberList(String streamId, long offset, long size);

/**
* Called to get the debug info for the viewer
*
* @param streamId: id for the broadcast
*/
void getDebugInfo(String streamId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import de.tavendo.autobahn.WebSocket;
import io.antmedia.webrtcandroidframework.core.StreamInfo;
import io.antmedia.webrtcandroidframework.websocket.Broadcast;
import io.antmedia.webrtcandroidframework.websocket.Subscriber;

/**
* Created by karinca on 23.10.2017.
Expand Down Expand Up @@ -251,4 +252,15 @@ public interface IWebRTCListener {
* It's called when user left P2P room.
*/
void onLeft(String streamId);


/**
* It's called when Subscriber Count received.
*/
void onSubscriberCount(String streamId, int count);

/**
* It's called when Subscriber List received.
*/
void onSubscriberList(String streamId, Subscriber[] subscribers);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package io.antmedia.webrtcandroidframework.api;

public class PlayParams {
private String streamId;
private String token;
private String[] tracks;
private String subscriberId;
private String subscriberName; // new field
private String subscriberCode;
private String viewerInfo;
private boolean disableTracksByDefault; // new field

// Constructors
public PlayParams() {}

public PlayParams(String streamId, String token, String[] tracks,
String subscriberId, String subscriberName,
String subscriberCode, String viewerInfo,
boolean disableTracksByDefault) {
this.streamId = streamId;
this.token = token;
this.tracks = tracks;
this.subscriberId = subscriberId;
this.subscriberName = subscriberName;
this.subscriberCode = subscriberCode;
this.viewerInfo = viewerInfo;
this.disableTracksByDefault = disableTracksByDefault;
}

// Getters and Setters
public String getStreamId() { return streamId; }
public void setStreamId(String streamId) { this.streamId = streamId; }

public String getToken() { return token; }
public void setToken(String token) { this.token = token; }

public String[] getTracks() { return tracks; }
public void setTracks(String[] tracks) { this.tracks = tracks; }

public String getSubscriberId() { return subscriberId; }
public void setSubscriberId(String subscriberId) { this.subscriberId = subscriberId; }

public String getSubscriberName() { return subscriberName; }
public void setSubscriberName(String subscriberName) { this.subscriberName = subscriberName; }

public String getSubscriberCode() { return subscriberCode; }
public void setSubscriberCode(String subscriberCode) { this.subscriberCode = subscriberCode; }

public String getViewerInfo() { return viewerInfo; }
public void setViewerInfo(String viewerInfo) { this.viewerInfo = viewerInfo; }

public boolean isDisableTracksByDefault() { return disableTracksByDefault; }
public void setDisableTracksByDefault(boolean disableTracksByDefault) { this.disableTracksByDefault = disableTracksByDefault; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ public static boolean checkCameraPermissions(Activity activity) {
}

public static boolean checkPublishPermissions(Activity activity, boolean bluetoothEnabled) {
return checkPublishPermissions(activity, bluetoothEnabled, true);
}

public static boolean checkPublishPermissions(Activity activity, boolean bluetoothEnabled, boolean videoEnabled) {
ArrayList<String> permissions = new ArrayList<>();
permissions.addAll(Arrays.asList(REQUIRED_MINIMUM_PERMISSIONS));
permissions.addAll(Arrays.asList(PUBLISH_PERMISSIONS));
Expand All @@ -69,6 +73,10 @@ public static boolean checkPublishPermissions(Activity activity, boolean bluetoo
permissions.addAll(Arrays.asList(BLUETOOTH_PERMISSIONS));
}

if(!videoEnabled) {
permissions.remove(Manifest.permission.CAMERA);
}

return hasPermissions(activity, permissions);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -277,12 +277,16 @@ private void parseStats(RTCStatsReport report) {
}

if (value.getMembers().containsKey(FRAMES_RECEIVED)) {
long framesReceived = (long) value.getMembers().get(FRAMES_RECEIVED);
Number framesReceivedNumber = (Number) value.getMembers().get(FRAMES_RECEIVED);
long framesReceived = framesReceivedNumber.longValue();

videoTrackStats.setFramesReceived(framesReceived);
}

if (value.getMembers().containsKey(FRAMES_DROPPED)) {
long framesDropped = (long) value.getMembers().get(FRAMES_DROPPED);
Number framesDroppedNumber = (Number) value.getMembers().get(FRAMES_DROPPED);
long framesDropped = framesDroppedNumber.longValue();

videoTrackStats.setFramesDropped(framesDropped);
}

Expand All @@ -298,9 +302,14 @@ private void parseStats(RTCStatsReport report) {
trackIdentifier = trackIdentifier.substring(VIDEO_TRACK_ID.length());
videoTrackStats.setTrackId(trackIdentifier);
playStats.getVideoTrackStatsMap().put(trackIdentifier, videoTrackStats);
} else if (value.getMembers().containsKey(TRACK_ID)) {
String trackId = (String) value.getMembers().get(TRACK_ID);
RTCStats track = report.getStatsMap().get(trackId);
String trackIdentifier = (String) track.getMembers().get(TRACK_IDENTIFIER);
trackIdentifier = trackIdentifier.substring(VIDEO_TRACK_ID.length());
videoTrackStats.setTrackId(trackIdentifier);
playStats.getVideoTrackStatsMap().put(trackIdentifier, videoTrackStats);
}


}
} else if (AUDIO.equals(value.getMembers().get(KIND))) {
if(value.getMembers().containsKey(SSRC)){
Expand Down Expand Up @@ -333,6 +342,14 @@ private void parseStats(RTCStatsReport report) {
audioTrackStat.setTrackId(trackIdentifier);
playStats.getAudioTrackStatsMap().put(trackIdentifier, audioTrackStat);
}
else if (value.getMembers().containsKey(TRACK_ID)) {
String trackId = (String) value.getMembers().get(TRACK_ID);
RTCStats track = report.getStatsMap().get(trackId);
String trackIdentifier = (String) track.getMembers().get(TRACK_IDENTIFIER);
trackIdentifier = trackIdentifier.substring(AUDIO_TRACK_ID.length());
audioTrackStat.setTrackId(trackIdentifier);
playStats.getAudioTrackStatsMap().put(trackIdentifier, audioTrackStat);
}
}
}

Expand Down
Loading
Loading