And if there is an issue that didn't exist back to 1.5.2 then stable 1.6 will contain that issue.But I think I'll revert back to 1.5.2 with all of the fixes provided throughout the forum (hls and mkv fixes etc...)
I suggest to open a ticket on GStreamer bug tracker with the information you have already and if they can reproduce it, they might fix it too!
Re: GStreamer 1.0 #1701
Posted 18 September 2015 - 23:55
ET10000 C C C C/T 2TB HDD ET7000 + ET6000 dvb-S OpenPli Triax 88 multifeed quad LNBs VU Uno4K SE C+2TB HDD Mutant HD60
Re: GStreamer 1.0 #1702
Posted 19 September 2015 - 14:26
I have similar problem with paused -> buffer -> play -> paused -> buffer -> play.
Currently I use oe-a image with gstreamer 1.5.90 and christophecvr multibox mediasink.
I found this out. When I use
gst-launch-1.0 playbin uri=rtmp://... flags=0x47
I have the issue and log shows:
Setting pipeline to PAUSED ... Pipeline is PREROLLING ... WARNING: from element /GstPlayBin:playbin0/GstPlaySink:playsink: No volume control found Volume/mute is not available Prerolled, waiting for buffering to finish... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Buffering, setting pipeline to PAUSED ... Done buffering, setting pipeline to PLAYING ... Buffering, setting pipeline to PAUSED ... Done buffering, setting pipeline to PLAYING ... Buffering, setting pipeline to PAUSED ... Done buffering, setting pipeline to PLAYING ... Buffering, setting pipeline to PAUSED ... Done buffering, setting pipeline to PLAYING ... Buffering, setting pipeline to PAUSED ... Done buffering, setting pipeline to PLAYING ... Buffering, setting pipeline to PAUSED ... Done buffering, setting pipeline to PLAYING ...
Same happens when I use E2.
But when I use this
gst-launch-1.0 rtmpsrc location=rtmp://... ! flvdemux name=d d. ! queue ! h264parse ! dvbvideosink d. ! queue ! aacparse ! dvbaudiosink
playback works properly. So no general issue with the dvbmediasink!
Now I try to analyse the logs to find the difference.
Edit: As I understood christophecvr git (master branch) has already included the async patch. Right?
Edited by betacentauri, 19 September 2015 - 14:27.
Re: GStreamer 1.0 #1703
Re: GStreamer 1.0 #1704
Re: GStreamer 1.0 #1705
Re: GStreamer 1.0 #1706
Posted 19 September 2015 - 18:43
I just upgraded to 1.5.91 (last nights git) and playing various hls streams still freeze in e2. With or without mx3L's patch no. 2 on your multibox sink.
I guess some receivers just don't like the quickly switching between pause and playing.
Re: GStreamer 1.0 #1707
Posted 19 September 2015 - 19:08
So is it possible to tell gstreamer to buffer a bit more then?
I just upgraded to 1.5.91 (last nights git) and playing various hls streams still freeze in e2. With or without mx3L's patch no. 2 on your multibox sink.
I guess some receivers just don't like the quickly switching between pause and playing.
But that's the problem, when I play streams trough e2 they just unpause, that's it. they never go to pause and unpause. There is no quick switching between pause and unpause when playing via e2.
Only if You use gst-launch-1.0 but I already told that gst-lauch-1.0 does not really represent what's happening when you play the stream like it should be played only and only via enigma2 .
Re: GStreamer 1.0 #1708
Posted 19 September 2015 - 19:11
I looked into the logs but until now I didn't find something. Tomorrow I try to look at the pipeline graphs.
Sorry, I cannot publish stream url.
Somebody interested in the logs? Which one exactly? Basesink or *:5?
Edited by betacentauri, 19 September 2015 - 19:12.
Re: GStreamer 1.0 #1709
Posted 20 September 2015 - 14:50
Alright,
I created a clean build today.
no patches at all.
- gstreamer 1.5.91 (today's git)
- christophecvr's multibox dvbmediasink
Trying to play France24 from a enigma2 playlist: http://f24hls-i.akam...master_900.m3u8
#SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//f24hls-i.akamaihd.net/hls/live/221192/F24_FR_LO_HLS/master_900.m3u8:France24 #DESCRIPTION France24
It works fine in VLC btw.
But in E2 It will buffer and only display one still frame, without any audio.
This is what Enigma2 has to say:
< 363.881741> [eEPGCache] setCacheFile read/write epg data from/to '/hdd/epg.dat' < 363.882695> [eEPGCache] time updated.. start EPG Mainloop < 363.895514> [eEPGCache] /hdd/epg.dat not found, try /epg.dat [SKIN] Parsing embedded skin <embedded-in-'Screensaver'> [SKIN] No skin to read... RemovePopup, id = ZapError setValue 50 < 365.957498> [eDVBVolumecontrol] Setvolume: raw: 100 100, -1db: 0 0 < 365.960628> [eDVBVolumecontrol] Setvolume: raw: 50 50, -1db: 32 32 EMC: Setting EPG language: nl_NL playing 4097:0:0:0:0:0:0:0:0:0:http%3a//f24hls-i.akamaihd.net/hls/live/221192/F24_FR_LO_HLS/master_900.m3u8:France24 < 366.143881> [eServiceMP3] construct! getResolvedKey config.mediaplayer.extraHeaders failed !! (Typo??) < 366.153178> [eServiceMP3] playbin uri=http://f24hls-i.akamaihd.net/hls/live/221192/F24_FR_LO_HLS/master_900.m3u8 < 366.217168> [eServiceMP3] starting pipeline < 368.139538> [gRC] main thread is non-idle! display spinner! resolved to PLAY < 368.437221> [eServiceMP3] gst_element_query_position failed in getPlayPosition resolved to PLAY < 368.452299> [eServiceMP3] gst_element_query_position failed in getPlayPosition resolved to PLAY < 368.461832> [eServiceMP3] gst_element_query_position failed in getPlayPosition new service started! trying to download cuts! RemovePopup, id = ZapError < 368.514623> [eHdmiCEC] received message 46 < 368.522818> [eHdmiCEC] send message 47 73 68 31 < 368.534665> [eServiceMP3] state transition NULL -> READY < 368.540894> [eServiceMP3] GST_STREAM_STATUS_TYPE_CREATE -> setting timeout on souphttpsrc to 30s [ePopen] command: route -n | grep eth0 < 368.921375> [eConsoleAppContainer] Starting /bin/sh < 368.924813> [eMainloop::processOneEvent] unhandled POLLERR/HUP/NVAL for fd 31(16) < 368.925764> [eMainloop::processOneEvent] unhandled POLLERR/HUP/NVAL for fd 35(16) [VLC] Checking for buildin servicets ... no [VLC] Checking for existing and usable servicets.so ... No module named servicets [VLC] Checking for usable gstreamer service ... yes [EMCMS] python-mutagen is not available: No module named mutagen.mp3 EMC: Next trashcan cleanup in 560 minutes 0.0.0.0 192.168 nameservers: [[192, 168, 1, 1]] read configured interface: {'bnep0': {'dhcp': True}, 'usb0': {'dhcp': False}, 'lo': {'dhcp': False}, 'wlan0': {'dhcp': True}, 'atml0': {'dhcp': True}, 'eth1': {'dhcp': True}, 'eth0': {'dhcp': True}} self.ifaces after loading: {'eth0': {'preup': False, 'predown': False, 'ip': [192, 168, 1, 80], 'up': True, 'mac': '00:15:c0:35:3e:78', 'dhcp': True, 'bcast': [192, 168, 1, 255], 'netmask': [255, 255, 255, 0], 'gateway': [192, 168, 1, 1]}} AT plugin not found SerienRecorder plugin not found ER plugin not found [OpenWebif] no plugins to load [OpenWebif] started on 80 < 370.874783> [eMainloop::processOneEvent] unhandled POLLERR/HUP/NVAL for fd 34(16) < 371.021635> [eServiceMP3] Buffering 9 percent done < 371.034429> [eServiceMP3] Buffering 10 percent done < 371.044542> [eServiceMP3] Buffering 13 percent done < 371.050964> [eServiceMP3] Buffering 16 percent done < 371.066188> [eServiceMP3] Buffering 18 percent done < 371.075837> [eServiceMP3] Buffering 20 percent done < 371.084975> [eServiceMP3] Buffering 23 percent done < 371.093174> [eServiceMP3] Buffering 25 percent done < 371.096856> [eServiceMP3] Buffering 28 percent done < 371.109842> [eServiceMP3] Buffering 30 percent done < 371.118260> [eServiceMP3] Buffering 32 percent done < 371.130890> [eServiceMP3] Buffering 35 percent done < 371.141410> [eServiceMP3] Buffering 36 percent done < 371.156158> [eServiceMP3] Buffering 38 percent done < 371.162212> [eServiceMP3] Buffering 40 percent done < 371.172584> [eServiceMP3] Buffering 41 percent done < 371.179960> [eServiceMP3] Buffering 44 percent done < 371.185999> [eServiceMP3] Buffering 46 percent done < 371.203898> [eServiceMP3] Buffering 48 percent done < 371.221512> [eServiceMP3] Buffering 51 percent done < 371.229775> [eServiceMP3] Buffering 53 percent done < 371.249224> [eServiceMP3] Buffering 56 percent done < 371.254890> [eServiceMP3] Buffering 58 percent done < 371.274900> [eServiceMP3] Buffering 60 percent done < 371.293430> [eServiceMP3] Buffering 63 percent done < 371.309476> [eServiceMP3] Buffering 65 percent done < 371.321324> [eServiceMP3] Buffering 68 percent done < 371.336350> [eServiceMP3] Buffering 70 percent done < 371.390432> [eServiceMP3] Buffering 72 percent done < 371.418255> [eServiceMP3] Buffering 75 percent done < 371.469303> [eServiceMP3] Buffering 77 percent done < 371.509500> [eServiceMP3] Buffering 80 percent done < 371.626177> [eServiceMP3] Buffering 81 percent done < 371.642556> [eServiceMP3] Buffering 84 percent done < 371.699885> [eServiceMP3] Buffering 86 percent done < 371.739713> [eServiceMP3] Buffering 88 percent done < 371.779342> [eServiceMP3] Buffering 91 percent done < 371.856396> [eServiceMP3] Buffering 93 percent done < 371.872480> [eServiceMP3] Buffering 96 percent done < 371.973166> [eServiceMP3] Buffering 98 percent done < 371.976936> [eServiceMP3] Buffering 100 percent done EMC: [EMCMS] trashcan cleanup: no trashcan... < 373.209590> [eServiceMP3] state transition READY -> PAUSED < 373.232302> [eServiceMP3] loading cuesheet < 373.233510> [eServiceMP3] cutfile not found! < 373.264872> [eServiceMP3] async-done - 1 video, 1 audio, 0 subtitle < 373.266526> [eServiceMP3] AUDIO STRUCT=audio/mpeg < 373.268578> [eServiceMP3] audio stream=0 codec=MPEG-4 AAC language=fr < 373.854778> [eServiceMP3] state transition PAUSED -> PLAYING < 376.555859> [eServiceMP3] Buffering 8 percent done < 376.587813> [eServiceMP3] Buffering 9 percent done < 376.593841> [eServiceMP3] Buffering 12 percent done < 376.607735> [eServiceMP3] Buffering 68 percent done < 376.610389> [eServiceMP3] Buffering 75 percent done < 376.614608> [eServiceMP3] Buffering 81 percent done < 384.328316> [eServiceMP3] Buffering 84 percent done < 384.354856> [eServiceMP3] Buffering 86 percent done < 384.379198> [eServiceMP3] Buffering 88 percent done < 384.418323> [eServiceMP3] Buffering 91 percent done < 384.443375> [eServiceMP3] Buffering 93 percent done < 384.461391> [eServiceMP3] Buffering 96 percent done < 384.494349> [eServiceMP3] Buffering 98 percent done < 384.532425> [eServiceMP3] Buffering 100 percent done
Attached are 3 logs made while trying to play this stream in E2.
hls4.log GST_DEBUG=dvbvideosink:4,dvbaudiosink:4,basesink:4
hls5.log GST_DEBUG=dvbvideosink:4,dvbaudiosink:4,basesink:5
hls6.log GST_DEBUG=dvbvideosink:4,dvbaudiosink:4,basesink:6
I hope someone has a cure for this:P
Attached Files
Re: GStreamer 1.0 #1710
Posted 20 September 2015 - 16:25
@MastaG
the thing that looks to me interesting is that we are setting video caps two times.
First time before any video rendering has taken place, just after STREAM_START event:
0:00:46.635914639 830 0x7450e0c0 INFO dvbvideosink gstdvbvideosink.c:425:gst_dvbvideosink_event:<dvbvideosink0> EVENT caps 0:00:46.636161157 830 0x7450e0c0 DEBUG basesink gstbasesink.c:3127:gst_base_sink_default_event:<dvbvideosink0> caps 0x74512418 0:00:46.636560824 830 0x7450e0c0 INFO dvbvideosink gstdvbvideosink.c:1290:gst_dvbvideosink_set_caps:<dvbvideosink0> caps = video/x-h264, width=(int)16, height=(int)16, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)nal 0:00:46.637106491 830 0x7450e0c0 INFO dvbvideosink gstdvbvideosink.c:1460:gst_dvbvideosink_set_caps:<dvbvideosink0> MIMETYPE video/x-h264 -> STREAMTYPE_MPEG4_H264
We have quite strange dimensions width=(int)16, height=(int)16 too.
Second time after we have already rendered some video:
0:00:47.087615120 830 0x7450e0c0 INFO dvbvideosink gstdvbvideosink.c:425:gst_dvbvideosink_event:<dvbvideosink0> EVENT caps 0:00:47.087968379 830 0x7450e0c0 DEBUG basesink gstbasesink.c:3127:gst_base_sink_default_event:<dvbvideosink0> caps 0x7452bf38 0:00:47.088487416 830 0x7450e0c0 INFO dvbvideosink gstdvbvideosink.c:1290:gst_dvbvideosink_set_caps:<dvbvideosink0> caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, pixel-aspect-ratio=(fraction)1/1, width=(int)1024, height=(int)576, framerate=(fraction)25/1, parsed=(boolean)true, profile=(string)main, level=(string)3.1 ... 0:00:47.089240268 830 0x7450e0c0 INFO dvbvideosink gstdvbvideosink.c:1460:gst_dvbvideosink_set_caps:<dvbvideosink0> MIMETYPE video/x-h264 -> STREAMTYPE_MPEG4_H264
So maybe when video caps are set second time while playing, then video freezes on some receivers?
Is it possible to obtain log on same receiver with same stream on gstreamer version where it's not freezing?
Re: GStreamer 1.0 #1711
Re: GStreamer 1.0 #1712
Posted 20 September 2015 - 17:16
@betacentauri
I have the issue and log shows:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPlayBin:playbin0/GstPlaySink:playsink: No volume control found
Volume/mute is not available
Prerolled, waiting for buffering to finish...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Buffering, setting pipeline to PAUSED ...
Done buffering, setting pipeline to PLAYING ...
Buffering, setting pipeline to PAUSED ...
Done buffering, setting pipeline to PLAYING ...
Buffering, setting pipeline to PAUSED ...
Done buffering, setting pipeline to PLAYING ...
Buffering, setting pipeline to PAUSED ...
Done buffering, setting pipeline to PLAYING ...
Buffering, setting pipeline to PAUSED ...
Done buffering, setting pipeline to PLAYING ...
Buffering, setting pipeline to PAUSED ...
Done buffering, setting pipeline to PLAYING ...Same happens when I use E2.
This is strange, if you don't use prefill flag, we are ignoring buffering messages so there should be no jumping between PAUSED and PLAYING state even if buffer is drained. So you have video in slowmotion or no video movement at all?
Edit: As I understood christophecvr git (master branch) has already included the async patch. Right?
There are two patches:
https://github.com/O...ediasink/pull/2 - makes sure that we are always operating with synchronization against clock turned off (in christophecvr sink), It will only help when you're dealing with raw audio streams
https://github.com/m...990da56931b70a6 - turns off ASYNC state changes when going to PAUSED (not in christophercvr sink). It will help when one of the sinks doesn't preroll. It happens when you're quickly changing states from PAUSED to PLAYING and opposite. So maybe your case?
Re: GStreamer 1.0 #1713
Posted 20 September 2015 - 17:58
@MastaG
I tried it on 1.5.2 and I have only one caps event:
dvbvideosink gstdvbvideosink.c:1310:gst_dvbvideosink_set_caps:<dvbvideosink0> caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal, width=(int)1024, height=(int)576, framerate=(fraction)25/1, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1, profile=(string)main, level=(string)3.1
We should check h264parse element, which creates what looks like incomplete caps in 1.5.9 (missing profile, level,...):
dvbvideosink gstdvbvideosink.c:1290:gst_dvbvideosink_set_caps:<dvbvideosink0> caps = video/x-h264, width=(int)16, height=(int)16, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)nal
There were some recent changes in h264parse too:
http://cgit.freedesk...rep&q=h264parse
Re: GStreamer 1.0 #1714
Posted 20 September 2015 - 18:41
I take a look at the patches tomorrow.
Edited by betacentauri, 20 September 2015 - 18:41.
Re: GStreamer 1.0 #1715
Posted 20 September 2015 - 21:21
I've already tried them all.
Chris's multiboxsink already has the fix for raw audio as shown here: https://github.com/c.../commits/master
Patches I've tried which haven't been commited:
servicemp3 improve pause/unpause:
From 04f108741e97b0b0d23f469061deadfc5cb656b8 Mon Sep 17 00:00:00 2001 From: mx3L <mx3ldev@gmail.com> Date: Tue, 25 Aug 2015 10:48:02 +0200 Subject: [PATCH] servicemp3: use seeking unpause only when necessary souphttpsrc and filesrc sources will not timeout. So for them we can just unpause pipeline --- lib/service/servicemp3.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index 162b9b4..a5c677f 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -913,6 +913,40 @@ RESULT eServiceMP3::trickSeek(gdouble ratio) return 0; } +#if GST_VERSION_MAJOR >= 1 + bool unpause = (m_currentTrickRatio == 1.0 && ratio == 1.0); + if (unpause) + { + GstElement *source = NULL; + g_object_get (G_OBJECT (m_gst_playbin), "source", &source, NULL); + GstElementFactory *factory = gst_element_get_factory(source); + g_object_unref(source); + const gchar *name = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory)); + // eDebug("[eServiceMP3] trickSeek - source = %s", name); + /* + * We know that filesrc and souphttpsrc will not timeout after long pause + * If there are other sources which will not timeout, add them here + */ + if (name && (!strcmp(name, "filesrc") || !strcmp(name, "souphttpsrc"))) + { + GstStateChangeReturn ret; + GstState state, pending; + /* make sure that last state change was successfull */ + ret = gst_element_get_state(m_gst_playbin, &state, &pending, 0); + if (ret == GST_STATE_CHANGE_SUCCESS) + { + gst_element_set_state(m_gst_playbin, GST_STATE_PLAYING); + ret = gst_element_get_state(m_gst_playbin, &state, &pending, 0); + if (ret == GST_STATE_CHANGE_SUCCESS) + return 0; + } + eDebug("[eServiceMP3] trickSeek - cannot unpause, state:%s pending:%s ret:%s", + gst_element_state_get_name(state), + gst_element_state_get_name(pending), + gst_element_state_change_return_get_name(ret)); + } + } +#endif m_currentTrickRatio = ratio; bool validposition = false;
increase buffer size by Athoik:
--- enigma2/lib/service/servicemp3.cpp.orig 2015-09-20 15:59:45.812462069 +0200 +++ enigma2/lib/service/servicemp3.cpp 2015-09-20 16:01:34.615583623 +0200 @@ -2183,6 +2183,11 @@ g_object_get(object, "source", &source, NULL); if (source) { + if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "blocksize") != 0) + { + /* default blocksize is only 4096 we need to feed hardware decoder with more data */ + g_object_set(G_OBJECT(source), "blocksize", 16*1024, NULL); + } if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "ssl-strict") != 0) { g_object_set(G_OBJECT(source), "ssl-strict", FALSE, NULL);
Patch number 2 and 3 from http://forums.openpl...e-improvements/
rewritten for chris' multibox dvbmediasink:
--- gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbaudiosink.c.orig 2015-09-17 23:50:51.668684394 +0200 +++ gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbaudiosink.c 2015-09-18 00:01:57.629016391 +0200 @@ -285,7 +285,6 @@ self->timestamp = GST_CLOCK_TIME_NONE; gst_base_sink_set_sync(GST_BASE_SINK(self), FALSE); - gst_base_sink_set_async_enabled(GST_BASE_SINK(self), TRUE); } static void gst_dvbaudiosink_dispose(GObject *obj) @@ -747,7 +746,6 @@ self->flushing = TRUE; /* wakeup the poll */ write(self->unlockfd[1], "\x01", 1); - if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); break; case GST_EVENT_FLUSH_STOP: if (self->fd >= 0) ioctl(self->fd, AUDIO_CLEAR_BUFFER); @@ -765,7 +763,6 @@ self->cache = NULL; } GST_OBJECT_UNLOCK(self); - if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); /* flush while media is playing requires a delay before rendering */ if(self->using_dts_downmix) { @@ -814,7 +811,6 @@ } } GST_BASE_SINK_PREROLL_LOCK(sink); - if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); break; } case GST_EVENT_SEGMENT: @@ -912,9 +908,11 @@ break; } default: - ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); break; } + if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); + else gst_event_unref(event); + return ret; } @@ -1469,6 +1467,8 @@ break; case GST_STATE_CHANGE_READY_TO_PAUSED: GST_INFO_OBJECT(self,"GST_STATE_CHANGE_READY_TO_PAUSED"); + /* playsink overrides this setting in READY state */ + gst_base_sink_set_async_enabled(GST_BASE_SINK(self), FALSE); self->paused = TRUE; if (self->fd >= 0) { --- gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbvideosink.c.orig 2015-09-17 23:53:31.984756213 +0200 +++ gstreamer1.0-plugin-multibox-dvbmediasink/gstdvbvideosink.c 2015-09-18 00:07:05.109176160 +0200 @@ -335,7 +335,6 @@ self->rate = 1.0; gst_base_sink_set_sync(GST_BASE_SINK(self), FALSE); - gst_base_sink_set_async_enabled(GST_BASE_SINK(self), TRUE); } static void gst_dvbvideosink_dispose(GObject *obj) @@ -437,7 +436,6 @@ self->flushing = TRUE; /* wakeup the poll */ write(self->unlockfd[1], "\x01", 1); - if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); break; case GST_EVENT_FLUSH_STOP: if (self->fd >= 0) ioctl(self->fd, VIDEO_CLEAR_BUFFER); @@ -449,7 +447,6 @@ } self->flushing = FALSE; GST_OBJECT_UNLOCK(self); - if(self->paused) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); /* flush while media is playing requires a delay before rendering */ if (self->using_dts_downmix) { @@ -499,7 +496,6 @@ } } GST_BASE_SINK_PREROLL_LOCK(sink); - if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); break; } case GST_EVENT_SEGMENT: @@ -581,9 +577,10 @@ break; } default: - ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); break; } + if (ret) ret = GST_BASE_SINK_CLASS(parent_class)->event(sink, event); + else gst_event_unref(event); return ret; } @@ -1833,6 +1830,8 @@ break; case GST_STATE_CHANGE_READY_TO_PAUSED: GST_INFO_OBJECT (self,"GST_STATE_CHANGE_READY_TO_PAUSED"); + /* playsink overrides this setting in READY state */ + gst_base_sink_set_async_enabled(GST_BASE_SINK(self), FALSE); self->paused = TRUE; if (self->fd >= 0) {
None of them are fixing it.
Re: GStreamer 1.0 #1716
Posted 21 September 2015 - 10:31
@MastaG please try patch in attachment on gst-1.5.90 bad plugins.
Problem looks to be, that h264parse will update caps on srcpad even if SPS/PPS have not been parsed yet.
- /* we did parse codec-data and might supplement src caps */ - gst_h264_parse_update_src_caps (h264parse, caps); + /* do not set CAPS and passthrough mode if SPS/PPS have not been parsed */ + if (h264parse->have_sps && h264parse->have_pps) { + gst_base_parse_set_passthrough (parse, TRUE); + + /* we did parse codec-data and might supplement src caps */ + gst_h264_parse_update_src_caps (h264parse, caps); + }
Attached Files
Edited by mx3L, 21 September 2015 - 10:31.
Re: GStreamer 1.0 #1717
Posted 21 September 2015 - 11:55
Ignore previous post, it's not it.
I guess you could try to remove VIDEO_CAPS from h264 caps, then there will be no h264parse element used:
diff --git a/gstdvbvideosink.c b/gstdvbvideosink.c index d3f6cf8..0cb58cb 100644 --- a/gstdvbvideosink.c +++ b/gstdvbvideosink.c @@ -185,8 +185,7 @@ GST_STATIC_PAD_TEMPLATE ( "mpegversion = (int) { 1, 2 }, " VIDEO_CAPS "; " #ifdef HAVE_H264 - "video/x-h264, " - VIDEO_CAPS "; " + "video/x-h264; " #endif #ifdef HAVE_H263 "video/x-h263, "
Re: GStreamer 1.0 #1718
Re: GStreamer 1.0 #1719
Posted 21 September 2015 - 17:26
@MastaG
No problem , it should help if the issue is with h264parse.
I see video for 1-2 seconds. Then it freezes and I see buffering in the logs. Then video playback starts again but it look like fast forward and it only plays only 1-2 seconds. Then again freeze. And so on.
I take a look at the patches tomorrow.
Could you post basesink:5 log (enigma2) ?
Edited by mx3L, 21 September 2015 - 17:28.
Re: GStreamer 1.0 #1720
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 |
|
4 user(s) are reading this topic
0 members, 3 guests, 0 anonymous users
-
Bing (1)