*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "avformat.h"
/* open linux audio device */
if (!audio_device)
#ifdef __OpenBSD__
- audio_device = "/dev/sound";
+ audio_device = "/dev/sound";
#else
audio_device = "/dev/dsp";
#endif
/* select format : favour native format */
err = ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &tmp);
-
+
#ifdef WORDS_BIGENDIAN
if (tmp & AFMT_S16_BE) {
tmp = AFMT_S16_BE;
perror("SNDCTL_DSP_SETFMT");
goto fail;
}
-
+
tmp = (s->channels == 2);
err = ioctl(audio_fd, SNDCTL_DSP_STEREO, &tmp);
if (err < 0) {
}
if (tmp)
s->channels = 2;
-
+
tmp = s->sample_rate;
err = ioctl(audio_fd, SNDCTL_DSP_SPEED, &tmp);
if (err < 0) {
AVStream *st;
int ret;
- if (!ap || ap->sample_rate <= 0 || ap->channels <= 0)
+ if (ap->sample_rate <= 0 || ap->channels <= 0)
return -1;
st = av_new_stream(s1, 0);
st->codec->sample_rate = s->sample_rate;
st->codec->channels = s->channels;
- av_set_pts_info(st, 48, 1, 1000000); /* 48 bits pts in us */
+ av_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */
return 0;
}
int ret, bdelay;
int64_t cur_time;
struct audio_buf_info abufi;
-
+
if (av_new_packet(pkt, s->frame_size) < 0)
return AVERROR_IO;
for(;;) {
if (ret == -1 && (errno == EAGAIN || errno == EINTR)) {
av_free_packet(pkt);
pkt->size = 0;
- pkt->pts = av_gettime() & ((1LL << 48) - 1);
+ pkt->pts = av_gettime();
return 0;
}
if (!(ret == 0 || (ret == -1 && (errno == EAGAIN || errno == EINTR)))) {
cur_time -= (bdelay * 1000000LL) / (s->sample_rate * s->channels);
/* convert to wanted units */
- pkt->pts = cur_time & ((1LL << 48) - 1);
+ pkt->pts = cur_time;
if (s->flip_left && s->channels == 2) {
int i;
return 0;
}
-static AVInputFormat audio_in_format = {
+static AVInputFormat audio_demuxer = {
"audio_device",
"audio grab and output",
sizeof(AudioData),
.flags = AVFMT_NOFILE,
};
-static AVOutputFormat audio_out_format = {
+static AVOutputFormat audio_muxer = {
"audio_device",
"audio grab and output",
"",
int audio_init(void)
{
- av_register_input_format(&audio_in_format);
- av_register_output_format(&audio_out_format);
+ av_register_input_format(&audio_demuxer);
+ av_register_output_format(&audio_muxer);
return 0;
}