Project

General

Profile

Actions

Bug #1480

closed

Некорректное проигрывание/отображение трека после смены плейлиста.

Added by Mellon almost 11 years ago. Updated almost 11 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
Plugins: LMP
Target version:
Start date:
01/07/2014
Due date:
% Done:

100%

Estimated time:
5:00 h
Reported in:
master

Description

0. Что-то воспроизводится из текущего плейлиста
1. Сохраняем плейлист
2. Загружаем другой плейлист
3. Ставим на воспроизведение трек с него
4. Очищаем плейлист (можно пропустить)
5. Загружаем плейлист из п.1.
6. Жмякаем stop
7. Жмякаем play
8. В итоге воспроизводится трек из п.3., но отображается трек из п.0.


Related issues 3 (0 open3 closed)

Related to Bug #1482: Некорректная обработка очереди.Closed0xd34df00d01/07/2014

Actions
Related to Bug #1498: Потеря тегов при воспроизведении из очищенного плейлиста.Closed0xd34df00d01/14/2014

Actions
Related to Bug #1615: Некорректная обработка смены плейлиста и segvClosed0xd34df00d04/30/2014

Actions
Actions #1

Updated by 0xd34df00d almost 11 years ago

  • Status changed from New to Assigned
  • Target version set to 0.6.65
  • Estimated time set to 2:00 h
Actions #2

Updated by 0xd34df00d almost 11 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 0 to 100

Applied in changeset main|commit:bee98315a77ea8bc27e9b4836e6aa6d49e052160.

Actions #4

Updated by Mellon almost 11 years ago

кроме того, теряется сохраненный трек из п.0-1. То есть если при воспроизведении какого-то трека из текущего плейлиста, загрузить новый плейлист с сохраненной позицией. то после доигрывания текущего трека воспроизведение загруженного плейлиста начнется с 1 трека в плейлисте, а не с сохранненной позиции.

В общем, тут уже регресс пошел.

Actions #5

Updated by 0xd34df00d almost 11 years ago

  • Status changed from Resolved to Assigned
  • % Done changed from 100 to 0

Ну я и не тестил эту фичу, надеялся, что фикс от #1483 поможет. Щас посмотрим.

Actions #6

Updated by 0xd34df00d almost 11 years ago

Как смотришь на то, чтоб при замене плейлиста обрывать воспроизведение текущей песни и сразу играть новый плейлист?

Actions #7

Updated by Mellon almost 11 years ago

Ну... так и делают в некоторых плеерах, но есть одно но: при загрузке больших плейлистов, пока интерфейс LMP недоступен и пользователю нечего поделать, продолжает звучать музыка. если же оборвать, то будет тишина от нескольких секунд до нескольких минут. Если для тебя это приемлимая цена, то можно и так.

Actions #8

Updated by Mellon almost 11 years ago

с другой стороны, можно обрывать уже после загрузки плейлиста. Это более приемлимо

Actions #9

Updated by 0xd34df00d almost 11 years ago

Эм, я ж чинил слоупочную работу LMP с очередью воспроизведения. В частности, если все песни из плейлиста в коллекции, то всё должно быть быстро. Или они не в коллекции?

Обрываться будет где-то после загрузки плейлиста уж точно, но я не уверен, надо по коду смотреть.

Ну или можно просто добавлять сохраненную песню из нового плейлиста в one shot queue, только сейчас придумал. Кажется мне, что это наиболее оптимальный вариант: сейчас ничего не прерывается, и пользователь видит, что следующим будет проиграно. А то, может, он и забыл вовсе, что в плейлисте метадата ещё какая есть.

Actions #10

Updated by Magog almost 11 years ago

Не думаю, что обрывать песню - приемлимый вариант.

Actions #11

Updated by 0xd34df00d almost 11 years ago

  • Estimated time changed from 2:00 h to 5:00 h
Actions #12

Updated by 0xd34df00d almost 11 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 0 to 100

Applied in changeset main|commit:2225f3ea5e0aa98d8decb5419d7b6aa40de85376.

Actions #13

Updated by Mellon almost 11 years ago

логов вброшу ща.
пп6-7:
debug.log

[09.01.2014 02:35:02.254] [0x7f057eb5ed70] [2716] void LeechCraft::LMP::Player::handleStateChanged() 2 
[09.01.2014 02:35:02.256] [0x7f057eb5ed70] [2717] void LeechCraft::LMP::Player::handleStateChanged() 1 
[09.01.2014 02:35:04.153] [0x7f057eb5ed70] [2719] void LeechCraft::LMP::Player::handleStateChanged() 2 
[09.01.2014 02:35:04.163] [0x7f057eb5ed70] [2720] void LeechCraft::LMP::SourceObject::HandleElementMsg(GstMessage*) file:///var/lib/mpd/music/vk/ikimono%20gakari%20-%20Sakura.mp3 
[09.01.2014 02:35:04.167] [0x7f057eb5ed70] [2721] void LeechCraft::LMP::Player::handleStateChanged() 4 

warning.log:

[09.01.2014 02:35:04.123] [0x7f057eb5ed70] [2718] void LeechCraft::LMP::{anonymous}::TagFunction(const GstTagList*, const gchar*, gpointer) unhandled tag type 139661618512608 for private-id3v2-frame 

Actions #14

Updated by Mellon almost 11 years ago

если в п3. был поток с радио:
debug.log:

[09.01.2014 02:42:42.672] [0x7f057eb5ed70] [2809] void LeechCraft::LMP::Player::handleStateChanged() 2 
[09.01.2014 02:42:42.678] [0x7f057eb5ed70] [2810] void LeechCraft::LMP::Player::handleStateChanged() 1 
[09.01.2014 02:42:44.230] [0x7f057eb5ed70] [2813] void LeechCraft::LMP::SourceObject::SetupSource() user-agent property not found for  QUrl( "http://animeradio.su:8000/" )  "|WebKitWebSrc|" soup rank: 256 webkit rank: 0 

warning.log:
[09.01.2014 02:42:42.681] [0x7f057eb5ed70] [2811] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "Makoto Fujiwara" "AnimeRadio.SU" 
[09.01.2014 02:42:44.229] [0x7f057eb5ed70] [2812] uint LeechCraft::LMP::{anonymous}::GetRank(const char*) cannot find factory WebKitWebSrc 

И тут уже у нас ничо не воспроизведется в п. 7.

Actions #15

Updated by Mellon almost 11 years ago

Теперь ситуация с радиопотоком изменилась: в п. 7 он уже проигрывается, но теги теряются по-прежнему.
debug.log:

[09.01.2014 05:11:33.055] [0x7f2d16d76d70] [858] void LeechCraft::LMP::Player::handleStateChanged() 2 
[09.01.2014 05:11:33.063] [0x7f2d16d76d70] [859] void LeechCraft::LMP::Player::handleStateChanged() 1 
[09.01.2014 05:11:39.207] [0x7f2d16d76d70] [861] void LeechCraft::LMP::SourceObject::SetupSource() setting user-agent to "LeechCraft LMP/0.6.60-151-gd7696e9 (GStreamer 0.10.36)" 
[09.01.2014 05:11:39.444] [0x7f2d16d76d70] [862] void LeechCraft::LMP::Player::handleStateChanged() 2 
[09.01.2014 05:11:39.447] [0x7f2d16d76d70] [863] void LeechCraft::LMP::SourceObject::HandleElementMsg(GstMessage*) http://animeradio.su:8000/ 
[09.01.2014 05:11:39.520] [0x7f2d16d76d70] [865] void LeechCraft::LMP::Player::handleStateChanged() 4 

warning.log:
[09.01.2014 05:11:33.066] [0x7f2d16d76d70] [860] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "JAM Project" "AnimeRadio.SU" 
[09.01.2014 05:11:39.449] [0x7f2d16d76d70] [864] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "JAM Project" "AnimeRadio.SU" 
[09.01.2014 05:11:39.523] [0x7f2d16d76d70] [866] int LeechCraft::LMP::LocalCollection::FindAlbum(const QString&, const QString&) const artist not found: "JAM Project" "AnimeRadio.SU" 
[09.01.2014 05:12:20.064] [0x7f2d16d76d70] [870] void LeechCraft::DockToolbarManager::AddDock(QDockWidget*, Qt::DockWidgetArea) double-adding QDockWidget(0x7f2d1724c5e0) "Azoth" 

Actions #16

Updated by 0xd34df00d almost 11 years ago

Теперь — это ты вёбкит отключил?

Actions #17

Updated by Mellon almost 11 years ago

Теперь — это после пересборки с коммитами с

commit 3585a210bb16947edf01b891bc489ea46047b505
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Thu Jan 9 02:00:28 2014 +0400

    [LMP] Drain after error code detection.

по
commit d7696e96f216cc93677c19b58076c57609c88bf8
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Thu Jan 9 03:12:34 2014 +0400

    [LMP] Better error messages when mask expanding fails.

Actions #18

Updated by 0xd34df00d almost 11 years ago

Немножко подвигал логику, могло стать получше, ибо у меня не воспроизводится.

Actions #19

Updated by Mellon almost 11 years ago

:( да нет, всё также, тока ща ещё и сохраняет в плейлист не текущий трек, а следующий за ним.

Actions #20

Updated by Mellon almost 11 years ago

ок, теперь сохраняет правильно. возвращаемся к сабжу.
warning.log:

[13.01.2014 21:42:44.075] [0x7f7f7cb4fd70] [200] void LeechCraft::LMP::{anonymous}::TagFunction(const GstTagList*, const gchar*, gpointer) unhandled tag type 140185539894736 for date 
[13.01.2014 21:42:44.076] [0x7f7f7cb4fd70] [201] void LeechCraft::LMP::{anonymous}::TagFunction(const GstTagList*, const gchar*, gpointer) unhandled tag type 140185539897456 for image 

debug.log:
[13.01.2014 21:42:41.886] [0x7f7f7cb4fd70] [193] void LeechCraft::LMP::Player::handleStateChanged() 2 
[13.01.2014 21:42:41.887] [0x7f7f7cb4fd70] [195] void LeechCraft::LMP::Player::handleStateChanged() 1 
[13.01.2014 21:42:44.131] [0x7f7f7cb4fd70] [202] void LeechCraft::LMP::Player::handleStateChanged() 2 
[13.01.2014 21:42:44.132] [0x7f7f7cb4fd70] [204] void LeechCraft::LMP::SourceObject::HandleElementMsg(GstMessage*) file:///var/lib/mpd/music/Music/vocaloid/Vocaloid%20S
eries%20MP3/Albums/Multi-Vocaloids/Lovegazer/12.%20think%20so,%20%5BBonus%20Track%5D.mp3 
[13.01.2014 21:42:44.196] [0x7f7f7cb4fd70] [205] void LeechCraft::LMP::Player::handleStateChanged() 4 
[13.01.2014 21:43:00.751] [0x7f7f7cb4fd70] [207] void LeechCraft::LMP::Player::handleStateChanged() 2 
[13.01.2014 21:43:00.752] [0x7f7f7cb4fd70] [209] void LeechCraft::LMP::Player::handleStateChanged() 1 

Сегодня для пересборок кутей снова не осталось времени. :(

Actions #21

Updated by 0xd34df00d almost 11 years ago

В логах вроде все нормально. Еще раз, какая сейчас ошибка в итоге?

Actions #22

Updated by Mellon almost 11 years ago

  • Status changed from Resolved to Closed

Ок, чувак. Давай закроем-ка этот баг. Ибо тут вот я пожмякал и тест-кейс сильно укоротился.

Actions #23

Updated by Mellon almost 11 years ago

  • Related to Bug #1498: Потеря тегов при воспроизведении из очищенного плейлиста. added
Actions #24

Updated by Mellon over 10 years ago

  • Related to Bug #1615: Некорректная обработка смены плейлиста и segv added
Actions

Also available in: Atom PDF