On 11/12/2019 12:33 PM, Andreas Rheinhardt wrote: > James Almer: >> Signed-off-by: James Almer <jamr...@gmail.com> >> --- >> Assorted improvements to avoid creating new references, copying packet >> properties, etc. >> >> configure | 1 + >> libavcodec/Makefile | 1 + >> libavcodec/av1_frame_merge_bsf.c | 173 +++++++++++++++++++++++++++++++ >> libavcodec/bitstream_filters.c | 1 + >> 4 files changed, 176 insertions(+) >> create mode 100644 libavcodec/av1_frame_merge_bsf.c >> >> diff --git a/configure b/configure >> index 1de90e93fd..70f60997c1 100755 >> --- a/configure >> +++ b/configure >> @@ -3115,6 +3115,7 @@ vc1_parser_select="vc1dsp" >> >> # bitstream_filters >> aac_adtstoasc_bsf_select="adts_header" >> +av1_frame_merge_bsf_select="cbs_av1" >> av1_frame_split_bsf_select="cbs_av1" >> av1_metadata_bsf_select="cbs_av1" >> eac3_core_bsf_select="ac3_parser" >> diff --git a/libavcodec/Makefile b/libavcodec/Makefile >> index b990c6ba87..006a472a6d 100644 >> --- a/libavcodec/Makefile >> +++ b/libavcodec/Makefile >> @@ -1075,6 +1075,7 @@ OBJS-$(CONFIG_XMA_PARSER) += xma_parser.o >> # bitstream filters >> OBJS-$(CONFIG_AAC_ADTSTOASC_BSF) += aac_adtstoasc_bsf.o >> mpeg4audio.o >> OBJS-$(CONFIG_AV1_METADATA_BSF) += av1_metadata_bsf.o >> +OBJS-$(CONFIG_AV1_FRAME_MERGE_BSF) += av1_frame_merge_bsf.o >> OBJS-$(CONFIG_AV1_FRAME_SPLIT_BSF) += av1_frame_split_bsf.o >> OBJS-$(CONFIG_CHOMP_BSF) += chomp_bsf.o >> OBJS-$(CONFIG_DUMP_EXTRADATA_BSF) += dump_extradata_bsf.o >> diff --git a/libavcodec/av1_frame_merge_bsf.c >> b/libavcodec/av1_frame_merge_bsf.c >> new file mode 100644 >> index 0000000000..a2cb09b55e >> --- /dev/null >> +++ b/libavcodec/av1_frame_merge_bsf.c >> @@ -0,0 +1,173 @@ >> +/* >> + * Copyright (c) 2019 James Almer <jamr...@gmail.com> >> + * >> + * This file is part of FFmpeg. >> + * >> + * FFmpeg is free software; you can redistribute it and/or >> + * modify it under the terms of the GNU Lesser General Public >> + * License as published by the Free Software Foundation; either >> + * version 2.1 of the License, or (at your option) any later version. >> + * >> + * FFmpeg is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with FFmpeg; if not, write to the Free Software >> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 >> USA >> + */ >> + >> +#include "avcodec.h" >> +#include "bsf.h" >> +#include "cbs.h" >> +#include "cbs_av1.h" >> + >> +typedef struct AV1FMergeContext { >> + CodedBitstreamContext *cbc; >> + CodedBitstreamFragment *temporal_unit; >> + CodedBitstreamFragment *frag; > > I actually meant CodedBitstreamFragment frag[2] together with an index > that tells which one is which. av1_frame_merge_filter() would then > contain this declaration: > > CodedBitstreamFragment *frag = &ctx->frag[ctx->idx], *tu = > &ctx->frag[!ctx->idx]; > > And swapping the roles would simply amount to ctx->idx = !ctx->idx;
Alright, sounds good. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".