tag1 = get_le32(pb);
url_fskip(pb, 20);
if (size > 40) {
- st->extra_data_size = size - 40;
- st->extra_data = av_mallocz(st->extra_data_size);
- get_buffer(pb, st->extra_data, st->extra_data_size);
+ st->codec.extradata_size = size - 40;
+ st->codec.extradata = av_mallocz(st->codec.extradata_size);
+ get_buffer(pb, st->codec.extradata, st->codec.extradata_size);
}
st->codec.codec_tag = tag1;
st->codec.codec_id = codec_get_id(codec_bmp_tags, tag1);
fail:
for(i=0;i<s->nb_streams;i++) {
AVStream *st = s->streams[i];
- if (st) {
+ if (st)
av_free(st->priv_data);
- av_free(st->extra_data);
- }
av_free(st);
}
//av_free(asf);
av_new_packet(&asf_st->pkt, asf->packet_obj_size);
asf_st->seq = asf->packet_seq;
asf_st->pkt.pts = asf->packet_frag_timestamp - asf->hdr.preroll;
- asf_st->pkt.pts *= 1000; // us
asf_st->pkt.stream_index = asf->stream_index;
if (asf->packet_key_frame)
asf_st->pkt.flags |= PKT_FLAG_KEY;
for(i=0;i<s->nb_streams;i++) {
AVStream *st = s->streams[i];
av_free(st->priv_data);
- av_free(st->extra_data);
}
//av_free(asf);
return 0;
AVCodecContext codec; /* codec context */
int r_frame_rate; /* real frame rate of the stream */
uint64_t time_length; /* real length of the stream in miliseconds */
- void* extra_data; /* some extra data - i.e. longer WAVEFORMATEX */
- int extra_data_size; /* size of extra data chunk */
void *priv_data;
/* internal data used in av_find_stream_info() */
int codec_info_state;