Open GoogleCodeExporter opened 9 years ago
Играть то оно начало, тока seek у меня на flac ни
в какую не идёт, виснет или падает.
На ape не проверял ещё
r237
Original comment by drmoriar...@gmail.com
on 1 Jul 2009 at 1:45
К сожалению, боюсь, что у меня оно играть не
начало:
../../src/player_ffmpeg.cpp:330: ошибка: целая константа
слишком велика для типа
‘long’
../../src/player_ffmpeg.cpp:343: ошибка: целая константа
слишком велика для типа
‘long’
Original comment by nomen.in...@gmail.com
on 1 Jul 2009 at 1:47
быстрофикс r238
Original comment by drmoriar...@gmail.com
on 1 Jul 2009 at 2:11
Странно, не помогло...
Original comment by nomen.in...@gmail.com
on 1 Jul 2009 at 3:10
> На ape не проверял ещё
На ape "квакает", как будто не успевает читать
файл.
Original comment by nomen.in...@gmail.com
on 1 Jul 2009 at 3:40
> Странно, не помогло...
В интернетах говорят, что это из-за того,
что ffmpeg написан на C, а не на C++
Попробовал рекомендуемый метод
http://forum.motama.com/viewtopic.php?t=12 (там два
метода, результат одинаковый) - компиляется
но при воспроизведении виснет на seek
Original comment by nomen.in...@gmail.com
on 2 Jul 2009 at 7:32
То, что оно виснет, это ожидаемо...
Покажи дифф при котором компиляется
корректно, внесу в svn
Original comment by drmoriar...@gmail.com
on 2 Jul 2009 at 7:53
На прямую мой дифф вносить не стоит, потому
что при компиляции появляется такая ругань:
../../src/player_ffmpeg.cpp:332: предупреждение:
сравнение знакового и беззнакового
целых выражений
../../src/player_ffmpeg.cpp:345: предупреждение:
сравнение знакового и беззнакового
целых выражений
Кроме того, я не уверен, нужна ли строка
#undef __STDC_CONSTANT_MACROS
да и вообще, для меня это тёмный лес
Выглядит примерно так:
Index: player_ffmpeg.pro
===================================================================
--- player_ffmpeg.pro (revision 238)
+++ player_ffmpeg.pro (working copy)
@@ -1,7 +1,9 @@
CONFIG += release
TEMPLATE = lib
CONFIG += plugin
- INCLUDEPATH += ../../src
+ INCLUDEPATH += ../../src \
+ /usr/include/libavcodec/ \
+ /usr/include/libavformat/
HEADERS = ../../src/player_ffmpeg.h \
../../src/player.h
SOURCES = ../../src/player_ffmpeg.cpp
$ svn diff ../../src/player_ffmpeg.cpp
Index: ../../src/player_ffmpeg.cpp
===================================================================
--- ../../src/player_ffmpeg.cpp (revision 238)
+++ ../../src/player_ffmpeg.cpp (working copy)
@@ -16,16 +16,13 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
-
+#define __STDC_CONSTANT_MACROS 1
#include "player_ffmpeg.h"
+#undef __STDC_CONSTANT_MACROS
#include <SDL.h>
#include <SDL_audio.h>
#define SDL_AUDIO_BUFFER_SIZE 1024
-#ifdef WIN32
-#define localAV_NOPTS_VALUE int64_t(0x8000000000000000)
-#else
-#define localAV_NOPTS_VALUE AV_NOPTS_VALUE
#endif
Q_EXPORT_PLUGIN2(player_ffmpeg, PlayerFfmpeg)
@@ -332,7 +329,7 @@
}
} while(packet.stream_index!=audioStream);
- if(packet.pts != localAV_NOPTS_VALUE)
+ if(packet.pts != AV_NOPTS_VALUE)
curts = packet.pts;
if(stopts && curts >= stopts) {
if(packet.data!=NULL)
@@ -345,7 +342,7 @@
rawData=packet.data;
}
frame_unpacked:
- if(packet.pts == localAV_NOPTS_VALUE) {
+ if(packet.pts == AV_NOPTS_VALUE) {
curts += audio_buf_ptr / 2 / pCodecCtx->channels;
}
Original comment by nomen.in...@gmail.com
on 2 Jul 2009 at 10:45
И, кстати, на seek виснет не только на flac, но и
на mp3 и на ogg/vorbis
Original comment by nomen.in...@gmail.com
on 2 Jul 2009 at 10:51
> + INCLUDEPATH += ../../src \
> + /usr/include/libavcodec/ \
> + /usr/include/libavformat/
PKGCONFIG не сработал? или в генту как то не так?
Добавил специально для flac другой режим seek.
Там щас не совсем совпадает время (у
меня позиционирует чуть дальше чем надо)
интересует разброс на разных флаках
r239
Original comment by drmoriar...@gmail.com
on 3 Jul 2009 at 10:27
> PKGCONFIG не сработал? или в генту как то не так?
Честно говоря, не понимаю, почему возникает
проблема, поэтому не стал репортить. Вот
для сравнения как он отработал для phonon и
для lavc
name_no@name_no_new: ~ $ pkg-config --libs phonon
-L/usr/lib/qt4 -lphonon -lQtGui -lQtDBus -lQtXml -lQtCore
name_no@name_no_new: ~ $ pkg-config --libs libavcodec
-lavcodec
name_no@name_no_new: ~ $ locate avcodec.h
/usr/include/libavcodec/avcodec.h
Ещё для сравнения, SDL:
name_no@name_no_new: ~ $ pkg-config --libs sdl
-lSDL -lpthread
name_no@name_no_new: ~ $ locate SDL.h
/usr/include/SDL/SDL.h
Original comment by nomen.in...@gmail.com
on 3 Jul 2009 at 10:58
Интересно, что вот такой "патч" решает мою
проблему. Видимо, гента виновата ))
# ln -s /usr/include/libavcodec/ /usr/include/avcodec
# ln -s /usr/include/libavformat/ /usr/include/avformat
Дома ещё на дебиане посмотрю.
Original comment by nomen.in...@gmail.com
on 6 Jul 2009 at 9:49
> Интересно, что вот такой "патч" решает мою
проблему.
А, нет, не решает, поспешил я
Original comment by nomen.in...@gmail.com
on 6 Jul 2009 at 9:59
На рабочем компе есть проблемы с seek на
mp3-файлах, на домашнем, вроде, такой
проблемы нет. flac не воспроизводится на
обоих компах.
Версии всего одинаковые, разницы в
use-флагах.
дома:
3dnow 3dnowext X alsa amr bindist dirac ieee1394 ipv6 mmx mp3 network
schroedinger
ssse3 theora threads v4l v4l2 vorbis x264 xvid zlib -altivec -custom-cflags
-debug -
doc -encode -faac -faad -gsm -hardcoded-tables -jpeg2k -mmxext -oss -sdl -speex
-
test -vhook
на работе:
3dnowext X alsa encode ipv6 mmx mmxext mp3 network ssse3 theora threads vorbis
xvid
zlib -3dnow -altivec -amr -bindist -custom-cflags -debug -dirac -doc -faac
-faad -
gsm -hardcoded-tables -ieee1394 -jpeg2k -oss -schroedinger -sdl -speex -test
-v4l -
v4l2 -vhook -x264
// Кстати, хотел же разобраться, кто мне 3dnow
включил...
Original comment by nomen.in...@gmail.com
on 7 Jul 2009 at 6:38
а ещё с этим плагином очень интересную
фигню замечаю: как только появляется
нагрузка
на хард (не процессор, а именно на дисках,
чтение) cuberok начинает запинаться. Не
сильно и не долго, но заметно и неприятно.
Может, кеш прикрутить?
Original comment by nomen.in...@gmail.com
on 7 Jul 2009 at 6:48
Итак:
Флак целым файлом воспроизводится, по cue
пока нет.
Глюки:
Один и тот же флак на винде seek'ает примерно
в 3 раза дальше, на дебе (версия 2008
02 06) примерно в полтора раза дальше. Сик
работает в бинарном режиме, как его лечить
я пока не догоняю.
Интересует:
Какие будут ошибки seek на разных флаках, а
ещё лучше на разных версиях ffmpeg
Original comment by drmoriar...@gmail.com
on 9 Jul 2009 at 7:34
А что у нас с ape? (у меня нету, тестить не на
чем)
Original comment by drmoriar...@gmail.com
on 9 Jul 2009 at 7:38
> Интересует:
> Какие будут ошибки seek на разных флаках, а
ещё лучше на разных версиях ffmpeg
На амароке я замечал, что неправильно
выбирается новая позиция, если в файле есть
тишина. Видимо, это каким-то образом
связано с методом сжатия. Ещё замечал, что в
mplayer flac с тишиной (полностью только тишина),
длиной примерно в полторы минуты,
воспроизводился всего долю секунды. Сейчас
на генте при прокрутке флака в консоли
пишет
так:
[flac @ 0x9d8d930]qlevel -12 not supported, maybe buggy stream
[flac @ 0x9d8d930]decode_frame() failed
[flac @ 0x9d8d930]FRAME HEADER not here
Насчёт точности позиционирования на
работе некогда )))
С ape ничего неизменилось
> Comment 5 by nomen.infitior, Jul 01, 2009
> На ape "квакает", как будто не успевает
читать файл.
Может, и не как будто не успевает, но как
если часто включать выключать динамик
(очень
часто). И медленно играет.
тот самый, который квакает (десять метров):
http://g.imagehost.org/download/0898/Track11
Original comment by nomen.in...@gmail.com
on 9 Jul 2009 at 8:10
При воспроизведении флака ещё (видимо та же
проблема, что и с seek) неправильно
отображается время. Я запустил трек и за 15
секунд реального прослушивания песенки на
пололе прокрутки отображалось (00:00:08 / 00:03:03)
Original comment by nomen.in...@gmail.com
on 9 Jul 2009 at 8:30
> Я запустил трек и за 15 секунд реального
прослушивания песенки на
пололе прокрутки отображалось (00:00:08 / 00:03:03)
Мнится мне, что это и есть проблема,
интерпретированная как "флак seek'ает
примерно в
3 раза дальше". Т.е. если судить по времени,
отображённому на полосе прокрутки, он
играет десятую секунду, а на самом деле он
играет двадцатую.
Original comment by nomen.in...@gmail.com
on 10 Jul 2009 at 6:27
> Т.е. если судить по времени, отображённому
на полосе прокрутки, он
играет десятую секунду, а на самом деле он
играет двадцатую.
И воспроизведение трека заканчивается
ровно на середине прогрессбара. Наоборот,
если
сделать seek, то время, отображаемое на
полосе прокрутки окажется больше того, что
на
самом деле играет и воспроизведение трека
прекратится раньше, чем трек закончится. Во
всяком случае, так у меня происходит сейчас.
Original comment by nomen.in...@gmail.com
on 10 Jul 2009 at 6:44
Для флака сделан "тупой" seek, то есть при
перемещении вперёд поток раскодируется до
нужного места, при перемещении назад -
поток сбрасывается в начало и
раскодируется
опять же до нужного места.
На моём тестовом флаке позиция совпадает с
желаемой, сик делается заметно долго
(последняя композиция в часовом флаке
стартует ок. 5 секунд)
Если не придумается ничего лучше, то будет
хоть так работать.
r278
Original comment by drmoriar...@gmail.com
on 24 Jul 2009 at 8:41
По описанию получается примерно то, что
надо, но надо как-то оптимизировать ))
P.S. на моей gentoo сохраняется ситуация с
неправильным отображением времени на
прогрессбаре, в результате чего seek дальше
середины трека стабильно приводит к
переходу
на следующий трек (flac потрековый).
Original comment by nomen.in...@gmail.com
on 24 Jul 2009 at 9:41
Вот эта проблема с отображением времени
мне непонятна. На настоящий момент timestamp
вычисляется как объём пройденных
аудиоданных делённый на количество
каналов и ещё
делённый на 2 (ибо звук считается 16 битным)
В проблемном флаке каналов случайно не
больше двух? или звук сильно не 16-ти битный?
Original comment by drmoriar...@gmail.com
on 24 Jul 2009 at 11:39
$ file 01\ Holidays\ In\ The\ Sun.flac
01 Holidays In The Sun.flac: Audio file with ID3 version 23.0 tag, MP3 encoding
$ kfile -av 01\ Holidays\ In\ The\ Sun.flac
01 Holidays In The Sun.flac: Звуковой файл FLAC (audio/x-flac)
-- /home/name_no/Музыка/Sex Pistols/Sex Pistols - Never Mind The Bollocks
[Black
Triangle Edition 32VD-1011]/01 Holidays In The Sun.flac
=All Values=
Comment: Album: Never Mind The Bollocks
Comment: Artist: Sex Pistols
Comment: Comment: Track 1
Comment: Date: 1977
Comment: Genre: Punk Rock
Comment: Title: Holidays In The Sun
Comment: Track Number: 1
Technical Details: Average Bitrate: 995 kbps
Technical Details: Channels: 2
Technical Details: Length: 03:22
Technical Details: Sample Rate: 44.100 Hz
Technical Details: Sample Width: 16 bits
Но выглядит так, будто проблема и вправду в
лишнем делении на два. Такая ерунда на
всех треках. В идеале, конечно, точнее всего
было бы по фреймам считать (см.
замечание про amarok и mplayer)
Original comment by nomen.in...@gmail.com
on 24 Jul 2009 at 12:17
Original issue reported on code.google.com by
nomen.in...@gmail.com
on 30 Jun 2009 at 3:44