# This file is used in addition to the one already maintained in Chrome.
# It acts as a place holder for future additions for WebRTC.
# It must exist for the Python wrapper script to work properly.

# There are three kinds of suppressions in this file.
# 1. third_party libraries
# 2. webrtc stuff
# 3. libjingle stuff (talk folder)
#-----------------------------------------------------------------------

# third_party libraries

{
   libnss_leak_hitting_trusty_machines
   Memcheck:Leak
   fun:calloc
   obj:/usr/lib/x86_64-linux-gnu/libnss3.so
   ...
   fun:NSS_NoDB_Init
   ...
}

#-----------------------------------------------------------------------
# webrtc stuff
{
   bug_3446
   Memcheck:Uninitialized
   fun:vp8cx_pick_filter_level_fast
   fun:vp8_loopfilter_frame
   fun:encode_frame_to_data_rate
   fun:vp8_get_compressed_data
   fun:vp8e_encode
   fun:vpx_codec_encode
   ...
   fun:_ZN6webrtc4test18VideoProcessorImpl12ProcessFrameEi
   fun:_ZN6webrtc29VideoProcessorIntegrationTest22ProcessFramesAndVerifyENS_14QualityMetricsENS_11RateProfileENS_15CodecConfigParsEPNS_18RateControlMetricsE
   fun:_ZN6webrtc70VideoProcessorIntegrationTest_ProcessNoLossSpatialResizeFrameDrop_Test8TestBodyEv
}
{
   bug_1976_1
   Memcheck:Unaddressable
   fun:pthread_mutex_unlock
   fun:_ZN9rtc15CriticalSection5LeaveEv
   fun:_ZN9rtc9CritScopeD1Ev
   ...
   fun:_ZN9rtc6Thread15ProcessMessagesEi
   fun:_ZN9rtc6Thread3RunEv
   fun:_ZN9rtc6Thread6PreRunEPv
}
{
   bug_1976_2
   Memcheck:Leak
   fun:calloc
   obj:/usr/lib/x86_64-linux-gnu/libnss3.so
   ...
   fun:NSS_NoDB_Init
   fun:_ZN9rtc10NSSContext13InitializeSSLEPFbPvE
   fun:_ZN9rtc13InitializeSSLEPFbPvE
   fun:_ZN9rtc10RandomTest13SetUpTestCaseEv
   fun:_ZN7testing8TestCase16RunSetUpTestCaseEv
}
{
   bug_2100_3
   Memcheck:Uninitialized
   fun:tls1_enc
   fun:ssl3_get_record
   fun:ssl3_read_bytes
   fun:ssl3_read_internal
   fun:ssl3_read
   fun:SSL_read
   fun:_ZN9rtc20OpenSSLStreamAdapter4ReadEPvmPmPi
   ...
}
{
   bug_2100_4
   Memcheck:Uninitialized
   fun:_ZN7testing8internal11CmpHelperEQIjhEENS_15AssertionResultEPKcS4_RKT_RKT0_
   fun:_ZN7testing8internal8EqHelperILb0EE7CompareIjhEENS_15AssertionResultEPKcS6_RKT_RKT0_
   fun:_ZN24SSLStreamAdapterTestDTLS8ReadDataEPN9rtc15StreamInterfaceE
   ...
}
{
   bug_2100_5
   Memcheck:Uninitialized
   fun:dtls1_process_record
   fun:dtls1_get_record
   fun:dtls1_read_bytes
   fun:ssl3_read_internal
   fun:ssl3_read
   fun:SSL_read
   fun:_ZN9rtc20OpenSSLStreamAdapter4ReadEPvmPmPi
   ...
}
{
   BIO_new_mem_buf_1
   Memcheck:Leak
   fun:malloc
   fun:default_malloc_ex
   fun:CRYPTO_malloc
   fun:BUF_MEM_new
   fun:mem_new
   fun:BIO_set
   fun:BIO_new
   fun:BIO_new_mem_buf
   fun:_ZN9rtc18OpenSSLCertificate13FromPEMStringERKSs
   ...
}
{
   BIO_new_mem_buf_2
   Memcheck:Leak
   fun:malloc
   fun:default_malloc_ex
   fun:CRYPTO_malloc
   fun:BUF_MEM_new
   fun:mem_new
   fun:BIO_set
   fun:BIO_new
   fun:BIO_new_mem_buf
   fun:_ZN9rtc15OpenSSLIdentity14FromPEMStringsERKSsS2_
}
{
   SignalsCloseAfterForcedCloseAll
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3rtc10HttpServer10Connection12BeginProcessEPNS_15StreamInterfaceE
   ...
}
{
   SignalsCloseAfterForcedCloseAll2
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsSsEEE8allocateEmPKv
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3rtc5ilessESaIS2_EE11_M_get_nodeEv
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3rtc5ilessESaIS2_EE14_M_create_nodeIJS2_EEEPSt13_Rb_tree_nodeIS2_EDpOT_
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3rtc5ilessESaIS2_EE10_M_insert_IS2_EESt17_Rb_tree_iteratorIS2_EPKSt18_Rb_tree_node_baseSE_OT_
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3rtc5ilessESaIS2_EE15_M_insert_equalIS2_EESt17_Rb_tree_iteratorIS2_EOT_
   fun:_ZNSt8multimapISsSsN3rtc5ilessESaISt4pairIKSsSsEEE6insertIS4_vEESt17_Rb_tree_iteratorIS4_EOT_
   fun:_ZN3rtc8HttpData12changeHeaderERKSsS2_NS0_13HeaderCombineE
   fun:_ZN3rtc8HttpData9setHeaderERKSsS2_b
   fun:_ZN3rtc8HttpData9setHeaderENS_10HttpHeaderERKSsb
   ...
}
{
   DoNotDeleteTask2
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN3rtc41unstarted_task_test_DoNotDeleteTask2_Test8TestBodyEv
}
{
   bug_329_1
   Memcheck:Unaddressable
   fun:I422ToARGBRow_SSSE3
   fun:I420ToARGB
   fun:ConvertFromI420
   fun:_ZN6webrtc15ConvertFromI420EPKhiNS_9VideoTypeEiiiPh
   fun:_ZN6webrtc15VideoX11Channel12DeliverFrameEPhij
   fun:_ZN6webrtc15VideoX11Channel11RenderFrameEjRNS_10VideoFrameE
   fun:_ZN6webrtc19IncomingVideoStream26IncomingVideoStreamProcessEv
   fun:_ZN6webrtc19IncomingVideoStream28IncomingVideoStreamThreadFunEPv
   fun:_ZN6webrtc11ThreadPosix3RunEv
   fun:StartThread
}

{
   bug_329_3
   Memcheck:Unaddressable
   fun:I422ToARGBRow_SSSE3
   fun:I420ToARGB
   fun:ConvertFromI420
   fun:_ZN6webrtc15ConvertFromI420EPKhiNS_9VideoTypeEiiiPh
   fun:_ZN6webrtc15VideoX11Channel12DeliverFrameEPhij
   fun:_ZN6webrtc15VideoX11Channel11RenderFrameEjRNS_10VideoFrameE
   fun:_ZN6webrtc19IncomingVideoStream26IncomingVideoStreamProcessEv
   fun:_ZN6webrtc19IncomingVideoStream28IncomingVideoStreamThreadFunEPv
   fun:_ZN6webrtc11ThreadPosix3RunEv
   fun:StartThread
}

{
   bug_329_7
   Memcheck:Unaddressable
   fun:I422ToARGBRow_SSSE3
   fun:I420ToARGB
   fun:ConvertFromI420
   fun:_ZN6webrtc15ConvertFromI420ERKNS_10VideoFrameEiNS_9VideoTypeEiPh
   fun:_ZN6webrtc15VideoX11Channel12DeliverFrameERKNS_10VideoFrameE
   fun:_ZN6webrtc15VideoX11Channel11RenderFrameEjRNS_10VideoFrameE
   fun:_ZN6webrtc19IncomingVideoStream26IncomingVideoStreamProcessEv
   fun:_ZN6webrtc19IncomingVideoStream28IncomingVideoStreamThreadFunEPv
   fun:_ZN6webrtc11ThreadPosix3RunEv
   fun:StartThread
}

{
   bug_329_8
   Memcheck:Unaddressable
   fun:I422ToARGBRow_SSSE3
   fun:I420ToARGB
   fun:ConvertFromI420
   fun:_ZN6webrtc15ConvertFromI420ERKNS_10VideoFrameEiNS_9VideoTypeEiPh
   fun:_ZN6webrtc15VideoX11Channel12DeliverFrameERKNS_10VideoFrameE
   fun:_ZN6webrtc15VideoX11Channel11RenderFrameEjRNS_10VideoFrameE
   fun:_ZN6webrtc19IncomingVideoStream26IncomingVideoStreamProcessEv
   fun:_ZN6webrtc19IncomingVideoStream28IncomingVideoStreamThreadFunEPv
   fun:_ZN6webrtc11ThreadPosix3RunEv
   fun:StartThread
}

{
   bug_898_1
   Memcheck:Uninitialized
   ...
   fun:_ZN16FakeMediaProcess7ProcessEiN6webrtc15ProcessingTypesEPsiib
   ...
   fun:_ZN6webrtc21AudioDeviceLinuxPulse17PlayThreadProcessEv
   fun:_ZN6webrtc21AudioDeviceLinuxPulse14PlayThreadFuncEPv
   fun:_ZN6webrtc11ThreadPosix3RunEv
   fun:StartThread
}

{
   bug_898_2
   Memcheck:Uninitialized
   ...
   fun:_ZN16FakeMediaProcess7ProcessEiN6webrtc15ProcessingTypesEPsiib
   ...
   fun:_ZN6webrtc21AudioDeviceLinuxPulse16RecThreadProcessEv
   fun:_ZN6webrtc21AudioDeviceLinuxPulse13RecThreadFuncEPv
   fun:_ZN6webrtc11ThreadPosix3RunEv
   fun:StartThread
}

{
   bug_891
   Memcheck:Unaddressable
   fun:XShmPutImage
   fun:_ZN6webrtc15VideoX11Channel12DeliverFrameEPhij
   fun:_ZN6webrtc15VideoX11Channel11RenderFrameEjRNS_10VideoFrameE
   fun:_ZN6webrtc19IncomingVideoStream26IncomingVideoStreamProcessEv
   fun:_ZN6webrtc19IncomingVideoStream28IncomingVideoStreamThreadFunEPv
   fun:_ZN6webrtc11ThreadPosix3RunEv
   fun:StartThread
}

{
   ignore_common_benevolent_trace_library_errors
   Memcheck:Uninitialized
   ...
   fun:vsnprintf
   fun:_ZN6webrtc5Trace3AddENS_10TraceLevelENS_11TraceModuleEiPKcz
   ...
}

{
   ignore_leak_when_alsa_hits_error
   Memcheck:Leak
   ...
   fun:snd_device_name_hint
   fun:_ZNK6webrtc20AudioDeviceLinuxALSA14GetDevicesInfoEibiPci
   fun:_ZN6webrtc20AudioDeviceLinuxALSA16SetPlayoutDeviceEt
   fun:_ZN6webrtc21AudioDeviceModuleImpl16SetPlayoutDeviceEt
   fun:_ZN6webrtc11VoEBaseImpl4InitEPNS_17AudioDeviceModuleE
   fun:_ZN11ViEAutoTest19ViEFileStandardTestEv
   fun:_ZN12_GLOBAL__N_157ViEStandardIntegrationTest_RunsFileTestWithoutErrors_Test8TestBodyEv
}

{
   bug_270_1
   Memcheck:Uninitialized
   ...
   fun:WebRtcNetEQ_RecOutInternal
   fun:WebRtcNetEQ_RecOut
   ...
}

{
   bug_270_2
   Memcheck:Uninitialized
   fun:WebRtcNetEQ_GetSpeechOutputType
   ...
}

#-----------------------------------------------------------------------
# libjingle stuff (talk folder)
{
   bug_2056_1
   Memcheck:Leak
   fun:malloc
   fun:_dl_close_worker
   fun:_dl_close
   fun:_dl_catch_error
   fun:_dlerror_run
   fun:dlclose
   ...
   fun:snd_device_name_hint
   fun:_ZNK6webrtc20AudioDeviceLinuxALSA14GetDevicesInfoEibiPci
   ...
}
{
   bug_2100_1
   Memcheck:Uninitialized
   fun:_ZN7testing8internal11CmpHelperEQIiiEENS_15AssertionResultEPKcS4_RKT_RKT0_
   fun:_ZN7testing8internal8EqHelperILb1EE7CompareIiiEENS_15AssertionResultEPKcS6_RKT_RKT0_PNS0_8EnableIfIXntsrNS0_10is_pointerISA_EE5valueEE4typeE
   ...
}
{
   bug_2100_2
   Memcheck:Uninitialized
   fun:bcmp
   fun:_ZN23SSLStreamAdapterTestTLS12TestTransferEi
   ...
}
# For tests that create XMPPClient which can only be deleted by task runner.
{
   HangoutPubSubClientTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN*HangoutPubSubClientTest*Ev
}
{
   MucRoomConfigTaskTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN21MucRoomConfigTaskTest5SetUpEv
}
{
   MucRoomDiscoveryTaskTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN24MucRoomDiscoveryTaskTest5SetUpEv
}
{
   MucRoomLookupTaskTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN21MucRoomLookupTaskTest5SetUpEv
}
{
   MucRoomUniqueHangoutIdTaskTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN30MucRoomUniqueHangoutIdTaskTest5SetUpEv
}
{
   PingTaskTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN12PingTaskTest5SetUpEv
}
{
   PubSubClientTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN*PubSubClientTest*Ev
}
{
   PubSubTasksTest
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN*PubSubTasksTest*Ev
}
# failures which can't be reproduced locally
{
   bug_2153_1
   Memcheck:Leak
   fun:calloc
   ...
   fun:_ZN6webrtc26AudioMixerManagerLinuxALSA11OpenSpeakerEPc
   fun:_ZN6webrtc20AudioDeviceLinuxALSA11InitSpeakerEv
   ...
}
{
   bug_2153_3
   Memcheck:Leak
   fun:calloc
   obj:*
   fun:_ZN6webrtc26AudioMixerManagerLinuxALSA14OpenMicrophoneEPc
   fun:_ZN6webrtc20AudioDeviceLinuxALSA14InitMicrophoneEv
   ...
}
{
   bug_2263_1
   Memcheck:Uninitialized
   fun:_ZN14DtlsTestClient12VerifyPacketEPKcmPj
   ...
}
{
   bug_3063
   Memcheck:Uninitialized
   ...
   fun:vfprintf
   fun:__vsnprintf_chk
   fun:_ZN6webrtc5Trace3AddENS_10TraceLevelENS_11TraceModuleEiPKcz
   fun:_ZNK6webrtc12ViECodecImpl21GetCodecTargetBitrateEiPj
   fun:_ZN7cricket23WebRtcVideoMediaChannel23MaybeChangeStartBitrateEiPN6webrtc10VideoCodecE
   fun:_ZN7cricket23WebRtcVideoMediaChannel12SetSendCodecEPNS_26WebRtcVideoChannelSendInfoERKN6webrtc10VideoCodecEiii
   fun:_ZN7cricket23WebRtcVideoMediaChannel12SetSendCodecERKN6webrtc10VideoCodecEiii
   fun:_ZN7cricket23WebRtcVideoMediaChannel13SetSendCodecsERKSt6vectorINS_10VideoCodecESaIS2_EE
   fun:_ZN21VideoMediaChannelTestIN7cricket17WebRtcVideoEngineENS0_23WebRtcVideoMediaChannelEE11SetOneCodecERKNS0_10VideoCodecE
   fun:_ZN21VideoMediaChannelTestIN7cricket17WebRtcVideoEngineENS0_23WebRtcVideoMediaChannelEE4SendERKNS0_10VideoCodecE
   fun:_ZN21VideoMediaChannelTestIN7cricket17WebRtcVideoEngineENS0_23WebRtcVideoMediaChannelEE36TwoStreamsSendAndFailUnsignalledRecvERKNS0_10VideoCodecE
   fun:_ZN69WebRtcVideoMediaChannelTest_TwoStreamsSendAndFailUnsignalledRecv_Test8TestBodyEv
}
{
   bug_3478
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNK3rtc18FakeSSLCertificate12GetReferenceEv
   fun:_ZN3rtc18FakeSSLCertificate7DupCertES0_
   fun:_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPKN3rtc18FakeSSLCertificateESt6vectorIS3_SaIS3_EEEENS1_IPPNS2_14SSLCertificateES6_ISB_SaISB_EEEEPFPS3_S3_EET0_T_SK_SJ_T1_
   fun:_ZNK3rtc18FakeSSLCertificate8GetChainEPPNS_12SSLCertChainE
   fun:_ZN6webrtc14StatsCollector21AddCertificateReportsEPKN3rtc14SSLCertificateE
   fun:_ZN6webrtc14StatsCollector18ExtractSessionInfoEv
   fun:_ZN6webrtc14StatsCollector11UpdateStatsENS_23PeerConnectionInterface16StatsOutputLevelE
   fun:_ZN12_GLOBAL__N_118StatsCollectorTest22TestCertificateReportsERKN3rtc18FakeSSLCertificateERKSt6vectorISsSaISsEES4_S9_
   fun:_ZN12_GLOBAL__N_156StatsCollectorTest_ChainedCertificateReportsCreated_Test8TestBodyEv
}