Dana 20. 6. 2015. 12:02 osoba "Rodger Combs" <rodger.co...@gmail.com> napisala je: > > --- > libavformat/brstm.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/libavformat/brstm.c b/libavformat/brstm.c > index e3c6142..0014b48 100644 > --- a/libavformat/brstm.c > +++ b/libavformat/brstm.c > @@ -32,6 +32,7 @@ typedef struct BRSTMDemuxContext { > uint32_t last_block_used_bytes; > uint32_t last_block_size; > uint32_t last_block_samples; > + uint32_t data_start; > uint8_t *table; > uint8_t *adpc; > int little_endian; > @@ -312,6 +313,8 @@ static int read_header(AVFormatContext *s) > codec == AV_CODEC_ID_ADPCM_THP_LE)) > avio_skip(s->pb, 24); > > + b->data_start = avio_tell(s->pb); > + > if ((major != 1 || minor) && !bfstm) > avpriv_request_sample(s, "Version %d.%d", major, minor); > > @@ -391,6 +394,24 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt) > return ret; > } > > +static int read_seek(AVFormatContext *s, int stream_index, > + int64_t timestamp, int flags) > +{ > + AVStream *st = s->streams[stream_index]; > + BRSTMDemuxContext *b = s->priv_data; > + int64_t ret = 0; > + > + timestamp /= b->samples_per_block; > + ret = avio_seek(s->pb, b->data_start + timestamp * b->block_size * > + st->codec->channels, SEEK_SET); > + if (ret < 0) > + return ret; > + > + b->current_block = timestamp; > + ff_update_cur_dts(s, st, timestamp * b->samples_per_block); > + return 0; > +} > + > AVInputFormat ff_brstm_demuxer = { > .name = "brstm", > .long_name = NULL_IF_CONFIG_SMALL("BRSTM (Binary Revolution Stream)"), > @@ -399,6 +420,7 @@ AVInputFormat ff_brstm_demuxer = { > .read_header = read_header, > .read_packet = read_packet, > .read_close = read_close, > + .read_seek = read_seek, > .extensions = "brstm", > }; > > @@ -410,5 +432,6 @@ AVInputFormat ff_bfstm_demuxer = { > .read_header = read_header, > .read_packet = read_packet, > .read_close = read_close, > + .read_seek = read_seek, > .extensions = "bfstm,bcstm", > }; > -- > 2.4.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
LGTM _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel