static int adx_read_packet(AVFormatContext *s, AVPacket *pkt)
{
    ADXDemuxerContext *c = s->priv_data;
    AVCodecContext *avctx = s->streams[0]->codec;
    int ret, size;
    size = BLOCK_SIZE * avctx->channels;
    pkt->pos = avio_tell(s->pb);
    pkt->stream_index = 0;
    ret = av_get_packet(s->pb, pkt, size);
    if (ret != size) {
        av_free_packet(pkt);
        return ret < 0 ? ret : AVERROR(EIO);
    if (AV_RB16(pkt->data) & 0x8000) {
        av_free_packet(pkt);
        return AVERROR_EOF;
    pkt->size     = size;
    pkt->duration = 1;
    pkt->pts      = (pkt->pos - c->header_size) / size;
    return 0;
static int adx_read_packet(AVFormatContext *s, AVPacket *pkt)
{
    ADXDemuxerContext *c = s->priv_data;
    AVCodecContext *avctx = s->streams[0]->codec;
    int ret, size;
    size = BLOCK_SIZE * avctx->channels;
    pkt->pos = avio_tell(s->pb);
    pkt->stream_index = 0;
    ret = av_get_packet(s->pb, pkt, size);
    if (ret != size) {
        av_free_packet(pkt);
        return ret < 0 ? ret : AVERROR(EIO);
    if (AV_RB16(pkt->data) & 0x8000) {
        av_free_packet(pkt);
        return AVERROR_EOF;
    pkt->size     = size;
    pkt->duration = 1;
    pkt->pts      = (pkt->pos - c->header_size) / size;
    return 0;
static int FUNC_0(AVFormatContext *VAR_0, AVPacket *VAR_1)
{
    ADXDemuxerContext *c = VAR_0->priv_data;
    AVCodecContext *avctx = VAR_0->streams[0]->codec;
    int VAR_2, VAR_3;
    VAR_3 = BLOCK_SIZE * avctx->channels;
    VAR_1->pos = avio_tell(VAR_0->pb);
    VAR_1->stream_index = 0;
    VAR_2 = av_get_packet(VAR_0->pb, VAR_1, VAR_3);
    if (VAR_2 != VAR_3) {
        av_free_packet(VAR_1);
        return VAR_2 < 0 ? VAR_2 : AVERROR(EIO);
    if (AV_RB16(VAR_1->data) & 0x8000) {
        av_free_packet(VAR_1);
        return AVERROR_EOF;
    VAR_1->VAR_3     = VAR_3;
    VAR_1->duration = 1;
    VAR_1->pts      = (VAR_1->pos - c->header_size) / VAR_3;
    return 0;
static int FUNC_0(AVFormatContext *VAR_0, AVPacket *VAR_1)
{ ADXDemuxerContext *c = VAR_0->priv_data; AVCodecContext *avctx = VAR_0->streams[0]->codec; int VAR_2, VAR_3; VAR_3 = BLOCK_SIZE * avctx->channels; VAR_1->pos = avio_tell(VAR_0->pb); VAR_1->stream_index = 0; VAR_2 = av_get_packet(VAR_0->pb, VAR_1, VAR_3); if (VAR_2 != VAR_3) { av_free_packet(VAR_1); return VAR_2 < 0 ? VAR_2 : AVERROR(EIO); if (AV_RB16(VAR_1->data) & 0x8000) { av_free_packet(VAR_1); return AVERROR_EOF; VAR_1->VAR_3     = VAR_3; VAR_1->duration = 1; VAR_1->pts      = (VAR_1->pos - c->header_size) / VAR_3; return 0;