Opened 17 years ago
Last modified 14 years ago
#1096 new defect
thick cuesheet support
Reported by: | Owned by: | reimar | |
---|---|---|---|
Priority: | normal | Component: | ad |
Version: | 1.0rc2 | Severity: | normal |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Reproduced by developer: | no | Analyzed by developer: | no |
Description
Cue support is not working. At all.
Mplayer's man page tells that mplayer supports cuesheet via cue://cuefile "protocol"
So, I have some music releases in "flac image"+"cuesheet" where cuesheet also plays a role of playlist - tracktitles, artist, etc.
Here is an example of my cue:
REM GENRE Alternative
REM DATE 2001
REM DISCID E70CF90F
REM COMMENT "ExactAudioCopy v0.95b4"
PERFORMER "Clawfinger"
TITLE "A Whole Lot Of Nothing"
FILE "Clawfinger - A Whole Lot Of Nothing.wav" WAVE
TRACK 01 AUDIO
TITLE "Two Steps Away"
PERFORMER "Clawfinger"
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "Out To Get Me"
PERFORMER "Clawfinger"
INDEX 00 03:40:54
INDEX 01 03:42:04
TRACK 03 AUDIO
TITLE "Nothing Going On"
PERFORMER "Clawfinger"
INDEX 00 07:25:11
INDEX 01 07:26:36
TRACK 04 AUDIO
TITLE "Are You Man Enough"
PERFORMER "Clawfinger"
INDEX 01 10:47:09
TRACK 05 AUDIO
TITLE "Confrontation"
PERFORMER "Clawfinger"
INDEX 01 14:22:09
and so on.
So, I tryed chdir to ./where_those_files_stored and run
$ mplayer cue://Clawfinger\ -\ A\ Whole\ Lot\ Of\ Nothing.wav.cue
And sure I get this:
MPlayer dev-SVN-r26753-4.1.2 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Core(TM)2 Duo CPU E8200 @ 2.66GHz (Family: 6, Model: 23, Stepping: 6)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Скомпилировано для x86 CPU со следующими расширениями: MMX MMX2 SSE SSE2
Воспроизведение cue://Clawfinger - A Whole Lot Of Nothing.wav.cue.
[bincue] cue_find_bin(REM GENRE Alternative
)
[bincue] проверенное имя бинарного файла:
[bincue] Использую бинарный файл ./.
[bincue] Ошибка чтения из Clawfinger - A Whole Lot Of Nothing.wav.cue
No stream found to handle url cue://Clawfinger - A Whole Lot Of Nothing.wav.cue
( my translation:
[bincue] checked binary filename:
[bincue] use binary file ./.
[bincue] read error from Clawfinger - A Whole Lot Of Nothing.wav.cue
No stream found to handle url cue://Clawfinger - A Whole Lot Of Nothing.wav.cue
)
This error was not very difficult for me to resolv.
I added some code into stream/stream_cue.c:
350 /* read the first line and hand it to find_bin, which will
351 test more than one possible name of the file */
352 + sLine[0]='\0';
353 + /*
354 + * Temporarily way to make avialable to use REAL cue-sheet files
355 + */
356 + while (strncmp(sLine, "FILE \"",6)!=0)
357 + {
358 if(! fgets( sLine, 256, fd_cue ) )
359 {
360 mp_msg(MSGT_OPEN,MSGL_ERR,
361 MSGTR_MPDEMUX_CUEREAD_ErrReadingFromCueFile, in_cue_filename);
362 fclose (fd_cue);
363 return -1;
364 + }
365 + mp_msg (MSGT_OPEN,MSGL_INFO, "[bincue] looking for \"FILE \" in (%s)\n", sLine);
366 }
367
368 if (cue_find_bin(sLine)) {
369 fclose (fd_cue);
370 return -1;
371 }
It was added just to check if I really right.
It helped, but not fully:
[bincue] looking for "FILE " in (REM GENRE Alternative)
[bincue] looking for "FILE " in (REM DATE 2001)
[bincue] looking for "FILE " in (REM DISCID E70CF90F)
[bincue] looking for "FILE " in (REM COMMENT "ExactAudioCopy v0.95b4")
[bincue] looking for "FILE " in (PERFORMER "Clawfinger")
[bincue] looking for "FILE " in (TITLE "A Whole Lot Of Nothing")
[bincue] looking for "FILE " in (FILE "Clawfinger - A Whole Lot Of Nothing.ape" WAVE)
[bincue] cue_find_bin(FILE "Clawfinger - A Whole Lot Of Nothing.ape" WAVE)
[bincue] Using bin file Clawfinger - A Whole Lot Of Nothing.ape.
[bincue] Unexpected cuefile line: TITLE "Two Steps Away"
[bincue] Unexpected cuefile line: PERFORMER "Clawfinger"
[bincue] Unexpected cuefile line: TITLE "Out To Get Me"
[bincue] Unexpected cuefile line: PERFORMER "Clawfinger"
.........
track 01: format=0 00:00:00
track 02: format=0 03:40:54
track 03: format=0 07:25:11
track 04: format=0 10:47:09
track 05: format=0 14:22:09
track 06: format=0 17:56:00
track 07: format=0 22:13:13
track 08: format=0 25:45:29
track 09: format=0 29:46:60
track 10: format=0 33:09:68
track 11: format=0 36:19:30
track 12: format=0 39:58:41
track 13: format=0 44:01:23
track 14: format=0 48:15:35
track 15: format=0 51:35:03
CUE stream_open, filename=image.cue, track=1, available tracks: 0 -> 38471496
Exiting... (End of file)
Why? So I tryed to encrease msglevel. At this time I alredy guess that cue was written for VCD-images. But it must work for audio to! I conthider it wouldn't work even for vcd. So:
CUE stream_open, filename=image.cue, track=1, available tracks: 0 -> 38471496
STREAM: [cue] cue://image.cue
STREAM: Description: CUE track
STREAM: Author: Albeu
STREAM: Comment: based on the code from ???
s->pos=0 newpos=0 new_bufpos=0 buflen=0
stream_seek: WARNING! Can't seek to 0x0 !
DEMUXER: freeing demuxer at 0x8a3e5f8
s->pos=0 newpos=0 new_bufpos=0 buflen=0
stream_seek: WARNING! Can't seek to 0x0 !
DEMUXER: freeing demuxer at 0x8a3e5f8
s->pos=0 newpos=0 new_bufpos=0 buflen=0
stream_seek: WARNING! Can't seek to 0x0 !
Checking for YUV4MPEG2
DEMUXER: freeing demuxer at 0x8a3e5f8
s->pos=0 newpos=0 new_bufpos=0 buflen=0
stream_seek: WARNING! Can't seek to 0x0 !
ASF_check: not ASF guid!
DEMUXER: freeing demuxer at 0x8a3e5f8
This what I seen on other tracks (I tryed cue://image.cue:2 - no case)
The second what I tried to add was the line in stream/stream.c
242 =================== STREAMER =========================
243
244 int stream_fill_buffer(stream_t *s){
245 int len;
*/ s->eof) { s->buf_pos = s->buf_len = 0; return 0; } |
247 switch(s->type){
248 case STREAMTYPE_STREAM:
249 + case STREAMTYPE_VCDBINCUE:
250 #ifdef MPLAYER_NETWORK
251 if( s->streaming_ctrl!=NULL && s->streaming_ctrl->streaming_read ) {
252 len=s->streaming_ctrl->streaming_read(s->fd,s->buffer,STREAM_BUFFER_SIZE, s->streaming_ctrl);break;
253 } else {
254 len=read(s->fd,s->buffer,STREAM_BUFFER_SIZE);break;
255 }
256 #else
257 len=read(s->fd,s->buffer,STREAM_BUFFER_SIZE);break;
258 #endif
It helped a litle, but also not enough:
CUE stream_open, filename=image.cue, track=1, available tracks: 0 -> 38471496
STREAM: [cue] cue://image.cue
STREAM: Description: CUE track
STREAM: Author: Albeu
STREAM: Comment: based on the code from ???
s->pos=0 newpos=0 new_bufpos=0 buflen=0
LAVF_check: Monkey's Audio
DEMUXER: freeing demuxer at 0x8a3e5f8
DEMUXER: freeing demuxer at 0x8a3e5f8
Checking for YUV4MPEG2
DEMUXER: freeing demuxer at 0x8a3e5f8
ASF_check: not ASF guid!
DEMUXER: freeing demuxer at 0x8a3e5f8
Checking for NuppelVideo
DEMUXER: freeing demuxer at 0x8a3e5f8
Checking for REAL
DEMUXER: freeing demuxer at 0x8a3e5f8
Checking for SMJPEG
DEMUXER: freeing demuxer at 0x8a3e5f8
[mkv] no head found
DEMUXER: freeing demuxer at 0x8a3e5f8
DEMUXER: freeing demuxer at 0x8a3e5f8
DEMUXER: freeing demuxer at 0x8a3e5f8
Ogg demuxer : Bad page sync
DEMUXER: freeing demuxer at 0x8a3e5f8
Searching demuxer type for filename cue://image.cue ext: .cue
s->pos=1000 newpos=0 new_bufpos=0 buflen=0
Checking for Nullsoft Streaming Video
DEMUXER: freeing demuxer at 0x8a3e5f8
s->pos=3E800 newpos=0 new_bufpos=0 buflen=0
Checking for MOV
DEMUXER: freeing demuxer at 0x8a3e5f8
Checking for VIVO
header block 1 size: 81
DEMUXER: freeing demuxer at 0x8a3e5f8
DEMUXER: freeing demuxer at 0x8a3e5f8
DEMUXER: freeing demuxer at 0x8a3e5f8
DEMUXER: freeing demuxer at 0x8a3e5f8
Then I stopped, because I am not a programmer at all. I feel that I was near to make it work, but who knows.
So, please, refit this "feature".
In attache there are debug before adding
249 + case STREAMTYPE_VCDBINCUE
and after adding this line.
I am a user of gentoo and the version of mplayer was
mplayer-1.0_rc2_p26753 for me. I think PC configuration as well as "configure" keys are meaningless in this case. I didn't try HEAD.
I find this link for cuesheet syntax documentation:
http://digitalx.org/cuesheetsyntax.php
P.S. Pardon my english.
Attachments (2)
Change History (5)
by , 17 years ago
Attachment: | debug_before.log added |
---|
comment:1 by , 17 years ago
by , 17 years ago
Attachment: | debug_after.log.gz added |
---|
verbose mplayer output after adding case STREAMTYPE_VCDBINCUE
comment:2 by , 17 years ago
comment:3 by , 14 years ago
Owner: | changed from | to
---|
verbose mplayer output before adding case STREAMTYPE_VCDBINCUE