Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 557ec279 authored by Lajos Molnar's avatar Lajos Molnar Committed by Gerrit Code Review
Browse files

Merge changes from topic "ViLTE-IMP"

* changes:
  VT: AHEVCAssembler: Supports H265(HEVC) for Rx.
  VT: ARTPWriter: Supports H265(HEVC) for Tx.
  VT: ARTPWriter: Supports ipv6
  VT: ARTPSource: Jitter buffer implementation.
  VT: ARTPConnection: Supports ipv6
  VT: SFP: Implements interface for RTP parameters.
  VT: RTPSource: Added a component as an one of NuPlayer::Source
  VT: ARTPConnection: bind RTP/RTCP sockets to specific IP.
  VT: ASessionDescription: Added SDPStringFactory.
  VT: SFR: added parameters to handle RTP IP Addresses through setParameters().
  VT: ARTPWriter: Enhanced ARTPWriter as a RTP output
parents fb5ef561 6b407aaf
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ enum {
    SET_DATA_SOURCE_FD,
    SET_DATA_SOURCE_STREAM,
    SET_DATA_SOURCE_CALLBACK,
    SET_DATA_SOURCE_RTP,
    SET_BUFFERING_SETTINGS,
    GET_BUFFERING_SETTINGS,
    PREPARE_ASYNC,
@@ -161,6 +162,15 @@ public:
        return reply.readInt32();
    }

    status_t setDataSource(const String8& rtpParams) {
        Parcel data, reply;
        data.writeInterfaceToken(IMediaPlayer::getInterfaceDescriptor());
        data.writeString8(rtpParams);
        remote()->transact(SET_DATA_SOURCE_RTP, data, &reply);

        return reply.readInt32();
    }

    // pass the buffered IGraphicBufferProducer to the media player service
    status_t setVideoSurfaceTexture(const sp<IGraphicBufferProducer>& bufferProducer)
    {
@@ -685,6 +695,12 @@ status_t BnMediaPlayer::onTransact(
            }
            return NO_ERROR;
        }
        case SET_DATA_SOURCE_RTP: {
            CHECK_INTERFACE(IMediaPlayer, data, reply);
            const String8& rtpParams = data.readString8();
            reply->writeInt32(setDataSource(rtpParams));
            return NO_ERROR;
        }
        case SET_VIDEO_SURFACETEXTURE: {
            CHECK_INTERFACE(IMediaPlayer, data, reply);
            sp<IGraphicBufferProducer> bufferProducer =
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ public:
    virtual status_t        setDataSource(int fd, int64_t offset, int64_t length) = 0;
    virtual status_t        setDataSource(const sp<IStreamSource>& source) = 0;
    virtual status_t        setDataSource(const sp<IDataSource>& source) = 0;
    virtual status_t        setDataSource(const String8& rtpParams) = 0;
    virtual status_t        setVideoSurfaceTexture(
                                    const sp<IGraphicBufferProducer>& bufferProducer) = 0;
    virtual status_t        getBufferingSettings(
+1 −0
Original line number Diff line number Diff line
@@ -219,6 +219,7 @@ public:

            status_t        setDataSource(int fd, int64_t offset, int64_t length);
            status_t        setDataSource(const sp<IDataSource> &source);
            status_t        setDataSource(const String8& rtpParams);
            status_t        setVideoSurfaceTexture(
                                    const sp<IGraphicBufferProducer>& bufferProducer);
            status_t        setListener(const sp<MediaPlayerListener>& listener);
+16 −0
Original line number Diff line number Diff line
@@ -195,6 +195,22 @@ status_t MediaPlayer::setDataSource(const sp<IDataSource> &source)
    return err;
}

status_t MediaPlayer::setDataSource(const String8& rtpParams)
{
    ALOGV("setDataSource(rtpParams)");
    status_t err = UNKNOWN_ERROR;
    const sp<IMediaPlayerService> service(getMediaPlayerService());
    if (service != 0) {
        sp<IMediaPlayer> player(service->create(this, mAudioSessionId));
        if ((NO_ERROR != doSetRetransmitEndpoint(player)) ||
            (NO_ERROR != player->setDataSource(rtpParams))) {
            player.clear();
        }
        err = attachNewPlayer(player);
    }
    return err;
}

status_t MediaPlayer::invoke(const Parcel& request, Parcel *reply)
{
    Mutex::Autolock _l(mLock);
+11 −0
Original line number Diff line number Diff line
@@ -1063,6 +1063,17 @@ status_t MediaPlayerService::Client::setDataSource(
    return mStatus = setDataSource_post(p, p->setDataSource(dataSource));
}

status_t MediaPlayerService::Client::setDataSource(
        const String8& rtpParams) {
    player_type playerType = NU_PLAYER;
    sp<MediaPlayerBase> p = setDataSource_pre(playerType);
    if (p == NULL) {
        return NO_INIT;
    }
    // now set data source
    return mStatus = setDataSource_post(p, p->setDataSource(rtpParams));
}

void MediaPlayerService::Client::disconnectNativeWindow_l() {
    if (mConnectedWindow != NULL) {
        status_t err = nativeWindowDisconnect(
Loading