int frame_size; /* in bytes ! */
int codec_id;
int flip_left : 1;
- UINT8 buffer[AUDIO_BLOCK_SIZE];
+ uint8_t buffer[AUDIO_BLOCK_SIZE];
int buffer_ptr;
} AudioData;
}
static int audio_write_packet(AVFormatContext *s1, int stream_index,
- UINT8 *buf, int size, int force_pts)
+ const uint8_t *buf, int size, int64_t pts)
{
AudioData *s = s1->priv_data;
int len, ret;
if (av_new_packet(pkt, s->frame_size) < 0)
return -EIO;
for(;;) {
+ struct timeval tv;
+ fd_set fds;
+
+ tv.tv_sec = 0;
+ tv.tv_usec = 30 * 1000; /* 30 msecs -- a bit shorter than 1 frame at 30fps */
+
+ FD_ZERO(&fds);
+ FD_SET(s->fd, &fds);
+
+ /* This will block until data is available or we get a timeout */
+ (void) select(s->fd + 1, &fds, 0, 0, &tv);
+
ret = read(s->fd, pkt->data, pkt->size);
if (ret > 0)
break;