@ -130,29 +130,32 @@ void NuPlayer::StreamingSource::onReadBuffer() {
} else if ( n < 0 ) {
break ;
} else {
if ( buffer [ 0 ] = = 0x00 ) {
if ( buffer [ 0 ] = = 0x00 ) { // OK to access buffer[0] since n must be > 0 here
// XXX legacy
if ( extra = = NULL ) {
extra = new AMessage ;
}
uint8_t type = buffer [ 1 ] ;
uint8_t type = 0 ;
if ( n > 1 ) {
type = buffer [ 1 ] ;
if ( type & 2 ) {
int64_t mediaTimeUs ;
memcpy ( & mediaTimeUs , & buffer [ 2 ] , sizeof ( mediaTimeUs ) ) ;
if ( ( type & 2 ) & & ( n > = 2 + sizeof ( int64_t ) ) ) {
int64_t mediaTimeUs ;
memcpy ( & mediaTimeUs , & buffer [ 2 ] , sizeof ( mediaTimeUs ) ) ;
extra - > setInt64 ( kATSParserKeyMediaTimeUs , mediaTimeUs ) ;
extra - > setInt64 ( kATSParserKeyMediaTimeUs , mediaTimeUs ) ;
}
}
mTSParser - > signalDiscontinuity (
( ( type & 1 ) = = 0 )
? ATSParser : : DISCONTINUITY_TIME
: ATSParser : : DISCONTINUITY_FORMATCHANGE ,
? ATSParser : : DISCONTINUITY_TIME
: ATSParser : : DISCONTINUITY_FORMATCHANGE ,
extra ) ;
} else {
status_t err = mTSParser - > feedTSPacket ( buffer , sizeof ( buffer ) ) ;
status_t err = mTSParser - > feedTSPacket ( buffer , n ) ;
if ( err ! = OK ) {
ALOGE ( " TS Parser returned error %d " , err ) ;