annotate mp3lib/mp3.h @ 32794:77d81e27a176

Fix stream_write_buffer to make sure all requested bytes are written None of the calling sites to stream_write_buffer are checking the return value to see if all bytes got written. This was causing (very occasionally) problems with mencoder when using output pipes AND running under a sandbox or when being straced (ptrace is the culprit) Theoretically this problem can happen without pipes or ptrace. Only stream_file, stream_smb and stream_ffmpeg implement write_buffer and ffmpeg already handles this internally. Original patch by Sang-Uok Kum. Signed-off-by: Tobias Diedrich <ranma@google.com>
author ranma
date Thu, 10 Feb 2011 21:25:38 +0000
parents 257ef2adfd66
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /* MP3 Player Library 2.0 (C) 1999 A'rpi/Astral&ESP-team */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2
30163
257ef2adfd66 Add multiple inclusion guards to all mp3lib headers.
diego
parents: 28095
diff changeset
3 #ifndef MPLAYER_MP3LIB_MP3_H
257ef2adfd66 Add multiple inclusion guards to all mp3lib headers.
diego
parents: 28095
diff changeset
4 #define MPLAYER_MP3LIB_MP3_H
257ef2adfd66 Add multiple inclusion guards to all mp3lib headers.
diego
parents: 28095
diff changeset
5
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 /* decoder level: */
27341
e7c989f7a7c9 Start unifying names of internal preprocessor directives.
diego
parents: 17566
diff changeset
7 #ifdef CONFIG_FAKE_MONO
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
8 void MP3_Init(int fakemono);
732
e14114170e01 applied 'fakemono' patch by Bryan Chan scorpio@acm.org
arpi_esp
parents: 1
diff changeset
9 #else
28095
7448d949d6b4 Add missing 'void' to parameterless function declaration.
diego
parents: 28051
diff changeset
10 void MP3_Init(void);
732
e14114170e01 applied 'fakemono' patch by Bryan Chan scorpio@acm.org
arpi_esp
parents: 1
diff changeset
11 #endif
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
12 int MP3_Open(char *filename, int buffsize);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
13 void MP3_SeekFrame(int num, int dir);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
14 void MP3_SeekForward(int num);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
15 int MP3_PrintTAG(void);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
16 int MP3_DecodeFrame(unsigned char *hova, short single);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
17 int MP3_FillBuffers(void);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
18 void MP3_PrintHeader(void);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
19 void MP3_Close(void);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 /* public variables: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 extern int MP3_eof; // set if EOF reached
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 extern int MP3_pause; // lock playing
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 /* informational: */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 extern int MP3_filesize; // filesize
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25 extern int MP3_frames; // current frame no
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 extern int MP3_fpos; // current file pos
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27 extern int MP3_framesize; // current framesize in bytes (including header)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28 extern int MP3_bitrate; // current bitrate (kbits)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 extern int MP3_samplerate; // current sampling freq (Hz)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
30 extern int MP3_channels;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31 extern int MP3_bps;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
32
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 /* player level: */
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
34 int MP3_OpenDevice(char *devname); /* devname can be NULL for default) */
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
35 void MP3_Play(void);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
36 void MP3_Stop(void);
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27341
diff changeset
37 void MP3_CloseDevice(void);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38
30163
257ef2adfd66 Add multiple inclusion guards to all mp3lib headers.
diego
parents: 28095
diff changeset
39 #endif /* MPLAYER_MP3LIB_MP3_H */