Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
500c879b
authored
Mar 11, 2022
by
Shraddha Basantwani
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Modify RtpPcmReader
Rename a few variable to be more relevant Add detailed java docs
parent
bfc1fb9a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
20 additions
and
18 deletions
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtpPayloadFormat.java
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/DefaultRtpPayloadReaderFactory.java
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpPCMReader.java → libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpPcmReader.java
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtpPayloadFormat.java
View file @
500c879b
...
...
@@ -93,22 +93,23 @@ public final class RtpPayloadFormat {
}
/**
* Gets the PCM Encoding type for
RAW track that is associated with the RTP media type
.
* Gets the PCM Encoding type for
audio encoding of track
.
*
* <p>For instance, RTP media type "L8" maps to {@link C.PcmEncoding#ENCODING_PCM_8BIT}.
* <p>For instance, Audio encoding "L8" has 8 bits/sample and thus maps to
* {@link C.PcmEncoding#ENCODING_PCM_8BIT}. Refer to RFC3551 Section 4.5 Table 1.
*
* @throws IllegalArgumentException When the
media type
is not supported/recognized.
* @throws IllegalArgumentException When the
audio encoding
is not supported/recognized.
*/
public
static
int
getP
CMEncodingFromRtpMediaType
(
String
mediaType
)
{
switch
(
media
Type
)
{
public
static
int
getP
cmEncodingFromAudioEncoding
(
String
mediaEncoding
)
{
switch
(
media
Encoding
)
{
case
RTP_MEDIA_PCM_L8:
// Refer to RFC3551
#section-
4.5.10
// Refer to RFC3551
Section
4.5.10
return
C
.
ENCODING_PCM_8BIT
;
case
RTP_MEDIA_PCM_L16:
// Refer to RFC3551
#section-
4.5.11
// Refer to RFC3551
Section
4.5.11
return
C
.
ENCODING_PCM_16BIT_BIG_ENDIAN
;
default
:
throw
new
IllegalArgumentException
(
mediaType
);
throw
new
IllegalArgumentException
(
"Unsupported RAW Audio Encoding "
+
mediaEncoding
);
}
}
...
...
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaTrack.java
View file @
500c879b
...
...
@@ -20,7 +20,7 @@ import static androidx.media3.common.util.Assertions.checkNotNull;
import
static
androidx
.
media3
.
common
.
util
.
Util
.
castNonNull
;
import
static
androidx
.
media3
.
exoplayer
.
rtsp
.
MediaDescription
.
MEDIA_TYPE_AUDIO
;
import
static
androidx
.
media3
.
exoplayer
.
rtsp
.
RtpPayloadFormat
.
getMimeTypeFromRtpMediaType
;
import
static
androidx
.
media3
.
exoplayer
.
rtsp
.
RtpPayloadFormat
.
getP
CMEncodingFromRtpMediaType
;
import
static
androidx
.
media3
.
exoplayer
.
rtsp
.
RtpPayloadFormat
.
getP
cmEncodingFromAudioEncoding
;
import
static
androidx
.
media3
.
exoplayer
.
rtsp
.
SessionDescription
.
ATTR_CONTROL
;
import
static
androidx
.
media3
.
extractor
.
NalUnitUtil
.
NAL_START_CODE
;
...
...
@@ -103,8 +103,9 @@ import com.google.common.collect.ImmutableMap;
}
int
rtpPayloadType
=
mediaDescription
.
rtpMapAttribute
.
payloadType
;
String
mediaEncoding
=
mediaDescription
.
rtpMapAttribute
.
mediaEncoding
;
String
mimeType
=
getMimeTypeFromRtpMediaType
(
media
Description
.
rtpMapAttribute
.
media
Encoding
);
String
mimeType
=
getMimeTypeFromRtpMediaType
(
mediaEncoding
);
formatBuilder
.
setSampleMimeType
(
mimeType
);
int
clockRate
=
mediaDescription
.
rtpMapAttribute
.
clockRate
;
...
...
@@ -131,8 +132,7 @@ import com.google.common.collect.ImmutableMap;
processH265FmtpAttribute
(
formatBuilder
,
fmtpParameters
);
break
;
case
MimeTypes
.
AUDIO_RAW
:
int
pcmEncoding
=
getPCMEncodingFromRtpMediaType
(
mediaDescription
.
rtpMapAttribute
.
mediaEncoding
);
int
pcmEncoding
=
getPcmEncodingFromAudioEncoding
(
mediaEncoding
);
formatBuilder
.
setPcmEncoding
(
pcmEncoding
);
break
;
case
MimeTypes
.
AUDIO_AC3
:
...
...
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/DefaultRtpPayloadReaderFactory.java
View file @
500c879b
...
...
@@ -43,7 +43,7 @@ import androidx.media3.exoplayer.rtsp.RtpPayloadFormat;
case
MimeTypes
.
AUDIO_RAW
:
case
MimeTypes
.
AUDIO_ALAW
:
case
MimeTypes
.
AUDIO_MLAW
:
return
new
RtpP
CM
Reader
(
payloadFormat
);
return
new
RtpP
cm
Reader
(
payloadFormat
);
default
:
// No supported reader, returning null.
}
...
...
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpP
CM
Reader.java
→
libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/reader/RtpP
cm
Reader.java
View file @
500c879b
...
...
@@ -29,16 +29,17 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
* Parses byte stream carried on RTP packets, and extracts PCM frames. Refer to RFC3551 for more
* details.
*/
/* package */
public
final
class
RtpP
CM
Reader
implements
RtpPayloadReader
{
/* package */
public
final
class
RtpP
cm
Reader
implements
RtpPayloadReader
{
private
final
RtpPayloadFormat
payloadFormat
;
private
@MonotonicNonNull
TrackOutput
trackOutput
;
private
long
firstReceivedTimestamp
;
private
long
startTimeOffsetUs
;
public
RtpP
CM
Reader
(
RtpPayloadFormat
payloadFormat
)
{
public
RtpP
cm
Reader
(
RtpPayloadFormat
payloadFormat
)
{
this
.
payloadFormat
=
payloadFormat
;
firstReceivedTimestamp
=
C
.
TIME_UNSET
;
startTimeOffsetUs
=
0
;
}
@Override
...
...
@@ -62,9 +63,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
trackOutput
.
sampleData
(
data
,
size
);
trackOutput
.
sampleMetadata
(
/* timeUs= */
sampleTimeUs
,
/* flags= */
C
.
BUFFER_FLAG_KEY_FRAME
,
/* size= */
size
,
sampleTimeUs
,
C
.
BUFFER_FLAG_KEY_FRAME
,
size
,
/* offset= */
0
,
/* cryptoData= */
null
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment