[FFmpeg-devel] [PATCH 2/2] avformat/tty: add seeking support
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Sun Feb 2 15:16:00 EET 2020
Paul B Mahol:
> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
> libavformat/tty.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/libavformat/tty.c b/libavformat/tty.c
> index 61e9f3e95c..2065fc0a53 100644
> --- a/libavformat/tty.c
> +++ b/libavformat/tty.c
> @@ -150,6 +150,8 @@ static int read_packet(AVFormatContext *avctx, AVPacket *pkt)
> n = s->fsize - p;
> }
>
> + pkt->stream_index = 0;
> + pkt->pts = pkt->pos / n;
> pkt->size = av_get_packet(avctx->pb, pkt, n);
> if (pkt->size < 0)
> return pkt->size;
> @@ -182,4 +184,5 @@ AVInputFormat ff_tty_demuxer = {
> .read_packet = read_packet,
> .extensions = tty_extensions,
> .priv_class = &tty_demuxer_class,
> + .flags = AVFMT_GENERIC_INDEX,
> };
>
The very first thing av_get_packet() does is initializing the packet
which resets every field except data and size. In particular, it
overwrites what you set in the code you intend to add (where pkt->pos
is btw still -1 from the initialization done before the read_packet
function is called). So if this is supposed to make sense, you'd need
to put this code after av_get_packet().
And I'm curious what happened when you tested seeking with your code.
- Andreas
More information about the ffmpeg-devel
mailing list