[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