[FFmpeg-devel] [RFC][GSoC][PATCH v1 6/6] ffplay: add av_packet_buffer_filter to filter packet buffer
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Thu Jul 16 19:11:39 EEST 2020
Hongcheng Zhong:
> From: spartazhc <spartazhc at gmail.com>
>
> hls_read_header will add all streams to s->internal->packet_buffer.
> Use av_packet_buffer_filter to remove the AVPackets from other streams that
> are not needed, otherwise abr will allow them to be added to ffplay's
> packet_queue.
>
> Signed-off-by: spartazhc <spartazhc at gmail.com>
> ---
> fftools/ffplay.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
> index b17b75fa8f..832e97d910 100644
> --- a/fftools/ffplay.c
> +++ b/fftools/ffplay.c
> @@ -3018,6 +3018,10 @@ static int read_thread(void *arg)
>
> /* clean packet list filled in hls_read_header if abr is enabled */
> if (abr) {
> + ret = av_packet_buffer_filter(ic, st_index);
> + if (ret < 0) {
> + av_log(NULL, AV_LOG_WARNING, "Failed to clean av_packet\n");
> + }
> is->abr_list = av_mallocz(sizeof(ABRList));
> ret = abr_init_list(is);
> if (ret < 0) {
>
Do we need this new function at all? Can't we not just set
AVStream.discard to AVDISCARD_ALL for the streams we don't want and
modify av_read_frame() to make sure that it never outputs packets
belonging to a stream that ought to be discarded?
- Andreas
More information about the ffmpeg-devel
mailing list