st->codec->sample_rate = 8000;
st->codec->channels = 1;
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
- st->codec->codec_id = CODEC_ID_RA_144;
+ st->codec->codec_id = AV_CODEC_ID_RA_144;
ast->deint_id = DEINT_ID_INT0;
} else {
int flavor, sub_packet_h, coded_framesize, sub_packet_size;
st->codec->codec_tag);
switch (st->codec->codec_id) {
- case CODEC_ID_AC3:
+ case AV_CODEC_ID_AC3:
st->need_parsing = AVSTREAM_PARSE_FULL;
break;
- case CODEC_ID_RA_288:
+ case AV_CODEC_ID_RA_288:
st->codec->extradata_size= 0;
ast->audio_framesize = st->codec->block_align;
st->codec->block_align = coded_framesize;
break;
- case CODEC_ID_COOK:
- case CODEC_ID_ATRAC3:
- case CODEC_ID_SIPR:
+ case AV_CODEC_ID_COOK:
+ st->need_parsing = AVSTREAM_PARSE_HEADERS;
+ case AV_CODEC_ID_ATRAC3:
+ case AV_CODEC_ID_SIPR:
avio_rb16(pb); avio_r8(pb);
if (version == 5)
avio_r8(pb);
}
ast->audio_framesize = st->codec->block_align;
- if (st->codec->codec_id == CODEC_ID_SIPR) {
+ if (st->codec->codec_id == AV_CODEC_ID_SIPR) {
if (flavor > 3) {
av_log(s, AV_LOG_ERROR, "bad SIPR file flavor %d\n",
flavor);
if ((ret = rm_read_extradata(pb, st->codec, codecdata_length)) < 0)
return ret;
break;
- case CODEC_ID_AAC:
+ case AV_CODEC_ID_AAC:
avio_rb16(pb); avio_r8(pb);
if (version == 5)
avio_r8(pb);
/* ra type header */
if (rm_read_audio_stream_info(s, pb, st, rst, 0))
return -1;
+ } else if (v == MKBETAG('L', 'S', 'D', ':')) {
+ avio_seek(pb, -4, SEEK_CUR);
+ if ((ret = rm_read_extradata(pb, st->codec, codec_data_size)) < 0)
+ return ret;
+
+ st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
+ st->codec->codec_tag = AV_RL32(st->codec->extradata);
+ st->codec->codec_id = ff_codec_get_id(ff_rm_codec_tags,
+ st->codec->codec_tag);
} else {
int fps;
if (avio_rl32(pb) != MKTAG('V', 'I', 'D', 'O')) {
st->codec->codec_tag = avio_rl32(pb);
st->codec->codec_id = ff_codec_get_id(ff_rm_codec_tags,
st->codec->codec_tag);
-// av_log(s, AV_LOG_DEBUG, "%X %X\n", st->codec->codec_tag, MKTAG('R', 'V', '2', '0'));
- if (st->codec->codec_id == CODEC_ID_NONE)
+ av_dlog(s, "%X %X\n", st->codec->codec_tag, MKTAG('R', 'V', '2', '0'));
+ if (st->codec->codec_id == AV_CODEC_ID_NONE)
goto fail1;
st->codec->width = avio_rb16(pb);
st->codec->height = avio_rb16(pb);
if ((ret = rm_read_extradata(pb, st->codec, codec_data_size - (avio_tell(pb) - codec_pos))) < 0)
return ret;
- av_reduce(&st->r_frame_rate.den, &st->r_frame_rate.num,
+ av_reduce(&st->avg_frame_rate.den, &st->avg_frame_rate.num,
0x10000, fps, (1 << 30) - 1);
- st->avg_frame_rate = st->r_frame_rate;
+#if FF_API_R_FRAME_RATE
+ st->r_frame_rate = st->avg_frame_rate;
+#endif
}
skip:
} else if ((avio_size(pb) - avio_tell(pb)) / 14 < n_pkts) {
av_log(s, AV_LOG_ERROR,
"Nr. of packets in packet index for stream index %d "
- "exceeds filesize (%"PRId64" at %"PRId64" = %d)\n",
+ "exceeds filesize (%"PRId64" at %"PRId64" = %"PRId64")\n",
str_id, avio_size(pb), avio_tell(pb),
(avio_size(pb) - avio_tell(pb)) / 14);
goto skip;
return AVERROR(EIO);
}
- avio_rb32(pb); /* header size */
- avio_rb16(pb);
- avio_rb32(pb);
- avio_rb32(pb); /* number of headers */
+ tag_size = avio_rb32(pb);
+ avio_skip(pb, tag_size - 8);
for(;;) {
if (pb->eof_reached)
uint8_t *ptr;
int j;
- if (st->codec->codec_id == CODEC_ID_AC3) {
+ if (st->codec->codec_id == AV_CODEC_ID_AC3) {
ptr = pkt->data;
for (j=0;j<pkt->size;j+=2) {
FFSWAP(int, ptr[0], ptr[1]);
#if 0
if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
- if(st->codec->codec_id == CODEC_ID_RV20){
+ if(st->codec->codec_id == AV_CODEC_ID_RV20){
int seq= 128*(pkt->data[2]&0x7F) + (pkt->data[3]>>1);
av_log(s, AV_LOG_DEBUG, "%d %"PRId64" %d\n", *timestamp, *timestamp*512LL/25, seq);
}
if((flags&2) && (seq&0x7F) == 1){
-// av_log(s, AV_LOG_DEBUG, "%d %d-%d %"PRId64" %d\n", flags, stream_index2, stream_index, dts, seq);
+ av_dlog(s, "%d %d-%d %"PRId64" %d\n",
+ flags, stream_index2, stream_index, dts, seq);
av_add_index_entry(st, pos, dts, 0, 0, AVINDEX_KEYFRAME);
if(stream_index2 == stream_index)
break;
AVInputFormat ff_rm_demuxer = {
.name = "rm",
- .long_name = NULL_IF_CONFIG_SMALL("RealMedia format"),
+ .long_name = NULL_IF_CONFIG_SMALL("RealMedia"),
.priv_data_size = sizeof(RMDemuxContext),
.read_probe = rm_probe,
.read_header = rm_read_header,