I'm just think on a way to maybe avoid that this gst 1.0 bug does not leads to a wrong unlock mutex attempt.
Re: GStreamer 1.0 #661
Re: GStreamer 1.0 #662
Posted 12 March 2015 - 21:45
Try this
diff --git a/gstdvbaudiosink.c b/gstdvbaudiosink.c index 2725def..70b783c 100644 --- a/gstdvbaudiosink.c +++ b/gstdvbaudiosink.c @@ -797,6 +797,7 @@ static gboolean gst_dvbaudiosink_event(GstBaseSink *sink, GstEvent *event) break; case GST_EVENT_EOS: { + gboolean pass_eos = FALSE; struct pollfd pfd[2]; pfd[0].fd = self->unlockfd[0]; pfd[0].events = POLLIN; @@ -828,7 +829,7 @@ static gboolean gst_dvbaudiosink_event(GstBaseSink *sink, GstEvent *event) if (pfd[1].revents & POLLIN) { GST_DEBUG_OBJECT(self, "got buffer empty from driver!\n"); - ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); + pass_eos = TRUE; break; } @@ -844,6 +845,8 @@ static gboolean gst_dvbaudiosink_event(GstBaseSink *sink, GstEvent *event) #else GST_BASE_SINK_PREROLL_LOCK(sink); #endif + if (pass_eos) + ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); break; }
Re: GStreamer 1.0 #663
Re: GStreamer 1.0 #664
Posted 13 March 2015 - 08:10
Hmm thats wierd, because it looks to me clear what is happening:
We are not helding PREROLL_LOCK, while passing EOS to basesink event handler, since we called before GST_BASE_SINK_PREROLL_UNLOCK.
Then basesink does according to log this(not fixed version + added debug messages):
root@et4x00:/var/volatile/tmp# gst-launch-1.0 --gst-debug basesink:6,dvbaudiosink:5 playbin uri='file:///home/root/Front_Right.wav' 0:00:03.649135479 1103 0x507380 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> EVENT eos 0:00:03.650607442 1103 0x507380 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> PRE - GST_BASE_SINK_PREROLL_UNLOCK!! 0:00:03.652081331 1103 0x507380 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> POST - GST_BASE_SINK_PREROLL_UNLOCK!! 0:00:03.653453738 1103 0x507380 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> got buffer empty from driver! 0:00:03.654772887 1103 0x507380 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> PRE - SEND EOS EVENT TO BASESINK 0:00:03.655821220 1103 0x507380 DEBUG basesink :gst_base_sink_get_sync_times:<audiosink-actual-sink-dvbaudio> sync times for EOS 0:00:01.530687500 0:00:03.657828442 1103 0x507380 LOG basesink :gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> avg frame diff 0:00:00.042002603 0:00:03.659519775 1103 0x507380 DEBUG basesink :gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> reset rc_time to time 0:00:01.530687500 0:00:03.660821627 1103 0x507380 DEBUG basesink :gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> possibly waiting for clock to reach 0:00:01.530687500, adjusted 0:00:01.530687500 0:00:03.662318405 1103 0x507380 LOG basesink :gst_base_sink_wait_clock:<audiosink-actual-sink-dvbaudio> time 0:00:01.530687500, base_time 9:44:30.172565429 Attempt to unlock mutex that was not locked
Last function which is called is gst_base_sink_wait_clock: http://cgit.freedesk...e/gstbasesink.c - 2028 line
/** * gst_base_sink_wait_clock: * @sink: the sink * @time: the running_time to be reached * @jitter: (out) (allow-none): the jitter to be filled with time diff, or %NULL * ........ ........ * * This function should only be called with the PREROLL_LOCK held, like when * receiving an EOS event in the #GstBaseSinkClass.event() vmethod or when * receiving a buffer in * the #GstBaseSinkClass.render() vmethod. ........ ........ * * Returns: #GstClockReturn */
We are not helding PREROLL_LOCK(same in dvbvideosink) and it tries to unlock it - line 2101, resulting in Attempt to unlock mutex that was not locked.
with flac/mp3 it works because sync is disabled:
root@et4x00:/var/volatile/tmp# gst-launch-1.0 --gst-debug basesink:6,dvbaudiosink:5 playbin uri='file:///home/root/Front_Right.flac' 0:00:02.424767554 1111 0x506920 DEBUG basesink :gst_base_sink_do_sync:<dvbaudiosink0> reset rc_time to time 0:00:01.530687500 0:00:02.426053739 1111 0x506920 DEBUG basesink :gst_base_sink_do_sync:<dvbaudiosink0> possibly waiting for clock to reach 0:00:01.530687500, adjusted 0:00:01.530687500 0:00:02.432915924 1111 0x506920 DEBUG basesink :gst_base_sink_wait_clock:<dvbaudiosink0> sync disabled
meaning it skips unlocking already unlocked lock by jumping to no_sync label - line 2116
working version + debug messages:
root@et4x00:/var/volatile/tmp# gst-launch-1.0 --gst-debug basesink:6,dvbaudiosink:5 playbin uri='file:///home/root/Front_Right.wav' 0:00:04.436699627 1131 0x56ed80 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> got buffer empty from driver! 0:00:04.438271998 1131 0x56ed80 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> PRE - GST_BASE_SINK_PREROLL_LOCK 0:00:04.438806294 1131 0x56ed80 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> POST - GST_BASE_SINK_PREROLL_LOCK!! 0:00:04.440364849 1131 0x56ed80 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> PRE - SEND EOS EVENT TO BASESINK 0:00:04.441792183 1131 0x56ed80 DEBUG basesink :gst_base_sink_get_sync_times:<audiosink-actual-sink-dvbaudio> sync times for EOS 0:00:01.530687500 0:00:04.443017109 1131 0x56ed80 LOG basesink :gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> avg frame diff 0:00:00.042002603 0:00:04.444214405 1131 0x56ed80 DEBUG basesink :gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> reset rc_time to time 0:00:01.530687500 0:00:04.445229405 1131 0x56ed80 DEBUG basesink :gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> possibly waiting for clock to reach 0:00:01.530687500, adjusted 0:00:01.530687500 0:00:04.446589590 1131 0x56ed80 LOG basesink :gst_base_sink_wait_clock:<audiosink-actual-sink-dvbaudio> time 0:00:01.530687500, base_time 10:22:59.807729349 0:00:04.457691109 1131 0x56ed80 DEBUG basesink :gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> clock returned 0, jitter -0:00:00.008846501 0:00:04.459115738 1131 0x56ed80 DEBUG basesink :gst_base_sink_is_too_late:<audiosink-actual-sink-dvbaudio> object was scheduled in time 0:00:04.460449590 1131 0x56ed80 DEBUG basesink :gst_base_sink_default_event:<audiosink-actual-sink-dvbaudio> Now posting EOS 0:00:04.461767849 1131 0x56ed80 DEBUG basesink :gst_base_sink_default_event:<audiosink-actual-sink-dvbaudio> Got seqnum #164 Got EOS from element "playbin0". Execution ended after 0:00:01.466254147 0:00:04.467600516 1131 0x56ed80 DEBUG dvbaudiosink :gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> POST - SEND EOS EVENT TO BASESINK Setting pipeline to PAUSED ... 0:00:04.472165368 1131 0x57e180 DEBUG basesink :gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> PLAYING to PAUSED 0:00:04.473988998 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_unlock:<audiosink-actual-sink-dvbaudio> unlock 0:00:04.476396627 1131 0x57e180 DEBUG basesink :gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> got preroll lock 0:00:04.478303590 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_unlock_stop:<audiosink-actual-sink-dvbaudio> unlock_stop 0:00:04.479618701 1131 0x57e180 DEBUG basesink :gst_base_sink_needs_preroll:<audiosink-actual-sink-dvbaudio> have_preroll: 0, EOS: 1 => needs preroll: 0 0:00:04.481205812 1131 0x57e180 DEBUG basesink :gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> PLAYING to PAUSED, we are prerolled 0:00:04.482523701 1131 0x57e180 DEBUG basesink :gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> rendered: 36, dropped: 0 0:00:04.484027442 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_change_state:<audiosink-actual-sink-dvbaudio> GST_STATE_CHANGE_PLAYING_TO_PAUSED Setting pipeline to READY ... 0:00:04.581402146 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_unlock:<audiosink-actual-sink-dvbaudio> unlock 0:00:04.582567886 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_unlock_stop:<audiosink-actual-sink-dvbaudio> unlock_stop 0:00:04.584013923 1131 0x57e180 DEBUG basesink :gst_base_sink_set_flushing:<audiosink-actual-sink-dvbaudio> flushing out data thread, need preroll to TRUE 0:00:04.585789146 1131 0x57e180 DEBUG basesink :gst_base_sink_set_last_buffer_unlocked:<audiosink-actual-sink-dvbaudio> setting last buffer to (nil) 0:00:04.587397294 1131 0x57e180 DEBUG basesink :gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> PAUSED to READY, don't need_preroll 0:00:04.588579923 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_change_state:<audiosink-actual-sink-dvbaudio> GST_STATE_CHANGE_PAUSED_TO_READY 0:00:04.608949368 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_stop:<audiosink-actual-sink-dvbaudio> stop 0:00:04.639208664 1131 0x57e180 DEBUG dvbaudiosink :gst_dvbaudiosink_change_state:<audiosink-actual-sink-dvbaudio> GST_STATE_CHANGE_READY_TO_NULL Setting pipeline to NULL ... Freeing pipeline ...
Can you try to apply this patch and post debug output?
Attached Files
Edited by mx3L, 13 March 2015 - 08:13.
Re: GStreamer 1.0 #665
Posted 13 March 2015 - 08:33
With patch still same issue and it still crashes when running out of enigma2
root@vuduo2:/media/VIDAUD# gst-launch-1.0 playbin uri=file:///media/VIDAUD/Front_Right.wav Setting pipeline to PAUSED ... Pipeline is PREROLLING ... WARNING: from element /GstPlayBin:playbin0/GstPlaySink:playsink: No volume control found Additional debug info: /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0-plugins-base/1.4.5-r0/gst-plugins-base-1.4.5/gst/playback/gstplaysink.c(2862): gen_audio_chain (): /GstPlayBin:playbin0/GstPlaySink:playsink: Volume/mute is not available WARNING: from element /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstDVBAudioSink:audiosink-actual-sink-dvbaudio: Internal data flow problem. Additional debug info: /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c(3307): gst_base_sink_chain_unlocked (): /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstDVBAudioSink:audiosink-actual-sink-dvbaudio: Received buffer without a new-segment. Assuming timestamps start from 0. Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Attempt to unlock mutex that was not locked Aborted
Edited by christophecvr, 13 March 2015 - 08:36.
Re: GStreamer 1.0 #666
Re: GStreamer 1.0 #667
Posted 13 March 2015 - 08:44
An here with debug Note the Got buffer from empty driver
0:00:01.932178480 3580 0x75802f20 LOG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2435:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> avg frame diff 0:00:00.042666666 0:00:01.932344628 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2475:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> reset rc_time to time 0:00:01.493333334 0:00:01.932488258 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2487:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> possibly waiting for clock to reach 0:00:01.493333334, adjusted 0:00:01.493333334 0:00:01.932721073 3580 0x75802f20 LOG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2073:gst_base_sink_wait_clock:<audiosink-actual-sink-dvbaudio> time 0:00:01.493333334, base_time 63:52:59.812238488 0:00:01.973258110 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2494:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> clock returned 0, jitter -0:00:00.040204558 0:00:01.973609036 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2813:gst_base_sink_is_too_late:<audiosink-actual-sink-dvbaudio> object was scheduled in time 0:00:01.973762850 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3416:gst_base_sink_chain_unlocked:<audiosink-actual-sink-dvbaudio> rendering object 0x4a0500 0:00:01.973904887 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:936:gst_base_sink_set_last_buffer_unlocked:<audiosink-actual-sink-dvbaudio> setting last buffer to 0x4a0500 0:00:01.974458924 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3455:gst_base_sink_chain_unlocked:<audiosink-actual-sink-dvbaudio> object unref after render 0x4a0500 0:00:01.974867850 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3162:gst_base_sink_event:<audiosink-actual-sink-dvbaudio> received event 0x75844820 eos event: 0x75844820, time 99:99:99.999999999, seq-num 164, (NULL) 0:00:01.975034961 3580 0x75802f20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:773:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> EVENT eos 0:00:05.230674256 3580 0x75802f20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:834:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> got buffer empty from driver! 0:00:05.230821700 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:1854:gst_base_sink_get_sync_times:<audiosink-actual-sink-dvbaudio> sync times for EOS 0:00:01.530687500 0:00:05.230976219 3580 0x75802f20 LOG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2435:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> avg frame diff 0:00:00.042002603 0:00:05.231078256 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2475:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> reset rc_time to time 0:00:01.530687500 0:00:05.231141219 3580 0x75802f20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2487:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> possibly waiting for clock to reach 0:00:01.530687500, adjusted 0:00:01.530687500 0:00:05.231221145 3580 0x75802f20 LOG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2073:gst_base_sink_wait_clock:<audiosink-actual-sink-dvbaudio> time 0:00:01.530687500, base_time 63:52:59.812238488 Attempt to unlock mutex that was not locked Aborted
Re: GStreamer 1.0 #668
Re: GStreamer 1.0 #669
Posted 13 March 2015 - 09:04
I'm doing it this way:
1. create folder gstreamer1.0-plugin-dvbmediasink in recipes-multimedia/gstreamer/
2. put 0001-test_wav_debug_fixed.patch to recipes-multimedia/gstreamer/gstreamer1.0-plugin-dvbmediasink
3 update gstreamer1.0-plugin-dvbmediasink.bbappend in recipes-multimedia/gstreamer/:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" SRC_URI += "file://0001-test_wav_debug_fixed.patch" PR="r1"
4. ~/git/openpli-oe-core/build $ MACHINE=et4x00 bitbake gstreamer1.0-plugin-dvbmediasink
5. ftp gstreamer1.0-plugin-dvbmediasink*.ipk from ~/git/openpli-oe-core/build/tmp/deploy/ipk/et4x00/ to box
6. opkg install gstreamer1.0-plugin-dvbmediasink*.ipk
Re: GStreamer 1.0 #670
Posted 13 March 2015 - 09:11
Hmm but output is missing my debug messages, make sure you applied patch correctly.
Yes sorry I accidentally resaved my work.c file after I rerun patch and before I rebuild
It work's also out of enigma2(no crash anymore )
0:00:13.660484511 5297 0x75002b20 LOG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2073:gst_base_sink_wait_clock:<audiosink-actual-sink-dvbaudio> time 0:00:01.493333334, base_time 64:19:37.224614074 0:00:13.700412029 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2494:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> clock returned 0, jitter -0:00:00.039550409 0:00:13.700562548 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2813:gst_base_sink_is_too_late:<audiosink-actual-sink-dvbaudio> object was scheduled in time 0:00:13.700682881 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3416:gst_base_sink_chain_unlocked:<audiosink-actual-sink-dvbaudio> rendering object 0x49fd08 0:00:13.700798955 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:936:gst_base_sink_set_last_buffer_unlocked:<audiosink-actual-sink-dvbaudio> setting last buffer to 0x49fd08 0:00:13.701518696 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3455:gst_base_sink_chain_unlocked:<audiosink-actual-sink-dvbaudio> object unref after render 0x49fd08 0:00:13.701990918 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3162:gst_base_sink_event:<audiosink-actual-sink-dvbaudio> received event 0x75044410 eos event: 0x75044410, time 99:99:99.999999999, seq-num 164, (NULL) 0:00:13.702166585 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:769:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> EVENT eos 0:00:13.702324992 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:807:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> PRE - GST_BASE_SINK_PREROLL_UNLOCK!! 0:00:13.702550548 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:813:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> POST - GST_BASE_SINK_PREROLL_UNLOCK!! 0:00:16.958503657 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:833:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> got buffer empty from driver! 0:00:16.958645324 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:845:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> PRE - GST_BASE_SINK_PREROLL_LOCK 0:00:16.958743583 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:851:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> POST - GST_BASE_SINK_PREROLL_LOCK!! 0:00:16.958817509 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:854:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> PRE - SEND EOS EVENT TO BASESINK 0:00:16.958880213 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:1854:gst_base_sink_get_sync_times:<audiosink-actual-sink-dvbaudio> sync times for EOS 0:00:01.530687500 0:00:16.958953620 5297 0x75002b20 LOG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2435:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> avg frame diff 0:00:00.042002603 0:00:16.959020953 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2475:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> reset rc_time to time 0:00:01.530687500 0:00:16.959081731 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2487:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> possibly waiting for clock to reach 0:00:01.530687500, adjusted 0:00:01.530687500 0:00:16.959175583 5297 0x75002b20 LOG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2073:gst_base_sink_wait_clock:<audiosink-actual-sink-dvbaudio> time 0:00:01.530687500, base_time 64:19:37.224614074 0:00:16.959271101 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2494:gst_base_sink_do_sync:<audiosink-actual-sink-dvbaudio> clock returned 1, jitter 0:00:03.221660608 0:00:16.959408731 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:2818:gst_base_sink_is_too_late:<audiosink-actual-sink-dvbaudio> frame dropping disabled 0:00:16.959462398 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3039:gst_base_sink_default_event:<audiosink-actual-sink-dvbaudio> Now posting EOS 0:00:16.959513064 5297 0x75002b20 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3042:gst_base_sink_default_event:<audiosink-actual-sink-dvbaudio> Got seqnum #164 0:00:16.959706694 5297 0x75002b20 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:856:gst_dvbaudiosink_event:<audiosink-actual-sink-dvbaudio> POST - SEND EOS EVENT TO BASESINK Got EOS from element "playbin0". Execution ended after 0:00:04.741189219 Setting pipeline to PAUSED ... 0:00:16.960776805 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:4996:gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> PLAYING to PAUSED 0:00:16.960895916 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:347:gst_dvbaudiosink_unlock:<audiosink-actual-sink-dvbaudio> unlock 0:00:16.960950694 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:5005:gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> got preroll lock 0:00:16.960998879 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:355:gst_dvbaudiosink_unlock_stop:<audiosink-actual-sink-dvbaudio> unlock_stop 0:00:16.961042879 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:3251:gst_base_sink_needs_preroll:<audiosink-actual-sink-dvbaudio> have_preroll: 0, EOS: 1 => needs preroll: 0 0:00:16.961103916 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:5023:gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> PLAYING to PAUSED, we are prerolled 0:00:16.961149990 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:5044:gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> rendered: 36, dropped: 0 0:00:16.961208583 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:1552:gst_dvbaudiosink_change_state:<audiosink-actual-sink-dvbaudio> GST_STATE_CHANGE_PLAYING_TO_PAUSED Setting pipeline to READY ... 0:00:16.966038657 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:347:gst_dvbaudiosink_unlock:<audiosink-actual-sink-dvbaudio> unlock 0:00:16.966164842 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:355:gst_dvbaudiosink_unlock_stop:<audiosink-actual-sink-dvbaudio> unlock_stop 0:00:16.966275509 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:4026:gst_base_sink_set_flushing:<audiosink-actual-sink-dvbaudio> flushing out data thread, need preroll to TRUE 0:00:16.966710435 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:936:gst_base_sink_set_last_buffer_unlocked:<audiosink-actual-sink-dvbaudio> setting last buffer to (nil) 0:00:16.966915842 5297 0x583140 DEBUG basesink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/mips32el-oe-linux/gstreamer1.0/1.4.5-r0/gstreamer-1.4.5/libs/gst/base/gstbasesink.c:5083:gst_base_sink_change_state:<audiosink-actual-sink-dvbaudio> PAUSED to READY, don't need_preroll 0:00:16.967038250 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:1559:gst_dvbaudiosink_change_state:<audiosink-actual-sink-dvbaudio> GST_STATE_CHANGE_PAUSED_TO_READY 0:00:16.970530657 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:1455:gst_dvbaudiosink_stop:<audiosink-actual-sink-dvbaudio> stop 0:00:17.003396916 5297 0x583140 DEBUG dvbaudiosink /home/christophe/openpli40-gst1/openpli-oe-core/build/tmp/work/vuduo2-oe-linux/gstreamer1.0-plugin-dvbmediasink/1.0+gitAUTOINC+50b7e19bfb-r0/git/gstdvbaudiosink.c:1562:gst_dvbaudiosink_change_state:<audiosink-actual-sink-dvbaudio> GST_STATE_CHANGE_READY_TO_NULL Setting pipeline to NULL ... Freeing pipeline ...
Re: GStreamer 1.0 #671
Re: GStreamer 1.0 #672
Re: GStreamer 1.0 #673
Re: GStreamer 1.0 #674
Posted 14 March 2015 - 13:10
Here a new dvbmediasink patch combined patch.
It contains the prerol patch from mx3L and vuplus adds off me..
It is ready for trunk dvbmediasink gst-1.0.
For the standard pli boxes nothing changes. It's like before.
For the vuplus boxes, You need to add --with-vuplus to You're machine dvbmediasink config.
Example for vuduo 2 box cd to map openpli-oe-core/meta-vuplus/conf/machine/include
edit file vuxxo2.inc and set
MACHINE_EXTRA_RRECOMMENDS = " \ vuplus-shutdown \ gstreamer1.0-plugin-dvbmediasink \ ntfs-3g \ " EXTRA_IMAGEDEPENDS += "\ enigma2-plugin-systemplugins-firmwareupgrade \ enigma2-plugin-systemplugins-remotecontrolcode \ enigma2-plugin-extensions-addstreamurl \ vuplus-hbbtv-dumpait \ " TARGET_ARCH = "mipsel" DEFAULTTUNE = "mips32el" DVBMEDIASINK_CONFIG = "--with-vuplus --with-pcm --with-dtsdownmix --with-eac3 --with-amr --with-wmv" GST_VERSION = "1.0"
Then it will work for duo2 and solo2.
For the others edit the file vuxx0.inc
Now by vu the wmv media plays. the older wmv3 and the recent wvc1 (for hd). The wmv1 and wmv2 are to old and not supported by the box.
Included patch file.
Would be nice if a mod push this to dvbmediasink gst-1.0 branch.
Attached Files
Re: GStreamer 1.0 #675
Posted 14 March 2015 - 13:44
Dreambox and VU+ (atm) make use of schwerkraft dvbmediasink.
Also it's better to use capital for defines.
It would be nice to add a more generic version of your patch that will make available the schwerkraft for dreamboxes too!
#ifdef VUPLUS #define SCHWERKRAFT 1 #endif #ifdef DREAMBOX #define SCHWERKRAFT 1 #endifUse #ifdef SCHWERKRAFT in code except the STREAMTYPE.
#if defined(VUPLUS) typedef enum { STREAMTYPE_UNKNOWN = -1, .... #elif defined(DREAMBOX) typedef enum { STREAMTYPE_UNKNOWN = -1, .... #else typedef enum { STREAMTYPE_UNKNOWN = -1, ....
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916
Re: GStreamer 1.0 #676
Posted 14 March 2015 - 14:19
@christophecvr,
Dreambox and VU+ (atm) make use of schwerkraft dvbmediasink.
Also it's better to use capital for defines.
It would be nice to add a more generic version of your patch that will make available the schwerkraft for dreamboxes too!
#ifdef VUPLUS #define SCHWERKRAFT 1 #endif #ifdef DREAMBOX #define SCHWERKRAFT 1 #endifUse #ifdef SCHWERKRAFT in code except the STREAMTYPE.#if defined(VUPLUS) typedef enum { STREAMTYPE_UNKNOWN = -1, .... #elif defined(DREAMBOX) typedef enum { STREAMTYPE_UNKNOWN = -1, .... #else typedef enum { STREAMTYPE_UNKNOWN = -1, ....
Actually I absolutely do not use schwerkraft ,it is the original pli gst-1.0 adapted for vuplus. I can set also changes for dreambox , no need to have schwerkraft for that. And then for dreambox add the config option --with-dreambox. then (ok will set in capital.)
For the code which is common we then use
#if defined(VUPLUS) || defined(DREAMBOX) ..... #endif
for the streams
#if defined(VUPLUS) typedef enum { STREAMTYPE_UNKNOWN = -1, .... #elif defined(DREAMBOX) typedef enum { STREAMTYPE_UNKNOWN = -1, .... #else typedef enum { STREAMTYPE_UNKNOWN = -1, .... #endif
Re: GStreamer 1.0 #677
Re: GStreamer 1.0 #678
Posted 14 March 2015 - 14:26
And with above changes DMM boxes can use OpenPLi dvbmediasink with GStreamer 1.0
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916
Re: GStreamer 1.0 #679
Re: GStreamer 1.0 #680
Posted 14 March 2015 - 14:46
But for audio it uses different ioctl.
typedef enum { AUDIOTYPE_UNKNOWN = -1, AUDIOTYPE_AC3 = 0, AUDIOTYPE_MPEG = 1, AUDIOTYPE_DTS = 2, AUDIOTYPE_LPCM = 6, AUDIOTYPE_AAC = 8, AUDIOTYPE_AAC_HE = 9, AUDIOTYPE_MP3 = 0xa, AUDIOTYPE_AAC_PLUS = 0xb, AUDIOTYPE_DTS_HD = 0x10, AUDIOTYPE_WMA = 0x20, DMM->0xd AUDIOTYPE_WMA_PRO = 0x21, DMM->0xe AUDIOTYPE_AC3_PLUS = 0x22, DMM->7 AUDIOTYPE_AMR = 0x23, AUDIOTYPE_RAW = 0x30 DMM->0xf } t_audio_type;
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916
Also tagged with one or more of these keywords: gstreamer, 1.0, openpli
DVB subtitles support in eServiceMP3/GStreamerStarted by DimitarCC, 17 Oct 2024 DVB, Subtitles, GStreamer |
|
|||
Change from openvix to openpli - lose existing hdd recordings?Started by xdoktor, 30 Dec 2023 openpli, openvix, hdd, recordings |
|
|||
Having Trouble While Installing This SoftwareStarted by CharleyDavis, 27 Jun 2023 OpenPLi |
|
|||
Faild to flash or update OPENPLIStarted by dede_one, 8 Oct 2022 openpli |
|
|||
hd+ funktioneret nichtStarted by JeppeG, 29 Sep 2022 Vu+, hd+, oscam, openpli |
|
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users