From 21f8df2432a5361dbdf6126887d28d8180c59c50 Mon Sep 17 00:00:00 2001 From: "keonho07.kim" Date: Fri, 12 Apr 2013 01:26:11 +0900 Subject: [PATCH] Scenario of media volume control should be changed during sound is playing. [Title] Scenario of media volume control should be changed during sound is playing. [Problem] https://tizendev.org/bugs/browse/DCM-1102 [Cause] avsysaudiosink is open to close device when it is transfer READY -> PAUSE. [Solution] Set property of avsysaudiosink element "close-handle-on-prepare" == 1 Change-Id: I8872b1418ebbedb9a24101797def99a0d82da977 --- .../platform/audio/gstreamer/AudioDestinationGStreamer.cpp | 12 ++++++++++++ .../graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp | 6 ++++++ 2 files changed, 18 insertions(+) mode change 100644 => 100755 Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp diff --git a/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp b/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp old mode 100644 new mode 100755 index 9df5401..1f126cf --- a/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp +++ b/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp @@ -180,6 +180,17 @@ void AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady(Gst { ASSERT(m_wavParserAvailable); +#if ENABLE(TIZEN_GSTREAMER_AUDIO) + GRefPtr audioSink = adoptGRef(gst_element_factory_make("avsysaudiosink", 0)); + m_audioSinkAvailable = audioSink; + g_object_set(audioSink.get(), "close-handle-on-prepare", 1, NULL); + + if (!audioSink.get()) { + TIZEN_LOGE("GST_MESSAGE_ERROR : Failed to create GStreamer avsysaudiosink element"); + LOG_ERROR("Failed to create GStreamer avsysaudiosink element"); + return; + } +#else GRefPtr audioSink = gst_element_factory_make("autoaudiosink", 0); m_audioSinkAvailable = audioSink; @@ -204,6 +215,7 @@ void AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady(Gst m_audioSinkAvailable = false; return; } +#endif GstElement* audioConvert = gst_element_factory_make("audioconvert", 0); gst_bin_add_many(GST_BIN(m_pipeline), audioConvert, audioSink.get(), NULL); diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp index 808ab1b..4f373d8 100755 --- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp @@ -2269,7 +2269,13 @@ void MediaPlayerPrivateGStreamer::createGSTPlayBin() m_audioSessionManager->registerAudioSessionManager(MM_SESSION_TYPE_SHARE, mediaPlayerPrivateAudioSessionNotifyCallback, player()); #endif +#if ENABLE(TIZEN_GSTREAMER_AUDIO) + GstElement* realSink = gst_element_factory_make("avsysaudiosink", 0); + g_object_set(realSink, "close-handle-on-prepare", 1, NULL); + g_object_set(m_playBin.get(), "audio-sink", realSink, NULL); +#else createAudioSink(); +#endif } #if ENABLE(TIZEN_ACCELERATED_COMPOSITING) && USE(TIZEN_TEXTURE_MAPPER) -- 2.7.4