CuePlayer (Очередной медиаплеер на Qt + Gstreamer.)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Torvinson
Сообщения: 425
ОС: Gentoo ~amd64

Re: CuePlayer

Сообщение Torvinson »

ipse666, быть может, сделаешь ebuild для генту и загрузишь его в гентушную багзиллу?

Хороший плеер, пусть побольше народу познакомится :)
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Torvinson писал(а):
10.01.2010 22:17
ipse666, быть может, сделаешь ebuild для генту и загрузишь его в гентушную багзиллу?

Хороший плеер, пусть побольше народу познакомится :)

Работаю над этим. Собственно ебилд уже написал, но пока он не совсем работает, сандбокс мешает установке. Как разберусь с этим, обязательно выложу.
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Добавлено в оверлей rion
Для получения:

Код: Выделить всё

layman -a rion

Код: Выделить всё

emerge -avD media-sound/cueplayer
Спасибо сказали:

Torvinson
Сообщения: 425
ОС: Gentoo ~amd64

Re: CuePlayer

Сообщение Torvinson »

ipse666, замечательно! Спасибо.
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Внес некоторые изменения в ебилд, последняя версия тут http://bugs.gentoo.org/attachment.cgi?id=216845
Спасибо сказали:

varuh
Сообщения: 111
ОС: arch

Re: CuePlayer

Сообщение varuh »

ipse666

Код: Выделить всё

user@user:~/cueplayer$ qmake
WARNING: Found potential symbol conflict of cueplayer.cpp (cueplayer.cpp) in SOURCES
WARNING: Found potential symbol conflict of cueplayer.h (cueplayer.h) in HEADERS
WARNING: Found potential symbol conflict of transcoder.cpp (transcoder.cpp) in SOURCES
WARNING: Found potential symbol conflict of transcoder.h (transcoder.h) in HEADERS
WARNING: Found potential symbol conflict of videowindow.cpp (videowindow.cpp) in SOURCES
WARNING: Found potential symbol conflict of videowindow.h (videowindow.h) in HEADERS
user@user:~/cueplayer$
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

В некоторых системах надо использовать qmake-qt4
Спасибо сказали:

Аватара пользователя
romuil
Сообщения: 2095
Статус: Ромунцель
ОС: ALTLinux Sisyphus

Re: CuePlayer

Сообщение romuil »

Через неделю попробую собрать под 86-32 в среде ALT Linux, сейчас с трафиком напряг, вытягивать хидеры и gstreamer из сети не смогу. Возможно напишу spec. Только я не в Team, может попрошу коллег собрать в сизиф.
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Было бы замечательно. Уже и порт под BSD продвигается http://www.freebsd.org/cgi/query-pr.cgi?pr=142909 и для арча есть (не знаю как называется, пакет? порт?) http://aur.archlinux.org/packages.php?ID=32164
Спасибо сказали:

irmin
Сообщения: 1

Re: CuePlayer

Сообщение irmin »

Было бы замечательно, если можно было бы выбирать при открытии кодировку cue файла. Собственно интересует только UTF-8. Ну и CP-1251. Спасибо заранее.
P.S. Cueplayer - просто мечта, ставшая реальностью :)
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Было бы замечательно, если можно было бы выбирать при открытии кодировку cue файла.

Добавил в todo.
Cueplayer - просто мечта, ставшая реальностью

snx.
Спасибо сказали:

Аватара пользователя
proDOOMman
Сообщения: 284

Re: CuePlayer

Сообщение proDOOMman »

Я сделал PPA для убунтоводов:
https://launchpad.net/~prodoomman/+archive/cueplayer
Пока сборки только под коалу, но если надо, то будут и под рысь.
Ubuntu LL x86 on Acer Extensa 5635G
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

proDOOMman
Отлично!
Еще бы в офф портежи gentoo кто-нибудь помог мой ебилд пропихнуть.
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Немного доработал однозадачность проигрывателя, то есть чтоб не запускалась вторая копия. Теперь можно просто поочередно щелкать по файлам которые к нему привязаны и он их будет играть не запускаясь повторно и не перезапускаясь. Реализовал это на клиент-серверной модели, благодаря чему появилась еще одна скрытая возможность. Плеер теперь может принимать задания по локальному сокету, от других программ например. Вот простенький экзампл.

Код: Выделить всё

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/un.h>

int main (int argc, char *argv[])
{
  int    len, rc;
  int    sockfd;
  struct sockaddr_un   addr;


  sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
  if (sockfd < 0)
  {
     perror("сокет");
     exit(-1);
  }

  memset(&addr, 0, sizeof(addr));
  addr.sun_family     = AF_UNIX;
  strcpy(addr.sun_path, "/tmp/cueplayer");

  rc = connect(sockfd,
           (struct sockaddr *)&addr,
           sizeof(struct sockaddr_un));
  if (rc < 0)
  {
    perror("соединение");
    close(sockfd);
    exit(-1);
  }
  printf("соединение установлено.\n");

  len = send(sockfd, argv[1], strlen(argv[1]) + 1, 0);
  if (len != strlen(argv[1]) + 1)
  {
     perror("отправка");
     close(sockfd);
     exit(-1);
  }
  printf("аргументы отправлены.\n");

  close(sockfd);
}


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

Код: Выделить всё

ipse@localhost ~/devel $ cc cuesend.c -o cuesend
ipse@localhost ~/devel $ ./cuesend "/home/ipse/spool/Romowe Rikoito - Elegy.mp3"
соединение установлено.
аргументы отправлены.
ipse@localhost ~/devel $

вот так оно примерно работает. аргументы передаются запущенному проигрывателю и он начинает играть трек указанный в аргументах.
Спасибо сказали:

Аватара пользователя
Prorok87
Сообщения: 42
ОС: Ubuntu Linux

Re: CuePlayer

Сообщение Prorok87 »

Да бы все не загромождать в 1 тему и в целях не допускания неразберихи при поиске было принято совместно с автором решение выделить ветку для этого плеера. Заходите, регистрируйтесь и оставляйте свои отзывы ЗДЕСЬ
Linux is my friends!
Спасибо сказали:

Torvinson
Сообщения: 425
ОС: Gentoo ~amd64

Re: CuePlayer

Сообщение Torvinson »

CuePlayer (релиз от 16 января 2010) не проигрывает вот такой cue-файл:

Код: Выделить всё

TITLE "Lemuria"
PERFORMER "THERION"
MESSAGE "YEAR: 2004"

FILE "CDImage.flac" WAVE
TRACK 01 AUDIO
TITLE "Typhon"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370501
INDEX 01 00:00:00

TRACK 02 AUDIO
TITLE "Uthark Runa"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370502
INDEX 01 04:36:45

TRACK 03 AUDIO
TITLE "Three Ships Of Berik Part 1: Calling To Arms And Fighting TheBattle"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370503
INDEX 01 09:18:30

TRACK 04 AUDIO
TITLE "Three Ships Of Berik Part 2: Victory!"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370504
INDEX 01 12:38:21

TRACK 05 AUDIO
TITLE "Lemuria"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370505
INDEX 01 13:22:32

TRACK 06 AUDIO
TITLE "Quetzalcoatl"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370506
INDEX 01 17:37:63

TRACK 07 AUDIO
TITLE "The Dreams Of Swedenborg"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370507
INDEX 01 21:25:14

TRACK 08 AUDIO
TITLE "An Arrow From The Sun"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370508
INDEX 01 26:23:45

TRACK 09 AUDIO
TITLE "Abraxas"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370509
INDEX 01 32:18:36

TRACK 10 AUDIO
TITLE "Feuer Overt\374re / Prometheus Entfesselt"
PERFORMER "THERION"
MESSAGE ""
ISRC DED830370510
INDEX 01 37:40:29


Вернее, плеер выдает список из 14 песен, в которых вместо названий прочерки, а длительность тринадцати песен равна 0, четырнадцатой же - вся длина альбома. Пробегает по тринадцати и начинает играть весь альбом единым треком, то есть четырнадцатый трек.

Копия с фирменного диска сделана с помощью команд:

Код: Выделить всё

cdrdao read-toc --device /dev/dvd --with-cddb cd.toc
cueconvert cd.toc CDImage.cue
cdparanoia -O +6 -z "[::]-" CDImage.wav
flac -V -8 -s --cuesheet=CDImage.cue -o "CDImage.flac" CDImage.wav


Все копии, сделанные таким же образом, так же не играются в CuePlayer, вернее, проиграются не правильно :)

QMMP проигрывает правильно.

В чем может быть дело?
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Дело в том что каждый создает cuesheet как ему вздумается, а потом расчитывает что парсер таки угадает что он имел ввиду.
Привожу цитату из педивикии
Первые три строки обозначат информацию о диске. За ними следует информация для каждого трека, снабжаемая отступами.

http://ru.wikipedia.org/wiki/Cue_sheet

В твоем примере я отступов не заметил.
Спасибо сказали:

rebsys
Сообщения: 1
ОС: Linux

Re: CuePlayer

Сообщение rebsys »

Доброго дня всем!

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

ws3:/tmp/cueplayer/cueplayer> uname -a
Linux ws3 2.6.26-2-686 #1 SMP Wed Nov 4 20:45:37 UTC 2009 i686 GNU/Linux

ws3:/tmp/cueplayer/cueplayer> g++ --version
g++ (Debian 4.3.2-1.1) 4.3.2
Copyright © 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ws3:/tmp/cueplayer/cueplayer> dpkg -l | grep -i gstream
ii gstreamer0.10-alsa 0.10.19-2 GStreamer plugin for ALSA
ii gstreamer0.10-ffmpeg 0.10.4-3 FFmpeg plugin for GStreamer
ii gstreamer0.10-gnomevfs 0.10.19-2 GStreamer plugin for GnomeVFS
ii gstreamer0.10-lame 0.10.10-0.0 GStreamer lame plugins
ii gstreamer0.10-plugins-bad 0.10.7-2+lenny2 GStreamer plugins from the "bad" set
ii gstreamer0.10-plugins-base 0.10.19-2 GStreamer plugins from the "base" set
ii gstreamer0.10-plugins-good 0.10.8-4.1~lenny2 GStreamer plugins from the "good" set
ii gstreamer0.10-plugins-ugly 0.10.8-1 GStreamer plugins from the "ugly" set
ii gstreamer0.10-tools 0.10.19-3 Tools for use with GStreamer
ii gstreamer0.10-x 0.10.19-2 GStreamer plugins for X11 and Pango
ii libgstreamer-plugins-base0.10-0 0.10.19-2 GStreamer libraries from the "base" set
ii libgstreamer-plugins-base0.10-dev 0.10.19-2 GStreamer development files for libraries fr
ii libgstreamer0.10-0 0.10.19-3 Core GStreamer libraries and elements
ii libgstreamer0.10-dev 0.10.19-3 GStreamer core development files
ii totem-gstreamer 2.22.2-6 A simple media player for the GNOME desktop

ws3:/tmp/cueplayer/cueplayer> qmake-qt4
ws3:/tmp/cueplayer/cueplayer> make
/usr/bin/uic-qt4 ui/cueplayer.ui -o ui_cueplayer.h
/usr/bin/uic-qt4 ui/transcoder.ui -o ui_transcoder.h
/usr/bin/uic-qt4 ui/apetoflacdialog.ui -o ui_apetoflacdialog.h
/usr/bin/uic-qt4 ui/videowindow.ui -o ui_videowindow.h
/usr/bin/uic-qt4 ui/videoslider.ui -o ui_videoslider.h
/usr/bin/uic-qt4 ui/streamform.ui -o ui_streamform.h
g++ -c -pipe -O2 -Wall -W -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o cueplayer.o cueplayer.cpp
cueplayer.cpp: In member function ‘void CuePlayer::seekGst(int)’:
cueplayer.cpp:995: error: ‘GST_SEEK_FLAG_SKIP’ was not declared in this scope
cueplayer.cpp:999: error: ‘gst_bin_recalculate_latency’ was not declared in this scope
cueplayer.cpp: In member function ‘void CuePlayer::endBlock()’:
cueplayer.cpp:1526: error: ‘removeServer’ is not a member of ‘QLocalServer’
make: *** [cueplayer.o] Error 1

Плиз? :)
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

ii libgstreamer0.10-dev 0.10.19-3 GStreamer core development files

необходима версия не ниже 0.10.22
Спасибо сказали:

Torvinson
Сообщения: 425
ОС: Gentoo ~amd64

Re: CuePlayer

Сообщение Torvinson »

ipse666 писал(а):
10.02.2010 14:21
Дело в том что каждый создает cuesheet как ему вздумается, а потом расчитывает что парсер таки угадает что он имел ввиду.
Привожу цитату из педивикии
Первые три строки обозначат информацию о диске. За ними следует информация для каждого трека, снабжаемая отступами.

http://ru.wikipedia.org/wiki/Cue_sheet

В твоем примере я отступов не заметил.
Ну, я его не искусственно придумал. Это результат работы перечисленных программ, стандартных для линюкс. Причем, как я говорил, QMMP подобные файлы проигрывает. Быть может, его создатели знают о такой проблеме и не погнушались подправить свой парсер.

Или есть другие способы создать точный образ аудио диска под линюкс?
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Вообще ни одной ровной пока не видел. У приведенных тобой утилит свои баги, я попробовал один диск прочитать твом методом, в итоге получил вот что вместо русских букв в cue

Код: Выделить всё

PERFORMER "\315\356\343\363 \321\342\345\353\356"

можно сгенерить cue при помощи утилиты cuegen, но утилитка слишком примитивна, с CDDB не работает.
Напиши свою тулзу, если надо. Я так например не вижу смысла в создании всех этих cue.
у qmmp свои жуки в парсере, например оно не видит аудиофайла если в cue написано wav, а на самом деле это flac, такое часто бывает.
мне парсер прийдется уже не править, а переписывать и я вот думаю стоит ли оно того? на практике я лично таких кривых cue не встречал, а перелопатил я их сотни, для проверки плеера.
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Поскольку описывает стандарт Cue Sheet только этот документ, то буду пожалуй плясать от него.
Про отступы там ни слова, поэтому парсер поправил, теперь все работает и без отступов, полагаю файлики сгенеренные cueconvertором теперь будут читаться нормально.
А так-же ввел ограничение на 100 треков в списке, опять таки согласно стандарту.
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Возникла идея, на счет новой концепции программы. Суть такова. Грабишь аудиодиски, строго во флак, монолитный файл с куещитом внутри, можно хранить эти флаки, играть их и потом без потерь восстанавливать в оригинальный CD. Все это куеплеером разумеется.
При моральной поддержке начну реализацию.
Спасибо сказали:

Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: CuePlayer

Сообщение megabaks »

ipse666 писал(а):
19.02.2010 20:07
Возникла идея, на счет новой концепции программы. Суть такова. Грабишь аудиодиски, строго во флак, монолитный файл с куещитом внутри, можно хранить эти флаки, играть их и потом без потерь восстанавливать в оригинальный CD. Все это куеплеером разумеется.
При моральной поддержке начну реализацию.

идея то хорошая - но распарсит ли это мой аппаратный плеер с рокбоксом ?

и да - планируется эквалайзер?
Спасибо сказали:

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

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

Аватара пользователя
ipse666
Сообщения: 107
ОС: Gentoo

Re: CuePlayer

Сообщение ipse666 »

Или есть другие способы создать точный образ аудио диска под линюкс?

Я немного прослоупочил, совсем недавно cdda2wav из cdrtools обзавелся возможностью создавать cue

Код: Выделить всё

cdda2wav -cuefile -tall cddb=1

CuePlayer играет, проверено.
Да, и после этого можно сделать flac --cuesheet=audio.cue -8 audio.wav && rm audio.wav для экономии места, cue править не надо, CuePlayer сам найдет flac вместо wav
Спасибо сказали:

Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: CuePlayer

Сообщение megabaks »

должен рокбокс распарсить - оказывается ещё в 2007 один из девелоперов оного обещал прикрутить - так что идею одобряю :)
Спасибо сказали:

Torvinson
Сообщения: 425
ОС: Gentoo ~amd64

Re: CuePlayer

Сообщение Torvinson »

Было бы не плохо добавить паузу, проигрывание и прочие подобные пункты в меню, которое выходит при нажатии правой кнопки мыши на значок в лотке. Тогда можно быстро прокрутить песню, поставить на паузу и так далее, не открывая полное окно проигрывателя.

Или тоже самое по типу aimp2 - при наведении на значок в лотке появляется небольшое окошко управления с кнопками. Но это уже изыск, хотя и удобный.

Еще было не плохо добавить сообщение о начале проигрывания следующей песни из списка, как это сделано в том же qmmp.

Вот такие два предложения по интерфейсу.

Хороший плеер, спасибо.

Спасибо сказали:

Аватара пользователя
megabaks
Сообщения: 697
ОС: Gentoo ~x86

Re: CuePlayer

Сообщение megabaks »

тю - имхо хоткеи гораздо юзабельней :)
Спасибо сказали: