Merge lp:~thomas-voss/media-hub/add-tests-and-testing-infrastructure into lp:media-hub
- add-tests-and-testing-infrastructure
- Merge into trunk
Status: | Needs review |
---|---|
Proposed branch: | lp:~thomas-voss/media-hub/add-tests-and-testing-infrastructure |
Merge into: | lp:media-hub |
Prerequisite: | lp:~thomas-voss/media-hub/externalize-all-dependencies |
Diff against target: |
9925 lines (+8557/-391) 53 files modified
CMakeLists.txt (+5/-0) memcheck.suppressions (+4016/-0) src/core/media/CMakeLists.txt (+4/-8) src/core/media/gstreamer/engine.cpp (+20/-5) src/core/media/gstreamer/meta_data_extractor.h (+47/-6) src/core/media/gstreamer/playbin.cpp (+1/-0) src/core/media/mpris/player.h (+80/-29) src/core/media/player_base.h (+332/-0) src/core/media/player_implementation.cpp (+6/-18) src/core/media/player_implementation.h (+3/-0) src/core/media/player_skeleton.cpp (+20/-7) src/core/media/player_stub.cpp (+44/-53) src/core/media/player_stub.h (+15/-3) src/core/media/server/server.cpp (+4/-2) src/core/media/service.cpp (+24/-2) src/core/media/service_implementation.cpp (+5/-6) src/core/media/service_skeleton.cpp (+32/-38) src/core/media/service_skeleton.h (+15/-0) src/core/media/service_stub.cpp (+53/-33) src/core/media/service_stub.h (+18/-4) tests/CMakeLists.txt (+36/-13) tests/acceptance-tests/service.cpp (+116/-103) tests/integration-tests/CMakeLists.txt (+6/-0) tests/integration-tests/fixtures/player_skeleton.h (+139/-0) tests/integration-tests/hybris_gl_sink_test.cpp (+199/-0) tests/integration-tests/player_implementation_test.cpp (+296/-0) tests/integration-tests/player_skeleton_test.cpp (+517/-0) tests/integration-tests/service_implementation_test.cpp (+463/-0) tests/integration-tests/service_skeleton_test.cpp (+344/-0) tests/mock/audio_output_observer.h (+44/-0) tests/mock/battery_observer.h (+52/-0) tests/mock/call_monitor.h (+42/-0) tests/mock/client_death_observer.h (+48/-0) tests/mock/engine.h (+231/-0) tests/mock/engine_factory.h (+47/-0) tests/mock/keyed_player_store.h (+76/-0) tests/mock/media_service.h (+37/-0) tests/mock/player.h (+76/-0) tests/mock/power_state_controller.h (+127/-0) tests/mock/recorder_observer.h (+43/-0) tests/mock/request_authenticator.h (+42/-0) tests/mock/request_context_resolver.h (+47/-0) tests/test_data.cpp.in (+1/-1) tests/tools/a_trap_stopping_itself.h (+42/-0) tests/tools/did_finish_successfully.h (+39/-0) tests/tools/event_sink.h (+145/-0) tests/tools/gdb_barrier.h (+52/-0) tests/tools/gles_egl_helper.h (+187/-0) tests/unit-tests/CMakeLists.txt (+4/-46) tests/unit-tests/existing_request_authenticator_test.cpp (+126/-0) tests/unit-tests/hashed_keyed_player_store_test.cpp (+97/-0) tests/unit-tests/pulseaudio_audio_output_observer_test.cpp (+76/-0) tests/unit-tests/test-gstreamer-engine.cpp (+16/-14) |
To merge this branch: | bzr merge lp:~thomas-voss/media-hub/add-tests-and-testing-infrastructure |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jim Hodapp (community) | Needs Information | ||
PS Jenkins bot | continuous-integration | Approve | |
Review via email:
|
Commit message
Enable integration and unit tests harnessing the most important functionality of media hub.
Introduce mocks and test tooling to help test authors.
Description of the change
Enable integration and unit tests harnessing the most important functionality of media hub.
Introduce mocks and test tooling to help test authors.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
PS Jenkins bot (ps-jenkins) wrote : | # |
- 121. By Thomas Voß
-
[ Jim Hodapp ]
* Fix the bug which caused music playback to start playing again after
a phonecall hung up after being auto-paused by disconnecting a
headphone jack.
[ Thomas Voss ]
[ CI Train Bot ]
* New rebuild forced.
[ Jim Hodapp ]
* Disconnect playback_status_ changed_ signal in ~Private() to avoid a
deadlock.
* Prevent a 0 position from being reported to the app which happens
while seeking. Covers bad behavior that happens from GStreamer. Also
expose the about_to_finish signal to the client. Enable playback
again after manually seeking all the way to EOS. Also only send
VideoDimensionsChanged signal only when necessary.
[ Ricardo Mendoza ]
* Add an interface apparmor::ubuntu: :RequestAuthent icator that is used
to authenticate incoming open uri requests. Add an interface
apparmor::ubuntu: :RequestContext Resolver that is used to resolve a
dbus name to an apparmor::ubuntu: :Context. Provide an implementation
apparmor::ubuntu: :ExistingAuthen ticator that takes the impl. from
player_skeleton. cpp and uses it to implement the interface. Provide
an implementation apparmor::ubuntu: :RequestContext Resolver that
reaches out to the dbus daemon to resolve a given bus name to an
apparmor profile. Remove obsolete query for the apparmor profile in
ServiceSkeleton. Adjust the implementation in media::PlayerSkeleton
to rely on Request{Authenticator, ContextResolver}. removed:
src/core/media/apparmor. h added: src/core/ media/apparmor/
src/core/media/apparmor/ context. cpp
src/core/media/apparmor/ context. h src/core/ media/apparmor/ dbus.h
src/core/media/apparmor/ ubuntu. cpp src/core/ media/apparmor/ ubuntu. h
* Introduce an interface media::audio:: OutputObserver that allows the
core classes to observer the state of external audio outputs
(headphones/headsets) . Provide an implementation of
media::audio: :OutputObserver that relies on Pulseaudio to monitor
the availability of ports on the default sink. Adjust
media::ServiceImpleme ntation to use media:: audio:: OutputObserver,
defaulting to media::audio:: PulseAudioOutpu tObserver.
* Migrate all Player DBus methods to use transact_method() instead of
invoke_method_ synchronously( ), to prevent bus executor deadlocks.
[ Ricardo Salveti de Araujo ]
* Add an interface apparmor::ubuntu: :RequestAuthent icator that is used
to authenticate incoming open uri requests. Add an interface
apparmor::ubuntu: :RequestContext Resolver that is used to resolve a
dbus name to an apparmor::ubuntu: :Context. Provide an implementation
apparmor::ubuntu: :ExistingAuthen ticator that takes the impl. from
player_skeleton. cpp and uses it to implement the interface. Provide
an implementation apparmor::ubuntu: :RequestContext Resolver that
reaches out to the dbus daemon to resolve a given bus name to an
apparmor profile. Remove obsolete query for the apparmor profile in
ServiceSkeleton. Adjust the implementation in media::PlayerSkeleton
to rely on Request{Authenticator, ContextResolver}. removed:
src/core/media/apparmor. h added: src/core/ media/apparmor/
src/core/media/apparmor/ context. cpp
src/core/media/apparmor/ context. h src/core/ media/apparmor/ dbus.h
src/core/media/apparmor/ ubuntu. cpp src/core/ media/apparmor/ ubuntu. h
* Move src/core/media/call- monitor to src/core/ media/telephony .
Introduce a proper interface media::telephony: :CallMonitor. Slightly
adjust existing implementation based on Qt. Adjust
media::ServiceImpleme ntation to account for changes in
media::telephony: :CallMonitor.
[ thomas-voss ]
* Add an interface apparmor::ubuntu: :RequestAuthent icator that is used
to authenticate incoming open uri requests. Add an interface
apparmor::ubuntu: :RequestContext Resolver that is used to resolve a
dbus name to an apparmor::ubuntu: :Context. Provide an implementation
apparmor::ubuntu: :ExistingAuthen ticator that takes the impl. from
player_skeleton. cpp and uses it to implement the interface. Provide
an implementation apparmor::ubuntu: :RequestContext Resolver that
reaches out to the dbus daemon to resolve a given bus name to an
apparmor profile. Remove obsolete query for the apparmor profile in
ServiceSkeleton. Adjust the implementation in media::PlayerSkeleton
to rely on Request{Authenticator, ContextResolver}. removed:
src/core/media/apparmor. h added: src/core/ media/apparmor/
src/core/media/apparmor/ context. cpp
src/core/media/apparmor/ context. h src/core/ media/apparmor/ dbus.h
src/core/media/apparmor/ ubuntu. cpp src/core/ media/apparmor/ ubuntu. h
* Add an interface media::ClientDeathObse rver that abstracts away
receiving key-based death notifications for clients associated to
media::Player instances server-side Provide an implementation
media::HybrisClientDe athObserver that relies on hybris and
ultimately on Android's onBinderDied to receive death notifications.
Adjust media::PlayerStub and media::PlayerImplement ation to account
for the new interface. Adjust the CMake setup for tests to link
media-hub-service instead of recompiling large parts of the
implementation classes.
* Decouple PlayerSkeleton and PlayerImplementation by making
PlayerImplementation being able to inherit from arbitrary base
classes, as long as they provide the set of properties and signals
defined by media::Player.
* Decouple the ServiceSkeleton from the ServiceImplementation by
introducing a common interface media::KeyedPlayerStor e for storing
running Player sessions indexed by the Player::Key. Provide a
default implementation HashedKeyedPlayerStore relying on a hash map
for keeping track of player instances. Adjust implementation to
account for ServiceImplementation no longer inheriting from
ServiceSkeleton.
* Introduce a common class media::helper: :ExternalHelper s that
provides a convenient way to:
* Introduce an interface media::RecorderObserve r that allows the core
classes to monitor the overall state of the system. Provide an
implementation of media::RecorderObserve r relying on Hybris to
interface with the Android side. Adjust the ServiceImplementation to
connect to the platform-default media::RecorderObserve r.
* Introduce an interface media::audio:: OutputObserver that allows the
core classes to observer the state of external audio outputs
(headphones/headsets) . Provide an implementation of
media::audio: :OutputObserver that relies on Pulseaudio to monitor
the availability of ports on the default sink. Adjust
media::ServiceImpleme ntation to use media:: audio:: OutputObserver,
defaulting to media::audio:: PulseAudioOutpu tObserver.
* Introduce an interface media::power:: BatteryObserver to monitor the
current battery level of the system. The core reacts to low/very low
battery levels by pausing all multimedia playback sessions and
resumes them whenever the user has been notified of the critical
battery level. Provide an implementation of
media::power: :BatteryObserve r using
com.canonical.indicator. power.Battery. Adjust
media::ServiceImpleme ntation to use media:: power:: BatteryObserver .
* Move gstreamer::Playbin implementation to its own cpp file, thus
internalizing the Hybris setup portions. Make sure that media-hub-
service knows about
media::Player: :Error: :OutOfProcessBu fferStreamingNo tSupported by
linking with media-hub-client.
* Move src/core/media/call- monitor to src/core/ media/telephony .
Introduce a proper interface media::telephony: :CallMonitor. Slightly
adjust existing implementation based on Qt. Adjust
media::ServiceImpleme ntation to account for changes in
media::telephony: :CallMonitor.
* Replace home-grown mask type for the video size with a std::tuple,
i.e., media::video:: Dimensions. Introduce a simple TaggedInteger
class to distinguish between Width, Height and other dimensions.
Adjust interfaces of media::Player to rely on the new type. Adjust
implementation classes to account for interface changes. Adjust
Codec implementation for sending the tagged integer via the bus.
Adjust gstreamer::Engine and gstreamer::Playbin to hand out the
correct types.
* debian/control:
- Removing pre-depends that are not required
- Bumping standards-version to 3.9.6
[ Ricardo Salveti de Araujo ]
* Migrating tests to use ogg instead of mp3/avi removed:
tests/h264.avi tests/test.mp3 added: tests/test-audio-1. ogg
tests/test-video. ogg tests/test.mp3 renamed: tests/test.ogg =>
tests/test-audio. ogg - 122. By Thomas Voß
-
Adjust to latest changes in lp:media-hub.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:122
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:122
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 123. By Thomas Voß
-
Add memcheck.
suppressions for handling spurious reports from glib/gobject/ gstreamer (needs more investigation).
Properly scope gstreamer init/deinit to avoid static initialization fiascos.
Ensure that the bus used by the MetaDataExtractor is properly released, together with the overall pipeline.
Ensure that state changes in the MetaDataExtractor are atomic (TODO: split out common wait_for_state_change code).
Make sure that only the engine is kept alive when resetting on client death. Otherwise, objects are leaked, causing issues in integration tests.
Make sure that multimedia sessions are properly resumed when a critical battery notification ends.
Fix the mocked KeyedPlayerStore such that do_has_player_ for_key never throws.
Fix meta data in test files to make GStreamerEngine.* tests pass again.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:123
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 124. By Thomas Voß
-
Pull in the correct libraries for linking.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:124
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:124
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jim Hodapp (jhodapp) wrote : | # |
Which branch or branches have your tests that you refactored and want to land? I'll have more comments for this MR after you sync your branches with trunk.
Unmerged revisions
- 124. By Thomas Voß
-
Pull in the correct libraries for linking.
- 123. By Thomas Voß
-
Add memcheck.
suppressions for handling spurious reports from glib/gobject/ gstreamer (needs more investigation).
Properly scope gstreamer init/deinit to avoid static initialization fiascos.
Ensure that the bus used by the MetaDataExtractor is properly released, together with the overall pipeline.
Ensure that state changes in the MetaDataExtractor are atomic (TODO: split out common wait_for_state_change code).
Make sure that only the engine is kept alive when resetting on client death. Otherwise, objects are leaked, causing issues in integration tests.
Make sure that multimedia sessions are properly resumed when a critical battery notification ends.
Fix the mocked KeyedPlayerStore such that do_has_player_ for_key never throws.
Fix meta data in test files to make GStreamerEngine.* tests pass again. - 122. By Thomas Voß
-
Adjust to latest changes in lp:media-hub.
- 121. By Thomas Voß
-
[ Jim Hodapp ]
* Fix the bug which caused music playback to start playing again after
a phonecall hung up after being auto-paused by disconnecting a
headphone jack.
[ Thomas Voss ]
[ CI Train Bot ]
* New rebuild forced.
[ Jim Hodapp ]
* Disconnect playback_status_ changed_ signal in ~Private() to avoid a
deadlock.
* Prevent a 0 position from being reported to the app which happens
while seeking. Covers bad behavior that happens from GStreamer. Also
expose the about_to_finish signal to the client. Enable playback
again after manually seeking all the way to EOS. Also only send
VideoDimensionsChanged signal only when necessary.
[ Ricardo Mendoza ]
* Add an interface apparmor::ubuntu: :RequestAuthent icator that is used
to authenticate incoming open uri requests. Add an interface
apparmor::ubuntu: :RequestContext Resolver that is used to resolve a
dbus name to an apparmor::ubuntu: :Context. Provide an implementation
apparmor::ubuntu: :ExistingAuthen ticator that takes the impl. from
player_skeleton. cpp and uses it to implement the interface. Provide
an implementation apparmor::ubuntu: :RequestContext Resolver that
reaches out to the dbus daemon to resolve a given bus name to an
apparmor profile. Remove obsolete query for the apparmor profile in
ServiceSkeleton. Adjust the implementation in media::PlayerSkeleton
to rely on Request{Authenticator, ContextResolver}. removed:
src/core/media/apparmor. h added: src/core/ media/apparmor/
src/core/media/apparmor/ context. cpp
src/core/media/apparmor/ context. h src/core/ media/apparmor/ dbus.h
src/core/media/apparmor/ ubuntu. cpp src/core/ media/apparmor/ ubuntu. h
* Introduce an interface media::audio:: OutputObserver that allows the
core classes to observer the state of external audio outputs
(headphones/headsets) . Provide an implementation of
media::audio: :OutputObserver that relies on Pulseaudio to monitor
the availability of ports on the default sink. Adjust
media::ServiceImpleme ntation to use media:: audio:: OutputObserver,
defaulting to media::audio:: PulseAudioOutpu tObserver.
* Migrate all Player DBus methods to use transact_method() instead of
invoke_method_ synchronously( ), to prevent bus executor deadlocks.
[ Ricardo Salveti de Araujo ]
* Add an interface apparmor::ubuntu: :RequestAuthent icator that is used
to authenticate incoming open uri requests. Add an interface
apparmor::ubuntu: :RequestContext Resolver that is used to resolve a
dbus name to an apparmor::ubuntu: :Context. Provide an implementation
apparmor::ubuntu: :ExistingAuthen ticator that takes the impl. from
player_skeleton. cpp and uses it to implement the interface. Provide
an implementation apparmor::ubuntu: :RequestContext Resolver that
reaches out to the dbus daemon to resolve a given bus name to an
apparmor profile. Remove obsolete query for the apparmor profile in
ServiceSkeleton. Adjust the implementation in media::PlayerSkeleton
to rely on Request{Authenticator, ContextResolver}. removed:
src/core/media/apparmor. h added: src/core/ media/apparmor/
src/core/media/apparmor/ context. cpp
src/core/media/apparmor/ context. h src/core/ media/apparmor/ dbus.h
src/core/media/apparmor/ ubuntu. cpp src/core/ media/apparmor/ ubuntu. h
* Move src/core/media/call- monitor to src/core/ media/telephony .
Introduce a proper interface media::telephony: :CallMonitor. Slightly
adjust existing implementation based on Qt. Adjust
media::ServiceImpleme ntation to account for changes in
media::telephony: :CallMonitor.
[ thomas-voss ]
* Add an interface apparmor::ubuntu: :RequestAuthent icator that is used
to authenticate incoming open uri requests. Add an interface
apparmor::ubuntu: :RequestContext Resolver that is used to resolve a
dbus name to an apparmor::ubuntu: :Context. Provide an implementation
apparmor::ubuntu: :ExistingAuthen ticator that takes the impl. from
player_skeleton. cpp and uses it to implement the interface. Provide
an implementation apparmor::ubuntu: :RequestContext Resolver that
reaches out to the dbus daemon to resolve a given bus name to an
apparmor profile. Remove obsolete query for the apparmor profile in
ServiceSkeleton. Adjust the implementation in media::PlayerSkeleton
to rely on Request{Authenticator, ContextResolver}. removed:
src/core/media/apparmor. h added: src/core/ media/apparmor/
src/core/media/apparmor/ context. cpp
src/core/media/apparmor/ context. h src/core/ media/apparmor/ dbus.h
src/core/media/apparmor/ ubuntu. cpp src/core/ media/apparmor/ ubuntu. h
* Add an interface media::ClientDeathObse rver that abstracts away
receiving key-based death notifications for clients associated to
media::Player instances server-side Provide an implementation
media::HybrisClientDe athObserver that relies on hybris and
ultimately on Android's onBinderDied to receive death notifications.
Adjust media::PlayerStub and media::PlayerImplement ation to account
for the new interface. Adjust the CMake setup for tests to link
media-hub-service instead of recompiling large parts of the
implementation classes.
* Decouple PlayerSkeleton and PlayerImplementation by making
PlayerImplementation being able to inherit from arbitrary base
classes, as long as they provide the set of properties and signals
defined by media::Player.
* Decouple the ServiceSkeleton from the ServiceImplementation by
introducing a common interface media::KeyedPlayerStor e for storing
running Player sessions indexed by the Player::Key. Provide a
default implementation HashedKeyedPlayerStore relying on a hash map
for keeping track of player instances. Adjust implementation to
account for ServiceImplementation no longer inheriting from
ServiceSkeleton.
* Introduce a common class media::helper: :ExternalHelper s that
provides a convenient way to:
* Introduce an interface media::RecorderObserve r that allows the core
classes to monitor the overall state of the system. Provide an
implementation of media::RecorderObserve r relying on Hybris to
interface with the Android side. Adjust the ServiceImplementation to
connect to the platform-default media::RecorderObserve r.
* Introduce an interface media::audio:: OutputObserver that allows the
core classes to observer the state of external audio outputs
(headphones/headsets) . Provide an implementation of
media::audio: :OutputObserver that relies on Pulseaudio to monitor
the availability of ports on the default sink. Adjust
media::ServiceImpleme ntation to use media:: audio:: OutputObserver,
defaulting to media::audio:: PulseAudioOutpu tObserver.
* Introduce an interface media::power:: BatteryObserver to monitor the
current battery level of the system. The core reacts to low/very low
battery levels by pausing all multimedia playback sessions and
resumes them whenever the user has been notified of the critical
battery level. Provide an implementation of
media::power: :BatteryObserve r using
com.canonical.indicator. power.Battery. Adjust
media::ServiceImpleme ntation to use media:: power:: BatteryObserver .
* Move gstreamer::Playbin implementation to its own cpp file, thus
internalizing the Hybris setup portions. Make sure that media-hub-
service knows about
media::Player: :Error: :OutOfProcessBu fferStreamingNo tSupported by
linking with media-hub-client.
* Move src/core/media/call- monitor to src/core/ media/telephony .
Introduce a proper interface media::telephony: :CallMonitor. Slightly
adjust existing implementation based on Qt. Adjust
media::ServiceImpleme ntation to account for changes in
media::telephony: :CallMonitor.
* Replace home-grown mask type for the video size with a std::tuple,
i.e., media::video:: Dimensions. Introduce a simple TaggedInteger
class to distinguish between Width, Height and other dimensions.
Adjust interfaces of media::Player to rely on the new type. Adjust
implementation classes to account for interface changes. Adjust
Codec implementation for sending the tagged integer via the bus.
Adjust gstreamer::Engine and gstreamer::Playbin to hand out the
correct types.
* debian/control:
- Removing pre-depends that are not required
- Bumping standards-version to 3.9.6
[ Ricardo Salveti de Araujo ]
* Migrating tests to use ogg instead of mp3/avi removed:
tests/h264.avi tests/test.mp3 added: tests/test-audio-1. ogg
tests/test-video. ogg tests/test.mp3 renamed: tests/test.ogg =>
tests/test-audio. ogg - 120. By Thomas Voß
-
Enable integration and unit tests harnessing the most important functionality of media hub.
Introduce mocks and test tooling to help test authors. - 119. By Thomas Voß
-
First pass, not compiling.
- 118. By Thomas Voß
-
Merge prereq branch.
Externalize all the functional dependencies of Player{Skeleton, Implementation} and Service{Skeleton, Implementation} to allow
for easy mocking in test cases.
Adjust the server setup to instantiate platform-default implementations.
Preview Diff
1 | === modified file 'CMakeLists.txt' |
2 | --- CMakeLists.txt 2015-01-23 13:00:36 +0000 |
3 | +++ CMakeLists.txt 2015-04-17 14:35:22 +0000 |
4 | @@ -29,6 +29,8 @@ |
5 | pkg_check_modules(PROCESS_CPP process-cpp REQUIRED) |
6 | pkg_check_modules(GIO gio-2.0 REQUIRED) |
7 | pkg_check_modules(HYBRIS_MEDIA libmedia REQUIRED) |
8 | +pkg_check_modules(GSTREAMER_1_0 REQUIRED gstreamer-1.0) |
9 | +pkg_check_modules(PULSE_AUDIO REQUIRED libpulse) |
10 | |
11 | add_definitions(-DMEDIA_HUB_HAVE_HYBRIS_MEDIA_COMPAT_LAYER) |
12 | |
13 | @@ -57,8 +59,11 @@ |
14 | ${DBUS_INCLUDE_DIRS} |
15 | ${DBUS_CPP_INCLUDE_DIRS} |
16 | ${GLog_INCLUDE_DIR} |
17 | + ${GSTREAMER_1_0_INCLUDE_DIRS} |
18 | + ${HYBRIS_MEDIA_CFLAGS} |
19 | ${PROCESS_CPP_INCLUDE_DIRS} |
20 | ${PROPERTIES_CPP_INCLUDE_DIRS} |
21 | + ${PULSE_AUDIO_INCLUDE_DIRS} |
22 | |
23 | include/ |
24 | ) |
25 | |
26 | === added file 'memcheck.suppressions' |
27 | --- memcheck.suppressions 1970-01-01 00:00:00 +0000 |
28 | +++ memcheck.suppressions 2015-04-17 14:35:22 +0000 |
29 | @@ -0,0 +1,4016 @@ |
30 | +### this file contains suppressions for valgrind when running |
31 | +### the gstreamer unit tests |
32 | +### it might be useful for wider use as well |
33 | + |
34 | +### syscall suppressions |
35 | + |
36 | +{ |
37 | + <clone on Wim's Debian> |
38 | + Memcheck:Param |
39 | + clone(parent_tidptr) |
40 | + fun:clone |
41 | + fun:clone |
42 | +} |
43 | + |
44 | +{ |
45 | + <clone on Wim's Debian> |
46 | + Memcheck:Param |
47 | + clone(child_tidptr) |
48 | + fun:clone |
49 | + fun:clone |
50 | +} |
51 | + |
52 | +{ |
53 | + <clone on Wim's Debian> |
54 | + Memcheck:Param |
55 | + clone(tlsinfo) |
56 | + fun:clone |
57 | + fun:clone |
58 | +} |
59 | + |
60 | +### glibc suppressions |
61 | + |
62 | +{ |
63 | + <conditional jump on wim's debian 2/2/06> |
64 | + Memcheck:Cond |
65 | + obj:/lib/ld-2.*.so |
66 | + fun:dl_open_worker |
67 | + obj:/lib/ld-2.*.so |
68 | + fun:_dl_open |
69 | + fun:dlopen_doit |
70 | + obj:/lib/ld-2.*.so |
71 | + fun:_dlerror_run |
72 | + fun:dlopen |
73 | + fun:g_module_open |
74 | + fun:gst_plugin_load_file |
75 | +} |
76 | + |
77 | +{ |
78 | + <Conditional jump> |
79 | + Memcheck:Cond |
80 | + fun:strlen |
81 | + fun:fillin_rpath |
82 | + fun:_dl_init_paths |
83 | + fun:dl_main |
84 | + fun:_dl_sysdep_start |
85 | + fun:_dl_start |
86 | + obj:/lib64/ld-2.*.so |
87 | + obj:* |
88 | + obj:* |
89 | +} |
90 | + |
91 | +{ |
92 | + <Conditional jump> |
93 | + Memcheck:Cond |
94 | + fun:_dl_relocate_object |
95 | + fun:dl_main |
96 | + fun:_dl_sysdep_start |
97 | + fun:_dl_start |
98 | +} |
99 | + |
100 | +{ |
101 | + <insert a suppression name here> |
102 | + Memcheck:Cond |
103 | + fun:* |
104 | + fun:dl_open_worker |
105 | + fun:_dl_catch_error |
106 | + fun:_dl_open |
107 | + fun:dlopen_doit |
108 | + fun:_dl_catch_error |
109 | + fun:_dlerror_run |
110 | + fun:dlopen@@GLIBC_2.2.5 |
111 | +} |
112 | + |
113 | +# glibc does not deallocate thread-local storage |
114 | + |
115 | +{ |
116 | + <tls> |
117 | + Memcheck:Leak |
118 | + fun:calloc |
119 | + fun:_dl_allocate_tls |
120 | + fun:pthread_create@@* |
121 | +} |
122 | + |
123 | +{ |
124 | + <tls> |
125 | + Memcheck:Leak |
126 | + fun:calloc |
127 | + fun:allocate_dtv |
128 | + fun:_dl_allocate_tls |
129 | +} |
130 | + |
131 | +# I get an extra stack entry on x86/dapper |
132 | +{ |
133 | + <tls> |
134 | + Memcheck:Leak |
135 | + fun:calloc |
136 | + obj:/lib/ld-2.3.*.so |
137 | + fun:_dl_allocate_tls |
138 | + fun:pthread_create@@* |
139 | +} |
140 | + |
141 | + |
142 | +{ |
143 | + <pthread strstr> |
144 | + Memcheck:Cond |
145 | + fun:strstr |
146 | + fun:__pthread_initialize_minimal |
147 | + obj:/lib/libpthread-*.so |
148 | + obj:/lib/libpthread-*.so |
149 | + fun:call_init |
150 | + fun:_dl_init |
151 | + obj:/lib/ld-*.so |
152 | +} |
153 | + |
154 | +# a thread-related free problem in glibc from Edgard |
155 | +{ |
156 | + __libc_freeres_rw_acess |
157 | + Memcheck:Addr4 |
158 | + obj:* |
159 | + obj:* |
160 | + obj:* |
161 | + obj:* |
162 | + obj:* |
163 | + fun:__libc_freeres |
164 | +} |
165 | + |
166 | +{ |
167 | + <a conditional jump on wim's debian> |
168 | + Memcheck:Cond |
169 | + obj:/lib/ld-2.3.*.so |
170 | + obj:/lib/ld-2.3.*.so |
171 | + obj:/lib/ld-2.3.*.so |
172 | + obj:/lib/ld-2.3.*.so |
173 | + obj:/lib/ld-2.3.*.so |
174 | +} |
175 | + |
176 | +# g_module_open-related problems |
177 | +{ |
178 | + <started showing up on fc4-quick> |
179 | + Memcheck:Addr2 |
180 | + fun:memcpy |
181 | + fun:_dl_map_object_deps |
182 | + fun:dl_open_worker |
183 | + fun:_dl_catch_error |
184 | + fun:_dl_open |
185 | + fun:dlopen_doit |
186 | + fun:_dl_catch_error |
187 | + fun:_dlerror_run |
188 | + fun:dlopen@@GLIBC_2.1 |
189 | + fun:g_module_open |
190 | + fun:gst_plugin_load_file |
191 | + fun:gst_registry_scan_path_level |
192 | + fun:gst_registry_scan_path_level |
193 | + fun:gst_registry_scan_path_level |
194 | + fun:init_post |
195 | + fun:g_option_context_parse |
196 | + fun:gst_init_check |
197 | + fun:gst_init |
198 | + fun:gst_check_init |
199 | + fun:main |
200 | +} |
201 | + |
202 | +{ |
203 | + <started showing up on fc4-quick> |
204 | + Memcheck:Addr4 |
205 | + fun:memcpy |
206 | + fun:_dl_map_object_deps |
207 | + fun:dl_open_worker |
208 | + fun:_dl_catch_error |
209 | + fun:_dl_open |
210 | + fun:dlopen_doit |
211 | + fun:_dl_catch_error |
212 | + fun:_dlerror_run |
213 | + fun:dlopen@@GLIBC_2.1 |
214 | + fun:g_module_open |
215 | + fun:gst_plugin_load_file |
216 | + fun:gst_registry_scan_path_level |
217 | + fun:gst_registry_scan_path_level |
218 | + fun:gst_registry_scan_path_level |
219 | + fun:init_post |
220 | + fun:g_option_context_parse |
221 | + fun:gst_init_check |
222 | + fun:gst_init |
223 | + fun:gst_check_init |
224 | + fun:main |
225 | +} |
226 | + |
227 | +{ |
228 | + <g_module_open on wim's debian> |
229 | + Memcheck:Cond |
230 | + obj:/lib/ld-2.3.*.so |
231 | + obj:/lib/ld-2.3.*.so |
232 | + obj:/lib/ld-2.3.*.so |
233 | + fun:do_sym |
234 | + fun:_dl_sym |
235 | + fun:dlsym_doit |
236 | + obj:/lib/ld-2.3.*.so |
237 | + fun:_dlerror_run |
238 | + fun:dlsym |
239 | + fun:g_module_symbol |
240 | + fun:g_module_open |
241 | + fun:gst_plugin_load_file |
242 | +} |
243 | + |
244 | +{ |
245 | + <g_module_open on wim's debian> |
246 | + Memcheck:Cond |
247 | + obj:/lib/ld-2.3.*.so |
248 | + obj:/lib/ld-2.3.*.so |
249 | + obj:/lib/ld-2.3.*.so |
250 | + fun:dl_open_worker |
251 | + obj:/lib/ld-2.3.*.so |
252 | + fun:_dl_open |
253 | + fun:dlopen_doit |
254 | + obj:/lib/ld-2.3.*.so |
255 | + fun:_dlerror_run |
256 | + fun:dlopen@@GLIBC_2.1 |
257 | + fun:g_module_open |
258 | + fun:gst_plugin_load_file |
259 | +} |
260 | +{ |
261 | + <g_module_open on wim's debian> |
262 | + Memcheck:Cond |
263 | + obj:/lib/ld-2.3.*.so |
264 | + fun:dl_open_worker |
265 | + obj:/lib/ld-2.3.*.so |
266 | + fun:_dl_open |
267 | + fun:dlopen_doit |
268 | + obj:/lib/ld-2.3.*.so |
269 | + fun:_dlerror_run |
270 | + fun:dlopen@@GLIBC_2.1 |
271 | + fun:g_module_open |
272 | + fun:gst_plugin_load_file |
273 | + fun:gst_plugin_load_by_name |
274 | + fun:gst_plugin_feature_load |
275 | +} |
276 | + |
277 | +{ |
278 | + <leak on wim's debian in g_module_open> |
279 | + Memcheck:Leak |
280 | + fun:malloc |
281 | + obj:/lib/ld-2.3.*.so |
282 | + fun:dl_open_worker |
283 | + obj:/lib/ld-2.3.*.so |
284 | + fun:_dl_open |
285 | + fun:dlopen_doit |
286 | + obj:/lib/ld-2.3.*.so |
287 | + fun:_dlerror_run |
288 | + fun:dlopen@@GLIBC_2.1 |
289 | + fun:g_module_open |
290 | + fun:gst_plugin_load_file |
291 | + fun:gst_plugin_load_by_name |
292 | +} |
293 | + |
294 | +{ |
295 | + <invalid read on wim's debian> |
296 | + Memcheck:Addr4 |
297 | + obj:/lib/ld-2.3.*.so |
298 | + obj:/lib/ld-2.3.*.so |
299 | + obj:/lib/ld-2.3.*.so |
300 | + obj:/lib/ld-2.3.*.so |
301 | + obj:/lib/ld-2.3.*.so |
302 | + obj:/lib/ld-2.3.*.so |
303 | + obj:/lib/ld-2.3.*.so |
304 | + fun:dl_open_worker |
305 | + obj:/lib/ld-2.3.*.so |
306 | + fun:_dl_open |
307 | + fun:dlopen_doit |
308 | + obj:/lib/ld-2.3.*.so |
309 | +} |
310 | + |
311 | +{ |
312 | + <invalid read on wim's debian> |
313 | + Memcheck:Addr4 |
314 | + obj:/lib/ld-2.3.*.so |
315 | + obj:/lib/ld-2.3.*.so |
316 | + obj:/lib/ld-2.3.*.so |
317 | + obj:/lib/ld-2.3.*.so |
318 | + obj:/lib/ld-2.3.*.so |
319 | + obj:/lib/ld-2.3.*.so |
320 | + fun:dl_open_worker |
321 | + obj:/lib/ld-2.3.*.so |
322 | + fun:_dl_open |
323 | + fun:dlopen_doit |
324 | + obj:/lib/ld-2.3.*.so |
325 | + fun:_dlerror_run |
326 | +} |
327 | + |
328 | +{ |
329 | + <invalid read on wim's debian - 2006-02-02> |
330 | + Memcheck:Addr4 |
331 | + obj:/lib/ld-2.3.*.so |
332 | + obj:/lib/ld-2.3.*.so |
333 | + obj:/lib/ld-2.3.*.so |
334 | + fun:dl_open_worker |
335 | + obj:/lib/ld-2.3.*.so |
336 | + fun:_dl_open |
337 | + fun:dlopen_doit |
338 | + obj:/lib/ld-2.3.*.so |
339 | + fun:_dlerror_run |
340 | + fun:dlopen@@GLIBC_2.1 |
341 | + fun:g_module_open |
342 | +} |
343 | + |
344 | +{ |
345 | + <invalid read on wim's debian - 2006-02-02> |
346 | + Memcheck:Addr4 |
347 | + obj:/lib/ld-2.3.*.so |
348 | + obj:/lib/ld-2.3.*.so |
349 | + fun:dl_open_worker |
350 | + obj:/lib/ld-2.3.*.so |
351 | + fun:_dl_open |
352 | + fun:dlopen_doit |
353 | + obj:/lib/ld-2.3.*.so |
354 | + fun:_dlerror_run |
355 | + fun:dlopen@@GLIBC_2.1 |
356 | + fun:g_module_open |
357 | +} |
358 | + |
359 | +{ |
360 | + <invalid read on wim's debian - 2006-02-02> |
361 | + Memcheck:Addr4 |
362 | + obj:/lib/ld-2.3.*.so |
363 | + obj:/lib/ld-2.3.*.so |
364 | + obj:/lib/ld-2.3.*.so |
365 | + fun:do_sym |
366 | + fun:_dl_sym |
367 | + fun:dlsym_doit |
368 | + obj:/lib/ld-2.3.*.so |
369 | + fun:_dlerror_run |
370 | + fun:dlsym |
371 | + fun:g_module_symbol |
372 | + fun:g_module_open |
373 | +} |
374 | + |
375 | +{ |
376 | + <futex on Andy's 64-bit ubuntu> |
377 | + Memcheck:Param |
378 | + futex(uaddr2) |
379 | + fun:pthread_once |
380 | + obj:/lib/libc-2.3.*.so |
381 | + obj:/lib/libc-2.3.*.so |
382 | + fun:mbsnrtowcs |
383 | + fun:vfprintf |
384 | + fun:vsprintf |
385 | + fun:sprintf |
386 | + obj:/lib/libc-2.3.*.so |
387 | + fun:tmpfile |
388 | + fun:setup_pipe |
389 | + fun:setup_messaging_with_key |
390 | + fun:setup_messaging |
391 | +} |
392 | + |
393 | +{ |
394 | + <suppression for glibc 2.7 on debian> |
395 | + Memcheck:Addr4 |
396 | + obj:/lib/ld-2.7.so |
397 | + obj:/lib/ld-2.7.so |
398 | + obj:/lib/ld-2.7.so |
399 | + obj:/lib/i686/cmov/libdl-2.7.so |
400 | + obj:/lib/ld-2.7.so |
401 | + obj:/lib/i686/cmov/libdl-2.7.so |
402 | + fun:dlopen |
403 | + fun:g_module_open |
404 | +} |
405 | + |
406 | +{ |
407 | + <suppression for glibc 2.7 on debian> |
408 | + Memcheck:Addr4 |
409 | + obj:/lib/ld-2.7.so |
410 | + obj:/lib/ld-2.7.so |
411 | + obj:/lib/ld-2.7.so |
412 | + obj:/lib/i686/cmov/libc-2.7.so |
413 | + fun:_dl_sym |
414 | + obj:/lib/i686/cmov/libdl-2.7.so |
415 | + obj:/lib/ld-2.7.so |
416 | + obj:/lib/i686/cmov/libdl-2.7.so |
417 | + fun:dlsym |
418 | + fun:g_module_symbol |
419 | + fun:g_module_open |
420 | +} |
421 | + |
422 | +{ |
423 | + <suppression for glibc 2.7 on debian> |
424 | + Memcheck:Addr4 |
425 | + obj:/lib/ld-2.7.so |
426 | + obj:/lib/ld-2.7.so |
427 | + obj:/lib/ld-2.7.so |
428 | + obj:/lib/ld-2.7.so |
429 | + obj:/lib/ld-2.7.so |
430 | + obj:/lib/ld-2.7.so |
431 | + obj:/lib/ld-2.7.so |
432 | + obj:/lib/ld-2.7.so |
433 | + obj:/lib/ld-2.7.so |
434 | + obj:/lib/i686/cmov/libdl-2.7.so |
435 | + obj:/lib/ld-2.7.so |
436 | + obj:/lib/i686/cmov/libdl-2.7.so |
437 | + fun:dlopen |
438 | + fun:g_module_open |
439 | +} |
440 | + |
441 | +{ |
442 | + <suppression for glibc 2.7 on debian> |
443 | + Memcheck:Addr4 |
444 | + obj:/lib/ld-2.7.so |
445 | + obj:/lib/ld-2.7.so |
446 | + obj:/lib/ld-2.7.so |
447 | + obj:/lib/ld-2.7.so |
448 | + obj:/lib/ld-2.7.so |
449 | + obj:/lib/ld-2.7.so |
450 | + obj:/lib/i686/cmov/libdl-2.7.so |
451 | + obj:/lib/ld-2.7.so |
452 | + obj:/lib/i686/cmov/libdl-2.7.so |
453 | + fun:dlopen |
454 | + fun:g_module_open |
455 | +} |
456 | + |
457 | +{ |
458 | + <suppression for glibc 2.7 on debian> |
459 | + Memcheck:Addr4 |
460 | + obj:/lib/ld-2.7.so |
461 | + obj:/lib/ld-2.7.so |
462 | + obj:/lib/ld-2.7.so |
463 | + obj:/lib/ld-2.7.so |
464 | + obj:/lib/ld-2.7.so |
465 | + obj:/lib/i686/cmov/libdl-2.7.so |
466 | + obj:/lib/ld-2.7.so |
467 | + obj:/lib/i686/cmov/libdl-2.7.so |
468 | + fun:dlopen |
469 | + fun:g_module_open |
470 | +} |
471 | + |
472 | +{ |
473 | + <suppression for glibc 2.7 on debian> |
474 | + Memcheck:Addr4 |
475 | + obj:/lib/ld-2.7.so |
476 | + obj:/lib/ld-2.7.so |
477 | + obj:/lib/ld-2.7.so |
478 | + obj:/lib/ld-2.7.so |
479 | + obj:/lib/ld-2.7.so |
480 | + obj:/lib/ld-2.7.so |
481 | + obj:/lib/ld-2.7.so |
482 | + obj:/lib/ld-2.7.so |
483 | + obj:/lib/ld-2.7.so |
484 | + obj:/lib/i686/cmov/libc-2.7.so |
485 | + obj:/lib/ld-2.7.so |
486 | + fun:__libc_dlopen_mode |
487 | +} |
488 | + |
489 | +{ |
490 | + <suppression for glibc 2.7 on debian> |
491 | + Memcheck:Addr4 |
492 | + obj:/lib/ld-2.7.so |
493 | + obj:/lib/ld-2.7.so |
494 | + obj:/lib/ld-2.7.so |
495 | + obj:/lib/ld-2.7.so |
496 | + obj:/lib/ld-2.7.so |
497 | + obj:/lib/ld-2.7.so |
498 | + obj:/lib/i686/cmov/libc-2.7.so |
499 | + obj:/lib/ld-2.7.so |
500 | + fun:__libc_dlopen_mode |
501 | +} |
502 | + |
503 | +{ |
504 | + <suppression for glibc 2.7 on debian> |
505 | + Memcheck:Addr4 |
506 | + obj:/lib/ld-2.7.so |
507 | + obj:/lib/ld-2.7.so |
508 | + obj:/lib/ld-2.7.so |
509 | + obj:/lib/ld-2.7.so |
510 | + obj:/lib/ld-2.7.so |
511 | + obj:/lib/i686/cmov/libc-2.7.so |
512 | + obj:/lib/ld-2.7.so |
513 | + fun:__libc_dlopen_mode |
514 | + obj:/lib/i686/cmov/libc-2.7.so |
515 | + obj:/lib/i686/cmov/libc-2.7.so |
516 | + obj:/lib/i686/cmov/libc-2.7.so |
517 | + obj:/lib/i686/cmov/libc-2.7.so |
518 | + obj:/lib/i686/cmov/libc-2.7.so |
519 | + fun:iconv_open |
520 | +} |
521 | + |
522 | +{ |
523 | + <suppression for glibc 2.7 on debian> |
524 | + Memcheck:Addr4 |
525 | + obj:/lib/ld-2.7.so |
526 | + obj:/lib/ld-2.7.so |
527 | + obj:/lib/ld-2.7.so |
528 | + obj:/lib/i686/cmov/libc-2.7.so |
529 | + obj:/lib/ld-2.7.so |
530 | + fun:__libc_dlopen_mode |
531 | + obj:/lib/i686/cmov/libc-2.7.so |
532 | + obj:/lib/i686/cmov/libc-2.7.so |
533 | + obj:/lib/i686/cmov/libc-2.7.so |
534 | + obj:/lib/i686/cmov/libc-2.7.so |
535 | + obj:/lib/i686/cmov/libc-2.7.so |
536 | + fun:iconv_open |
537 | +} |
538 | + |
539 | +{ |
540 | + <suppression for glibc 2.7 on Ubunty Hardy 64-bit> |
541 | + Memcheck:Addr8 |
542 | + obj:/lib/ld-2.7.so |
543 | + obj:/lib/ld-2.7.so |
544 | + obj:/lib/ld-2.7.so |
545 | + obj:/lib/ld-2.7.so |
546 | + obj:/lib/libc-2.7.so |
547 | + obj:/lib/ld-2.7.so |
548 | + fun:__libc_dlopen_mode |
549 | + obj:/lib/libc-2.7.so |
550 | + obj:/lib/libc-2.7.so |
551 | + obj:/lib/libc-2.7.so |
552 | + obj:/lib/libc-2.7.so |
553 | + obj:/lib/libc-2.7.so |
554 | + fun:iconv_open |
555 | +} |
556 | + |
557 | +{ |
558 | + <suppression for glibc 2.7 on Ubunty Hardy 64-bit> |
559 | + Memcheck:Addr8 |
560 | + obj:/lib/ld-2.7.so |
561 | + obj:/lib/ld-2.7.so |
562 | + obj:/lib/ld-2.7.so |
563 | + obj:/lib/ld-2.7.so |
564 | + obj:/lib/ld-2.7.so |
565 | + obj:/lib/ld-2.7.so |
566 | + obj:/lib/libc-2.7.so |
567 | + obj:/lib/ld-2.7.so |
568 | + fun:__libc_dlopen_mode |
569 | + obj:/lib/libc-2.7.so |
570 | + obj:/lib/libc-2.7.so |
571 | + obj:/lib/libc-2.7.so |
572 | + obj:/lib/libc-2.7.so |
573 | + obj:/lib/libc-2.7.so |
574 | + fun:iconv_open |
575 | +} |
576 | + |
577 | +{ |
578 | + <suppression for glibc 2.7 on debian> |
579 | + Memcheck:Addr4 |
580 | + obj:/lib/ld-2.7.so |
581 | + obj:/lib/ld-2.7.so |
582 | + obj:/lib/ld-2.7.so |
583 | + obj:/lib/ld-2.7.so |
584 | + obj:/lib/ld-2.7.so |
585 | + obj:/lib/i686/cmov/libdl-2.7.so |
586 | + obj:/lib/ld-2.7.so |
587 | + obj:/lib/i686/cmov/libdl-2.7.so |
588 | + fun:dlopen |
589 | +} |
590 | + |
591 | +{ |
592 | + <suppression for glibc 2.7 on debian> |
593 | + Memcheck:Addr4 |
594 | + obj:/lib/ld-2.7.so |
595 | + obj:/lib/i686/cmov/libdl-2.7.so |
596 | + obj:/lib/ld-2.7.so |
597 | + obj:/lib/i686/cmov/libdl-2.7.so |
598 | + fun:dlopen |
599 | +} |
600 | + |
601 | +{ |
602 | + <suppression for glibc 2.7 on Ubunty Hardy 64-bit> |
603 | + Memcheck:Addr8 |
604 | + obj:/lib/ld-2.7.so |
605 | + obj:/lib/ld-2.7.so |
606 | + obj:/lib/ld-2.7.so |
607 | + obj:/lib/ld-2.7.so |
608 | + obj:/lib/ld-2.7.so |
609 | + obj:/lib/ld-2.7.so |
610 | + obj:/lib/ld-2.7.so |
611 | + obj:/lib/libc-2.7.so |
612 | + obj:/lib/ld-2.7.so |
613 | + fun:__libc_dlopen_mode |
614 | +} |
615 | + |
616 | +{ |
617 | + <suppression for glibc 2.7 on debian> |
618 | + Memcheck:Cond |
619 | + obj:/lib/ld-2.7.so |
620 | + obj:/lib/ld-2.7.so |
621 | + obj:/lib/i686/cmov/libdl-2.7.so |
622 | + obj:/lib/ld-2.7.so |
623 | + obj:/lib/i686/cmov/libdl-2.7.so |
624 | + fun:dlopen |
625 | +} |
626 | + |
627 | +{ |
628 | + <suppression for glibc 2.7 on debian> |
629 | + Memcheck:Cond |
630 | + obj:/lib/ld-2.7.so |
631 | + obj:/lib/ld-2.7.so |
632 | + obj:/lib/i686/cmov/libdl-2.7.so |
633 | + obj:/lib/ld-2.7.so |
634 | + obj:/lib/i686/cmov/libdl-2.7.so |
635 | + fun:dlopen |
636 | +} |
637 | + |
638 | +{ |
639 | + <suppression for glibc 2.7 on debian> |
640 | + Memcheck:Addr4 |
641 | + obj:/lib/ld-2.7.so |
642 | + obj:/lib/ld-2.7.so |
643 | + obj:/lib/ld-2.7.so |
644 | + obj:/lib/ld-2.7.so |
645 | + obj:/lib/ld-2.7.so |
646 | + obj:/lib/i686/cmov/libdl-2.7.so |
647 | + obj:/lib/ld-2.7.so |
648 | + obj:/lib/i686/cmov/libdl-2.7.so |
649 | + fun:dlopen |
650 | +} |
651 | + |
652 | +{ |
653 | + <suppression for glibc 2.7 on debian> |
654 | + Memcheck:Addr4 |
655 | + obj:/lib/ld-2.7.so |
656 | + obj:/lib/i686/cmov/libdl-2.7.so |
657 | + obj:/lib/ld-2.7.so |
658 | + obj:/lib/i686/cmov/libdl-2.7.so |
659 | + fun:dlopen |
660 | +} |
661 | + |
662 | +{ |
663 | + <suppression for glibc 2.7 on debian> |
664 | + Memcheck:Cond |
665 | + obj:/lib/ld-2.7.so |
666 | + obj:/lib/ld-2.7.so |
667 | + obj:/lib/i686/cmov/libdl-2.7.so |
668 | + obj:/lib/ld-2.7.so |
669 | + obj:/lib/i686/cmov/libdl-2.7.so |
670 | + fun:dlopen |
671 | +} |
672 | + |
673 | +{ |
674 | + <suppression for glibc 2.7 on debian> |
675 | + Memcheck:Cond |
676 | + obj:/lib/ld-2.7.so |
677 | + obj:/lib/ld-2.7.so |
678 | + obj:/lib/i686/cmov/libdl-2.7.so |
679 | + obj:/lib/ld-2.7.so |
680 | + obj:/lib/i686/cmov/libdl-2.7.so |
681 | + fun:dlopen |
682 | +} |
683 | + |
684 | +{ |
685 | + <suppression for glibc 2.7 on debian> |
686 | + Memcheck:Addr4 |
687 | + obj:/lib/ld-2.7.so |
688 | + obj:/lib/ld-2.7.so |
689 | + obj:/lib/ld-2.7.so |
690 | + obj:/lib/ld-2.7.so |
691 | + obj:/lib/ld-2.7.so |
692 | + obj:/lib/i686/cmov/libdl-2.7.so |
693 | + obj:/lib/ld-2.7.so |
694 | + obj:/lib/i686/cmov/libdl-2.7.so |
695 | + fun:dlopen |
696 | +} |
697 | + |
698 | +{ |
699 | + <suppression for glibc 2.7 on debian> |
700 | + Memcheck:Addr4 |
701 | + obj:/lib/ld-2.7.so |
702 | + obj:/lib/i686/cmov/libdl-2.7.so |
703 | + obj:/lib/ld-2.7.so |
704 | + obj:/lib/i686/cmov/libdl-2.7.so |
705 | + fun:dlopen |
706 | +} |
707 | + |
708 | +{ |
709 | + <suppression for glibc 2.7 on debian> |
710 | + Memcheck:Cond |
711 | + obj:/lib/ld-2.7.so |
712 | + obj:/lib/ld-2.7.so |
713 | + obj:/lib/i686/cmov/libdl-2.7.so |
714 | + obj:/lib/ld-2.7.so |
715 | + obj:/lib/i686/cmov/libdl-2.7.so |
716 | + fun:dlopen |
717 | +} |
718 | + |
719 | +{ |
720 | + <suppression for glibc 2.7 on debian> |
721 | + Memcheck:Cond |
722 | + obj:/lib/ld-2.7.so |
723 | + obj:/lib/ld-2.7.so |
724 | + obj:/lib/i686/cmov/libdl-2.7.so |
725 | + obj:/lib/ld-2.7.so |
726 | + obj:/lib/i686/cmov/libdl-2.7.so |
727 | + fun:dlopen |
728 | +} |
729 | + |
730 | +{ |
731 | + <suppression for glibc 2.7 on debian> |
732 | + Memcheck:Addr4 |
733 | + obj:/lib/ld-2.7.so |
734 | + obj:/lib/ld-2.7.so |
735 | + obj:/lib/ld-2.7.so |
736 | + obj:/lib/ld-2.7.so |
737 | + obj:/lib/ld-2.7.so |
738 | + obj:/lib/ld-2.7.so |
739 | + obj:/lib/ld-2.7.so |
740 | + obj:/lib/ld-2.7.so |
741 | + obj:/lib/ld-2.7.so |
742 | + obj:/lib/ld-2.7.so |
743 | + obj:/lib/i686/cmov/libdl-2.7.so |
744 | + obj:/lib/ld-2.7.so |
745 | + obj:/lib/i686/cmov/libdl-2.7.so |
746 | + fun:dlopen |
747 | +} |
748 | + |
749 | +# suppression for a glibc bug: |
750 | +# http://valgrind.org/docs/manual/faq.html#faq.exit_errors> |
751 | +{ |
752 | + <Workaround for a glibc bug> |
753 | + Memcheck:Free |
754 | + fun:free |
755 | + obj:*libc-*.so |
756 | + fun:__libc_freeres |
757 | + fun:* |
758 | + fun:_Exit |
759 | +} |
760 | + |
761 | +# same as above, just so it works for tpm on gutsy/x86-64 |
762 | +{ |
763 | + <workaround glibc bug on gutsy x86-64> |
764 | + Memcheck:Free |
765 | + fun:free |
766 | + fun:free_mem |
767 | + fun:__libc_freeres |
768 | +} |
769 | + |
770 | +# valgrind doesn't allow me to specify a suppression for Addr1, Addr2, Addr4 |
771 | +# as Addr*, so 3 copies for that; and then 2 of each for that pesky memcpy |
772 | +{ |
773 | + <Invalid read of size 1, 2, 4 on thomas's FC4> |
774 | + Memcheck:Addr1 |
775 | + fun:_dl_signal_error |
776 | + fun:_dl_map_object_deps |
777 | + fun:dl_open_worker |
778 | + fun:_dl_catch_error |
779 | + fun:_dl_open |
780 | + fun:dlopen_doit |
781 | + fun:_dl_catch_error |
782 | + fun:_dlerror_run |
783 | + fun:dlopen@@GLIBC_2.1 |
784 | + fun:g_module_open |
785 | +} |
786 | + |
787 | +{ |
788 | + <Invalid read of size 1, 2, 4 on thomas's FC4> |
789 | + Memcheck:Addr2 |
790 | + fun:_dl_signal_error |
791 | + fun:_dl_map_object_deps |
792 | + fun:dl_open_worker |
793 | + fun:_dl_catch_error |
794 | + fun:_dl_open |
795 | + fun:dlopen_doit |
796 | + fun:_dl_catch_error |
797 | + fun:_dlerror_run |
798 | + fun:dlopen@@GLIBC_2.1 |
799 | + fun:g_module_open |
800 | +} |
801 | +{ |
802 | + <Invalid read of size 1, 2, 4 on thomas's FC4> |
803 | + Memcheck:Addr4 |
804 | + fun:_dl_signal_error |
805 | + fun:_dl_map_object_deps |
806 | + fun:dl_open_worker |
807 | + fun:_dl_catch_error |
808 | + fun:_dl_open |
809 | + fun:dlopen_doit |
810 | + fun:_dl_catch_error |
811 | + fun:_dlerror_run |
812 | + fun:dlopen@@GLIBC_2.1 |
813 | + fun:g_module_open |
814 | +} |
815 | + |
816 | +{ |
817 | + <Invalid read of size 1, 2, 4 on thomas's FC4> |
818 | + Memcheck:Addr1 |
819 | + fun:memcpy |
820 | + fun:_dl_signal_error |
821 | + fun:_dl_map_object_deps |
822 | + fun:dl_open_worker |
823 | + fun:_dl_catch_error |
824 | + fun:_dl_open |
825 | + fun:dlopen_doit |
826 | + fun:_dl_catch_error |
827 | + fun:_dlerror_run |
828 | + fun:dlopen@@GLIBC_2.1 |
829 | + fun:g_module_open |
830 | +} |
831 | + |
832 | +{ |
833 | + <Invalid read of size 1, 2, 4 on thomas's FC4> |
834 | + Memcheck:Addr2 |
835 | + fun:memcpy |
836 | + fun:_dl_signal_error |
837 | + fun:_dl_map_object_deps |
838 | + fun:dl_open_worker |
839 | + fun:_dl_catch_error |
840 | + fun:_dl_open |
841 | + fun:dlopen_doit |
842 | + fun:_dl_catch_error |
843 | + fun:_dlerror_run |
844 | + fun:dlopen@@GLIBC_2.1 |
845 | + fun:g_module_open |
846 | +} |
847 | +{ |
848 | + <Invalid read of size 1, 2, 4 on thomas's FC4> |
849 | + Memcheck:Addr4 |
850 | + fun:memcpy |
851 | + fun:_dl_signal_error |
852 | + fun:_dl_map_object_deps |
853 | + fun:dl_open_worker |
854 | + fun:_dl_catch_error |
855 | + fun:_dl_open |
856 | + fun:dlopen_doit |
857 | + fun:_dl_catch_error |
858 | + fun:_dlerror_run |
859 | + fun:dlopen@@GLIBC_2.1 |
860 | + fun:g_module_open |
861 | +} |
862 | + |
863 | +{ |
864 | + <Addr8 on Andy's AMD64 ubuntu in dl_open> |
865 | + Memcheck:Addr8 |
866 | + obj:/lib/ld-2.3.*.so |
867 | + obj:/lib/ld-2.3.*.so |
868 | + obj:/lib/ld-2.3.*.so |
869 | + obj:/lib/ld-2.3.*.so |
870 | + obj:/lib/ld-2.3.*.so |
871 | + obj:/lib/ld-2.3.*.so |
872 | + obj:/lib/ld-2.3.*.so |
873 | + obj:/lib/libc-2.3.*.so |
874 | + obj:/lib/ld-2.3.*.so |
875 | + fun:_dl_open |
876 | + obj:/lib/libdl-2.3.*.so |
877 | + obj:/lib/ld-2.3.*.so |
878 | +} |
879 | + |
880 | +{ |
881 | + <Conditional jump on Andy's AMD64 ubuntu> |
882 | + Memcheck:Cond |
883 | + obj:/lib/ld-2.3.*.so |
884 | + obj:/lib/libc-2.3.*.so |
885 | + obj:/lib/ld-2.3.*.so |
886 | + fun:_dl_open |
887 | + obj:/lib/libdl-2.3.*.so |
888 | + obj:/lib/ld-2.3.*.so |
889 | + obj:/lib/libdl-2.3.*.so |
890 | + fun:dlopen |
891 | + fun:g_module_open |
892 | + fun:gst_plugin_load_file |
893 | + fun:gst_plugin_load_by_name |
894 | + fun:gst_plugin_feature_load |
895 | +} |
896 | + |
897 | +{ |
898 | + <Mike's x86 dapper> |
899 | + Memcheck:Addr4 |
900 | + obj:/lib/ld-2.3.6.so |
901 | + obj:/lib/ld-2.3.6.so |
902 | + obj:/lib/tls/i686/cmov/libc-2.3.6.so |
903 | + obj:/lib/ld-2.3.6.so |
904 | + fun:_dl_open |
905 | + obj:/lib/tls/i686/cmov/libdl-2.3.6.so |
906 | + obj:/lib/ld-2.3.6.so |
907 | + obj:/lib/tls/i686/cmov/libdl-2.3.6.so |
908 | + fun:dlopen |
909 | +} |
910 | + |
911 | +{ |
912 | + <Mike's x86 dapper> |
913 | + Memcheck:Cond |
914 | + obj:/lib/ld-2.3.6.so |
915 | + obj:/lib/tls/i686/cmov/libc-2.3.6.so |
916 | + obj:/lib/ld-2.3.6.so |
917 | + fun:_dl_open |
918 | + obj:/lib/tls/i686/cmov/libdl-2.3.6.so |
919 | + obj:/lib/ld-2.3.6.so |
920 | + obj:/lib/tls/i686/cmov/libdl-2.3.6.so |
921 | + fun:dlopen |
922 | +} |
923 | + |
924 | +{ |
925 | + <Another dapper one> |
926 | + Memcheck:Cond |
927 | + obj:/lib/ld-2.3.6.so |
928 | + obj:/lib/ld-2.3.6.so |
929 | + obj:/lib/ld-2.3.6.so |
930 | + obj:/lib/tls/i686/cmov/libc-2.3.6.so |
931 | + obj:/lib/ld-2.3.6.so |
932 | + fun:_dl_open |
933 | + obj:/lib/tls/i686/cmov/libdl-2.3.6.so |
934 | + obj:/lib/ld-2.3.6.so |
935 | + obj:/lib/tls/i686/cmov/libdl-2.3.6.so |
936 | + fun:dlopen |
937 | +} |
938 | + |
939 | +### glib suppressions |
940 | +{ |
941 | + <g_parse_debug_string> |
942 | + Memcheck:Cond |
943 | + fun:g_parse_debug_string |
944 | + obj:/usr/lib*/libglib-2.0.so.* |
945 | + fun:g_slice_alloc |
946 | + fun:g_slice_alloc0 |
947 | +} |
948 | + |
949 | +{ |
950 | + <g_type_init leaks> |
951 | + Memcheck:Leak |
952 | + fun:*alloc |
953 | + ... |
954 | + fun:g_type_init* |
955 | + fun:init_pre* |
956 | +} |
957 | + |
958 | +{ |
959 | + <g_type_register_fundamental leaks> |
960 | + Memcheck:Leak |
961 | + fun:*alloc |
962 | + ... |
963 | + fun:g_type_register_fundamental |
964 | +} |
965 | + |
966 | +{ |
967 | + <glib 2.21 static type data> |
968 | + Memcheck:Leak |
969 | + fun:malloc |
970 | + fun:realloc |
971 | + fun:g_realloc |
972 | + fun:type_node_any_new_W |
973 | +} |
974 | + |
975 | +{ |
976 | + <glib 2.21 static type data> |
977 | + Memcheck:Leak |
978 | + fun:realloc |
979 | + fun:g_realloc |
980 | + fun:type_node_any_new_W |
981 | +} |
982 | + |
983 | +{ |
984 | + <glib 2.21 static type data> |
985 | + Memcheck:Leak |
986 | + fun:calloc |
987 | + fun:g_malloc0 |
988 | + fun:g_type_class_ref |
989 | +} |
990 | + |
991 | +{ |
992 | + <glib 2.21 static type data> |
993 | + Memcheck:Leak |
994 | + fun:malloc |
995 | + fun:realloc |
996 | + fun:g_realloc |
997 | + fun:type_add_flags_W |
998 | +} |
999 | + |
1000 | +{ |
1001 | + <glib 2.21 static type data> |
1002 | + Memcheck:Leak |
1003 | + fun:calloc |
1004 | + fun:g_malloc0 |
1005 | + fun:type_add_flags_W |
1006 | +} |
1007 | + |
1008 | +#pthread memleaks |
1009 | + |
1010 | +{ |
1011 | + Thread creation leak |
1012 | + Memcheck:Leak |
1013 | + fun:calloc |
1014 | + fun:allocate_dtv |
1015 | + fun:_dl_allocate* |
1016 | + fun:_dl_allocate* |
1017 | + fun:__pthread_initialize_minimal |
1018 | +} |
1019 | + |
1020 | +{ |
1021 | + Thread management leak |
1022 | + Memcheck:Leak |
1023 | + fun:calloc |
1024 | + fun:allocate_dtv |
1025 | + fun:_dl_allocate* |
1026 | + fun:_dl_allocate* |
1027 | + fun:__pthread_* |
1028 | +} |
1029 | + |
1030 | +{ |
1031 | + Thread management leak 2 |
1032 | + Memcheck:Leak |
1033 | + fun:memalign |
1034 | + fun:_dl_allocate* |
1035 | + fun:_dl_allocate* |
1036 | + fun:__pthread_* |
1037 | +} |
1038 | + |
1039 | +{ |
1040 | + pthread_create Syscall param write(buf) points to uninitialised byte(s) |
1041 | + Memcheck:Param |
1042 | + write(buf) |
1043 | + fun:pthread_create@@GLIBC_2.2.5 |
1044 | + fun:g_thread_create* |
1045 | + |
1046 | +} |
1047 | + |
1048 | +# nss_parse_* memleak (used by g_option_context_parse) |
1049 | +{ |
1050 | + nss_parse_* memleak |
1051 | + Memcheck:Leak |
1052 | + fun:malloc |
1053 | + fun:nss_parse_service_list |
1054 | + fun:__nss_database_lookup |
1055 | +} |
1056 | + |
1057 | +# liboil suppressions |
1058 | +{ |
1059 | + <liboil cpu_fault_check_try> |
1060 | + Memcheck:Value8 |
1061 | + obj:/usr/lib/liboil-0.3.so.0.1.0 |
1062 | + obj:/usr/lib/liboil-0.3.so.0.1.0 |
1063 | + obj:/usr/lib/liboil-0.3.so.0.1.0 |
1064 | + fun:oil_cpu_fault_check_try |
1065 | + fun:oil_test_check_impl |
1066 | + fun:oil_class_optimize |
1067 | + fun:oil_optimize_all |
1068 | + fun:oil_init |
1069 | +} |
1070 | + |
1071 | +{ |
1072 | + <annoying read error inside dlopen stuff on Ubuntu Dapper x86_64> |
1073 | + Memcheck:Addr8 |
1074 | + obj:/lib/ld-2.3.6.so |
1075 | +} |
1076 | + |
1077 | +{ |
1078 | + <Ubuntu Dapper x86_64> |
1079 | + Memcheck:Param |
1080 | + futex(uaddr2) |
1081 | + fun:pthread_once |
1082 | + obj:/lib/libc-2.3.6.so |
1083 | + obj:/lib/libc-2.3.6.so |
1084 | + fun:setlocale |
1085 | + fun:init_pre |
1086 | + fun:g_option_context_parse |
1087 | + fun:gst_init_check |
1088 | + fun:gst_init |
1089 | + fun:gst_check_init |
1090 | + fun:main |
1091 | +} |
1092 | + |
1093 | +{ |
1094 | + <Ubuntu Dapper x86_64 dlopen stuff again> |
1095 | + Memcheck:Cond |
1096 | + obj:/lib/ld-2.3.6.so |
1097 | + obj:/lib/ld-2.3.6.so |
1098 | + fun:_dl_open |
1099 | + obj:/lib/libdl-2.3.6.so |
1100 | + obj:/lib/ld-2.3.6.so |
1101 | + obj:/lib/libdl-2.3.6.so |
1102 | + fun:dlopen |
1103 | + fun:g_module_open |
1104 | + fun:gst_plugin_load_file |
1105 | +} |
1106 | +# this exists in a bunch of different variations, hence the short tail/trace |
1107 | +{ |
1108 | + <dlopen invalid read of size 4 suppression on tpm's Ubuntu edgy/x86> |
1109 | + Memcheck:Addr4 |
1110 | + obj:/lib/ld-2.4.so |
1111 | + obj:/lib/ld-2.4.so |
1112 | +} |
1113 | +{ |
1114 | + <and the same for 64bit systems> |
1115 | + Memcheck:Addr8 |
1116 | + obj:/lib/ld-2.4.so |
1117 | + obj:/lib/ld-2.4.so |
1118 | +} |
1119 | + |
1120 | +# More edgy suppressions (Mike) |
1121 | +{ |
1122 | + <dlopen Condition jump suppressions for Ubuntu Edgy/x86> |
1123 | + Memcheck:Cond |
1124 | + obj:/lib/ld-2.4.so |
1125 | + obj:/lib/ld-2.4.so |
1126 | + obj:/lib/ld-2.4.so |
1127 | + obj:/lib/ld-2.4.so |
1128 | + fun:dlopen_doit |
1129 | + obj:/lib/ld-2.4.so |
1130 | + fun:_dlerror_run |
1131 | + fun:dlopen@@GLIBC_2.1 |
1132 | +} |
1133 | + |
1134 | +{ |
1135 | + <dlopen Condition jump suppressions for Ubuntu Edgy/x86> |
1136 | + Memcheck:Cond |
1137 | + obj:/lib/ld-2.4.so |
1138 | + obj:/lib/ld-2.4.so |
1139 | + obj:/lib/ld-2.4.so |
1140 | + obj:/lib/ld-2.4.so |
1141 | + obj:/lib/ld-2.4.so |
1142 | + obj:/lib/ld-2.4.so |
1143 | + fun:dlopen_doit |
1144 | + obj:/lib/ld-2.4.so |
1145 | + fun:_dlerror_run |
1146 | + fun:dlopen@@GLIBC_2.1 |
1147 | +} |
1148 | + |
1149 | +{ |
1150 | + <dlopen Condition jump suppressions for Ubuntu Edgy/x86> |
1151 | + Memcheck:Cond |
1152 | + obj:/lib/ld-2.4.so |
1153 | + obj:/lib/ld-2.4.so |
1154 | + obj:/lib/ld-2.4.so |
1155 | + fun:do_sym |
1156 | + fun:_dl_sym |
1157 | +} |
1158 | + |
1159 | +# This one's overly general, but there's zero other information in the stack |
1160 | +# trace - just these five lines! |
1161 | +{ |
1162 | + <dlopen Condition jump suppressions for Ubuntu Edgy/x86> |
1163 | + Memcheck:Cond |
1164 | + obj:/lib/ld-2.4.so |
1165 | + obj:/lib/ld-2.4.so |
1166 | + obj:/lib/ld-2.4.so |
1167 | + obj:/lib/ld-2.4.so |
1168 | + obj:/lib/ld-2.4.so |
1169 | +} |
1170 | + |
1171 | +{ |
1172 | + <tls leaks on Edgy/x86> |
1173 | + Memcheck:Leak |
1174 | + fun:calloc |
1175 | + obj:/lib/ld-2.4.so |
1176 | + fun:_dl_allocate_tls |
1177 | + fun:pthread_create@@GLIBC_2.1 |
1178 | +} |
1179 | + |
1180 | +# TLS leaks for feisty/x86 |
1181 | +{ |
1182 | + <tls leaks on Feisty/x86> |
1183 | + Memcheck:Leak |
1184 | + fun:calloc |
1185 | + fun:allocate_dtv |
1186 | + fun:_dl_allocate_tls |
1187 | + fun:pthread_create@@GLIBC_2.1 |
1188 | +} |
1189 | + |
1190 | +{ |
1191 | + <libcdio 0.76 leak> |
1192 | + Memcheck:Leak |
1193 | + fun:calloc |
1194 | + obj:/usr/lib/libcdio.so.6.0.1 |
1195 | + fun:cdio_open_am_linux |
1196 | + obj:/usr/lib/libcdio.so.6.0.1 |
1197 | + fun:cdio_open_am |
1198 | +} |
1199 | + |
1200 | +{ |
1201 | + <Addr8 on Jan's AMD64 ubuntu Feisty in dl_open> |
1202 | + Memcheck:Addr8 |
1203 | + obj:/lib/ld-2.5.so |
1204 | +} |
1205 | + |
1206 | +{ |
1207 | + <First of many Alsa errors> |
1208 | + Memcheck:Cond |
1209 | + fun:snd_pcm_direct_shm_create_or_connect |
1210 | + fun:snd_pcm_dsnoop_open |
1211 | + fun:_snd_pcm_dsnoop_open |
1212 | + obj:/*lib/libasound.so.2.0.0 |
1213 | + obj:/*lib/libasound.so.2.0.0 |
1214 | + fun:snd_pcm_open_slave |
1215 | + fun:_snd_pcm_plug_open |
1216 | + obj:/*lib/libasound.so.2.0.0 |
1217 | + fun:snd_pcm_open_slave |
1218 | + fun:_snd_pcm_asym_open |
1219 | + obj:/*lib/libasound.so.2.0.0 |
1220 | + obj:/*lib/libasound.so.2.0.0 |
1221 | +} |
1222 | + |
1223 | +{ |
1224 | + <alsa error> |
1225 | + Memcheck:Cond |
1226 | + fun:snd*_pcm_hw_param_set_near |
1227 | +} |
1228 | + |
1229 | +{ |
1230 | + <alsa error> |
1231 | + Memcheck:Cond |
1232 | + ... |
1233 | + fun:snd*_pcm_hw_param_set_near |
1234 | +} |
1235 | + |
1236 | +{ |
1237 | + <alsa error> |
1238 | + Memcheck:Cond |
1239 | + obj:/*lib/libasound.so.2.0.0 |
1240 | + obj:/*lib/libasound.so.2.0.0 |
1241 | + fun:snd_pcm_close |
1242 | + obj:/*lib/libasound.so.2.0.0 |
1243 | +} |
1244 | +{ |
1245 | + <alsa error> |
1246 | + Memcheck:Cond |
1247 | + fun:snd_pcm_direct_shm_create_or_connect |
1248 | + fun:snd_pcm_dmix_open |
1249 | + fun:_snd_pcm_dmix_open |
1250 | + obj:/*lib/libasound.so.2.0.0 |
1251 | + obj:/*lib/libasound.so.2.0.0 |
1252 | + fun:snd_pcm_open_slave |
1253 | + fun:_snd_pcm_softvol_open |
1254 | + obj:/*lib/libasound.so.2.0.0 |
1255 | + fun:snd_pcm_open_slave |
1256 | + fun:_snd_pcm_plug_open |
1257 | + obj:/*lib/libasound.so.2.0.0 |
1258 | + fun:snd_pcm_open_slave |
1259 | + fun:_snd_pcm_asym_open |
1260 | + obj:/*lib/libasound.so.2.0.0 |
1261 | + obj:/*lib/libasound.so.2.0.0 |
1262 | +} |
1263 | +{ |
1264 | + <alsa error> |
1265 | + Memcheck:Leak |
1266 | + fun:malloc |
1267 | + fun:strdup |
1268 | + fun:snd_dlobj_cache_add |
1269 | + obj:/*lib/libasound.so.2.0.0 |
1270 | + fun:snd_pcm_open_slave |
1271 | + fun:snd_pcm_dsnoop_open |
1272 | + fun:_snd_pcm_dsnoop_open |
1273 | + obj:/*lib/libasound.so.2.0.0 |
1274 | + obj:/*lib/libasound.so.2.0.0 |
1275 | + fun:snd_pcm_open_slave |
1276 | + fun:_snd_pcm_plug_open |
1277 | + obj:/*lib/libasound.so.2.0.0 |
1278 | + fun:snd_pcm_open_slave |
1279 | + fun:_snd_pcm_asym_open |
1280 | + obj:/*lib/libasound.so.2.0.0 |
1281 | + obj:/*lib/libasound.so.2.0.0 |
1282 | +} |
1283 | +# Catch about 15 variations on inserting info into an ALSA |
1284 | +# internal cache |
1285 | +{ |
1286 | + <alsa error> |
1287 | + Memcheck:Leak |
1288 | + fun:malloc |
1289 | + ... |
1290 | + fun:snd*_dlobj_cache_add |
1291 | + obj:/*lib*/libasound.so.2.0.0 |
1292 | +} |
1293 | + |
1294 | +{ |
1295 | + <alsa leak in loading configuration> |
1296 | + Memcheck:Leak |
1297 | + fun:*alloc |
1298 | + ... |
1299 | + fun:snd_pcm_open_conf |
1300 | +} |
1301 | + |
1302 | +{ |
1303 | + <alsa leak snd_config_hook_load> |
1304 | + Memcheck:Leak |
1305 | + fun:*alloc |
1306 | + obj:/*lib*/libasound.so.2.0.0 |
1307 | + ... |
1308 | + fun:snd_config_hook_load |
1309 | +} |
1310 | + |
1311 | +{ |
1312 | + <alsa leak snd_config_update_r> |
1313 | + Memcheck:Leak |
1314 | + fun:*alloc |
1315 | + obj:/*lib*/libasound.so.2.0.0 |
1316 | + ... |
1317 | + fun:snd_config_update_r |
1318 | + fun:snd_config_update |
1319 | +} |
1320 | +{ |
1321 | + <alsa leak snd_config_update_r> |
1322 | + Memcheck:Leak |
1323 | + fun:*alloc |
1324 | + fun:strdup |
1325 | + ... |
1326 | + fun:snd_config_update_r |
1327 | + fun:snd_config_update |
1328 | +} |
1329 | +{ |
1330 | + <alsa leak snd_config_searcha_hooks> |
1331 | + Memcheck:Leak |
1332 | + fun:*alloc |
1333 | + fun:_dl_close_worker |
1334 | + ... |
1335 | + fun:snd_config_searcha_hooks |
1336 | +} |
1337 | + |
1338 | +{ |
1339 | + <nss lookup within ALSA> |
1340 | + Memcheck:Leak |
1341 | + fun:malloc |
1342 | + obj:/lib/libc*.so |
1343 | + fun:__nss_database_lookup |
1344 | + obj:* |
1345 | + obj:* |
1346 | + fun:getgrnam_r |
1347 | + fun:getgrnam |
1348 | + fun:snd_pcm_direct_parse_open_conf |
1349 | +} |
1350 | + |
1351 | +{ |
1352 | + <libxcb leak on Ubuntu Feisty> |
1353 | + Memcheck:Leak |
1354 | + fun:calloc |
1355 | + fun:_XCBInitDisplayLock |
1356 | + fun:XOpenDisplay |
1357 | +} |
1358 | + |
1359 | +# GConf internal initialisations related to getting the default client. |
1360 | +{ |
1361 | + <Orbit something or other> |
1362 | + Memcheck:Leak |
1363 | + fun:calloc |
1364 | + fun:g_malloc0 |
1365 | + fun:ORBit_alloc_tcval |
1366 | + obj:/usr/lib/libORBit-2.so.* |
1367 | + fun:ORBit_demarshal_IOR |
1368 | + fun:ORBit_demarshal_object |
1369 | + fun:CORBA_ORB_string_to_object |
1370 | + obj:/usr/lib/libgconf-2.so.* |
1371 | + fun:gconf_get_current_lock_holder |
1372 | + fun:gconf_activate_server |
1373 | + obj:/usr/lib/libgconf-2.so.* |
1374 | + obj:/usr/lib/libgconf-2.so.* |
1375 | + fun:gconf_engine_get_default |
1376 | +} |
1377 | +{ |
1378 | + <gconf internal leak> |
1379 | + Memcheck:Leak |
1380 | + fun:calloc |
1381 | + fun:g_malloc0 |
1382 | + fun:ORBit_alloc_tcval |
1383 | + obj:* |
1384 | + fun:PortableServer_POA_servant_to_reference |
1385 | + fun:* |
1386 | + fun:* |
1387 | + fun:* |
1388 | + fun:gconf_engine_get_default |
1389 | +} |
1390 | +{ |
1391 | + <gconf internal leak> |
1392 | + Memcheck:Leak |
1393 | + fun:calloc |
1394 | + fun:g_malloc0 |
1395 | + fun:ORBit_alloc_tcval |
1396 | + obj:/usr/lib/libORBit-2.so.* |
1397 | + fun:ORBit_demarshal_IOR |
1398 | + fun:ORBit_demarshal_object |
1399 | + fun:CORBA_ORB_string_to_object |
1400 | + obj:/usr/lib/libgconf-2.so.* |
1401 | + fun:gconf_get_current_lock_holder |
1402 | + fun:gconf_activate_server |
1403 | + obj:/usr/lib/libgconf-2.so.* |
1404 | + obj:/usr/lib/libgconf-2.so.* |
1405 | + fun:gconf_engine_get_default |
1406 | +} |
1407 | +{ |
1408 | + <gconf internal initialisation> |
1409 | + Memcheck:Leak |
1410 | + fun:calloc |
1411 | + fun:g_malloc0 |
1412 | + fun:ORBit_alloc* |
1413 | + fun:* |
1414 | + fun:ORBit_demarshal_IOR |
1415 | + fun:ORBit_demarshal_object |
1416 | + fun:ORBit_demarshal_value |
1417 | + fun:* |
1418 | + fun:ORBit_small_invoke_stub |
1419 | + fun:ConfigServer_get_default_database |
1420 | + fun:* |
1421 | + fun:gconf_engine_get_default |
1422 | +} |
1423 | +{ |
1424 | + <gconf internal init> |
1425 | + Memcheck:Leak |
1426 | + fun:calloc |
1427 | + fun:g_malloc0 |
1428 | + fun:ORBit_alloc* |
1429 | + fun:* |
1430 | + fun:IOP_generate_profiles |
1431 | + fun:ORBit_marshal_object |
1432 | + fun:ORBit_marshal_value |
1433 | + fun:* |
1434 | + fun:ORBit_small_invoke_stub |
1435 | + fun:ConfigServer_add_client |
1436 | + fun:* |
1437 | + fun:* |
1438 | + fun:gconf_engine_get_default |
1439 | +} |
1440 | +{ |
1441 | + <gconf internal init> |
1442 | + Memcheck:Leak |
1443 | + fun:calloc |
1444 | + fun:g_malloc0 |
1445 | + fun:ORBit_alloc_by_tc |
1446 | + fun:* |
1447 | + fun:PortableServer_POA_servant_to_reference |
1448 | + fun:* |
1449 | + fun:* |
1450 | + fun:* |
1451 | + fun:gconf_engine_get_default |
1452 | +} |
1453 | +{ |
1454 | + <gconf internal init> |
1455 | + Memcheck:Leak |
1456 | + fun:calloc |
1457 | + fun:g_malloc0 |
1458 | + fun:ORBit_alloc_by_tc |
1459 | + obj:/usr/lib/libORBit-2.so.* |
1460 | + fun:ORBit_demarshal_IOR |
1461 | + fun:ORBit_demarshal_object |
1462 | + fun:CORBA_ORB_string_to_object |
1463 | + obj:/usr/lib/libgconf-2.so.* |
1464 | + fun:gconf_get_current_lock_holder |
1465 | + fun:gconf_activate_server |
1466 | + obj:/usr/lib/libgconf-2.so.* |
1467 | + obj:/usr/lib/libgconf-2.so.* |
1468 | + fun:gconf_engine_get_default |
1469 | +} |
1470 | + |
1471 | +{ |
1472 | + <insert a suppression name here> |
1473 | + Memcheck:Leak |
1474 | + fun:calloc |
1475 | + fun:g_malloc0 |
1476 | + fun:ORBit_alloc* |
1477 | + fun:* |
1478 | + fun:ORBit_demarshal_IOR |
1479 | + fun:ORBit_demarshal_object |
1480 | + fun:* |
1481 | + fun:* |
1482 | + fun:gconf_activate_server |
1483 | +} |
1484 | + |
1485 | +# Some libORBit/bonobo initialisation stuff |
1486 | +{ |
1487 | + <bonobo init> |
1488 | + Memcheck:Leak |
1489 | + fun:malloc |
1490 | + fun:g_malloc |
1491 | + fun:ORBit_alloc_string |
1492 | + fun:CORBA_string_dup |
1493 | + fun:Bonobo_ActivationEnvValue_set |
1494 | + fun:bonobo_activation_init_activation_env |
1495 | + fun:bonobo_activation_orb_init |
1496 | + fun:bonobo_activation_init |
1497 | +} |
1498 | +{ |
1499 | + <bonobo init> |
1500 | + Memcheck:Leak |
1501 | + fun:calloc |
1502 | + fun:g_malloc0 |
1503 | + fun:ORBit_alloc* |
1504 | + fun:ORBit_small_alloc* |
1505 | + obj:/usr/lib/libORBit-2.so* |
1506 | + fun:PortableServer_POA_servant_to_reference |
1507 | + obj:/usr/lib/libbonobo-2.so* |
1508 | +} |
1509 | +{ |
1510 | + <bonobo init> |
1511 | + Memcheck:Leak |
1512 | + fun:calloc |
1513 | + fun:g_malloc0 |
1514 | + fun:ORBit_alloc_tcval |
1515 | + fun:ORBit_small_allocbuf |
1516 | + fun:ORBit_adaptor_setup |
1517 | + obj:/usr/lib/libORBit-2.so* |
1518 | + fun:ORBit_POA_setup_root |
1519 | + fun:ORBit_init_internals |
1520 | + fun:CORBA_ORB_init |
1521 | +} |
1522 | +{ |
1523 | + <bonobo init - more recent variant of above> |
1524 | + Memcheck:Leak |
1525 | + fun:calloc |
1526 | + fun:g_malloc0 |
1527 | + fun:ORBit_alloc_tcval |
1528 | + fun:ORBit_adaptor_setup |
1529 | + fun:* |
1530 | + fun:ORBit_POA_setup_root |
1531 | + fun:ORBit_init_internals |
1532 | + fun:CORBA_ORB_init |
1533 | +} |
1534 | +{ |
1535 | + <bonobo init> |
1536 | + Memcheck:Leak |
1537 | + fun:calloc |
1538 | + fun:g_malloc0 |
1539 | + fun:ORBit_alloc* |
1540 | + fun:ORBit_small_allocbuf |
1541 | + fun:bonobo_activation_init_activation_env |
1542 | + fun:bonobo_activation_orb_init |
1543 | + fun:bonobo_activation_init |
1544 | +} |
1545 | + |
1546 | +# More GConf stuff from the FC5 buildbot, mostly variations on the |
1547 | +# above stack traces |
1548 | +{ |
1549 | + <incompletely initialised ORBit buffer> |
1550 | + Memcheck:Param |
1551 | + writev(vector[...]) |
1552 | + fun:writev |
1553 | + obj:/usr/lib/libORBit-2.so* |
1554 | + fun:link_connection_writev |
1555 | + fun:giop_send_buffer_write |
1556 | + obj:/usr/lib/libORBit-2.so* |
1557 | + fun:ORBit_small_invoke_stub |
1558 | + fun:ORBit_small_invoke_stub_n |
1559 | + fun:ORBit_c_stub_invoke |
1560 | + fun:ConfigServer_ping |
1561 | + fun:gconf_activate_server |
1562 | + obj:/usr/lib/libgconf-2.so* |
1563 | + obj:/usr/lib/libgconf-2.so* |
1564 | + fun:gconf_engine_get_default |
1565 | +} |
1566 | +{ |
1567 | + <gconf init> |
1568 | + Memcheck:Leak |
1569 | + fun:calloc |
1570 | + fun:g_malloc0 |
1571 | + fun:ORBit_alloc* |
1572 | + fun:ORBit_small_alloc* |
1573 | + obj:/usr/lib/libORBit-2.so* |
1574 | + fun:PortableServer_POA_servant_to_reference |
1575 | + obj:/usr/lib/libgconf-2.so* |
1576 | + obj:/usr/lib/libgconf-2.so* |
1577 | + obj:/usr/lib/libgconf-2.so* |
1578 | + fun:gconf_engine_get_default |
1579 | +} |
1580 | +{ |
1581 | + <gconf init> |
1582 | + Memcheck:Leak |
1583 | + fun:calloc |
1584 | + fun:g_malloc0 |
1585 | + fun:ORBit_alloc* |
1586 | + fun:ORBit_small_alloc |
1587 | + obj:/usr/lib/libORBit-2.so* |
1588 | + fun:ORBit_demarshal_IOR |
1589 | + fun:ORBit_demarshal_object |
1590 | + fun:CORBA_ORB_string_to_object |
1591 | + obj:/usr/lib/libgconf-2.so* |
1592 | + fun:gconf_get_current_lock_holder |
1593 | + fun:gconf_activate_server |
1594 | + obj:/usr/lib/libgconf-2.so* |
1595 | + obj:/usr/lib/libgconf-2.so* |
1596 | + fun:gconf_engine_get_default |
1597 | +} |
1598 | +{ |
1599 | + <gconf init> |
1600 | + Memcheck:Leak |
1601 | + fun:calloc |
1602 | + fun:g_malloc0 |
1603 | + fun:ORBit_alloc* |
1604 | + fun:ORBit_small_alloc* |
1605 | + obj:/usr/lib/libORBit-2.so* |
1606 | + fun:ORBit_demarshal_IOR |
1607 | + fun:ORBit_demarshal_object |
1608 | + fun:CORBA_ORB_string_to_object |
1609 | + obj:/usr/lib/libgconf-2.so* |
1610 | + fun:gconf_get_current_lock_holder |
1611 | + fun:gconf_activate_server |
1612 | + obj:/usr/lib/libgconf-2.so* |
1613 | + obj:/usr/lib/libgconf-2.so* |
1614 | + fun:gconf_engine_get_default |
1615 | +} |
1616 | +{ |
1617 | + <bonobo init> |
1618 | + Memcheck:Leak |
1619 | + fun:calloc |
1620 | + fun:g_malloc0 |
1621 | + fun:ORBit_alloc* |
1622 | + fun:ORBit_small_alloc* |
1623 | + obj:/usr/lib/libORBit-2.so* |
1624 | + fun:ORBit_demarshal_IOR |
1625 | + fun:ORBit_demarshal_object |
1626 | + fun:ORBit_demarshal_value |
1627 | + obj:/usr/lib/libORBit-2.so* |
1628 | + fun:ORBit_small_invoke_stub |
1629 | + fun:ORBit_small_invoke_stub_n |
1630 | + fun:ORBit_c_stub_invoke |
1631 | + fun:ConfigServer_get_default_database |
1632 | + obj:/usr/lib/libgconf-2.so* |
1633 | + fun:gconf_engine_get_default |
1634 | +} |
1635 | +{ |
1636 | + <gconf init> |
1637 | + Memcheck:Leak |
1638 | + fun:calloc |
1639 | + fun:g_malloc0 |
1640 | + fun:ORBit_alloc* |
1641 | + fun:ORBit_small_alloc* |
1642 | + obj:/usr/lib/libORBit-2.so* |
1643 | + fun:ORBit_OAObject_object_to_objkey |
1644 | + fun:IOP_generate_profiles |
1645 | + fun:ORBit_marshal_object |
1646 | + fun:ORBit_marshal_value |
1647 | + obj:/usr/lib/libORBit-2.so* |
1648 | + fun:ORBit_small_invoke_stub |
1649 | + fun:ORBit_small_invoke_stub_n |
1650 | + fun:ORBit_c_stub_invoke |
1651 | + fun:ConfigServer_add_client |
1652 | + obj:/usr/lib/libgconf-2.so* |
1653 | + obj:/usr/lib/libgconf-2.so* |
1654 | + fun:gconf_engine_get_default |
1655 | +} |
1656 | +{ |
1657 | + <GLib caching the home dir> |
1658 | + Memcheck:Leak |
1659 | + fun:malloc |
1660 | + obj:*libc-*.so |
1661 | + fun:__nss_database_lookup |
1662 | + obj:* |
1663 | + obj:* |
1664 | + fun:getpwnam_r |
1665 | + obj:/usr/lib*/libglib-2.0.so.* |
1666 | + fun:g_get_home_dir |
1667 | +} |
1668 | +{ |
1669 | + <GLib caching the user name> |
1670 | + Memcheck:Leak |
1671 | + fun:malloc |
1672 | + obj:*libc-*.so |
1673 | + fun:__nss_database_lookup |
1674 | + obj:* |
1675 | + obj:* |
1676 | + fun:getpwnam_r |
1677 | + obj:/usr/lib*/libglib-2.0.so.* |
1678 | + fun:g_get_user_name |
1679 | +} |
1680 | +{ |
1681 | + <GLib caching the tmp dir> |
1682 | + Memcheck:Leak |
1683 | + fun:malloc |
1684 | + obj:*libc-*.so |
1685 | + fun:__nss_database_lookup |
1686 | + obj:* |
1687 | + obj:* |
1688 | + fun:getpwnam_r |
1689 | + obj:/usr/lib*/libglib-2.0.so.* |
1690 | + fun:g_get_tmp_dir |
1691 | +} |
1692 | + |
1693 | +{ |
1694 | + <GLib caching the host name> |
1695 | + Memcheck:Leak |
1696 | + fun:malloc |
1697 | + obj:*libc-*.so |
1698 | + fun:__nss_database_lookup |
1699 | + obj:* |
1700 | + obj:* |
1701 | + fun:getpwnam_r |
1702 | + obj:/usr/lib*/libglib-2.0.so.0.* |
1703 | + fun:g_get_host_name |
1704 | +} |
1705 | + |
1706 | + |
1707 | +## Some Fontconfig errors. |
1708 | +{ |
1709 | + <First time load of a font - feisty x86_64> |
1710 | + Memcheck:Leak |
1711 | + fun:malloc |
1712 | + fun:FcPatternObjectInsertElt |
1713 | + fun:FcPatternObjectAddWithBinding |
1714 | + fun:FcPatternAppend |
1715 | + fun:FcEndElement |
1716 | + obj:/usr/lib/libexpat.so.* |
1717 | + obj:/usr/lib/libexpat.so.* |
1718 | + obj:/usr/lib/libexpat.so.* |
1719 | + obj:/usr/lib/libexpat.so.* |
1720 | + fun:XML_ParseBuffer |
1721 | + fun:FcConfigParseAndLoad |
1722 | + fun:FcConfigParseAndLoad |
1723 | + fun:FcParseInclude |
1724 | + fun:FcEndElement |
1725 | + obj:/usr/lib/libexpat.so.* |
1726 | + obj:/usr/lib/libexpat.so.* |
1727 | + obj:/usr/lib/libexpat.so.* |
1728 | + obj:/usr/lib/libexpat.so.* |
1729 | + fun:XML_ParseBuffer |
1730 | + fun:FcConfigParseAndLoad |
1731 | +} |
1732 | +{ |
1733 | + <First time load of a font - generic> |
1734 | + Memcheck:Leak |
1735 | + fun:*alloc |
1736 | + ... |
1737 | + fun:FcInitLoadConfig |
1738 | +} |
1739 | + |
1740 | +# Issues with ubuntu Hardy, same crack as for previous ubuntus |
1741 | +{ |
1742 | + <tls leak generic ubuntu hardy x86> |
1743 | + Memcheck:Leak |
1744 | + fun:calloc |
1745 | + obj:* |
1746 | + fun:_dl_allocate_tls |
1747 | + fun:pthread_create@@* |
1748 | + obj:/usr/lib/libgthread* |
1749 | + fun:g_thread_* |
1750 | +} |
1751 | + |
1752 | +# I've made this version generic, so that it covers future modifications |
1753 | +# of library names |
1754 | +{ |
1755 | + <tls leak generic> |
1756 | + Memcheck:Leak |
1757 | + fun:calloc |
1758 | + obj:* |
1759 | + fun:_dl_allocate_tls |
1760 | + fun:pthread_create@@* |
1761 | + fun:g_thread_* |
1762 | +} |
1763 | + |
1764 | +# series of invalid read of size 4 in g_module_open for ubuntu |
1765 | +# hardy x86/32bit |
1766 | +{ |
1767 | + <invalid read of size 4 within <g_module_open> |
1768 | + Memcheck:Addr4 |
1769 | + obj:/lib/ld-2.7.so |
1770 | + obj:/lib/ld-2.7.so |
1771 | + obj:/lib/ld-2.7.so |
1772 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1773 | + obj:/lib/ld-2.7.so |
1774 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1775 | + fun:dlopen |
1776 | + fun:g_module_open |
1777 | + fun:gst_plugin_load_* |
1778 | +} |
1779 | + |
1780 | +{ |
1781 | + <invalid read of size 4 within <g_module_open> |
1782 | + Memcheck:Addr4 |
1783 | + obj:/lib/ld-2.7.so |
1784 | + obj:/lib/ld-2.7.so |
1785 | + obj:/lib/ld-2.7.so |
1786 | + obj:/lib/ld-2.7.so |
1787 | + obj:/lib/ld-2.7.so |
1788 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1789 | + obj:/lib/ld-2.7.so |
1790 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1791 | + fun:dlopen |
1792 | + fun:g_module_open |
1793 | + fun:gst_plugin_load_* |
1794 | +} |
1795 | + |
1796 | +{ |
1797 | + <invalid read of size 4 within <g_module_open> |
1798 | + Memcheck:Addr4 |
1799 | + obj:/lib/ld-2.7.so |
1800 | + obj:/lib/ld-2.7.so |
1801 | + obj:/lib/ld-2.7.so |
1802 | + obj:/lib/ld-2.7.so |
1803 | + obj:/lib/ld-2.7.so |
1804 | + obj:/lib/ld-2.7.so |
1805 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1806 | + obj:/lib/ld-2.7.so |
1807 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1808 | + fun:dlopen |
1809 | + fun:g_module_open |
1810 | + fun:gst_plugin_load_* |
1811 | +} |
1812 | + |
1813 | +{ |
1814 | + <invalid read of size 4 within <g_module_open> |
1815 | + Memcheck:Addr4 |
1816 | + obj:/lib/ld-2.7.so |
1817 | + obj:/lib/ld-2.7.so |
1818 | + obj:/lib/ld-2.7.so |
1819 | + obj:/lib/ld-2.7.so |
1820 | + obj:/lib/ld-2.7.so |
1821 | + obj:/lib/ld-2.7.so |
1822 | + obj:/lib/ld-2.7.so |
1823 | + obj:/lib/ld-2.7.so |
1824 | + obj:/lib/ld-2.7.so |
1825 | + obj:/lib/ld-2.7.so |
1826 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1827 | + obj:/lib/ld-2.7.so |
1828 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1829 | + fun:dlopen |
1830 | + fun:g_module_open |
1831 | + fun:gst_plugin_load_* |
1832 | +} |
1833 | + |
1834 | +{ |
1835 | + <invalid read of size 4 within <g_module_open> |
1836 | + Memcheck:Addr4 |
1837 | + obj:/lib/ld-2.7.so |
1838 | + obj:/lib/ld-2.7.so |
1839 | + obj:/lib/ld-2.7.so |
1840 | + obj:/lib/ld-2.7.so |
1841 | + obj:/lib/ld-2.7.so |
1842 | + obj:/lib/ld-2.7.so |
1843 | + obj:/lib/ld-2.7.so |
1844 | + obj:/lib/ld-2.7.so |
1845 | + obj:/lib/ld-2.7.so |
1846 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1847 | + obj:/lib/ld-2.7.so |
1848 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1849 | + fun:dlopen |
1850 | + fun:g_module_open |
1851 | + fun:gst_plugin_load* |
1852 | +} |
1853 | + |
1854 | +{ |
1855 | + <invalid read of size 4 within <g_module_open> |
1856 | + Memcheck:Addr4 |
1857 | + obj:/lib/ld-2.7.so |
1858 | + obj:/lib/ld-2.7.so |
1859 | + obj:/lib/ld-2.7.so |
1860 | + obj:/lib/tls/i686/cmov/libc-2.7.so |
1861 | + fun:_dl_sym |
1862 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1863 | + obj:/lib/ld-2.7.so |
1864 | + obj:/lib/tls/i686/cmov/libdl-2.7.so |
1865 | + fun:dlsym |
1866 | + fun:g_module_symbol |
1867 | + fun:g_module_open |
1868 | + fun:gst_plugin_load_* |
1869 | +} |
1870 | + |
1871 | +# series of invalid read of size 8 in g_module_open for ubuntu |
1872 | +# hardy x86/64bit |
1873 | +{ |
1874 | + <invalid read of size 8 within <g_module_open> |
1875 | + Memcheck:Addr8 |
1876 | + obj:/lib/ld-2.7.so |
1877 | + obj:/lib/ld-2.7.so |
1878 | + obj:/lib/ld-2.7.so |
1879 | + obj:/lib/ld-2.7.so |
1880 | + obj:/lib/ld-2.7.so |
1881 | + obj:/lib/ld-2.7.so |
1882 | + obj:/lib/ld-2.7.so |
1883 | + obj:/lib/libdl-2.7.so |
1884 | + obj:/lib/ld-2.7.so |
1885 | + obj:/lib/libdl-2.7.so |
1886 | + fun:dlopen |
1887 | + fun:g_module_open |
1888 | +} |
1889 | + |
1890 | +{ |
1891 | + <invalid read of size 8 within <g_module_open> |
1892 | + Memcheck:Addr8 |
1893 | + obj:/lib/ld-2.7.so |
1894 | + obj:/lib/ld-2.7.so |
1895 | + obj:/lib/ld-2.7.so |
1896 | + obj:/lib/ld-2.7.so |
1897 | + obj:/lib/libdl-2.7.so |
1898 | + obj:/lib/ld-2.7.so |
1899 | + obj:/lib/libdl-2.7.so |
1900 | + fun:dlopen |
1901 | + fun:g_module_open |
1902 | +} |
1903 | + |
1904 | +{ |
1905 | + <invalid read of size 8 within <g_module_open> |
1906 | + Memcheck:Addr8 |
1907 | + obj:/lib/ld-2.7.so |
1908 | + obj:/lib/ld-2.7.so |
1909 | + obj:/lib/ld-2.7.so |
1910 | + obj:/lib/ld-2.7.so |
1911 | + obj:/lib/ld-2.7.so |
1912 | + obj:/lib/ld-2.7.so |
1913 | + obj:/lib/libdl-2.7.so |
1914 | + obj:/lib/ld-2.7.so |
1915 | + obj:/lib/libdl-2.7.so |
1916 | + fun:dlopen |
1917 | + fun:g_module_open |
1918 | +} |
1919 | + |
1920 | +{ |
1921 | + <invalid read of size 8 within <g_module_open> |
1922 | + Memcheck:Addr8 |
1923 | + obj:/lib/ld-2.7.so |
1924 | + obj:/lib/ld-2.7.so |
1925 | + obj:/lib/ld-2.7.so |
1926 | + obj:/lib/ld-2.7.so |
1927 | + obj:/lib/ld-2.7.so |
1928 | + obj:/lib/ld-2.7.so |
1929 | + obj:/lib/ld-2.7.so |
1930 | + obj:/lib/ld-2.7.so |
1931 | + obj:/lib/ld-2.7.so |
1932 | + obj:/lib/ld-2.7.so |
1933 | + obj:/lib/libdl-2.7.so |
1934 | + obj:/lib/ld-2.7.so |
1935 | + obj:/lib/libdl-2.7.so |
1936 | + fun:dlopen |
1937 | + fun:g_module_open |
1938 | +} |
1939 | + |
1940 | +{ |
1941 | + <invalid read of size 8 within <g_module_open> |
1942 | + Memcheck:Addr8 |
1943 | + obj:/lib/ld-2.7.so |
1944 | + obj:/lib/ld-2.7.so |
1945 | + obj:/lib/ld-2.7.so |
1946 | + obj:/lib/ld-2.7.so |
1947 | + obj:/lib/ld-2.7.so |
1948 | + obj:/lib/libdl-2.7.so |
1949 | + obj:/lib/ld-2.7.so |
1950 | + obj:/lib/libdl-2.7.so |
1951 | + fun:dlopen |
1952 | + fun:g_module_open |
1953 | +} |
1954 | + |
1955 | +{ |
1956 | + <invalid read of size 8 within <g_module_open> |
1957 | + Memcheck:Addr8 |
1958 | + obj:/lib/ld-2.7.so |
1959 | + obj:/lib/ld-2.7.so |
1960 | + obj:/lib/libdl-2.7.so |
1961 | + obj:/lib/ld-2.7.so |
1962 | + obj:/lib/libdl-2.7.so |
1963 | + fun:dlopen |
1964 | + fun:g_module_open |
1965 | +} |
1966 | + |
1967 | +{ |
1968 | + <invalid read of size 8 within <g_module_open> |
1969 | + Memcheck:Addr8 |
1970 | + obj:/lib/ld-2.7.so |
1971 | + obj:/lib/ld-2.7.so |
1972 | + obj:/lib/ld-2.7.so |
1973 | + obj:/lib/ld-2.7.so |
1974 | + obj:/lib/libc-2.7.so |
1975 | + obj:/lib/libdl-2.7.so |
1976 | + obj:/lib/ld-2.7.so |
1977 | + obj:/lib/libdl-2.7.so |
1978 | + fun:dlsym |
1979 | + fun:g_module_symbol |
1980 | + fun:g_module_open |
1981 | +} |
1982 | + |
1983 | +{ |
1984 | + <GLib caching> |
1985 | + Memcheck:Addr4 |
1986 | + obj:/lib/ld-2.7.so |
1987 | + obj:/lib/ld-2.7.so |
1988 | + obj:/lib/ld-2.7.so |
1989 | + obj:/lib/ld-2.7.so |
1990 | + obj:/lib/ld-2.7.so |
1991 | + obj:/lib/ld-2.7.so |
1992 | + obj:/lib/tls/i686/cmov/libc-2.7.so |
1993 | + obj:/lib/ld-2.7.so |
1994 | + fun:__libc_dlopen_mode |
1995 | + fun:__nss_lookup_function |
1996 | + obj:/lib/tls/i686/cmov/libc-2.7.so |
1997 | + fun:__nss_passwd_lookup |
1998 | + fun:getpwnam_r |
1999 | +} |
2000 | + |
2001 | +{ |
2002 | + <GLib caching> |
2003 | + Memcheck:Addr4 |
2004 | + obj:/lib/ld-2.7.so |
2005 | + obj:/lib/ld-2.7.so |
2006 | + obj:/lib/ld-2.7.so |
2007 | + obj:/lib/ld-2.7.so |
2008 | + obj:/lib/ld-2.7.so |
2009 | + obj:/lib/ld-2.7.so |
2010 | + obj:/lib/ld-2.7.so |
2011 | + obj:/lib/ld-2.7.so |
2012 | + obj:/lib/ld-2.7.so |
2013 | + obj:/lib/tls/i686/cmov/libc-2.7.so |
2014 | + obj:/lib/ld-2.7.so |
2015 | + fun:__libc_dlopen_mode |
2016 | + fun:__nss_lookup_function |
2017 | + obj:/lib/tls/i686/cmov/libc-2.7.so |
2018 | + fun:__nss_passwd_lookup |
2019 | + fun:getpwnam_r |
2020 | +} |
2021 | + |
2022 | +{ |
2023 | + <GLib caching> |
2024 | + Memcheck:Addr4 |
2025 | + obj:/lib/ld-2.7.so |
2026 | + obj:/lib/ld-2.7.so |
2027 | + obj:/lib/ld-2.7.so |
2028 | + obj:/lib/ld-2.7.so |
2029 | + obj:/lib/ld-2.7.so |
2030 | + obj:/lib/ld-2.7.so |
2031 | + obj:/lib/tls/i686/cmov/libc-2.7.so |
2032 | + obj:/lib/ld-2.7.so |
2033 | + fun:__libc_dlopen_mode |
2034 | + fun:__nss_lookup_function |
2035 | + obj:/lib/tls/i686/cmov/libnss_compat-2.7.so |
2036 | + fun:_nss_compat_getpwnam_r |
2037 | + fun:getpwnam_r |
2038 | +} |
2039 | + |
2040 | +{ |
2041 | + <GLib caching> |
2042 | + Memcheck:Addr4 |
2043 | + obj:/lib/ld-2.7.so |
2044 | + obj:/lib/ld-2.7.so |
2045 | + obj:/lib/ld-2.7.so |
2046 | + obj:/lib/ld-2.7.so |
2047 | + obj:/lib/ld-2.7.so |
2048 | + obj:/lib/ld-2.7.so |
2049 | + obj:/lib/ld-2.7.so |
2050 | + obj:/lib/ld-2.7.so |
2051 | + obj:/lib/ld-2.7.so |
2052 | + obj:/lib/tls/i686/cmov/libc-2.7.so |
2053 | + obj:/lib/ld-2.7.so |
2054 | + fun:__libc_dlopen_mode |
2055 | + fun:__nss_lookup_function |
2056 | + obj:/lib/tls/i686/cmov/libnss_compat-2.7.so |
2057 | + fun:_nss_compat_getpwnam_r |
2058 | + fun:getpwnam_r |
2059 | +} |
2060 | + |
2061 | +{ |
2062 | + <GLib caching> |
2063 | + Memcheck:Addr8 |
2064 | + obj:/lib/ld-2.7.so |
2065 | + obj:/lib/ld-2.7.so |
2066 | + obj:/lib/ld-2.7.so |
2067 | + obj:/lib/ld-2.7.so |
2068 | + obj:/lib/ld-2.7.so |
2069 | + obj:/lib/ld-2.7.so |
2070 | + obj:/lib/ld-2.7.so |
2071 | + obj:/lib/ld-2.7.so |
2072 | + obj:/lib/ld-2.7.so |
2073 | + obj:/lib/ld-2.7.so |
2074 | + obj:/lib/libc-2.7.so |
2075 | + obj:/lib/ld-2.7.so |
2076 | + fun:__libc_dlopen_mode |
2077 | + fun:__nss_lookup_function |
2078 | + obj:/lib/libc-2.7.so |
2079 | + fun:getpwnam_r |
2080 | +} |
2081 | + |
2082 | +## Leaks in ALSA (variations of leak from snd_config_load1) |
2083 | + |
2084 | +{ |
2085 | + <Alsa leak> |
2086 | + Memcheck:Leak |
2087 | + fun:calloc |
2088 | + fun:_snd_config_make |
2089 | + fun:_snd_config_make_add |
2090 | + fun:* |
2091 | + fun:* |
2092 | + fun:* |
2093 | + fun:* |
2094 | + fun:snd_config_load1 |
2095 | +} |
2096 | + |
2097 | +{ |
2098 | + <Alsa leak> |
2099 | + Memcheck:Leak |
2100 | + fun:calloc |
2101 | + fun:_snd_config_make |
2102 | + fun:_snd_config_make_add |
2103 | + fun:* |
2104 | + fun:* |
2105 | + fun:snd_config_load1 |
2106 | +} |
2107 | +{ |
2108 | + <Alsa leak> |
2109 | + Memcheck:Leak |
2110 | + fun:calloc |
2111 | + fun:_snd_config_make |
2112 | + fun:_snd_config_make_add |
2113 | + fun:* |
2114 | + fun:* |
2115 | + fun:* |
2116 | + fun:snd_config_load1 |
2117 | +} |
2118 | +{ |
2119 | + <Alsa leak> |
2120 | + Memcheck:Leak |
2121 | + fun:calloc |
2122 | + fun:_snd_config_make |
2123 | + fun:_snd_config_make_add |
2124 | + fun:* |
2125 | + fun:* |
2126 | + fun:* |
2127 | + fun:* |
2128 | + fun:* |
2129 | + fun:snd_config_load1 |
2130 | +} |
2131 | + |
2132 | +{ |
2133 | + <Alsa leak> |
2134 | + Memcheck:Leak |
2135 | + fun:calloc |
2136 | + fun:_snd_config_make |
2137 | + fun:_snd_config_make_add |
2138 | + fun:* |
2139 | + fun:* |
2140 | + fun:* |
2141 | + fun:* |
2142 | + fun:* |
2143 | + fun:* |
2144 | + fun:snd_config_load1 |
2145 | +} |
2146 | + |
2147 | +{ |
2148 | + <Alsa leak> |
2149 | + Memcheck:Leak |
2150 | + fun:calloc |
2151 | + fun:_snd_config_make |
2152 | + fun:_snd_config_make_add |
2153 | + fun:* |
2154 | + fun:* |
2155 | + fun:* |
2156 | + fun:* |
2157 | + fun:* |
2158 | + fun:* |
2159 | + fun:* |
2160 | + fun:snd_config_load1 |
2161 | +} |
2162 | +{ |
2163 | + <Alsa leak> |
2164 | + Memcheck:Leak |
2165 | + fun:calloc |
2166 | + fun:_snd_config_make |
2167 | + fun:_snd_config_make_add |
2168 | + fun:* |
2169 | + fun:* |
2170 | + fun:* |
2171 | + fun:* |
2172 | + fun:* |
2173 | + fun:* |
2174 | + fun:* |
2175 | + fun:* |
2176 | + fun:snd_config_load1 |
2177 | +} |
2178 | + |
2179 | +{ |
2180 | + <Alsa leak> |
2181 | + Memcheck:Leak |
2182 | + fun:malloc |
2183 | + fun:snd1_dlobj_cache_add |
2184 | + fun:snd_ctl_open_noupdate |
2185 | +} |
2186 | + |
2187 | +{ |
2188 | + <Alsa leak> |
2189 | + Memcheck:Leak |
2190 | + fun:malloc |
2191 | + fun:* |
2192 | + fun:snd1_dlobj_cache_add |
2193 | + fun:snd_ctl_open_noupdate |
2194 | +} |
2195 | + |
2196 | +{ |
2197 | + <Alsa leak> |
2198 | + Memcheck:Leak |
2199 | + fun:*alloc |
2200 | + fun:* |
2201 | + fun:* |
2202 | + fun:* |
2203 | + fun:snd_config_load1 |
2204 | +} |
2205 | + |
2206 | +{ |
2207 | + <Alsa leak> |
2208 | + Memcheck:Leak |
2209 | + fun:*alloc |
2210 | + fun:* |
2211 | + fun:* |
2212 | + fun:* |
2213 | + fun:* |
2214 | + fun:snd_config_load1 |
2215 | +} |
2216 | + |
2217 | +{ |
2218 | + <Alsa leak> |
2219 | + Memcheck:Leak |
2220 | + fun:*alloc |
2221 | + fun:* |
2222 | + fun:* |
2223 | + fun:* |
2224 | + fun:* |
2225 | + fun:* |
2226 | + fun:snd_config_load1 |
2227 | +} |
2228 | + |
2229 | +{ |
2230 | + <Alsa leak> |
2231 | + Memcheck:Leak |
2232 | + fun:*alloc |
2233 | + fun:* |
2234 | + fun:* |
2235 | + fun:* |
2236 | + fun:* |
2237 | + fun:* |
2238 | + fun:* |
2239 | + fun:snd_config_load1 |
2240 | +} |
2241 | + |
2242 | +{ |
2243 | + <Alsa leak> |
2244 | + Memcheck:Leak |
2245 | + fun:*alloc |
2246 | + fun:* |
2247 | + fun:* |
2248 | + fun:* |
2249 | + fun:* |
2250 | + fun:* |
2251 | + fun:* |
2252 | + fun:* |
2253 | + fun:snd_config_load1 |
2254 | +} |
2255 | + |
2256 | +{ |
2257 | + <Alsa leak> |
2258 | + Memcheck:Leak |
2259 | + fun:*alloc |
2260 | + fun:* |
2261 | + fun:* |
2262 | + fun:* |
2263 | + fun:* |
2264 | + fun:* |
2265 | + fun:* |
2266 | + fun:* |
2267 | + fun:* |
2268 | + fun:snd_config_load1 |
2269 | +} |
2270 | + |
2271 | +{ |
2272 | + <Alsa leak> |
2273 | + Memcheck:Leak |
2274 | + fun:*alloc |
2275 | + fun:* |
2276 | + fun:* |
2277 | + fun:* |
2278 | + fun:* |
2279 | + fun:* |
2280 | + fun:* |
2281 | + fun:* |
2282 | + fun:* |
2283 | + fun:* |
2284 | + fun:snd_config_load1 |
2285 | +} |
2286 | + |
2287 | +{ |
2288 | + <Alsa leak> |
2289 | + Memcheck:Leak |
2290 | + fun:*alloc |
2291 | + fun:* |
2292 | + fun:* |
2293 | + fun:* |
2294 | + fun:* |
2295 | + fun:* |
2296 | + fun:* |
2297 | + fun:* |
2298 | + fun:* |
2299 | + fun:* |
2300 | + fun:* |
2301 | + fun:snd_config_load1 |
2302 | +} |
2303 | + |
2304 | + |
2305 | +# The following are leaks of caps that need to be created dynamically |
2306 | +# in the type registration of the plugin (used for pad templates). |
2307 | + |
2308 | +{ |
2309 | + <Leak in ogmparsers> |
2310 | + Memcheck:Leak |
2311 | + fun:malloc |
2312 | + fun:g_malloc |
2313 | + fun:g_slice_alloc |
2314 | + fun:gst_caps_new_empty |
2315 | + fun:gst_caps_new_simple |
2316 | + fun:* |
2317 | + fun:g_type_class_ref |
2318 | + fun:gst_element_register |
2319 | +} |
2320 | + |
2321 | +{ |
2322 | + <Leak in ogmparsers> |
2323 | + Memcheck:Leak |
2324 | + fun:malloc |
2325 | + fun:g_malloc |
2326 | + fun:g_slice_alloc |
2327 | + fun:gst_caps_new_empty |
2328 | + fun:* |
2329 | + fun:* |
2330 | + fun:g_type_class_ref |
2331 | + fun:gst_element_register |
2332 | + fun:gst_ogm_parse_plugin_init |
2333 | + fun:plugin_init |
2334 | +} |
2335 | + |
2336 | +{ |
2337 | + <Leak in videotestsrc> |
2338 | + Memcheck:Leak |
2339 | + fun:malloc |
2340 | + fun:g_malloc |
2341 | + fun:g_slice_alloc |
2342 | + fun:gst_caps_new_empty |
2343 | + fun:gst_caps_copy |
2344 | + fun:gst_video_test_src_base_init |
2345 | + fun:g_type_class_ref |
2346 | + fun:gst_element_register |
2347 | +} |
2348 | + |
2349 | +{ |
2350 | + <Leak in videotestsrc> |
2351 | + Memcheck:Leak |
2352 | + fun:malloc |
2353 | + fun:g_malloc |
2354 | + fun:g_slice_alloc |
2355 | + fun:gst_caps_new_empty |
2356 | + fun:gst_caps_copy |
2357 | + fun:gst_video_test_src_getcaps |
2358 | + fun:gst_video_test_src_base_init |
2359 | + fun:g_type_class_ref |
2360 | + fun:gst_element_register |
2361 | +} |
2362 | + |
2363 | +{ |
2364 | + <Leak in ffmpegcolorspace> |
2365 | + Memcheck:Leak |
2366 | + fun:malloc |
2367 | + fun:g_malloc |
2368 | + fun:g_slice_alloc |
2369 | + fun:gst_caps_new_empty |
2370 | + fun:gst_ffmpegcsp_codectype_to_caps |
2371 | + fun:gst_ffmpegcolorspace_register |
2372 | + fun:plugin_init |
2373 | +} |
2374 | + |
2375 | +{ |
2376 | + <Leak in ffmpegocolorspace> |
2377 | + Memcheck:Leak |
2378 | + fun:malloc |
2379 | + fun:g_malloc |
2380 | + fun:g_slice_alloc |
2381 | + fun:gst_caps_new_empty |
2382 | + fun:gst_caps_copy |
2383 | + fun:gst_ffmpegcolorspace_register |
2384 | + fun:plugin_init |
2385 | +} |
2386 | + |
2387 | +{ |
2388 | + <Leak in gstffmpegdemux> |
2389 | + Memcheck:Leak |
2390 | + fun:malloc |
2391 | + fun:g_malloc |
2392 | + fun:g_slice_alloc |
2393 | + fun:gst_caps_new_empty |
2394 | + fun:gst_caps_new_any |
2395 | + fun:gst_ffmpegdemux_register |
2396 | + fun:plugin_init |
2397 | +} |
2398 | + |
2399 | +{ |
2400 | + <Leak in GstAudioFilter subclasses> |
2401 | + Memcheck:Leak |
2402 | + fun:malloc |
2403 | + fun:g_malloc |
2404 | + fun:g_slice_alloc |
2405 | + fun:gst_caps_new_empty |
2406 | + fun:gst_caps_copy |
2407 | + fun:gst_audio_filter_class_add_pad_templates |
2408 | +} |
2409 | + |
2410 | +{ |
2411 | + <Leak in GstAudioFilter subclasses, variant> |
2412 | + Memcheck:Leak |
2413 | + fun:realloc |
2414 | + fun:g_realloc |
2415 | + fun:g_ptr_array_maybe_expand |
2416 | + fun:g_ptr_array_add |
2417 | + fun:gst_caps_append |
2418 | + fun:gst_audio_filter_class_add_pad_templates |
2419 | +} |
2420 | + |
2421 | +{ |
2422 | + <Leak in GstAudioFilter subclasses, variant> |
2423 | + Memcheck:Leak |
2424 | + fun:malloc |
2425 | + fun:realloc |
2426 | + fun:g_realloc |
2427 | + fun:g_ptr_array_maybe_expand |
2428 | + fun:g_ptr_array_add |
2429 | + fun:gst_caps_append |
2430 | + fun:gst_audio_filter_class_add_pad_templates |
2431 | +} |
2432 | + |
2433 | +{ |
2434 | + <Leak in GstAudioFilter subclasses, variant> |
2435 | + Memcheck:Leak |
2436 | + fun:malloc |
2437 | + fun:realloc |
2438 | + fun:g_realloc |
2439 | + fun:g_ptr_array_maybe_expand |
2440 | + fun:g_ptr_array_add |
2441 | + fun:gst_caps_copy |
2442 | + fun:gst_audio_filter_class_add_pad_templates |
2443 | +} |
2444 | + |
2445 | +{ |
2446 | + <Leak in GstAudioFilter subclasses, variant2> |
2447 | + Memcheck:Leak |
2448 | + fun:malloc |
2449 | + fun:g_malloc |
2450 | + fun:g_slice_alloc |
2451 | + fun:g_ptr_array_sized_new |
2452 | + fun:gst_caps_new_empty |
2453 | + fun:gst_caps_copy |
2454 | + fun:gst_audio_filter_class_add_pad_templates |
2455 | +} |
2456 | +{ |
2457 | + <Leak in GstAudioFilter subclasses, variant3> |
2458 | + Memcheck:Leak |
2459 | + fun:malloc |
2460 | + fun:realloc |
2461 | + fun:g_realloc |
2462 | + fun:g_array_maybe_expand |
2463 | + fun:g_array_sized_new |
2464 | + fun:* |
2465 | + fun:* |
2466 | + fun:* |
2467 | + fun:gst_value_init_and_copy |
2468 | + fun:gst_structure_copy |
2469 | + fun:gst_caps_copy |
2470 | + fun:gst_audio_filter_class_add_pad_templates |
2471 | +} |
2472 | +{ |
2473 | + <Leak in GstAudioFilter subclasses, variant4> |
2474 | + Memcheck:Leak |
2475 | + fun:malloc |
2476 | + fun:realloc |
2477 | + fun:g_realloc |
2478 | + fun:g_array_maybe_expand |
2479 | + fun:g_array_sized_new |
2480 | + fun:* |
2481 | + fun:gst_structure_copy |
2482 | + fun:gst_caps_copy |
2483 | + fun:gst_audio_filter_class_add_pad_templates |
2484 | +} |
2485 | +{ |
2486 | + <Leak in GstAudioFilter subclasses, variant5> |
2487 | + Memcheck:Leak |
2488 | + fun:malloc |
2489 | + fun:g_malloc |
2490 | + fun:g_slice_alloc |
2491 | + fun:g_array_sized_new |
2492 | + fun:* |
2493 | + fun:gst_structure_copy |
2494 | + fun:gst_caps_copy |
2495 | + fun:gst_audio_filter_class_add_pad_templates |
2496 | +} |
2497 | + |
2498 | +{ |
2499 | + <Leak in riff-media> |
2500 | + Memcheck:Leak |
2501 | + fun:malloc |
2502 | + fun:g_malloc |
2503 | + fun:g_slice_alloc |
2504 | + fun:gst_caps_new_empty |
2505 | + fun:gst_riff_create_*_template_caps |
2506 | +} |
2507 | +{ |
2508 | + <Leak in riff-media> |
2509 | + Memcheck:Leak |
2510 | + fun:malloc |
2511 | + fun:realloc |
2512 | + fun:g_realloc |
2513 | + fun:* |
2514 | + fun:* |
2515 | + fun:* |
2516 | + fun:gst_structure_copy |
2517 | + fun:gst_caps_copy |
2518 | + fun:gst_caps_append |
2519 | + fun:gst_riff_create_*_template_caps |
2520 | +} |
2521 | +{ |
2522 | + <Leak in riff-media> |
2523 | + Memcheck:Leak |
2524 | + fun:malloc |
2525 | + fun:g_malloc |
2526 | + fun:g_slice_alloc |
2527 | + fun:g_array_sized_new |
2528 | + fun:* |
2529 | + fun:gst_structure_copy |
2530 | + fun:gst_caps_copy |
2531 | + fun:gst_caps_append |
2532 | + fun:gst_riff_create_*_template_caps |
2533 | +} |
2534 | + |
2535 | +## Leaks in pango (bilboed: gentoo unstable amd64) |
2536 | + |
2537 | +{ |
2538 | + <Pango leak - generic> |
2539 | + Memcheck:Leak |
2540 | + fun:*alloc |
2541 | + ... |
2542 | + fun:pango_layout_get_pixel_extents |
2543 | +} |
2544 | +{ |
2545 | + <insert a suppression name here> |
2546 | + Memcheck:Leak |
2547 | + fun:calloc |
2548 | + fun:g_malloc0 |
2549 | + fun:pango_language_from_string |
2550 | + fun:pango_language_get_default |
2551 | + fun:pango_context_init |
2552 | + fun:g_type_create_instance |
2553 | + fun:g_object_constructor |
2554 | + fun:g_object_newv |
2555 | + fun:g_object_new_valist |
2556 | + fun:g_object_new |
2557 | + fun:pango_font_map_create_context |
2558 | +} |
2559 | + |
2560 | +{ |
2561 | + <PangoLanguage can never be freed> |
2562 | + Memcheck:Leak |
2563 | + fun:calloc |
2564 | + fun:g_malloc0 |
2565 | + fun:pango_language_from_string |
2566 | +} |
2567 | + |
2568 | + |
2569 | +## Leak of everything allocated by gst-libav plugin init |
2570 | +{ |
2571 | + <insert_a_suppression_name_here> |
2572 | + Memcheck:Leak |
2573 | + fun:*alloc |
2574 | + ... |
2575 | + fun:gst_ffmpeg_cfg_init |
2576 | +} |
2577 | + |
2578 | +## Leak of GIO module through gnomevfs |
2579 | + |
2580 | +{ |
2581 | + <gio leak> |
2582 | + Memcheck:Leak |
2583 | + fun:malloc |
2584 | + fun:g_malloc |
2585 | + fun:* |
2586 | + fun:* |
2587 | + fun:g_type_create_instance |
2588 | + fun:* |
2589 | + fun:* |
2590 | + fun:* |
2591 | + fun:* |
2592 | + fun:g_io_module_new |
2593 | + fun:g_io_modules_load_all_in_directory |
2594 | + fun:* |
2595 | + fun:get_default_vfs |
2596 | +} |
2597 | + |
2598 | +## Conditional jump in getaddrinfo (bilboed, gentoo ~amd64, Dec 13 2008) |
2599 | +{ |
2600 | + <Leak of addrinfo in esd> |
2601 | + Memcheck:Cond |
2602 | + fun:gaih_inet |
2603 | + fun:getaddrinfo |
2604 | +} |
2605 | + |
2606 | +## Dynamic pad templates in mxfmux |
2607 | +{ |
2608 | + <Dynamic pad templates in mxfmux> |
2609 | + Memcheck:Leak |
2610 | + fun:malloc |
2611 | + fun:g_malloc |
2612 | + fun:g_slice_alloc |
2613 | + fun:gst_caps_new_empty |
2614 | + fun:gst_caps_from_string |
2615 | + fun:mxf_*_init |
2616 | + fun:plugin_init |
2617 | +} |
2618 | + |
2619 | +## We don't know if ffmpeg frees this or not and better pass a copy for safety |
2620 | +{ |
2621 | + <insert a suppression name here> |
2622 | + Memcheck:Leak |
2623 | + fun:malloc |
2624 | + fun:g_malloc |
2625 | + fun:g_strdup |
2626 | + fun:gst_ffmpeg_cfg_fill_context |
2627 | + fun:gst_ffmpegenc_setcaps |
2628 | + fun:gst_pad_set_caps |
2629 | +} |
2630 | + |
2631 | +## Leak/overreads with glibc-2.10 |
2632 | + |
2633 | +{ |
2634 | + <glibc-2.10 overreads/conditionals> |
2635 | + Memcheck:Value8 |
2636 | + fun:do_sym |
2637 | + fun:dlsym_doit |
2638 | + fun:_dl_catch_error |
2639 | + fun:_dlerror_run |
2640 | + fun:dlsym |
2641 | +} |
2642 | +{ |
2643 | + <glibc-2.10 overreads/conditionals> |
2644 | + Memcheck:Cond |
2645 | + fun:do_sym |
2646 | + fun:dlsym_doit |
2647 | + fun:_dl_catch_error |
2648 | + fun:_dlerror_run |
2649 | + fun:dlsym |
2650 | +} |
2651 | + |
2652 | +{ |
2653 | + <glibc-2.10 overreads/conditionals> |
2654 | + Memcheck:Value8 |
2655 | + fun:dl_open_worker |
2656 | + fun:_dl_catch_error |
2657 | + fun:_dl_open |
2658 | + fun:dlopen_doit |
2659 | + fun:_dl_catch_error |
2660 | + fun:_dlerror_run |
2661 | + fun:dlopen* |
2662 | +} |
2663 | + |
2664 | +{ |
2665 | + <glibc-2.10 overreads/conditionals> |
2666 | + Memcheck:Value8 |
2667 | + fun:_dl_relocate_object |
2668 | + fun:dl_open_worker |
2669 | + fun:_dl_catch_error |
2670 | + fun:_dl_open |
2671 | + fun:dlopen_doit |
2672 | + fun:_dl_catch_error |
2673 | + fun:_dlerror_run |
2674 | + fun:dlopen* |
2675 | +} |
2676 | + |
2677 | +{ |
2678 | + <glibc-2.10 overreads/conditionals> |
2679 | + Memcheck:Value8 |
2680 | + fun:_dl_check_map_versions |
2681 | + fun:dl_open_worker |
2682 | + fun:_dl_catch_error |
2683 | + fun:_dl_open |
2684 | + fun:dlopen_doit |
2685 | + fun:_dl_catch_error |
2686 | + fun:_dlerror_run |
2687 | + fun:dlopen* |
2688 | +} |
2689 | + |
2690 | +{ |
2691 | + <glibc-2.10 overreads/conditionals> |
2692 | + Memcheck:Cond |
2693 | + fun:dl_open_worker |
2694 | + fun:_dl_catch_error |
2695 | + fun:_dl_open |
2696 | + fun:dlopen_doit |
2697 | + fun:_dl_catch_error |
2698 | + fun:_dlerror_run |
2699 | + fun:dlopen* |
2700 | +} |
2701 | + |
2702 | +{ |
2703 | + <glibc-2.10 overreads/conditionals> |
2704 | + Memcheck:Cond |
2705 | + fun:_dl_relocate_object |
2706 | + fun:dl_open_worker |
2707 | + fun:_dl_catch_error |
2708 | + fun:_dl_open |
2709 | + fun:dlopen_doit |
2710 | + fun:_dl_catch_error |
2711 | + fun:_dlerror_run |
2712 | + fun:dlopen* |
2713 | +} |
2714 | + |
2715 | +{ |
2716 | + <glibc-2.10 overreads/conditionals> |
2717 | + Memcheck:Cond |
2718 | + fun:_dl_check_map_versions |
2719 | + fun:dl_open_worker |
2720 | + fun:_dl_catch_error |
2721 | + fun:_dl_open |
2722 | + fun:dlopen_doit |
2723 | + fun:_dl_catch_error |
2724 | + fun:_dlerror_run |
2725 | + fun:dlopen* |
2726 | +} |
2727 | + |
2728 | +{ |
2729 | + <glibc-2.10 overreads/conditionals> |
2730 | + Memcheck:Cond |
2731 | + fun:_dl_map_object* |
2732 | + fun:dl_open_worker |
2733 | + fun:_dl_catch_error |
2734 | + fun:_dl_open |
2735 | + fun:dlopen_doit |
2736 | + fun:_dl_catch_error |
2737 | + fun:_dlerror_run |
2738 | + fun:dlopen* |
2739 | +} |
2740 | + |
2741 | +{ |
2742 | + <glibc-2.10 overreads/conditionals> |
2743 | + Memcheck:Value8 |
2744 | + fun:_dl_map_object* |
2745 | + fun:dl_open_worker |
2746 | + fun:_dl_catch_error |
2747 | + fun:_dl_open |
2748 | + fun:dlopen_doit |
2749 | + fun:_dl_catch_error |
2750 | + fun:_dlerror_run |
2751 | + fun:dlopen* |
2752 | +} |
2753 | + |
2754 | +{ |
2755 | + <glibc-2.10 overreads/conditionals> |
2756 | + Memcheck:Value8 |
2757 | + fun:_dl_check_caller |
2758 | + fun:dl_open_worker |
2759 | + fun:_dl_catch_error |
2760 | + fun:_dl_open |
2761 | + fun:dlopen_doit |
2762 | + fun:_dl_catch_error |
2763 | + fun:_dlerror_run |
2764 | + fun:dlopen* |
2765 | +} |
2766 | + |
2767 | +{ |
2768 | + <glibc-2.10 overreads/conditionals> |
2769 | + Memcheck:Cond |
2770 | + fun:_dl_check_caller |
2771 | + fun:dl_open_worker |
2772 | + fun:_dl_catch_error |
2773 | + fun:_dl_open |
2774 | + fun:dlopen_doit |
2775 | + fun:_dl_catch_error |
2776 | + fun:_dlerror_run |
2777 | + fun:dlopen* |
2778 | +} |
2779 | + |
2780 | +{ |
2781 | + <glibc-2.10 overreads/conditionals> |
2782 | + Memcheck:Value8 |
2783 | + obj:/lib*/libc-2.10.*.so |
2784 | + obj:/lib*/libc-2.10.*.so |
2785 | + fun:_vgnU_freeres |
2786 | +} |
2787 | +{ |
2788 | + <glibc-2.10 overreads/conditionals> |
2789 | + Memcheck:Cond |
2790 | + obj:/lib*/libc-2.10.*.so |
2791 | + obj:/lib*/libc-2.10.*.so |
2792 | + fun:_vgnU_freeres |
2793 | +} |
2794 | +{ |
2795 | + <glibc-2.10 mysterious invalid free on exit> |
2796 | + Memcheck:Free |
2797 | + fun:free |
2798 | + obj:/lib*/libc-2.10.*.so |
2799 | + obj:/lib*/libc-2.10.*.so |
2800 | + fun:_vgnU_freeres |
2801 | +} |
2802 | + |
2803 | +{ |
2804 | + <glibc-2.10 overreads/conditionals> |
2805 | + Memcheck:Value8 |
2806 | + fun:_dl_fini |
2807 | + fun:__run_exit_handlers |
2808 | + fun:exit |
2809 | +} |
2810 | + |
2811 | +{ |
2812 | + <glibc-2.10 overreads/conditionals> |
2813 | + Memcheck:Cond |
2814 | + fun:_dl_fini |
2815 | + fun:__run_exit_handlers |
2816 | + fun:exit |
2817 | +} |
2818 | +{ |
2819 | + <glibc-2.10 overreads/conditionals> |
2820 | + Memcheck:Value8 |
2821 | + fun:_dl_sort_fini |
2822 | + fun:_dl_fini |
2823 | + fun:__run_exit_handlers |
2824 | + fun:exit |
2825 | +} |
2826 | + |
2827 | +{ |
2828 | + <glibc-2.10 overreads/conditionals> |
2829 | + Memcheck:Cond |
2830 | + fun:_dl_sort_fini |
2831 | + fun:_dl_fini |
2832 | + fun:__run_exit_handlers |
2833 | + fun:exit |
2834 | +} |
2835 | + |
2836 | +# glibc-2.10 dl overreads |
2837 | +{ |
2838 | + <glibc-2.10 overreads/conditionals> |
2839 | + Memcheck:Value8 |
2840 | + fun:_dl_fixup |
2841 | + fun:_dl_runtime_resolve |
2842 | +} |
2843 | +{ |
2844 | + <glibc-2.10 overreads/conditionals> |
2845 | + Memcheck:Cond |
2846 | + fun:_dl_fixup |
2847 | + fun:_dl_runtime_resolve |
2848 | +} |
2849 | + |
2850 | +{ |
2851 | + <glibc-2.10 overreads/conditionals> |
2852 | + Memcheck:Value8 |
2853 | + fun:_dl_lookup_symbol_x |
2854 | + fun:_dl_fixup |
2855 | + fun:_dl_runtime_resolve |
2856 | +} |
2857 | +{ |
2858 | + <glibc-2.10 overreads/conditionals> |
2859 | + Memcheck:Cond |
2860 | + fun:_dl_lookup_symbol_x |
2861 | + fun:_dl_fixup |
2862 | + fun:_dl_runtime_resolve |
2863 | +} |
2864 | +{ |
2865 | + <glibc-2.10 overreads/conditionals> |
2866 | + Memcheck:Value8 |
2867 | + fun:call_init |
2868 | + fun:_dl_init |
2869 | +} |
2870 | +{ |
2871 | + <glibc-2.10 overreads/conditionals> |
2872 | + Memcheck:Value8 |
2873 | + fun:_dl_init |
2874 | +} |
2875 | +{ |
2876 | + <glibc-2.10 overreads/conditionals> |
2877 | + Memcheck:Value8 |
2878 | + fun:do_lookup_x |
2879 | + fun:_dl_lookup_symbol_x |
2880 | + fun:_dl_relocate_object |
2881 | + fun:dl_main |
2882 | +} |
2883 | +{ |
2884 | + <glibc-2.10 overreads/conditionals> |
2885 | + Memcheck:Cond |
2886 | + fun:do_lookup_x |
2887 | + fun:_dl_lookup_symbol_x |
2888 | + fun:_dl_relocate_object |
2889 | + fun:dl_main |
2890 | +} |
2891 | +{ |
2892 | + <glibc-2.10 overreads/conditionals> |
2893 | + Memcheck:Value8 |
2894 | + fun:_dl_lookup_symbol_x |
2895 | + fun:_dl_relocate_object |
2896 | + fun:dl_main |
2897 | +} |
2898 | +{ |
2899 | + <glibc-2.10 overreads/conditionals> |
2900 | + Memcheck:Value8 |
2901 | + fun:_dl_relocate_object |
2902 | + fun:dl_main |
2903 | +} |
2904 | +{ |
2905 | + <glibc-2.10 overreads/conditionals> |
2906 | + Memcheck:Value8 |
2907 | + fun:dl_main |
2908 | + fun:_dl_sysdep_start |
2909 | + fun:_dl_start |
2910 | +} |
2911 | +{ |
2912 | + <glibc-2.10 overreads/conditionals> |
2913 | + Memcheck:Cond |
2914 | + fun:dl_main |
2915 | + fun:_dl_sysdep_start |
2916 | + fun:_dl_start |
2917 | +} |
2918 | + |
2919 | +{ |
2920 | + <glibc-2.10 overreads/conditionals> |
2921 | + Memcheck:Cond |
2922 | + fun:* |
2923 | + fun:do_lookup_x |
2924 | + fun:_dl_lookup_symbol_x |
2925 | + fun:_dl_relocate_object |
2926 | + fun:dl_main |
2927 | +} |
2928 | + |
2929 | +{ |
2930 | + <glibc-2.10 overreads/conditionals> |
2931 | + Memcheck:Value8 |
2932 | + fun:* |
2933 | + fun:do_lookup_x |
2934 | + fun:_dl_lookup_symbol_x |
2935 | + fun:_dl_relocate_object |
2936 | + fun:dl_main |
2937 | +} |
2938 | + |
2939 | +{ |
2940 | + <glibc-2.10 overreads/conditionals> |
2941 | + Memcheck:Value8 |
2942 | + fun:_dl_check_map_versions |
2943 | + fun:_dl_check_all_versions |
2944 | + fun:version_check_doit |
2945 | + fun:_dl_receive_error |
2946 | + fun:dl_main |
2947 | +} |
2948 | + |
2949 | +{ |
2950 | + <glibc-2.10 overreads/conditionals> |
2951 | + Memcheck:Cond |
2952 | + fun:_dl_check_map_versions |
2953 | + fun:_dl_check_all_versions |
2954 | + fun:version_check_doit |
2955 | + fun:_dl_receive_error |
2956 | + fun:dl_main |
2957 | +} |
2958 | + |
2959 | +{ |
2960 | + <glibc-2.10 overreads/conditionals> |
2961 | + Memcheck:Value8 |
2962 | + fun:_dl_check_all_versions |
2963 | + fun:version_check_doit |
2964 | + fun:_dl_receive_error |
2965 | + fun:dl_main |
2966 | +} |
2967 | + |
2968 | +{ |
2969 | + <glibc-2.10 overreads/conditionals> |
2970 | + Memcheck:Cond |
2971 | + fun:_dl_check_all_versions |
2972 | + fun:version_check_doit |
2973 | + fun:_dl_receive_error |
2974 | + fun:dl_main |
2975 | +} |
2976 | + |
2977 | +{ |
2978 | + <glibc-2.10 overreads/conditionals> |
2979 | + Memcheck:Value8 |
2980 | + fun:* |
2981 | + fun:_dl_check_map_versions |
2982 | + fun:_dl_check_all_versions |
2983 | + fun:version_check_doit |
2984 | + fun:_dl_receive_error |
2985 | + fun:dl_main |
2986 | +} |
2987 | +{ |
2988 | + <glibc-2.10 overreads/conditionals> |
2989 | + Memcheck:Cond |
2990 | + fun:* |
2991 | + fun:_dl_check_map_versions |
2992 | + fun:_dl_check_all_versions |
2993 | + fun:version_check_doit |
2994 | + fun:_dl_receive_error |
2995 | + fun:dl_main |
2996 | +} |
2997 | + |
2998 | +{ |
2999 | + <glibc-2.10 overreads/conditionals> |
3000 | + Memcheck:Value8 |
3001 | + fun:init_tls |
3002 | + fun:dl_main |
3003 | +} |
3004 | +{ |
3005 | + <glibc-2.10 overreads/conditionals> |
3006 | + Memcheck:Cond |
3007 | + fun:init_tls |
3008 | + fun:dl_main |
3009 | +} |
3010 | + |
3011 | +{ |
3012 | + <glibc-2.10 overreads/conditionals> |
3013 | + Memcheck:Cond |
3014 | + fun:_dl_map_object_deps |
3015 | + fun:dl_main |
3016 | +} |
3017 | +{ |
3018 | + <glibc-2.10 overreads/conditionals> |
3019 | + Memcheck:Value8 |
3020 | + fun:_dl_map_object_deps |
3021 | + fun:dl_main |
3022 | +} |
3023 | + |
3024 | +{ |
3025 | + <glibc-2.10 overreads/conditionals> |
3026 | + Memcheck:Value8 |
3027 | + fun:_dl_protect_relro |
3028 | + fun:_dl_relocate_object |
3029 | + fun:dl_main |
3030 | +} |
3031 | + |
3032 | +{ |
3033 | + <glibc-2.10 overreads/conditionals> |
3034 | + Memcheck:Value8 |
3035 | + fun:* |
3036 | + fun:do_lookup_x |
3037 | + fun:_dl_lookup_symbol_x |
3038 | + fun:_dl_relocate_object |
3039 | + fun:dl_main |
3040 | +} |
3041 | + |
3042 | +{ |
3043 | + <glibc-2.10 overreads/conditionals> |
3044 | + Memcheck:Value8 |
3045 | + fun:_dl_setup_hash |
3046 | + fun:_dl_map_object_from_fd |
3047 | + fun:_dl_map_object |
3048 | +} |
3049 | + |
3050 | +{ |
3051 | + <glibc-2.10 overreads/conditionals> |
3052 | + Memcheck:Value8 |
3053 | + fun:* |
3054 | + fun:_dl_new_object |
3055 | + fun:_dl_map_object_from_fd |
3056 | + fun:_dl_map_object |
3057 | +} |
3058 | + |
3059 | +{ |
3060 | + <glibc-2.10 overreads/conditionals> |
3061 | + Memcheck:Cond |
3062 | + fun:* |
3063 | + fun:_dl_new_object |
3064 | + fun:_dl_map_object_from_fd |
3065 | + fun:_dl_map_object |
3066 | +} |
3067 | + |
3068 | +{ |
3069 | + <glibc-2.10 overreads/conditionals> |
3070 | + Memcheck:Value8 |
3071 | + fun:openaux |
3072 | + fun:_dl_catch_error |
3073 | + fun:_dl_map_object_deps |
3074 | + fun:dl_main |
3075 | +} |
3076 | + |
3077 | +{ |
3078 | + <glibc-2.10 overreads/conditionals> |
3079 | + Memcheck:Value8 |
3080 | + fun:* |
3081 | + fun:_dl_map_object |
3082 | +} |
3083 | + |
3084 | +{ |
3085 | + <glibc-2.10 overreads/conditionals> |
3086 | + Memcheck:Cond |
3087 | + fun:* |
3088 | + fun:_dl_map_object |
3089 | +} |
3090 | + |
3091 | +{ |
3092 | + <glibc-2.10 overreads/conditionals> |
3093 | + Memcheck:Cond |
3094 | + fun:_dl_map_object |
3095 | + fun:openaux |
3096 | + fun:_dl_catch_error |
3097 | + fun:_dl_map_object_deps |
3098 | + fun:dl_main |
3099 | +} |
3100 | + |
3101 | +{ |
3102 | + <glibc-2.10 overreads/conditionals> |
3103 | + Memcheck:Value8 |
3104 | + fun:_dl_map_object |
3105 | + fun:openaux |
3106 | + fun:_dl_catch_error |
3107 | + fun:_dl_map_object_deps |
3108 | + fun:dl_main |
3109 | +} |
3110 | + |
3111 | +{ |
3112 | + <glibc-2.10 overreads/conditionals> |
3113 | + Memcheck:Cond |
3114 | + fun:* |
3115 | + fun:_dl_map_object |
3116 | + fun:openaux |
3117 | + fun:_dl_catch_error |
3118 | + fun:_dl_map_object_deps |
3119 | + fun:dl_main |
3120 | +} |
3121 | + |
3122 | +{ |
3123 | + <glibc-2.10 overreads/conditionals> |
3124 | + Memcheck:Value8 |
3125 | + fun:* |
3126 | + fun:open_path |
3127 | + fun:_dl_map_object |
3128 | + fun:openaux |
3129 | + fun:_dl_catch_error |
3130 | + fun:_dl_map_object_deps |
3131 | + fun:dl_main |
3132 | +} |
3133 | + |
3134 | +{ |
3135 | + <glibc-2.10 overreads/conditionals> |
3136 | + Memcheck:Cond |
3137 | + fun:* |
3138 | + fun:open_path |
3139 | + fun:_dl_map_object |
3140 | + fun:openaux |
3141 | + fun:_dl_catch_error |
3142 | + fun:_dl_map_object_deps |
3143 | + fun:dl_main |
3144 | +} |
3145 | + |
3146 | +{ |
3147 | + <glibc-2.10 overreads/conditionals> |
3148 | + Memcheck:Value8 |
3149 | + fun:_dl_map_object_from_fd |
3150 | + fun:_dl_map_object |
3151 | +} |
3152 | + |
3153 | +{ |
3154 | + <glibc-2.10 overreads/conditionals> |
3155 | + Memcheck:Cond |
3156 | + fun:_dl_map_object_from_fd |
3157 | + fun:_dl_map_object |
3158 | +} |
3159 | + |
3160 | +{ |
3161 | + <glibc-2.10 overreads/conditionals> |
3162 | + Memcheck:Value8 |
3163 | + fun:* |
3164 | + fun:_dl_new_object |
3165 | + fun:_dl_map_object_from_fd |
3166 | + fun:_dl_map_object |
3167 | +} |
3168 | + |
3169 | +{ |
3170 | + <glibc-2.10 overreads/conditionals> |
3171 | + Memcheck:Value8 |
3172 | + fun:_dl_new_object |
3173 | + fun:_dl_map_object_from_fd |
3174 | + fun:_dl_map_object |
3175 | +} |
3176 | + |
3177 | +{ |
3178 | + <glibc-2.10 overreads/conditionals> |
3179 | + Memcheck:Cond |
3180 | + fun:_dl_new_object |
3181 | + fun:_dl_map_object_from_fd |
3182 | + fun:_dl_map_object |
3183 | +} |
3184 | + |
3185 | +{ |
3186 | + <glibc-2.10 overreads/conditionals> |
3187 | + Memcheck:Value8 |
3188 | + fun:* |
3189 | + fun:_dl_name_match_p |
3190 | + fun:_dl_map_object |
3191 | +} |
3192 | + |
3193 | +{ |
3194 | + <glibc-2.10 overreads/conditionals> |
3195 | + Memcheck:Cond |
3196 | + fun:* |
3197 | + fun:* |
3198 | + fun:_dl_map_object |
3199 | +} |
3200 | + |
3201 | +{ |
3202 | + <glibc-2.10 overreads/conditionals> |
3203 | + Memcheck:Value8 |
3204 | + fun:* |
3205 | + fun:_dl_name_match_p |
3206 | + fun:_dl_check_map_versions |
3207 | + fun:_dl_check_all_versions |
3208 | +} |
3209 | + |
3210 | +{ |
3211 | + <glibc-2.10 overreads/conditionals> |
3212 | + Memcheck:Value8 |
3213 | + fun:* |
3214 | + fun:* |
3215 | + fun:do_lookup_x |
3216 | + fun:_dl_lookup_symbol_x |
3217 | +} |
3218 | + |
3219 | +{ |
3220 | + <glibc-2.10 overreads/conditionals> |
3221 | + Memcheck:Cond |
3222 | + fun:do_lookup_x |
3223 | + fun:_dl_lookup_symbol_x |
3224 | +} |
3225 | + |
3226 | +{ |
3227 | + <glibc-2.10 overreads/conditionals> |
3228 | + Memcheck:Value8 |
3229 | + fun:do_lookup_x |
3230 | + fun:_dl_lookup_symbol_x |
3231 | +} |
3232 | + |
3233 | +{ |
3234 | + <glibc-2.10 overreads/conditionals> |
3235 | + Memcheck:Value8 |
3236 | + fun:* |
3237 | + fun:do_lookup_x |
3238 | + fun:_dl_lookup_symbol_x |
3239 | +} |
3240 | +{ |
3241 | + <glibc-2.10 overreads/conditionals> |
3242 | + Memcheck:Cond |
3243 | + fun:* |
3244 | + fun:do_lookup_x |
3245 | + fun:_dl_lookup_symbol_x |
3246 | +} |
3247 | + |
3248 | +{ |
3249 | + <glibc-2.10 overreads/conditionals> |
3250 | + Memcheck:Value8 |
3251 | + fun:_dl_name_match_p |
3252 | + fun:_dl_map_object |
3253 | + fun:dl_open_worker |
3254 | +} |
3255 | +{ |
3256 | + <glibc-2.10 overreads/conditionals> |
3257 | + Memcheck:Cond |
3258 | + fun:_dl_name_match_p |
3259 | + fun:_dl_map_object |
3260 | + fun:dl_open_worker |
3261 | +} |
3262 | + |
3263 | +{ |
3264 | + <glibc-2.10 overreads/conditionals> |
3265 | + Memcheck:Value8 |
3266 | + fun:* |
3267 | + fun:_dl_name_match_p |
3268 | + fun:_dl_map_object |
3269 | + fun:dl_open_worker |
3270 | +} |
3271 | +{ |
3272 | + <glibc-2.10 overreads/conditionals> |
3273 | + Memcheck:Cond |
3274 | + fun:* |
3275 | + fun:_dl_name_match_p |
3276 | + fun:_dl_map_object |
3277 | + fun:dl_open_worker |
3278 | +} |
3279 | + |
3280 | +{ |
3281 | + <glibc-2.10 overreads/conditionals> |
3282 | + Memcheck:Value8 |
3283 | + fun:_dl_lookup_symbol_x |
3284 | + fun:_dl_relocate_object |
3285 | +} |
3286 | +{ |
3287 | + <glibc-2.10 overreads/conditionals> |
3288 | + Memcheck:Cond |
3289 | + fun:_dl_lookup_symbol_x |
3290 | + fun:_dl_relocate_object |
3291 | +} |
3292 | + |
3293 | +{ |
3294 | + <glibc-2.10 overreads/conditionals> |
3295 | + Memcheck:Value8 |
3296 | + fun:* |
3297 | + fun:* |
3298 | + fun:_dl_check_map_versions |
3299 | +} |
3300 | +{ |
3301 | + <glibc-2.10 overreads/conditionals> |
3302 | + Memcheck:Value8 |
3303 | + fun:* |
3304 | + fun:_dl_check_map_versions |
3305 | +} |
3306 | +{ |
3307 | + <glibc-2.10 overreads/conditionals> |
3308 | + Memcheck:Cond |
3309 | + fun:* |
3310 | + fun:* |
3311 | + fun:_dl_check_map_versions |
3312 | +} |
3313 | +{ |
3314 | + <glibc-2.10 overreads/conditionals> |
3315 | + Memcheck:Cond |
3316 | + fun:* |
3317 | + fun:_dl_check_map_versions |
3318 | +} |
3319 | +{ |
3320 | + <glibc-2.10 overreads/conditionals> |
3321 | + Memcheck:Value8 |
3322 | + fun:openaux |
3323 | +} |
3324 | +{ |
3325 | + <glibc-2.10 overreads/conditionals> |
3326 | + Memcheck:Value8 |
3327 | + fun:_dl_name_match_p |
3328 | + fun:_dl_map_object |
3329 | +} |
3330 | + |
3331 | +{ |
3332 | + <glibc-2.10 overreads/conditionals> |
3333 | + Memcheck:Cond |
3334 | + fun:_dl_close_worker |
3335 | + fun:_dl_close |
3336 | + fun:_dl_catch_error |
3337 | + fun:dlerror_run |
3338 | +} |
3339 | +{ |
3340 | + <glibc-2.10 overreads/conditionals> |
3341 | + Memcheck:Value8 |
3342 | + fun:_dl_close_worker |
3343 | + fun:_dl_close |
3344 | + fun:_dl_catch_error |
3345 | + fun:dlerror_run |
3346 | +} |
3347 | +{ |
3348 | + <glibc-2.10 overreads/conditionals> |
3349 | + Memcheck:Cond |
3350 | + fun:* |
3351 | + fun:_dl_close_worker |
3352 | + fun:_dl_close |
3353 | + fun:_dl_catch_error |
3354 | + fun:dlerror_run |
3355 | +} |
3356 | +{ |
3357 | + <glibc-2.10 overreads/conditionals> |
3358 | + Memcheck:Value8 |
3359 | + fun:* |
3360 | + fun:_dl_close_worker |
3361 | + fun:_dl_close |
3362 | + fun:_dl_catch_error |
3363 | + fun:dlerror_run |
3364 | +} |
3365 | + |
3366 | +{ |
3367 | + <glibc-2.10 overreads/conditionals> |
3368 | + Memcheck:Cond |
3369 | + fun:fillin_rpath |
3370 | + fun:_dl_init_paths |
3371 | + fun:dl_main |
3372 | +} |
3373 | +{ |
3374 | + <glibc-2.10 overreads/conditionals> |
3375 | + Memcheck:Value8 |
3376 | + fun:fillin_rpath |
3377 | + fun:_dl_init_paths |
3378 | + fun:dl_main |
3379 | +} |
3380 | +{ |
3381 | + <glibc-2.10 overreads/conditionals> |
3382 | + Memcheck:Cond |
3383 | + fun:* |
3384 | + fun:fillin_rpath |
3385 | + fun:_dl_init_paths |
3386 | + fun:dl_main |
3387 | +} |
3388 | +{ |
3389 | + <glibc-2.10 overreads/conditionals> |
3390 | + Memcheck:Value8 |
3391 | + fun:* |
3392 | + fun:fillin_rpath |
3393 | + fun:_dl_init_paths |
3394 | + fun:dl_main |
3395 | +} |
3396 | + |
3397 | +{ |
3398 | + <glibc-2.10 overreads/conditionals> |
3399 | + Memcheck:Cond |
3400 | + fun:_dl_map_object |
3401 | + fun:map_doit |
3402 | + fun:_dl_catch_error |
3403 | + fun:do_preload |
3404 | + fun:dl_main |
3405 | +} |
3406 | +{ |
3407 | + <glibc-2.10 overreads/conditionals> |
3408 | + Memcheck:Value8 |
3409 | + fun:_dl_map_object |
3410 | + fun:map_doit |
3411 | + fun:_dl_catch_error |
3412 | + fun:do_preload |
3413 | + fun:dl_main |
3414 | +} |
3415 | +{ |
3416 | + <glibc-2.10 overreads/conditionals> |
3417 | + Memcheck:Param |
3418 | + open(filename) |
3419 | + fun:open |
3420 | + fun:open_verify |
3421 | + fun:_dl_map_object |
3422 | + fun:map_doit |
3423 | + fun:_dl_catch_error |
3424 | + fun:do_preload |
3425 | + fun:dl_main |
3426 | +} |
3427 | + |
3428 | +{ |
3429 | + <glibc-2.10 overreads/conditionals> |
3430 | + Memcheck:Param |
3431 | + stat(file_name) |
3432 | + fun:_xstat |
3433 | + fun:open_path |
3434 | + fun:_dl_map_object |
3435 | + fun:openaux |
3436 | + fun:_dl_catch_error |
3437 | + fun:_dl_map_object_deps |
3438 | + fun:dl_main |
3439 | +} |
3440 | + |
3441 | +{ |
3442 | + <glibc-2.10 overreads/conditionals> |
3443 | + Memcheck:Value8 |
3444 | + fun:_dl_catch_error |
3445 | + fun:_dl_map_object_deps |
3446 | + fun:dl_open_worker |
3447 | +} |
3448 | + |
3449 | +{ |
3450 | + <glibc-2.10 overreads/conditionals> |
3451 | + Memcheck:Cond |
3452 | + fun:* |
3453 | + fun:_dl_map_object_deps |
3454 | + fun:dl_main |
3455 | +} |
3456 | +{ |
3457 | + <glibc-2.10 overreads/conditionals> |
3458 | + Memcheck:Value8 |
3459 | + fun:* |
3460 | + fun:_dl_map_object_deps |
3461 | + fun:dl_main |
3462 | +} |
3463 | + |
3464 | +{ |
3465 | + <glibc-2.10 overreads/conditionals> |
3466 | + Memcheck:Value8 |
3467 | + fun:* |
3468 | + fun:* |
3469 | + fun:_dl_map_object_deps |
3470 | + fun:dl_main |
3471 | +} |
3472 | + |
3473 | +# glibc-2.10 tls issues |
3474 | +{ |
3475 | + <glibc-2.10 overreads/conditionals> |
3476 | + Memcheck:Cond |
3477 | + fun:* |
3478 | + fun:init_tls |
3479 | + fun:dl_main |
3480 | +} |
3481 | +{ |
3482 | + <glibc-2.10 overreads/conditionals> |
3483 | + Memcheck:Value8 |
3484 | + fun:* |
3485 | + fun:init_tls |
3486 | + fun:dl_main |
3487 | +} |
3488 | +{ |
3489 | + <glibc-2.10 overreads/conditionals> |
3490 | + Memcheck:Cond |
3491 | + fun:* |
3492 | + fun:* |
3493 | + fun:init_tls |
3494 | + fun:dl_main |
3495 | +} |
3496 | +{ |
3497 | + <glibc-2.10 overreads/conditionals> |
3498 | + Memcheck:Value8 |
3499 | + fun:* |
3500 | + fun:* |
3501 | + fun:init_tls |
3502 | + fun:dl_main |
3503 | +} |
3504 | + |
3505 | +{ |
3506 | + <glibc-2.10 overreads/conditionals> |
3507 | + Memcheck:Cond |
3508 | + fun:_dl_allocate_tls_init |
3509 | + fun:dl_main |
3510 | +} |
3511 | +{ |
3512 | + <glibc-2.10 overreads/conditionals> |
3513 | + Memcheck:Value8 |
3514 | + fun:_dl_allocate_tls_init |
3515 | + fun:dl_main |
3516 | +} |
3517 | +{ |
3518 | + <glibc-2.10 overreads/conditionals> |
3519 | + Memcheck:Cond |
3520 | + fun:* |
3521 | + fun:_dl_allocate_tls_init |
3522 | + fun:dl_main |
3523 | +} |
3524 | +{ |
3525 | + <glibc-2.10 overreads/conditionals> |
3526 | + Memcheck:Value8 |
3527 | + fun:* |
3528 | + fun:_dl_allocate_tls_init |
3529 | + fun:dl_main |
3530 | +} |
3531 | + |
3532 | +{ |
3533 | + <glibc-2.10 overreads/conditionals> |
3534 | + Memcheck:Cond |
3535 | + fun:__tls* |
3536 | + obj:* |
3537 | + obj:* |
3538 | + fun:_vgnU_freeres |
3539 | +} |
3540 | + |
3541 | +{ |
3542 | + <glibc-2.10 overreads/conditionals> |
3543 | + Memcheck:Param |
3544 | + arch_prctl(arg2) |
3545 | + fun:init_tls |
3546 | +} |
3547 | +# GLib caching tmp/home directories (glibc-2.10 variants) |
3548 | +{ |
3549 | + <glibc-2.10 GLIB leaks> |
3550 | + Memcheck:Cond |
3551 | + fun:* |
3552 | + fun:dl_open_worker |
3553 | + fun:* |
3554 | + fun:* |
3555 | + fun:* |
3556 | + fun:_dl_catch_error |
3557 | + fun:dlerror_run |
3558 | + fun:* |
3559 | + fun:__nss_lookup_function |
3560 | + fun:__nss_lookup |
3561 | + fun:getpwnam* |
3562 | +} |
3563 | +{ |
3564 | + <glibc-2.10 GLIB leaks> |
3565 | + Memcheck:Value8 |
3566 | + fun:* |
3567 | + fun:dl_open_worker |
3568 | + fun:* |
3569 | + fun:* |
3570 | + fun:* |
3571 | + fun:_dl_catch_error |
3572 | + fun:dlerror_run |
3573 | + fun:* |
3574 | + fun:__nss_lookup_function |
3575 | + fun:__nss_lookup |
3576 | + fun:getpwnam* |
3577 | +} |
3578 | +{ |
3579 | + <glibc-2.10 GLIB leaks> |
3580 | + Memcheck:Cond |
3581 | + fun:dl_open_worker |
3582 | + fun:* |
3583 | + fun:* |
3584 | + fun:do_dlopen |
3585 | + fun:* |
3586 | + fun:dlerror_run |
3587 | + fun:* |
3588 | + fun:__nss_lookup_function |
3589 | + fun:__nss_lookup |
3590 | + fun:getpwnam* |
3591 | +} |
3592 | +{ |
3593 | + <glibc-2.10 GLIB leaks> |
3594 | + Memcheck:Value8 |
3595 | + fun:dl_open_worker |
3596 | + fun:* |
3597 | + fun:* |
3598 | + fun:do_dlopen |
3599 | + fun:* |
3600 | + fun:dlerror_run |
3601 | + fun:* |
3602 | + fun:__nss_lookup_function |
3603 | + fun:__nss_lookup |
3604 | + fun:getpwnam* |
3605 | +} |
3606 | + |
3607 | +{ |
3608 | + <glibc-2.10 GLIB leaks> |
3609 | + Memcheck:Value8 |
3610 | + fun:_dl_add_to_slotinfo |
3611 | + fun:dl_main |
3612 | +} |
3613 | +{ |
3614 | + <glibc-2.10 GLIB leaks> |
3615 | + Memcheck:Param |
3616 | + open(filename) |
3617 | + fun:open |
3618 | + fun:open_verify |
3619 | + fun:open_path |
3620 | + fun:_dl_map_object |
3621 | +} |
3622 | + |
3623 | + |
3624 | + |
3625 | +# GModule issues with glibc-2.10 |
3626 | +{ |
3627 | + <glibc-2.10 GLIB leaks> |
3628 | + Memcheck:Value8 |
3629 | + fun:* |
3630 | + fun:* |
3631 | + fun:dlsym |
3632 | + fun:g_module_symbol |
3633 | +} |
3634 | +{ |
3635 | + <glibc-2.10 GLIB leaks> |
3636 | + Memcheck:Value8 |
3637 | + fun:g_module_* |
3638 | + fun:gst_plugin* |
3639 | +} |
3640 | +{ |
3641 | + <glibc-2.10 GLIB leaks> |
3642 | + Memcheck:Value8 |
3643 | + fun:* |
3644 | + fun:g_module_* |
3645 | + fun:gst_plugin* |
3646 | +} |
3647 | + |
3648 | +{ |
3649 | + <glibc-2.10 GLIB leaks> |
3650 | + Memcheck:Value8 |
3651 | + fun:* |
3652 | + fun:* |
3653 | + fun:dlopen* |
3654 | + fun:g_module_open |
3655 | +} |
3656 | +{ |
3657 | + <glibc-2.10 GLIB leaks> |
3658 | + Memcheck:Value8 |
3659 | + fun:* |
3660 | + fun:* |
3661 | + fun:* |
3662 | + fun:* |
3663 | + fun:* |
3664 | + fun:* |
3665 | + fun:* |
3666 | + fun:dlsym |
3667 | + fun:g_module_symbol |
3668 | +} |
3669 | + |
3670 | +{ |
3671 | + <glibc-2.10 GLIB leaks> |
3672 | + Memcheck:Value8 |
3673 | + fun:* |
3674 | + fun:* |
3675 | + fun:* |
3676 | + fun:* |
3677 | + fun:* |
3678 | + fun:dlopen* |
3679 | + fun:g_module_open |
3680 | +} |
3681 | + |
3682 | +# Leak in GSlice |
3683 | +{ |
3684 | + <insert a suppression name here> |
3685 | + Memcheck:Value8 |
3686 | + fun:g_parse_debug_string |
3687 | + fun:slice_config_init |
3688 | + fun:g_slice_init_nomessage |
3689 | + fun:_g_slice_thread_init_nomessage |
3690 | + fun:g_thread_init_glib |
3691 | +} |
3692 | + |
3693 | +# 2.10 pthread issues |
3694 | +{ |
3695 | + <insert a suppression name here> |
3696 | + Memcheck:Value8 |
3697 | + fun:__pthread_initialize_minimal |
3698 | +} |
3699 | + |
3700 | +# glibc 2.11 conditional |
3701 | +{ |
3702 | + <glibc-2.11 conditional> |
3703 | + Memcheck:Cond |
3704 | + fun:_dl_relocate_object |
3705 | + fun:dl_main |
3706 | + fun:_dl_sysdep_start |
3707 | + fun:_dl_start |
3708 | + obj:/lib64/ld-2.11.so |
3709 | +} |
3710 | + |
3711 | +# glibc 2.11 Leak |
3712 | + |
3713 | +{ |
3714 | + <insert_a_suppression_name_here> |
3715 | + Memcheck:Leak |
3716 | + fun:*alloc |
3717 | + fun:dl_open_worker |
3718 | + fun:_dl_catch_error |
3719 | + fun:_dl_open |
3720 | + fun:dlopen_doit |
3721 | + fun:_dl_catch_error |
3722 | + fun:_dlerror_run |
3723 | + fun:dlopen@@GLIBC_2.2.5 |
3724 | +} |
3725 | + |
3726 | +{ |
3727 | + <insert_a_suppression_name_here> |
3728 | + Memcheck:Leak |
3729 | + fun:*alloc |
3730 | + fun:_dl_* |
3731 | + fun:dl_open_worker |
3732 | + fun:_dl_catch_error |
3733 | + fun:_dl_open |
3734 | + fun:dlopen_doit |
3735 | + fun:_dl_catch_error |
3736 | + fun:_dlerror_run |
3737 | + fun:dlopen@@GLIBC_2.2.5 |
3738 | +} |
3739 | + |
3740 | +{ |
3741 | + <insert_a_suppression_name_here> |
3742 | + Memcheck:Leak |
3743 | + fun:*alloc |
3744 | + fun:_dl_* |
3745 | + fun:_dl_* |
3746 | + fun:_dl_* |
3747 | + fun:dl_open_worker |
3748 | + fun:_dl_catch_error |
3749 | + fun:_dl_open |
3750 | + fun:dlopen_doit |
3751 | + fun:_dl_catch_error |
3752 | + fun:_dlerror_run |
3753 | + fun:dlopen@@GLIBC_2.2.5 |
3754 | +} |
3755 | + |
3756 | +{ |
3757 | + <insert_a_suppression_name_here> |
3758 | + Memcheck:Leak |
3759 | + fun:*alloc |
3760 | + fun:* |
3761 | + fun:_dl_* |
3762 | + fun:openaux |
3763 | + fun:_dl_catch_error |
3764 | + fun:_dl_map_object_deps |
3765 | + fun:dl_open_worker |
3766 | + fun:_dl_catch_error |
3767 | + fun:_dl_open |
3768 | + fun:dlopen_doit |
3769 | + fun:_dl_catch_error |
3770 | + fun:_dlerror_run |
3771 | + fun:dlopen@@GLIBC_2.2.5 |
3772 | +} |
3773 | + |
3774 | +{ |
3775 | + <insert_a_suppression_name_here> |
3776 | + Memcheck:Leak |
3777 | + fun:*alloc |
3778 | + fun:* |
3779 | + fun:_dl_map_object |
3780 | + fun:dl_open_worker |
3781 | + fun:_dl_catch_error |
3782 | + fun:_dl_open |
3783 | + fun:dlopen_doit |
3784 | + fun:_dl_catch_error |
3785 | + fun:_dlerror_run |
3786 | + fun:dlopen@@GLIBC_2.2.5 |
3787 | +} |
3788 | + |
3789 | +{ |
3790 | + <insert_a_suppression_name_here> |
3791 | + Memcheck:Leak |
3792 | + fun:*alloc |
3793 | + fun:_dl_new_object |
3794 | + fun:_dl_map_object_from_fd |
3795 | + fun:_dl_map_object |
3796 | + fun:openaux |
3797 | + fun:_dl_catch_error |
3798 | + fun:_dl_map_object_deps |
3799 | + fun:dl_open_worker |
3800 | + fun:_dl_catch_error |
3801 | + fun:_dl_open |
3802 | + fun:dlopen_doit |
3803 | + fun:_dl_catch_error |
3804 | + fun:_dlerror_run |
3805 | + fun:dlopen@@GLIBC_2.2.5 |
3806 | +} |
3807 | + |
3808 | +{ |
3809 | + <insert_a_suppression_name_here> |
3810 | + Memcheck:Leak |
3811 | + fun:*alloc |
3812 | + fun:* |
3813 | + fun:_dl_* |
3814 | + fun:_dl_* |
3815 | + fun:_dl_* |
3816 | + fun:dl_open_worker |
3817 | + fun:_dl_catch_error |
3818 | + fun:_dl_open |
3819 | + fun:dlopen_doit |
3820 | + fun:_dl_catch_error |
3821 | + fun:_dlerror_run |
3822 | + fun:dlopen@@GLIBC_2.2.5 |
3823 | +} |
3824 | + |
3825 | +# glib type leaks |
3826 | +{ |
3827 | + <insert_a_suppression_name_here> |
3828 | + Memcheck:Leak |
3829 | + fun:*alloc |
3830 | + ... |
3831 | + fun:g_type_register_static |
3832 | +} |
3833 | + |
3834 | +# new registry system |
3835 | +# all of this will only be created once when loading registry. |
3836 | + |
3837 | +{ |
3838 | + <insert_a_suppression_name_here> |
3839 | + Memcheck:Leak |
3840 | + fun:*alloc |
3841 | + ... |
3842 | + fun:_priv_gst_registry_chunks_load_plugin |
3843 | +} |
3844 | + |
3845 | +# system-wide tags |
3846 | +# these tags are registered once |
3847 | + |
3848 | +{ |
3849 | + <insert_a_suppression_name_here> |
3850 | + Memcheck:Leak |
3851 | + fun:*alloc |
3852 | + fun:* |
3853 | + fun:* |
3854 | + fun:gst_tag_register |
3855 | + fun:_gst_tag_initialize |
3856 | +} |
3857 | + |
3858 | +# system-wide type classes that we keep referenced |
3859 | + |
3860 | +{ |
3861 | + <g_type_class_ref leaks> |
3862 | + Memcheck:Leak |
3863 | + fun:*alloc |
3864 | + ... |
3865 | + fun:g_type_class_ref |
3866 | +} |
3867 | + |
3868 | +# leaking cached queries which are only initialized once |
3869 | +{ |
3870 | + <insert_a_suppression_name_here> |
3871 | + Memcheck:Leak |
3872 | + fun:*alloc |
3873 | + ... |
3874 | + fun:_gst_query_initialize |
3875 | + fun:init_post |
3876 | +} |
3877 | + |
3878 | +# macosx (leopard) library loader leak |
3879 | +{ |
3880 | + <insert_a_suppression_name_here> |
3881 | + Memcheck:Leak |
3882 | + fun:_Znwm |
3883 | + fun:_ZNSs4_Rep9_S_createEmmRKSaIcE |
3884 | + fun:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag |
3885 | + fun:_ZNSsC2EPKcRKSaIcE |
3886 | + fun:_Z41__static_initialization_and_destruction_0ii |
3887 | + fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE |
3888 | +} |
3889 | + |
3890 | +# GObject type registration |
3891 | +{ |
3892 | + <insert_a_suppression_name_here> |
3893 | + Memcheck:Leak |
3894 | + fun:*alloc |
3895 | + fun:g_param_type_register_static |
3896 | + ... |
3897 | +} |
3898 | + |
3899 | +{ |
3900 | + <insert_a_suppression_name_here> |
3901 | + Memcheck:Leak |
3902 | + fun:*alloc |
3903 | + ... |
3904 | + fun:_g_atomic_array_copy |
3905 | +} |
3906 | + |
3907 | +{ |
3908 | + <getdelim one-time inits called from libselinux> |
3909 | + Memcheck:Leak |
3910 | + fun:*alloc |
3911 | + fun:getdelim |
3912 | + obj:*libselinux* |
3913 | +} |
3914 | + |
3915 | +{ |
3916 | + <weird one when re-reading registry> |
3917 | + Memcheck:Leak |
3918 | + fun:*alloc |
3919 | + ... |
3920 | + obj:*/sed |
3921 | +} |
3922 | + |
3923 | +{ |
3924 | + <weird one when re-reading registry> |
3925 | + Memcheck:Addr8 |
3926 | + ... |
3927 | + obj:*/sed |
3928 | +} |
3929 | + |
3930 | +# GLib 2.23 interface vtable |
3931 | +{ |
3932 | + <insert_a_suppression_name_here> |
3933 | + Memcheck:Leak |
3934 | + fun:*alloc |
3935 | + ... |
3936 | + fun:g_type_add_interface_static |
3937 | +} |
3938 | + |
3939 | +{ |
3940 | + <leak in dash on debian sid> |
3941 | + Memcheck:Leak |
3942 | + fun:*alloc |
3943 | + obj:*/dash |
3944 | +} |
3945 | + |
3946 | +# libtool/gentoo fake leak |
3947 | +# it actually runs bash and valgrind complains |
3948 | +{ |
3949 | + <insert_a_suppression_name_here> |
3950 | + Memcheck:Leak |
3951 | + fun:*alloc |
3952 | + obj:/bin/bash |
3953 | +} |
3954 | + |
3955 | +{ |
3956 | + <ignore possbly-lost leaks in the plugin scanner which doesn't clean up properly> |
3957 | + Memcheck:Leak |
3958 | + fun:*alloc |
3959 | + ... |
3960 | + fun:_gst_plugin_loader_client_run |
3961 | + fun:main |
3962 | +} |
3963 | + |
3964 | +{ |
3965 | + <warning with libc 2.13-2 as in Debian/unstable on amd64> |
3966 | + Memcheck:Cond |
3967 | + fun:*strcasecmp* |
3968 | + ... |
3969 | + fun:__dcigettext |
3970 | +} |
3971 | + |
3972 | +{ |
3973 | + <warning with libc 2.13-2 as in Debian/unstable on amd64> |
3974 | + Memcheck:Value8 |
3975 | + fun:*strcasecmp* |
3976 | + ... |
3977 | + fun:__dcigettext |
3978 | +} |
3979 | + |
3980 | +{ |
3981 | + <GstSystemClock is a singleton and does not leak> |
3982 | + Memcheck:Leak |
3983 | + fun:malloc |
3984 | + ... |
3985 | + fun:gst_poll_new |
3986 | + fun:gst_poll_new_timer |
3987 | + fun:gst_system_clock_init |
3988 | +} |
3989 | + |
3990 | +{ |
3991 | + <glib types are singletons> |
3992 | + Memcheck:Leak |
3993 | + fun:calloc |
3994 | + ... |
3995 | + fun:gobject_init_ctor |
3996 | +} |
3997 | + |
3998 | +{ |
3999 | + <quark table is leaked on purpose if it grows too big> |
4000 | + Memcheck:Leak |
4001 | + fun:malloc |
4002 | + ... |
4003 | + fun:g_quark_from*_string |
4004 | +} |
4005 | + |
4006 | +{ |
4007 | + <timer_create suppressions for earlier valgrind versions that complain> |
4008 | + Memcheck:Param |
4009 | + timer_create(evp) |
4010 | + fun:timer_create@@GLIBC_2.3.3 |
4011 | +} |
4012 | + |
4013 | +{ |
4014 | + closures aren't valgrind friendly (bgo#739850) |
4015 | + Memcheck:Leak |
4016 | + match-leak-kinds: possible |
4017 | + fun:calloc |
4018 | + ... |
4019 | + fun:g_cclosure_new |
4020 | +} |
4021 | + |
4022 | +{ |
4023 | + closures aren't valgrind friendly (bgo#739850) |
4024 | + Memcheck:Leak |
4025 | + match-leak-kinds: possible |
4026 | + fun:malloc |
4027 | + ... |
4028 | + fun:g_closure_add_invalidate_notifier |
4029 | +} |
4030 | + |
4031 | +{ |
4032 | + closures aren't valgrind friendly (bgo#739850) |
4033 | + Memcheck:Leak |
4034 | + match-leak-kinds: possible |
4035 | + fun:calloc |
4036 | + ... |
4037 | + fun:g_closure_new_simple |
4038 | +} |
4039 | + |
4040 | +{ |
4041 | + glib/giomodules2 (from libsoup.supp) |
4042 | + Memcheck:Leak |
4043 | + ... |
4044 | + fun:_g_io_module_get_default |
4045 | +} |
4046 | \ No newline at end of file |
4047 | |
4048 | === modified file 'src/core/media/CMakeLists.txt' |
4049 | --- src/core/media/CMakeLists.txt 2015-02-24 15:22:19 +0000 |
4050 | +++ src/core/media/CMakeLists.txt 2015-04-17 14:35:22 +0000 |
4051 | @@ -1,7 +1,3 @@ |
4052 | -pkg_check_modules(PC_GSTREAMER_1_0 REQUIRED gstreamer-1.0) |
4053 | -pkg_check_modules(PC_PULSE_AUDIO REQUIRED libpulse) |
4054 | -include_directories(${PC_GSTREAMER_1_0_INCLUDE_DIRS} ${HYBRIS_MEDIA_CFLAGS} ${PC_PULSE_AUDIO_INCLUDE_DIRS}) |
4055 | - |
4056 | # We compile with all symbols visible by default. For the shipping library, we strip |
4057 | # out all symbols that are not in core::ubuntu::media* |
4058 | set(symbol_map "${CMAKE_SOURCE_DIR}/symbols.map") |
4059 | @@ -109,7 +105,7 @@ |
4060 | gstreamer/playbin.cpp |
4061 | |
4062 | player_skeleton.cpp |
4063 | - player_implementation.cpp |
4064 | +# player_implementation.cpp |
4065 | service_skeleton.cpp |
4066 | service_implementation.cpp |
4067 | track_list_skeleton.cpp |
4068 | @@ -125,11 +121,11 @@ |
4069 | ${DBUS_LIBRARIES} |
4070 | ${DBUS_CPP_LDFLAGS} |
4071 | ${GLog_LIBRARY} |
4072 | - ${PC_GSTREAMER_1_0_LIBRARIES} |
4073 | + ${GSTREAMER_1_0_LIBRARIES} |
4074 | ${PROCESS_CPP_LDFLAGS} |
4075 | ${GIO_LIBRARIES} |
4076 | ${HYBRIS_MEDIA_LIBRARIES} |
4077 | - ${PC_PULSE_AUDIO_LIBRARIES} |
4078 | + ${PULSE_AUDIO_LIBRARIES} |
4079 | ) |
4080 | |
4081 | include_directories(${PROJECT_SOURCE_DIR}/src/ ${HYBRIS_MEDIA_CFLAGS}) |
4082 | @@ -150,7 +146,7 @@ |
4083 | ${DBUS_LIBRARIES} |
4084 | ${DBUS_CPP_LDFLAGS} |
4085 | ${GLog_LIBRARY} |
4086 | - ${PC_GSTREAMER_1_0_LIBRARIES} |
4087 | + ${GSTREAMER_1_0_LIBRARIES} |
4088 | ${HYBRIS_MEDIA_LIBRARIES} |
4089 | ) |
4090 | |
4091 | |
4092 | === modified file 'src/core/media/gstreamer/engine.cpp' |
4093 | --- src/core/media/gstreamer/engine.cpp 2015-03-11 16:17:23 +0000 |
4094 | +++ src/core/media/gstreamer/engine.cpp 2015-04-17 14:35:22 +0000 |
4095 | @@ -33,18 +33,29 @@ |
4096 | |
4097 | namespace gstreamer |
4098 | { |
4099 | -struct Init |
4100 | +struct GlobalState |
4101 | { |
4102 | - Init() |
4103 | + GlobalState() |
4104 | { |
4105 | gst_init(nullptr, nullptr); |
4106 | } |
4107 | |
4108 | - ~Init() |
4109 | + ~GlobalState() |
4110 | { |
4111 | gst_deinit(); |
4112 | } |
4113 | -} init; |
4114 | + |
4115 | + bool is_initialized() const |
4116 | + { |
4117 | + return true; |
4118 | + } |
4119 | +}; |
4120 | + |
4121 | +bool init() |
4122 | +{ |
4123 | + static const GlobalState state; |
4124 | + return state.is_initialized(); |
4125 | +} |
4126 | } |
4127 | |
4128 | struct gstreamer::Engine::Private |
4129 | @@ -181,7 +192,8 @@ |
4130 | } |
4131 | |
4132 | Private() |
4133 | - : meta_data_extractor(new gstreamer::MetaDataExtractor()), |
4134 | + : ensure_gstreamer_is_initialized(init()), |
4135 | + meta_data_extractor(new gstreamer::MetaDataExtractor()), |
4136 | volume(media::Engine::Volume(1.)), |
4137 | orientation(media::Player::Orientation::rotate0), |
4138 | is_video_source(false), |
4139 | @@ -270,6 +282,8 @@ |
4140 | { |
4141 | } |
4142 | |
4143 | + // Make sure that gstreamer setup procedures are called. |
4144 | + bool ensure_gstreamer_is_initialized; |
4145 | // Ensure the playbin is the last item destroyed |
4146 | // otherwise properties could try to access a dead playbin object |
4147 | gstreamer::Playbin playbin; |
4148 | @@ -312,6 +326,7 @@ |
4149 | |
4150 | gstreamer::Engine::Engine() : d(new Private{}) |
4151 | { |
4152 | + gstreamer::init(); |
4153 | cout << "Creating a new Engine instance in " << __PRETTY_FUNCTION__ << endl; |
4154 | d->state = media::Engine::State::ready; |
4155 | } |
4156 | |
4157 | === modified file 'src/core/media/gstreamer/meta_data_extractor.h' |
4158 | --- src/core/media/gstreamer/meta_data_extractor.h 2014-10-14 20:05:20 +0000 |
4159 | +++ src/core/media/gstreamer/meta_data_extractor.h 2015-04-17 14:35:22 +0000 |
4160 | @@ -147,7 +147,7 @@ |
4161 | MetaDataExtractor() |
4162 | : pipe(gst_pipeline_new("meta_data_extractor_pipeline")), |
4163 | decoder(gst_element_factory_make ("uridecodebin", NULL)), |
4164 | - bus(GST_ELEMENT_BUS(pipe)) |
4165 | + bus(gst_element_get_bus(pipe)) |
4166 | { |
4167 | gst_bin_add(GST_BIN(pipe), decoder); |
4168 | |
4169 | @@ -157,10 +157,48 @@ |
4170 | g_signal_connect (decoder, "pad-added", G_CALLBACK (on_new_pad), sink); |
4171 | } |
4172 | |
4173 | + MetaDataExtractor(const MetaDataExtractor&) = delete; |
4174 | + MetaDataExtractor(MetaDataExtractor&&) = delete; |
4175 | + |
4176 | ~MetaDataExtractor() |
4177 | { |
4178 | - gst_element_set_state(pipe, GST_STATE_NULL); |
4179 | - // gst_object_unref(pipe); |
4180 | + set_state_and_wait(GST_STATE_NULL); |
4181 | + gst_object_unref(pipe); |
4182 | + } |
4183 | + |
4184 | + MetaDataExtractor& operator=(const MetaDataExtractor&) = delete; |
4185 | + MetaDataExtractor& operator=(const MetaDataExtractor&&) = delete; |
4186 | + |
4187 | + bool set_state_and_wait(GstState new_state) |
4188 | + { |
4189 | + static const std::chrono::nanoseconds state_change_timeout |
4190 | + { |
4191 | + // We choose a quite high value here as tests are run under valgrind |
4192 | + // and gstreamer pipeline setup/state changes take longer in that scenario. |
4193 | + // The value does not negatively impact runtime performance. |
4194 | + std::chrono::milliseconds{5000} |
4195 | + }; |
4196 | + |
4197 | + auto ret = gst_element_set_state(pipe, new_state); |
4198 | + |
4199 | + bool result = false; GstState current, pending; |
4200 | + switch(ret) |
4201 | + { |
4202 | + case GST_STATE_CHANGE_FAILURE: |
4203 | + result = false; break; |
4204 | + case GST_STATE_CHANGE_NO_PREROLL: |
4205 | + case GST_STATE_CHANGE_SUCCESS: |
4206 | + result = true; break; |
4207 | + case GST_STATE_CHANGE_ASYNC: |
4208 | + result = GST_STATE_CHANGE_SUCCESS == gst_element_get_state( |
4209 | + pipe, |
4210 | + ¤t, |
4211 | + &pending, |
4212 | + state_change_timeout.count()); |
4213 | + break; |
4214 | + } |
4215 | + |
4216 | + return result; |
4217 | } |
4218 | |
4219 | core::ubuntu::media::Track::MetaData meta_data_for_track_with_uri(const core::ubuntu::media::Track::UriType& uri) |
4220 | @@ -189,15 +227,18 @@ |
4221 | }; |
4222 | |
4223 | g_object_set(decoder, "uri", uri.c_str(), NULL); |
4224 | - gst_element_set_state(pipe, GST_STATE_PAUSED); |
4225 | + if (not set_state_and_wait(GST_STATE_PAUSED)) |
4226 | + { |
4227 | + // TODO: This error condition should be handled and at least reported here. |
4228 | + } |
4229 | |
4230 | if (std::future_status::ready != future.wait_for(std::chrono::seconds(2))) |
4231 | { |
4232 | - gst_element_set_state(pipe, GST_STATE_NULL); |
4233 | + set_state_and_wait(GST_STATE_NULL); |
4234 | throw std::runtime_error("Problem extracting meta data for track"); |
4235 | } else |
4236 | { |
4237 | - gst_element_set_state(pipe, GST_STATE_NULL); |
4238 | + set_state_and_wait(GST_STATE_NULL); |
4239 | } |
4240 | |
4241 | return future.get(); |
4242 | |
4243 | === modified file 'src/core/media/gstreamer/playbin.cpp' |
4244 | --- src/core/media/gstreamer/playbin.cpp 2015-03-11 16:17:23 +0000 |
4245 | +++ src/core/media/gstreamer/playbin.cpp 2015-04-17 14:35:22 +0000 |
4246 | @@ -127,6 +127,7 @@ |
4247 | |
4248 | gstreamer::Playbin::~Playbin() |
4249 | { |
4250 | + std::cout << pipeline << std::endl; |
4251 | if (pipeline) |
4252 | gst_object_unref(pipeline); |
4253 | } |
4254 | |
4255 | === modified file 'src/core/media/mpris/player.h' |
4256 | --- src/core/media/mpris/player.h 2015-03-11 16:17:23 +0000 |
4257 | +++ src/core/media/mpris/player.h 2015-04-17 14:35:22 +0000 |
4258 | @@ -173,6 +173,32 @@ |
4259 | DBUS_CPP_READABLE_PROPERTY_DEF(CanControl, Player, bool) |
4260 | }; |
4261 | |
4262 | + // Default values for properties |
4263 | + struct Defaults |
4264 | + { |
4265 | + Properties::CanPlay::ValueType can_play{true}; |
4266 | + Properties::CanPause::ValueType can_pause{true}; |
4267 | + Properties::CanSeek::ValueType can_seek{true}; |
4268 | + Properties::CanControl::ValueType can_control{true}; |
4269 | + Properties::CanGoNext::ValueType can_go_next{true}; |
4270 | + Properties::CanGoPrevious::ValueType can_go_previous{true}; |
4271 | + Properties::IsVideoSource::ValueType is_video_source{false}; |
4272 | + Properties::IsAudioSource::ValueType is_audio_source{true}; |
4273 | + Properties::PlaybackStatus::ValueType playback_status{PlaybackStatus::stopped}; |
4274 | + Properties::TypedPlaybackStatus::ValueType typed_playback_status{core::ubuntu::media::Player::PlaybackStatus::null}; |
4275 | + Properties::LoopStatus::ValueType loop_status{LoopStatus::none}; |
4276 | + Properties::TypedLoopStatus::ValueType typed_loop_status{core::ubuntu::media::Player::LoopStatus::none}; |
4277 | + Properties::PlaybackRate::ValueType playback_rate{1.f}; |
4278 | + Properties::Shuffle::ValueType shuffle{false}; |
4279 | + Properties::TypedMetaData::ValueType typed_meta_data{}; |
4280 | + Properties::Volume::ValueType volume{0.f}; |
4281 | + Properties::Position::ValueType position{0}; |
4282 | + Properties::Duration::ValueType duration{0}; |
4283 | + Properties::MinimumRate::ValueType minimum_rate{1.f}; |
4284 | + Properties::MaximumRate::ValueType maximum_rate{1.f}; |
4285 | + Properties::Orientation::ValueType orientation{core::ubuntu::media::Player::Orientation::rotate0}; |
4286 | + }; |
4287 | + |
4288 | // Convenience struct to create a skeleton implementation for org.mpris.MediaPlayer2.Player |
4289 | struct Skeleton |
4290 | { |
4291 | @@ -188,32 +214,8 @@ |
4292 | core::dbus::Bus::Ptr bus; |
4293 | // The dbus object that should implement org.mpris.MediaPlayer2 |
4294 | core::dbus::Object::Ptr object; |
4295 | - |
4296 | // Default values for properties |
4297 | - struct Defaults |
4298 | - { |
4299 | - Properties::CanPlay::ValueType can_play{true}; |
4300 | - Properties::CanPause::ValueType can_pause{true}; |
4301 | - Properties::CanSeek::ValueType can_seek{true}; |
4302 | - Properties::CanControl::ValueType can_control{true}; |
4303 | - Properties::CanGoNext::ValueType can_go_next{true}; |
4304 | - Properties::CanGoPrevious::ValueType can_go_previous{true}; |
4305 | - Properties::IsVideoSource::ValueType is_video_source{false}; |
4306 | - Properties::IsAudioSource::ValueType is_audio_source{true}; |
4307 | - Properties::PlaybackStatus::ValueType playback_status{PlaybackStatus::stopped}; |
4308 | - Properties::TypedPlaybackStatus::ValueType typed_playback_status{core::ubuntu::media::Player::PlaybackStatus::null}; |
4309 | - Properties::LoopStatus::ValueType loop_status{LoopStatus::none}; |
4310 | - Properties::TypedLoopStatus::ValueType typed_loop_status{core::ubuntu::media::Player::LoopStatus::none}; |
4311 | - Properties::PlaybackRate::ValueType playback_rate{1.f}; |
4312 | - Properties::Shuffle::ValueType shuffle{false}; |
4313 | - Properties::TypedMetaData::ValueType typed_meta_data{}; |
4314 | - Properties::Volume::ValueType volume{0.f}; |
4315 | - Properties::Position::ValueType position{0}; |
4316 | - Properties::Duration::ValueType duration{0}; |
4317 | - Properties::MinimumRate::ValueType minimum_rate{1.f}; |
4318 | - Properties::MaximumRate::ValueType maximum_rate{1.f}; |
4319 | - Properties::Orientation::ValueType orientation{core::ubuntu::media::Player::Orientation::rotate0}; |
4320 | - } defaults; |
4321 | + Defaults defaults; |
4322 | }; |
4323 | |
4324 | Skeleton(const Configuration& configuration) |
4325 | @@ -278,35 +280,84 @@ |
4326 | properties.maximum_playback_rate->set(configuration.defaults.maximum_rate); |
4327 | |
4328 | // Make sure the Orientation Property gets sent over DBus to the client |
4329 | + properties.can_play->changed().connect([this](bool value) |
4330 | + { |
4331 | + on_property_value_changed<Properties::CanPlay>(value); |
4332 | + }); |
4333 | + properties.can_pause->changed().connect([this](bool value) |
4334 | + { |
4335 | + on_property_value_changed<Properties::CanPause>(value); |
4336 | + }); |
4337 | + properties.can_seek->changed().connect([this](bool value) |
4338 | + { |
4339 | + on_property_value_changed<Properties::CanSeek>(value); |
4340 | + }); |
4341 | + properties.can_control->changed().connect([this](bool value) |
4342 | + { |
4343 | + on_property_value_changed<Properties::CanControl>(value); |
4344 | + }); |
4345 | + properties.can_go_next->changed().connect([this](bool value) |
4346 | + { |
4347 | + on_property_value_changed<Properties::CanGoNext>(value); |
4348 | + }); |
4349 | + properties.can_go_previous->changed().connect([this](bool value) |
4350 | + { |
4351 | + on_property_value_changed<Properties::CanGoPrevious>(value); |
4352 | + }); |
4353 | + properties.is_video_source->changed().connect([this](bool value) |
4354 | + { |
4355 | + on_property_value_changed<Properties::IsVideoSource>(value); |
4356 | + }); |
4357 | + properties.is_audio_source->changed().connect([this](bool value) |
4358 | + { |
4359 | + on_property_value_changed<Properties::IsAudioSource>(value); |
4360 | + }); |
4361 | properties.orientation->changed().connect([this](const core::ubuntu::media::Player::Orientation& o) |
4362 | { |
4363 | on_property_value_changed<Properties::Orientation>(o); |
4364 | }); |
4365 | - |
4366 | properties.position->changed().connect([this](std::int64_t position) |
4367 | { |
4368 | on_property_value_changed<Properties::Position>(position); |
4369 | }); |
4370 | - |
4371 | properties.duration->changed().connect([this](std::int64_t duration) |
4372 | { |
4373 | on_property_value_changed<Properties::Duration>(duration); |
4374 | }); |
4375 | - |
4376 | properties.playback_status->changed().connect([this](const std::string& status) |
4377 | { |
4378 | on_property_value_changed<Properties::PlaybackStatus>(status); |
4379 | }); |
4380 | - |
4381 | properties.loop_status->changed().connect([this](const std::string& status) |
4382 | { |
4383 | on_property_value_changed<Properties::LoopStatus>(status); |
4384 | }); |
4385 | + properties.audio_stream_role->changed().connect([this](core::ubuntu::media::Player::AudioStreamRole role) |
4386 | + { |
4387 | + on_property_value_changed<Properties::AudioStreamRole>(role); |
4388 | + }); |
4389 | + properties.lifetime->changed().connect([this](core::ubuntu::media::Player::Lifetime lt) |
4390 | + { |
4391 | + on_property_value_changed<Properties::Lifetime>(lt); |
4392 | + }); |
4393 | + properties.playback_rate->changed().connect([this](double rate) |
4394 | + { |
4395 | + on_property_value_changed<Properties::PlaybackRate>(rate); |
4396 | + }); |
4397 | + properties.minimum_playback_rate->changed().connect([this](double rate) |
4398 | + { |
4399 | + on_property_value_changed<Properties::MinimumRate>(rate); |
4400 | + }); |
4401 | + properties.maximum_playback_rate->changed().connect([this](double rate) |
4402 | + { |
4403 | + on_property_value_changed<Properties::MaximumRate>(rate); |
4404 | + }); |
4405 | } |
4406 | |
4407 | template<typename Property> |
4408 | void on_property_value_changed(const typename Property::ValueType& value) |
4409 | { |
4410 | + std::cout << __PRETTY_FUNCTION__ << std::endl; |
4411 | Dictionary dict; dict[Property::name()] = dbus::types::Variant::encode(value); |
4412 | |
4413 | signals.properties_changed->emit(std::make_tuple( |
4414 | |
4415 | === added file 'src/core/media/player_base.h' |
4416 | --- src/core/media/player_base.h 1970-01-01 00:00:00 +0000 |
4417 | +++ src/core/media/player_base.h 2015-04-17 14:35:22 +0000 |
4418 | @@ -0,0 +1,332 @@ |
4419 | +/* |
4420 | + * Copyright © 2013-2015 Canonical Ltd. |
4421 | + * |
4422 | + * This program is free software: you can redistribute it and/or modify it |
4423 | + * under the terms of the GNU Lesser General Public License version 3, |
4424 | + * as published by the Free Software Foundation. |
4425 | + * |
4426 | + * This program is distributed in the hope that it will be useful, |
4427 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4428 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4429 | + * GNU Lesser General Public License for more details. |
4430 | + * |
4431 | + * You should have received a copy of the GNU Lesser General Public License |
4432 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
4433 | + * |
4434 | + * Authored by: Thomas Voß <thomas.voss@canonical.com> |
4435 | + */ |
4436 | + |
4437 | +#ifndef CORE_UBUNTU_MEDIA_PLAYER_BASE_H_ |
4438 | +#define CORE_UBUNTU_MEDIA_PLAYER_BASE_H_ |
4439 | + |
4440 | +#include <core/media/player.h> |
4441 | + |
4442 | +namespace core |
4443 | +{ |
4444 | +namespace ubuntu |
4445 | +{ |
4446 | +namespace media |
4447 | +{ |
4448 | +// PlayerBase is a helper class that helps with testing. |
4449 | +class PlayerBase : public Player |
4450 | +{ |
4451 | +public: |
4452 | + // Empty on purpose |
4453 | + struct Configuration {}; |
4454 | + |
4455 | + PlayerBase(const Configuration&) {} |
4456 | + |
4457 | + // All properties go here |
4458 | + const core::Property<Lifetime>& lifetime() const |
4459 | + { |
4460 | + return properties.lifetime; |
4461 | + } |
4462 | + |
4463 | + core::Property<Lifetime>& lifetime() |
4464 | + { |
4465 | + return properties.lifetime; |
4466 | + } |
4467 | + |
4468 | + const core::Property<bool>& can_play() const |
4469 | + { |
4470 | + return properties.can_play; |
4471 | + } |
4472 | + |
4473 | + const core::Property<bool>& can_pause() const |
4474 | + { |
4475 | + return properties.can_pause; |
4476 | + } |
4477 | + |
4478 | + const core::Property<bool>& can_seek() const |
4479 | + { |
4480 | + return properties.can_seek; |
4481 | + } |
4482 | + |
4483 | + const core::Property<bool>& can_go_previous() const |
4484 | + { |
4485 | + return properties.can_go_previous; |
4486 | + } |
4487 | + |
4488 | + const core::Property<bool>& can_go_next() const |
4489 | + { |
4490 | + return properties.can_go_next; |
4491 | + } |
4492 | + |
4493 | + const core::Property<bool>& is_video_source() const |
4494 | + { |
4495 | + return properties.is_video_source; |
4496 | + } |
4497 | + |
4498 | + const core::Property<bool>& is_audio_source() const |
4499 | + { |
4500 | + return properties.is_audio_source; |
4501 | + } |
4502 | + |
4503 | + const core::Property<core::ubuntu::media::Player::PlaybackStatus>& playback_status() const |
4504 | + { |
4505 | + return properties.playback_status; |
4506 | + } |
4507 | + |
4508 | + const core::Property<core::ubuntu::media::Player::LoopStatus>& loop_status() const |
4509 | + { |
4510 | + return properties.loop_status; |
4511 | + } |
4512 | + |
4513 | + const core::Property<core::ubuntu::media::Player::PlaybackRate>& playback_rate() const |
4514 | + { |
4515 | + return properties.playback_rate; |
4516 | + } |
4517 | + |
4518 | + const core::Property<bool>& is_shuffle() const |
4519 | + { |
4520 | + return properties.is_shuffle; |
4521 | + } |
4522 | + |
4523 | + const core::Property<core::ubuntu::media::Track::MetaData>& meta_data_for_current_track() const |
4524 | + { |
4525 | + return properties.meta_data_for_current_track; |
4526 | + } |
4527 | + |
4528 | + const core::Property<core::ubuntu::media::Player::Volume>& volume() const |
4529 | + { |
4530 | + return properties.volume; |
4531 | + } |
4532 | + |
4533 | + const core::Property<core::ubuntu::media::Player::PlaybackRate>& minimum_playback_rate() const |
4534 | + { |
4535 | + return properties.minimum_playback_rate; |
4536 | + } |
4537 | + |
4538 | + const core::Property<core::ubuntu::media::Player::PlaybackRate>& maximum_playback_rate() const |
4539 | + { |
4540 | + return properties.maximum_playback_rate; |
4541 | + } |
4542 | + |
4543 | + const core::Property<int64_t>& position() const |
4544 | + { |
4545 | + return properties.position; |
4546 | + } |
4547 | + |
4548 | + const core::Property<int64_t>& duration() const |
4549 | + { |
4550 | + return properties.duration; |
4551 | + } |
4552 | + |
4553 | + const core::Property<core::ubuntu::media::Player::AudioStreamRole>& audio_stream_role() const |
4554 | + { |
4555 | + return properties.audio_stream_role; |
4556 | + } |
4557 | + |
4558 | + const core::Property<core::ubuntu::media::Player::Orientation>& orientation() const |
4559 | + { |
4560 | + return properties.orientation; |
4561 | + } |
4562 | + |
4563 | + core::Property<core::ubuntu::media::Player::LoopStatus>& loop_status() |
4564 | + { |
4565 | + return properties.loop_status; |
4566 | + } |
4567 | + |
4568 | + core::Property<core::ubuntu::media::Player::PlaybackRate>& playback_rate() |
4569 | + { |
4570 | + return properties.playback_rate; |
4571 | + } |
4572 | + |
4573 | + core::Property<bool>& is_shuffle() |
4574 | + { |
4575 | + return properties.is_shuffle; |
4576 | + } |
4577 | + |
4578 | + core::Property<core::ubuntu::media::Player::Volume>& volume() |
4579 | + { |
4580 | + return properties.volume; |
4581 | + } |
4582 | + |
4583 | + core::Property<core::ubuntu::media::Player::AudioStreamRole>& audio_stream_role() |
4584 | + { |
4585 | + return properties.audio_stream_role; |
4586 | + } |
4587 | + |
4588 | + const core::Signal<int64_t>& seeked_to() const |
4589 | + { |
4590 | + return sigs.seeked_to; |
4591 | + } |
4592 | + |
4593 | + const core::Signal<void>& end_of_stream() const |
4594 | + { |
4595 | + return sigs.end_of_stream; |
4596 | + } |
4597 | + |
4598 | + const core::Signal<void>& about_to_finish() const |
4599 | + { |
4600 | + return sigs.about_to_finish; |
4601 | + } |
4602 | + |
4603 | + core::Signal<core::ubuntu::media::Player::PlaybackStatus>& playback_status_changed() |
4604 | + { |
4605 | + return sigs.playback_status_changed; |
4606 | + } |
4607 | + |
4608 | + const core::Signal<core::ubuntu::media::video::Dimensions>& video_dimension_changed() const |
4609 | + { |
4610 | + return sigs.video_dimension_changed; |
4611 | + } |
4612 | + |
4613 | + core::Property<core::ubuntu::media::Player::PlaybackStatus>& playback_status() |
4614 | + { |
4615 | + return properties.playback_status; |
4616 | + } |
4617 | + |
4618 | + core::Property<bool>& can_play() |
4619 | + { |
4620 | + return properties.can_play; |
4621 | + } |
4622 | + |
4623 | + core::Property<bool>& can_pause() |
4624 | + { |
4625 | + return properties.can_pause; |
4626 | + } |
4627 | + |
4628 | + core::Property<bool>& can_seek() |
4629 | + { |
4630 | + return properties.can_seek; |
4631 | + } |
4632 | + |
4633 | + core::Property<bool>& can_go_previous() |
4634 | + { |
4635 | + return properties.can_go_previous; |
4636 | + } |
4637 | + |
4638 | + core::Property<bool>& can_go_next() |
4639 | + { |
4640 | + return properties.can_go_next; |
4641 | + } |
4642 | + |
4643 | + core::Property<bool>& is_video_source() |
4644 | + { |
4645 | + return properties.is_video_source; |
4646 | + } |
4647 | + |
4648 | + core::Property<bool>& is_audio_source() |
4649 | + { |
4650 | + return properties.is_audio_source; |
4651 | + } |
4652 | + |
4653 | + core::Property<core::ubuntu::media::Track::MetaData>& meta_data_for_current_track() |
4654 | + { |
4655 | + return properties.meta_data_for_current_track; |
4656 | + } |
4657 | + |
4658 | + core::Property<core::ubuntu::media::Player::PlaybackRate>& minimum_playback_rate() |
4659 | + { |
4660 | + return properties.minimum_playback_rate; |
4661 | + } |
4662 | + |
4663 | + core::Property<core::ubuntu::media::Player::PlaybackRate>& maximum_playback_rate() |
4664 | + { |
4665 | + return properties.maximum_playback_rate; |
4666 | + } |
4667 | + |
4668 | + core::Property<int64_t>& position() |
4669 | + { |
4670 | + return properties.position; |
4671 | + } |
4672 | + |
4673 | + core::Property<int64_t>& duration() |
4674 | + { |
4675 | + return properties.duration; |
4676 | + } |
4677 | + |
4678 | + core::Property<core::ubuntu::media::Player::Orientation>& orientation() |
4679 | + { |
4680 | + return properties.orientation; |
4681 | + } |
4682 | + |
4683 | + core::Signal<int64_t>& seeked_to() |
4684 | + { |
4685 | + return sigs.seeked_to; |
4686 | + } |
4687 | + |
4688 | + core::Signal<void>& end_of_stream() |
4689 | + { |
4690 | + return sigs.end_of_stream; |
4691 | + } |
4692 | + |
4693 | + core::Signal<core::ubuntu::media::video::Dimensions>& video_dimension_changed() |
4694 | + { |
4695 | + return sigs.video_dimension_changed; |
4696 | + } |
4697 | + |
4698 | + const core::Signal<Error>& error() const |
4699 | + { |
4700 | + return sigs.error; |
4701 | + } |
4702 | + |
4703 | + core::Signal<Error>& error() |
4704 | + { |
4705 | + return sigs.error; |
4706 | + } |
4707 | + |
4708 | + core::Signal<void>& about_to_finish() |
4709 | + { |
4710 | + return sigs.about_to_finish; |
4711 | + } |
4712 | + |
4713 | + struct |
4714 | + { |
4715 | + core::Property<Lifetime> lifetime; |
4716 | + core::Property<bool> can_play; |
4717 | + core::Property<bool> can_pause; |
4718 | + core::Property<bool> can_seek; |
4719 | + core::Property<bool> can_go_previous; |
4720 | + core::Property<bool> can_go_next; |
4721 | + core::Property<bool> is_video_source; |
4722 | + core::Property<bool> is_audio_source; |
4723 | + core::Property<PlaybackStatus> playback_status; |
4724 | + core::Property<LoopStatus> loop_status; |
4725 | + core::Property<PlaybackRate> playback_rate; |
4726 | + core::Property<bool> is_shuffle; |
4727 | + core::Property<core::ubuntu::media::Track::MetaData> meta_data_for_current_track; |
4728 | + core::Property<Volume> volume; |
4729 | + core::Property<PlaybackRate> minimum_playback_rate; |
4730 | + core::Property<PlaybackRate> maximum_playback_rate; |
4731 | + core::Property<int64_t> position; |
4732 | + core::Property<int64_t> duration; |
4733 | + core::Property<AudioStreamRole> audio_stream_role; |
4734 | + core::Property<Orientation> orientation; |
4735 | + } properties; |
4736 | + |
4737 | + struct |
4738 | + { |
4739 | + core::Signal<int64_t> seeked_to; |
4740 | + core::Signal<void> end_of_stream; |
4741 | + core::Signal<PlaybackStatus> playback_status_changed; |
4742 | + core::Signal<core::ubuntu::media::video::Dimensions> video_dimension_changed; |
4743 | + core::Signal<Error> error; |
4744 | + core::Signal<void> about_to_finish; |
4745 | + } sigs; |
4746 | +}; |
4747 | +} |
4748 | +} |
4749 | +} |
4750 | +#endif // CORE_UBUNTU_MEDIA_PLAYER_BASE_H_ |
4751 | |
4752 | === modified file 'src/core/media/player_implementation.cpp' |
4753 | --- src/core/media/player_implementation.cpp 2015-04-17 14:35:22 +0000 |
4754 | +++ src/core/media/player_implementation.cpp 2015-04-17 14:35:22 +0000 |
4755 | @@ -36,8 +36,6 @@ |
4756 | namespace media = core::ubuntu::media; |
4757 | namespace dbus = core::dbus; |
4758 | |
4759 | -using namespace std; |
4760 | - |
4761 | template<typename Parent> |
4762 | struct media::PlayerImplementation<Parent>::Private : |
4763 | public std::enable_shared_from_this<Private> |
4764 | @@ -204,7 +202,7 @@ |
4765 | |
4766 | void clear_wakelock(const wakelock_clear_t &wakelock) |
4767 | { |
4768 | - cout << __PRETTY_FUNCTION__ << endl; |
4769 | + std::cout << __PRETTY_FUNCTION__ << std::endl; |
4770 | try |
4771 | { |
4772 | switch (wakelock) |
4773 | @@ -229,7 +227,7 @@ |
4774 | break; |
4775 | case wakelock_clear_t::WAKELOCK_CLEAR_INVALID: |
4776 | default: |
4777 | - cerr << "Can't clear invalid wakelock type" << endl; |
4778 | + std::cerr << "Can't clear invalid wakelock type" << std::endl; |
4779 | } |
4780 | } |
4781 | catch(const std::exception& e) |
4782 | @@ -274,11 +272,6 @@ |
4783 | }; |
4784 | } |
4785 | |
4786 | - void on_client_died() |
4787 | - { |
4788 | - config.engine->reset(); |
4789 | - } |
4790 | - |
4791 | // Our link back to our parent. |
4792 | media::PlayerImplementation<Parent>* parent; |
4793 | // We just store the parameters passed on construction. |
4794 | @@ -420,11 +413,11 @@ |
4795 | return; |
4796 | |
4797 | static const std::chrono::milliseconds timeout{1000}; |
4798 | - media::timeout(timeout.count(), true, [wp]() |
4799 | + |
4800 | + media::timeout(timeout.count(), true, [](const std::shared_ptr<media::Engine>& engine) |
4801 | { |
4802 | - if (auto sp = wp.lock()) |
4803 | - sp->on_client_died(); |
4804 | - }); |
4805 | + engine->reset(); |
4806 | + }, sp->config.engine); |
4807 | } |
4808 | }); |
4809 | } |
4810 | @@ -538,8 +531,3 @@ |
4811 | { |
4812 | Parent::playback_status_changed()(status); |
4813 | } |
4814 | - |
4815 | -#include <core/media/player_skeleton.h> |
4816 | - |
4817 | -// For linking purposes, we have to make sure that we have all symbols included within the dso. |
4818 | -template class media::PlayerImplementation<media::PlayerSkeleton>; |
4819 | |
4820 | === modified file 'src/core/media/player_implementation.h' |
4821 | --- src/core/media/player_implementation.h 2015-04-17 14:35:22 +0000 |
4822 | +++ src/core/media/player_implementation.h 2015-04-17 14:35:22 +0000 |
4823 | @@ -84,5 +84,8 @@ |
4824 | } |
4825 | } |
4826 | } |
4827 | + |
4828 | +#include "player_implementation.cpp" |
4829 | + |
4830 | #endif // CORE_UBUNTU_MEDIA_PLAYER_IMPLEMENTATION_H_ |
4831 | |
4832 | |
4833 | === modified file 'src/core/media/player_skeleton.cpp' |
4834 | --- src/core/media/player_skeleton.cpp 2015-03-11 16:17:23 +0000 |
4835 | +++ src/core/media/player_skeleton.cpp 2015-04-17 14:35:22 +0000 |
4836 | @@ -23,7 +23,7 @@ |
4837 | #include "player_skeleton.h" |
4838 | #include "player_traits.h" |
4839 | #include "property_stub.h" |
4840 | -#include "the_session_bus.h" |
4841 | + |
4842 | #include "xesam.h" |
4843 | |
4844 | #include "apparmor/ubuntu.h" |
4845 | @@ -54,7 +54,7 @@ |
4846 | object(session), |
4847 | request_context_resolver{request_context_resolver}, |
4848 | request_authenticator{request_authenticator}, |
4849 | - skeleton{mpris::Player::Skeleton::Configuration{bus, session, mpris::Player::Skeleton::Configuration::Defaults{}}}, |
4850 | + skeleton{mpris::Player::Skeleton::Configuration{bus, session, mpris::Player::Defaults{}}}, |
4851 | signals |
4852 | { |
4853 | skeleton.signals.seeked_to, |
4854 | @@ -179,10 +179,16 @@ |
4855 | Track::UriType uri; |
4856 | in->reader() >> uri; |
4857 | |
4858 | - auto result = request_authenticator->authenticate_open_uri_request(context, uri); |
4859 | - |
4860 | auto reply = dbus::Message::make_method_return(in); |
4861 | - reply->writer() << (std::get<0>(result) ? impl->open_uri(uri) : false); |
4862 | + |
4863 | + try |
4864 | + { |
4865 | + auto result = request_authenticator->authenticate_open_uri_request(context, uri); |
4866 | + reply->writer() << (std::get<0>(result) ? impl->open_uri(uri) : false); |
4867 | + } catch(...) |
4868 | + { |
4869 | + reply->writer() << false; |
4870 | + } |
4871 | |
4872 | bus->send(reply); |
4873 | }); |
4874 | @@ -197,9 +203,16 @@ |
4875 | |
4876 | in->reader() >> uri >> headers; |
4877 | |
4878 | - auto result = request_authenticator->authenticate_open_uri_request(context, uri); |
4879 | auto reply = dbus::Message::make_method_return(in); |
4880 | - reply->writer() << (std::get<0>(result) ? impl->open_uri(uri, headers) : false); |
4881 | + |
4882 | + try |
4883 | + { |
4884 | + auto result = request_authenticator->authenticate_open_uri_request(context, uri); |
4885 | + reply->writer() << (std::get<0>(result) ? impl->open_uri(uri, headers) : false); |
4886 | + } catch(...) |
4887 | + { |
4888 | + reply->writer() << false; |
4889 | + } |
4890 | |
4891 | bus->send(reply); |
4892 | }); |
4893 | |
4894 | === modified file 'src/core/media/player_stub.cpp' |
4895 | --- src/core/media/player_stub.cpp 2015-03-16 14:54:47 +0000 |
4896 | +++ src/core/media/player_stub.cpp 2015-04-17 14:35:22 +0000 |
4897 | @@ -42,45 +42,41 @@ |
4898 | |
4899 | struct media::PlayerStub::Private |
4900 | { |
4901 | - Private(const std::shared_ptr<Service>& parent, |
4902 | - const std::shared_ptr<core::dbus::Object>& object |
4903 | - ) : parent(parent), |
4904 | - object(object), |
4905 | - key(object->invoke_method_synchronously<mpris::Player::Key, media::Player::PlayerKey>().value()), |
4906 | - sink_factory(media::video::make_platform_default_sink_factory(key)), |
4907 | + Private(const media::PlayerStub::Configuration& config) |
4908 | + : configuration(config), |
4909 | properties |
4910 | { |
4911 | // Link the properties from the server side to the client side over the bus |
4912 | - object->get_property<mpris::Player::Properties::CanPlay>(), |
4913 | - object->get_property<mpris::Player::Properties::CanPause>(), |
4914 | - object->get_property<mpris::Player::Properties::CanSeek>(), |
4915 | - object->get_property<mpris::Player::Properties::CanControl>(), |
4916 | - object->get_property<mpris::Player::Properties::CanGoNext>(), |
4917 | - object->get_property<mpris::Player::Properties::CanGoPrevious>(), |
4918 | - object->get_property<mpris::Player::Properties::IsVideoSource>(), |
4919 | - object->get_property<mpris::Player::Properties::IsAudioSource>(), |
4920 | - object->get_property<mpris::Player::Properties::TypedPlaybackStatus>(), |
4921 | - object->get_property<mpris::Player::Properties::TypedLoopStatus>(), |
4922 | - object->get_property<mpris::Player::Properties::PlaybackRate>(), |
4923 | - object->get_property<mpris::Player::Properties::Shuffle>(), |
4924 | - object->get_property<mpris::Player::Properties::TypedMetaData>(), |
4925 | - object->get_property<mpris::Player::Properties::Volume>(), |
4926 | - object->get_property<mpris::Player::Properties::Position>(), |
4927 | - object->get_property<mpris::Player::Properties::Duration>(), |
4928 | - object->get_property<mpris::Player::Properties::AudioStreamRole>(), |
4929 | - object->get_property<mpris::Player::Properties::Orientation>(), |
4930 | - object->get_property<mpris::Player::Properties::Lifetime>(), |
4931 | - object->get_property<mpris::Player::Properties::MinimumRate>(), |
4932 | - object->get_property<mpris::Player::Properties::MaximumRate>() |
4933 | + configuration.object->get_property<mpris::Player::Properties::CanPlay>(), |
4934 | + configuration.object->get_property<mpris::Player::Properties::CanPause>(), |
4935 | + configuration.object->get_property<mpris::Player::Properties::CanSeek>(), |
4936 | + configuration.object->get_property<mpris::Player::Properties::CanControl>(), |
4937 | + configuration.object->get_property<mpris::Player::Properties::CanGoNext>(), |
4938 | + configuration.object->get_property<mpris::Player::Properties::CanGoPrevious>(), |
4939 | + configuration.object->get_property<mpris::Player::Properties::IsVideoSource>(), |
4940 | + configuration.object->get_property<mpris::Player::Properties::IsAudioSource>(), |
4941 | + configuration.object->get_property<mpris::Player::Properties::TypedPlaybackStatus>(), |
4942 | + configuration.object->get_property<mpris::Player::Properties::TypedLoopStatus>(), |
4943 | + configuration.object->get_property<mpris::Player::Properties::PlaybackRate>(), |
4944 | + configuration.object->get_property<mpris::Player::Properties::Shuffle>(), |
4945 | + configuration.object->get_property<mpris::Player::Properties::TypedMetaData>(), |
4946 | + configuration.object->get_property<mpris::Player::Properties::Volume>(), |
4947 | + configuration.object->get_property<mpris::Player::Properties::Position>(), |
4948 | + configuration.object->get_property<mpris::Player::Properties::Duration>(), |
4949 | + configuration.object->get_property<mpris::Player::Properties::AudioStreamRole>(), |
4950 | + configuration.object->get_property<mpris::Player::Properties::Orientation>(), |
4951 | + configuration.object->get_property<mpris::Player::Properties::Lifetime>(), |
4952 | + configuration.object->get_property<mpris::Player::Properties::MinimumRate>(), |
4953 | + configuration.object->get_property<mpris::Player::Properties::MaximumRate>() |
4954 | }, |
4955 | signals |
4956 | { |
4957 | - object->get_signal<mpris::Player::Signals::Seeked>(), |
4958 | - object->get_signal<mpris::Player::Signals::AboutToFinish>(), |
4959 | - object->get_signal<mpris::Player::Signals::EndOfStream>(), |
4960 | - object->get_signal<mpris::Player::Signals::PlaybackStatusChanged>(), |
4961 | - object->get_signal<mpris::Player::Signals::VideoDimensionChanged>(), |
4962 | - object->get_signal<mpris::Player::Signals::Error>() |
4963 | + configuration.object->get_signal<mpris::Player::Signals::Seeked>(), |
4964 | + configuration.object->get_signal<mpris::Player::Signals::AboutToFinish>(), |
4965 | + configuration.object->get_signal<mpris::Player::Signals::EndOfStream>(), |
4966 | + configuration.object->get_signal<mpris::Player::Signals::PlaybackStatusChanged>(), |
4967 | + configuration.object->get_signal<mpris::Player::Signals::VideoDimensionChanged>(), |
4968 | + configuration.object->get_signal<mpris::Player::Signals::Error>() |
4969 | } |
4970 | { |
4971 | } |
4972 | @@ -89,11 +85,9 @@ |
4973 | { |
4974 | } |
4975 | |
4976 | - std::shared_ptr<Service> parent; |
4977 | + media::PlayerStub::Configuration configuration; |
4978 | std::shared_ptr<TrackList> track_list; |
4979 | - dbus::Object::Ptr object; |
4980 | - media::Player::PlayerKey key; |
4981 | - media::video::SinkFactory sink_factory; |
4982 | + |
4983 | struct |
4984 | { |
4985 | std::shared_ptr<core::dbus::Property<mpris::Player::Properties::CanPlay>> can_play; |
4986 | @@ -207,10 +201,7 @@ |
4987 | } signals; |
4988 | }; |
4989 | |
4990 | -media::PlayerStub::PlayerStub( |
4991 | - const std::shared_ptr<Service>& parent, |
4992 | - const std::shared_ptr<core::dbus::Object>& object) |
4993 | - : d(new Private{parent, object}) |
4994 | +media::PlayerStub::PlayerStub(const media::PlayerStub::Configuration& config) : d(new Private{config}) |
4995 | { |
4996 | } |
4997 | |
4998 | @@ -224,19 +215,19 @@ |
4999 | { |
5000 | d->track_list = std::make_shared<media::TrackListStub>( |
FAILED: Continuous integration, rev:120 jenkins. qa.ubuntu. com/job/ media-hub- ci/300/ jenkins. qa.ubuntu. com/job/ media-hub- vivid-amd64- ci/140/ console jenkins. qa.ubuntu. com/job/ media-hub- vivid-armhf- ci/140/ console jenkins. qa.ubuntu. com/job/ media-hub- vivid-i386- ci/140/ console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/media- hub-ci/ 300/rebuild
http://