- class = ff_get_v(bc);
- tmp = get_fourcc(bc);
- st->codec->codec_tag= tmp;
- switch(class)
- {
- case 0:
- st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
- st->codec->codec_id = av_codec_get_id(
- (const AVCodecTag * const []) { ff_codec_bmp_tags, ff_nut_video_tags, 0 },
- tmp);
- break;
- case 1:
- st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
- st->codec->codec_id = ff_codec_get_id(ff_codec_wav_tags, tmp);
- break;
- case 2:
- st->codec->codec_type = AVMEDIA_TYPE_SUBTITLE;
- st->codec->codec_id = ff_codec_get_id(ff_nut_subtitle_tags, tmp);
- break;
- case 3:
- st->codec->codec_type = AVMEDIA_TYPE_DATA;
- break;
- default:
- av_log(s, AV_LOG_ERROR, "unknown stream class (%d)\n", class);
- return -1;
- }
- if(class<3 && st->codec->codec_id == CODEC_ID_NONE)
- av_log(s, AV_LOG_ERROR, "Unknown codec tag '0x%04x' for stream number %d\n",
- (unsigned int)tmp, stream_id);
-
- GET_V(stc->time_base_id , tmp < nut->time_base_count);
- GET_V(stc->msb_pts_shift , tmp < 16);
- stc->max_pts_distance= ff_get_v(bc);
- GET_V(stc->decode_delay , tmp < 1000); //sanity limit, raise this if Moore's law is true
- st->codec->has_b_frames= stc->decode_delay;
- ff_get_v(bc); //stream flags
-
- GET_V(st->codec->extradata_size, tmp < (1<<30));
- if(st->codec->extradata_size){
- st->codec->extradata= av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
- get_buffer(bc, st->codec->extradata, st->codec->extradata_size);
+ class = ffio_read_varlen(bc);
+ tmp = get_fourcc(bc);
+ st->codec->codec_tag = tmp;
+ switch (class) {
+ case 0:
+ st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
+ st->codec->codec_id = av_codec_get_id((const AVCodecTag * const []) {
+ ff_nut_video_tags,
+ ff_codec_bmp_tags,
+ 0
+ },
+ tmp);
+ break;
+ case 1:
+ st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
+ st->codec->codec_id = av_codec_get_id((const AVCodecTag * const []) {
+ ff_nut_audio_tags,
+ ff_codec_wav_tags,
+ 0
+ },
+ tmp);
+ break;
+ case 2:
+ st->codec->codec_type = AVMEDIA_TYPE_SUBTITLE;
+ st->codec->codec_id = ff_codec_get_id(ff_nut_subtitle_tags, tmp);
+ break;
+ case 3:
+ st->codec->codec_type = AVMEDIA_TYPE_DATA;
+ st->codec->codec_id = ff_codec_get_id(ff_nut_data_tags, tmp);
+ break;
+ default:
+ av_log(s, AV_LOG_ERROR, "unknown stream class (%d)\n", class);
+ return -1;