Mercurial > mplayer.hg
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 |
rev | line source |
---|---|
1 | 1 /* MP3 Player Library 2.0 (C) 1999 A'rpi/Astral&ESP-team */ |
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 | 6 /* decoder level: */ |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
17566
diff
changeset
|
7 #ifdef CONFIG_FAKE_MONO |
28051 | 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 | 12 int MP3_Open(char *filename, int buffsize); |
13 void MP3_SeekFrame(int num, int dir); | |
14 void MP3_SeekForward(int num); | |
15 int MP3_PrintTAG(void); | |
16 int MP3_DecodeFrame(unsigned char *hova, short single); | |
17 int MP3_FillBuffers(void); | |
18 void MP3_PrintHeader(void); | |
19 void MP3_Close(void); | |
1 | 20 /* public variables: */ |
21 extern int MP3_eof; // set if EOF reached | |
22 extern int MP3_pause; // lock playing | |
23 /* informational: */ | |
24 extern int MP3_filesize; // filesize | |
25 extern int MP3_frames; // current frame no | |
26 extern int MP3_fpos; // current file pos | |
27 extern int MP3_framesize; // current framesize in bytes (including header) | |
28 extern int MP3_bitrate; // current bitrate (kbits) | |
29 extern int MP3_samplerate; // current sampling freq (Hz) | |
30 extern int MP3_channels; | |
31 extern int MP3_bps; | |
32 | |
33 /* player level: */ | |
28051 | 34 int MP3_OpenDevice(char *devname); /* devname can be NULL for default) */ |
35 void MP3_Play(void); | |
36 void MP3_Stop(void); | |
37 void MP3_CloseDevice(void); | |
1 | 38 |
30163
257ef2adfd66
Add multiple inclusion guards to all mp3lib headers.
diego
parents:
28095
diff
changeset
|
39 #endif /* MPLAYER_MP3LIB_MP3_H */ |