@@ -266,19 +266,23 @@ class AAH_RXPlayer : public MediaPlayerInterface {
266266 void processRingBuffer ();
267267 void processCommandPacket (PacketBuffer* pb);
268268 bool processGaps ();
269+ bool processRetransmitNAK (const uint8_t * data, size_t amt);
269270 void setGapStatus (GapStatus status);
270271 void cleanoutExpiredSubstreams ();
272+ void sendUnicastGroupJoin ();
273+ void sendUnicastGroupLeave ();
271274 void fetchAudioFlinger ();
272275
273276 PipeEvent wakeup_work_thread_evt_;
274277 sp<ThreadWrapper> thread_wrapper_;
275278 Mutex api_lock_;
276279 bool is_playing_;
277- bool data_source_set_;
278280
279- struct sockaddr_in listen_addr_;
280- int sock_fd_;
281+ struct sockaddr_in data_source_addr_;
282+ bool data_source_set_;
283+ bool multicast_mode_;
281284 bool multicast_joined_;
285+ int sock_fd_;
282286
283287 struct sockaddr_in transmitter_addr_;
284288 bool transmitter_known_;
@@ -291,6 +295,7 @@ class AAH_RXPlayer : public MediaPlayerInterface {
291295 Timeout next_retrans_req_timeout_;
292296
293297 Timeout ss_cleanout_timeout_;
298+ Timeout unicast_group_report_timeout_;
294299
295300 RXRingBuffer ring_buffer_;
296301 SubstreamVec substreams_;
@@ -301,13 +306,13 @@ class AAH_RXPlayer : public MediaPlayerInterface {
301306 sp<IAudioFlinger> audio_flinger_;
302307
303308 static const uint32_t kRTPRingBufferSize ;
304- static const uint32_t kRetransRequestMagic ;
305- static const uint32_t kFastStartRequestMagic ;
306- static const uint32_t kRetransNAKMagic ;
309+
307310 static const uint32_t kGapRerequestTimeoutMsec ;
308311 static const uint32_t kFastStartTimeoutMsec ;
309312 static const uint32_t kRTPActivityTimeoutMsec ;
310313 static const uint32_t kSSCleanoutTimeoutMsec ;
314+ static const uint32_t kGrpMemberSlowReportIntervalMsec ;
315+ static const uint32_t kGrpMemberFastReportIntervalMsec ;
311316
312317 static const uint32_t INVOKE_GET_MASTER_VOLUME = 3 ;
313318 static const uint32_t INVOKE_SET_MASTER_VOLUME = 4 ;
0 commit comments