if (!c->ast[i])
break;
av_set_pts_info(c->ast[i], 64, 1, 30000);
- c->ast[i]->codec->codec_type = CODEC_TYPE_AUDIO;
+ c->ast[i]->codec->codec_type = AVMEDIA_TYPE_AUDIO;
c->ast[i]->codec->codec_id = CODEC_ID_PCM_S16LE;
av_init_packet(&c->audio_pkt[i]);
c->audio_pkt[i].size = 0;
c->audio_pkt[i].data = c->audio_buf[i];
c->audio_pkt[i].stream_index = c->ast[i]->index;
- c->audio_pkt[i].flags |= PKT_FLAG_KEY;
+ c->audio_pkt[i].flags |= AV_PKT_FLAG_KEY;
}
c->ast[i]->codec->sample_rate = dv_audio_frequency[freq];
c->ast[i]->codec->channels = 2;
c->frames = 0;
c->abytes = 0;
- c->vst->codec->codec_type = CODEC_TYPE_VIDEO;
+ c->vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
c->vst->codec->codec_id = CODEC_ID_DVVIDEO;
c->vst->codec->bit_rate = 25000000;
c->vst->start_time = 0;
av_init_packet(pkt);
pkt->data = buf;
pkt->size = size;
- pkt->flags |= PKT_FLAG_KEY;
+ pkt->flags |= AV_PKT_FLAG_KEY;
pkt->stream_index = c->vst->id;
pkt->pts = c->frames;
// FIXME: sys may be wrong if last dv_read_packet() failed (buffer is junk)
const DVprofile* sys = ff_dv_codec_profile(c->vst->codec);
int64_t offset;
- int64_t size = url_fsize(s->pb);
+ int64_t size = avio_size(s->pb) - s->data_offset;
int64_t max_offset = ((size-1) / sys->frame_size) * sys->frame_size;
offset = sys->frame_size * timestamp;
if (size >= 0 && offset > max_offset) offset = max_offset;
else if (offset < 0) offset = 0;
- return offset;
+ return offset + s->data_offset;
}
void dv_offset_reset(DVDemuxContext *c, int64_t frame_offset)
if (!c->dv_demux)
return -1;
- state = get_be32(s->pb);
+ state = avio_rb32(s->pb);
while ((state & 0xffffff7f) != 0x1f07003f) {
if (url_feof(s->pb)) {
av_log(s, AV_LOG_ERROR, "Cannot find DV header.\n");
return -1;
}
if (state == 0x003f0700 || state == 0xff3f0700)
- marker_pos = url_ftell(s->pb);
- if (state == 0xff3f0701 && url_ftell(s->pb) - marker_pos == 80) {
- url_fseek(s->pb, -163, SEEK_CUR);
- state = get_be32(s->pb);
+ marker_pos = avio_tell(s->pb);
+ if (state == 0xff3f0701 && avio_tell(s->pb) - marker_pos == 80) {
+ avio_seek(s->pb, -163, SEEK_CUR);
+ state = avio_rb32(s->pb);
break;
}
- state = (state << 8) | get_byte(s->pb);
+ state = (state << 8) | avio_r8(s->pb);
}
AV_WB32(c->buf, state);
- if (get_buffer(s->pb, c->buf + 4, DV_PROFILE_BYTES - 4) <= 0 ||
- url_fseek(s->pb, -DV_PROFILE_BYTES, SEEK_CUR) < 0)
+ if (avio_read(s->pb, c->buf + 4, DV_PROFILE_BYTES - 4) <= 0 ||
+ avio_seek(s->pb, -DV_PROFILE_BYTES, SEEK_CUR) < 0)
return AVERROR(EIO);
c->dv_demux->sys = ff_dv_frame_profile(c->dv_demux->sys, c->buf, DV_PROFILE_BYTES);
if (!c->dv_demux->sys)
return AVERROR(EIO);
size = c->dv_demux->sys->frame_size;
- if (get_buffer(s->pb, c->buf, size) <= 0)
+ if (avio_read(s->pb, c->buf, size) <= 0)
return AVERROR(EIO);
size = dv_produce_packet(c->dv_demux, pkt, c->buf, size);
dv_offset_reset(c, offset / c->sys->frame_size);
- offset = url_fseek(s->pb, offset, SEEK_SET);
+ offset = avio_seek(s->pb, offset, SEEK_SET);
return (offset < 0) ? offset : 0;
}
}
#if CONFIG_DV_DEMUXER
-AVInputFormat dv_demuxer = {
+AVInputFormat ff_dv_demuxer = {
"dv",
NULL_IF_CONFIG_SMALL("DV video format"),
sizeof(RawDVContext),