+/*
+ * G.729 bit format muxer and demuxer
+ * Copyright (c) 2007-2008 Vladimir Voroshilov
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
#include "avformat.h"
+#include "internal.h"
#include "libavcodec/get_bits.h"
#include "libavcodec/put_bits.h"
{
AVStream* st;
- st=av_new_stream(s, 0);
+ st=avformat_new_stream(s, NULL);
if (!st)
return AVERROR(ENOMEM);
st->codec->block_align = 16;
st->codec->channels=1;
- av_set_pts_info(st, 64, 1, 100);
+ avpriv_set_pts_info(st, 64, 1, 100);
return 0;
}
static int read_packet(AVFormatContext *s,
AVPacket *pkt)
{
- ByteIOContext *pb = s->pb;
+ AVIOContext *pb = s->pb;
PutBitContext pbo;
uint16_t buf[8 * MAX_FRAME_SIZE + 2];
int packet_size;
if(url_feof(pb))
return AVERROR_EOF;
- get_le16(pb); // sync word
- packet_size = get_le16(pb) / 8;
+ avio_rl16(pb); // sync word
+ packet_size = avio_rl16(pb) / 8;
if(packet_size > MAX_FRAME_SIZE)
return AVERROR_INVALIDDATA;
- ret = get_buffer(pb, (uint8_t*)buf, (8 * packet_size) * sizeof(uint16_t));
+ ret = avio_read(pb, (uint8_t*)buf, (8 * packet_size) * sizeof(uint16_t));
if(ret<0)
return ret;
if(ret != 8 * packet_size * sizeof(uint16_t))
.extensions = "bit",
};
-#ifdef CONFIG_MUXERS
+#if CONFIG_MUXERS
static int write_header(AVFormatContext *s)
{
AVCodecContext *enc = s->streams[0]->codec;
static int write_packet(AVFormatContext *s, AVPacket *pkt)
{
- ByteIOContext *pb = s->pb;
+ AVIOContext *pb = s->pb;
GetBitContext gb;
int i;
- put_le16(pb, SYNC_WORD);
- put_le16(pb, 8 * 10);
+ avio_wl16(pb, SYNC_WORD);
+ avio_wl16(pb, 8 * 10);
init_get_bits(&gb, pkt->data, 8*10);
for(i=0; i< 8 * 10; i++)
- put_le16(pb, get_bits1(&gb) ? BIT_1 : BIT_0);
- put_flush_packet(pb);
+ avio_wl16(pb, get_bits1(&gb) ? BIT_1 : BIT_0);
+ avio_flush(pb);
return 0;
}