https://bugs.kde.org/show_bug.cgi?id=407153
--- Comment #8 from Wolfgang Bauer <wba...@tmo.at> --- (In reply to Mauro Carvalho Chehab from comment #5) > VLC < 3 has a problem with H-264 parser, with causes it to not work properly > with MPEG-TS: the problem is that it doesn't properly find the start of an > H.264 frame. When a TV channel is switched, it is unlikely to get the start > of an H.264 frame: it will generally get in the middle. In practice, one has > to try several times to setup a channel until VLC recognizes the stream. Well, my DVB card doesn't support DVB-S2 (only DVB-S), so I can't tell. > Also, it doesn't support new types of encoding, like H-265. It should support H.265 via the libavcodec plugin I think. > Is it worth? Well, I don't know. The only reason I stumbled over this is that openSUSE Leap 42.3 only has vlc 2.2.x, and I updated openSUSE's kaffeine package yesterday in the (optional) KDE:Extra repo that is also available for 42.3. OTOH, that's probably not really a big problem, as Leap 42.3 will be EOL in less than 2 months anyway. (In reply to Mauro Carvalho Chehab from comment #4) > Fixing it should probably be trivial. Either I forgot to add an event used > on vlc 2 to notify about playback status changes or we need to restore the > diff changes at makePlay() if vlc < 3. This was removed from makePlay, > because it was not required with vlc 3 (and/or broke something - don't > remember the exact issue I found on that time): > > int VlcMediaWidget::makePlay() > { > if (vlcMedia == NULL) { > @@ -343,18 +578,7 @@ int VlcMediaWidget::makePlay() > return -1; > } > > - libvlc_event_manager_t *eventManager = > libvlc_media_event_manager(vlcMedia); > - libvlc_event_e eventTypes[] = { libvlc_MediaMetaChanged }; > - > - for (uint i = 0; i < (sizeof(eventTypes) / sizeof(eventTypes[0])); > ++i) { > - if (libvlc_event_attach(eventManager, eventTypes[i], > vlcEventHandler, this) != 0) { > - qCWarning(logMediaWidget, "Cannot attach event > handler %d", eventTypes[i]); > - } > - } > - > libvlc_media_player_set_media(vlcMediaPlayer, vlcMedia); > - libvlc_media_release(vlcMedia); > - vlcMedia = NULL; That patch didn't help. Reverting https://cgit.kde.org/kaffeine.git/commit/?id=d03abc77ad40a3ca25b011c865183f1b6ddf8f87 completely fixed it though. But, I now noticed that I actually get an error message in konsole: This object event manager doesn't know about 'MediaMetaChanged' events03-05-19 08:42:00.086 [Critical] kaffeine.mediawidget: Cannot attach event handler 0 So obviously libvlc 2.2 doesn't like the MediaMetaChanged event being attached in the constructor. This patch would fix playback with libvlc 2.2: @@ -170,7 +170,6 @@ VlcMediaWidget::VlcMediaWidget(QWidget *parent) : AbstractMediaWidget(parent), typeOfDevice(""), trackNumber(1), numTracks(1) { libvlc_event_e events[] = { - libvlc_MediaMetaChanged, libvlc_MediaPlayerEncounteredError, libvlc_MediaPlayerEndReached, libvlc_MediaPlayerLengthChanged, (although it should probably be attached again in makePlay() then I suppose) -- You are receiving this mail because: You are watching all bug changes.