static int wav_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { WAVDemuxContext *wav = s->priv_data; AVStream *st; wav->smv_eof = 0; wav->audio_eof = 0; if (wav->smv_data_ofs > 0) { int64_t smv_timestamp = timestamp; if (stream_index == 0) smv_timestamp = av_rescale_q(timestamp, s->streams[0]->time_base, s->streams[1]->time_base); else timestamp = av_rescale_q(smv_timestamp, s->streams[1]->time_base, s->streams[0]->time_base); if (wav->smv_frames_per_jpeg > 0) { wav->smv_block = smv_timestamp / wav->smv_frames_per_jpeg; wav->smv_cur_pt = smv_timestamp % wav->smv_frames_per_jpeg; } } st = s->streams[0]; switch (st->codec->codec_id) { case AV_CODEC_ID_MP2: case AV_CODEC_ID_MP3: case AV_CODEC_ID_AC3: case AV_CODEC_ID_DTS: /* use generic seeking with dynamically generated indexes */ return -1; default: break; } return ff_pcm_read_seek(s, stream_index, timestamp, flags); }
static int wav_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { AVStream *st; st = s->streams[0]; switch (st->codecpar->codec_id) { case AV_CODEC_ID_MP2: case AV_CODEC_ID_MP3: case AV_CODEC_ID_AC3: case AV_CODEC_ID_DTS: /* use generic seeking with dynamically generated indexes */ return -1; default: break; } return ff_pcm_read_seek(s, stream_index, timestamp, flags); }