Message ID | 20240126103905.17826-1-anton@khirnov.net |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] lavc: move bitstream filters into bsf/ subdir | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
Jan 26, 2024, 11:40 by anton@khirnov.net: > --- > libavcodec/Makefile | 49 +--------------- > libavcodec/bsf/Makefile | 56 +++++++++++++++++++ > Is that the general direction we want to take? I don't mind it, but I'm wondering if I should do this for what I care about?
> On Jan 26, 2024, at 20:11, Lynne <dev@lynne.ee> wrote: > > Jan 26, 2024, 11:40 by anton@khirnov.net: > >> --- >> libavcodec/Makefile | 49 +--------------- >> libavcodec/bsf/Makefile | 56 +++++++++++++++++++ >> > > Is that the general direction we want to take? > I don't mind it, but I'm wondering if I should do this for what I care about? I like the direction. It takes a few seconds for vim nerdtree to open libavcodec directory, and more on RISC-V or other less powerful devices. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Quoting Lynne (2024-01-26 13:11:33) > Jan 26, 2024, 11:40 by anton@khirnov.net: > > > --- > > libavcodec/Makefile | 49 +--------------- > > libavcodec/bsf/Makefile | 56 +++++++++++++++++++ > > > > Is that the general direction we want to take? > I don't mind it, but I'm wondering if I should do this for what I care about? I'd say yes for things with >~ 10 files. libavcodec/ got way too large.
Anton Khirnov: > --- > libavcodec/Makefile | 49 +--------------- > libavcodec/bsf/Makefile | 56 +++++++++++++++++++ > .../aac_adtstoasc.c} | 0 > .../av1_frame_merge.c} | 0 > .../av1_frame_split.c} | 0 > .../av1_metadata.c} | 0 > libavcodec/{chomp_bsf.c => bsf/chomp.c} | 0 > libavcodec/{dca_core_bsf.c => bsf/dca_core.c} | 0 > libavcodec/{dts2pts_bsf.c => bsf/dts2pts.c} | 0 > .../dump_extradata.c} | 0 > .../dv_error_marker.c} | 0 > .../{eac3_core_bsf.c => bsf/eac3_core.c} | 0 > .../evc_frame_merge.c} | 0 > .../extract_extradata.c} | 0 > .../filter_units.c} | 0 > .../h264_metadata.c} | 0 > .../h264_mp4toannexb.c} | 0 > .../h264_redundant_pps.c} | 0 > .../h265_metadata.c} | 0 > .../h266_metadata.c} | 0 > .../hapqa_extract.c} | 0 > .../hevc_mp4toannexb.c} | 0 > .../imx_dump_header.c} | 0 > .../media100_to_mjpegb.c} | 0 > .../{mjpeg2jpeg_bsf.c => bsf/mjpeg2jpeg.c} | 0 > .../mjpega_dump_header.c} | 0 > libavcodec/{movsub_bsf.c => bsf/movsub.c} | 0 > .../mp3_header_decompress.c} | 0 > .../mpeg2_metadata.c} | 0 > .../mpeg4_unpack_bframes.c} | 0 > libavcodec/{noise_bsf.c => bsf/noise.c} | 0 > libavcodec/{null_bsf.c => bsf/null.c} | 0 > .../opus_metadata.c} | 0 > .../{pcm_rechunk_bsf.c => bsf/pcm_rechunk.c} | 0 > .../pgs_frame_merge.c} | 0 > .../prores_metadata.c} | 0 > .../remove_extradata.c} | 0 > libavcodec/{setts_bsf.c => bsf/setts.c} | 0 > .../trace_headers.c} | 0 > .../{truehd_core_bsf.c => bsf/truehd_core.c} | 0 > .../vp9_metadata.c} | 0 > .../vp9_raw_reorder.c} | 0 > .../vp9_superframe.c} | 0 > .../vp9_superframe_split.c} | 0 > .../vvc_mp4toannexb.c} | 0 > 45 files changed, 57 insertions(+), 48 deletions(-) > create mode 100644 libavcodec/bsf/Makefile > rename libavcodec/{aac_adtstoasc_bsf.c => bsf/aac_adtstoasc.c} (100%) > rename libavcodec/{av1_frame_merge_bsf.c => bsf/av1_frame_merge.c} (100%) > rename libavcodec/{av1_frame_split_bsf.c => bsf/av1_frame_split.c} (100%) > rename libavcodec/{av1_metadata_bsf.c => bsf/av1_metadata.c} (100%) > rename libavcodec/{chomp_bsf.c => bsf/chomp.c} (100%) > rename libavcodec/{dca_core_bsf.c => bsf/dca_core.c} (100%) > rename libavcodec/{dts2pts_bsf.c => bsf/dts2pts.c} (100%) > rename libavcodec/{dump_extradata_bsf.c => bsf/dump_extradata.c} (100%) > rename libavcodec/{dv_error_marker_bsf.c => bsf/dv_error_marker.c} (100%) > rename libavcodec/{eac3_core_bsf.c => bsf/eac3_core.c} (100%) > rename libavcodec/{evc_frame_merge_bsf.c => bsf/evc_frame_merge.c} (100%) > rename libavcodec/{extract_extradata_bsf.c => bsf/extract_extradata.c} (100%) > rename libavcodec/{filter_units_bsf.c => bsf/filter_units.c} (100%) > rename libavcodec/{h264_metadata_bsf.c => bsf/h264_metadata.c} (100%) > rename libavcodec/{h264_mp4toannexb_bsf.c => bsf/h264_mp4toannexb.c} (100%) > rename libavcodec/{h264_redundant_pps_bsf.c => bsf/h264_redundant_pps.c} (100%) > rename libavcodec/{h265_metadata_bsf.c => bsf/h265_metadata.c} (100%) > rename libavcodec/{h266_metadata_bsf.c => bsf/h266_metadata.c} (100%) > rename libavcodec/{hapqa_extract_bsf.c => bsf/hapqa_extract.c} (100%) > rename libavcodec/{hevc_mp4toannexb_bsf.c => bsf/hevc_mp4toannexb.c} (100%) > rename libavcodec/{imx_dump_header_bsf.c => bsf/imx_dump_header.c} (100%) > rename libavcodec/{media100_to_mjpegb_bsf.c => bsf/media100_to_mjpegb.c} (100%) > rename libavcodec/{mjpeg2jpeg_bsf.c => bsf/mjpeg2jpeg.c} (100%) > rename libavcodec/{mjpega_dump_header_bsf.c => bsf/mjpega_dump_header.c} (100%) > rename libavcodec/{movsub_bsf.c => bsf/movsub.c} (100%) > rename libavcodec/{mp3_header_decompress_bsf.c => bsf/mp3_header_decompress.c} (100%) > rename libavcodec/{mpeg2_metadata_bsf.c => bsf/mpeg2_metadata.c} (100%) > rename libavcodec/{mpeg4_unpack_bframes_bsf.c => bsf/mpeg4_unpack_bframes.c} (100%) > rename libavcodec/{noise_bsf.c => bsf/noise.c} (100%) > rename libavcodec/{null_bsf.c => bsf/null.c} (100%) > rename libavcodec/{opus_metadata_bsf.c => bsf/opus_metadata.c} (100%) > rename libavcodec/{pcm_rechunk_bsf.c => bsf/pcm_rechunk.c} (100%) > rename libavcodec/{pgs_frame_merge_bsf.c => bsf/pgs_frame_merge.c} (100%) > rename libavcodec/{prores_metadata_bsf.c => bsf/prores_metadata.c} (100%) > rename libavcodec/{remove_extradata_bsf.c => bsf/remove_extradata.c} (100%) > rename libavcodec/{setts_bsf.c => bsf/setts.c} (100%) > rename libavcodec/{trace_headers_bsf.c => bsf/trace_headers.c} (100%) > rename libavcodec/{truehd_core_bsf.c => bsf/truehd_core.c} (100%) > rename libavcodec/{vp9_metadata_bsf.c => bsf/vp9_metadata.c} (100%) > rename libavcodec/{vp9_raw_reorder_bsf.c => bsf/vp9_raw_reorder.c} (100%) > rename libavcodec/{vp9_superframe_bsf.c => bsf/vp9_superframe.c} (100%) > rename libavcodec/{vp9_superframe_split_bsf.c => bsf/vp9_superframe_split.c} (100%) > rename libavcodec/{vvc_mp4toannexb_bsf.c => bsf/vvc_mp4toannexb.c} (100%) > > diff --git a/libavcodec/Makefile b/libavcodec/Makefile > index 96361ac794..43b557faaf 100644 > --- a/libavcodec/Makefile > +++ b/libavcodec/Makefile > @@ -1233,54 +1233,7 @@ OBJS-$(CONFIG_XMA_PARSER) += xma_parser.o > OBJS-$(CONFIG_XWD_PARSER) += xwd_parser.o > > # bitstream filters > -OBJS-$(CONFIG_AAC_ADTSTOASC_BSF) += aac_adtstoasc_bsf.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 > -OBJS-$(CONFIG_DCA_CORE_BSF) += dca_core_bsf.o > -OBJS-$(CONFIG_DTS2PTS_BSF) += dts2pts_bsf.o > -OBJS-$(CONFIG_DV_ERROR_MARKER_BSF) += dv_error_marker_bsf.o > -OBJS-$(CONFIG_EAC3_CORE_BSF) += eac3_core_bsf.o > -OBJS-$(CONFIG_EXTRACT_EXTRADATA_BSF) += extract_extradata_bsf.o \ > - av1_parse.o h2645_parse.o > -OBJS-$(CONFIG_FILTER_UNITS_BSF) += filter_units_bsf.o > -OBJS-$(CONFIG_H264_METADATA_BSF) += h264_metadata_bsf.o h264_levels.o \ > - h2645data.o > -OBJS-$(CONFIG_H264_MP4TOANNEXB_BSF) += h264_mp4toannexb_bsf.o > -OBJS-$(CONFIG_H264_REDUNDANT_PPS_BSF) += h264_redundant_pps_bsf.o > -OBJS-$(CONFIG_HAPQA_EXTRACT_BSF) += hapqa_extract_bsf.o hap.o > -OBJS-$(CONFIG_HEVC_METADATA_BSF) += h265_metadata_bsf.o h265_profile_level.o \ > - h2645data.o > -OBJS-$(CONFIG_HEVC_MP4TOANNEXB_BSF) += hevc_mp4toannexb_bsf.o > -OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF) += imx_dump_header_bsf.o > -OBJS-$(CONFIG_MEDIA100_TO_MJPEGB_BSF) += media100_to_mjpegb_bsf.o > -OBJS-$(CONFIG_MJPEG2JPEG_BSF) += mjpeg2jpeg_bsf.o > -OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += mjpega_dump_header_bsf.o > -OBJS-$(CONFIG_MPEG4_UNPACK_BFRAMES_BSF) += mpeg4_unpack_bframes_bsf.o > -OBJS-$(CONFIG_MOV2TEXTSUB_BSF) += movsub_bsf.o > -OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += mp3_header_decompress_bsf.o \ > - mpegaudiotabs.o > -OBJS-$(CONFIG_MPEG2_METADATA_BSF) += mpeg2_metadata_bsf.o > -OBJS-$(CONFIG_NOISE_BSF) += noise_bsf.o > -OBJS-$(CONFIG_NULL_BSF) += null_bsf.o > -OBJS-$(CONFIG_OPUS_METADATA_BSF) += opus_metadata_bsf.o > -OBJS-$(CONFIG_PCM_RECHUNK_BSF) += pcm_rechunk_bsf.o > -OBJS-$(CONFIG_PGS_FRAME_MERGE_BSF) += pgs_frame_merge_bsf.o > -OBJS-$(CONFIG_PRORES_METADATA_BSF) += prores_metadata_bsf.o > -OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o av1_parse.o > -OBJS-$(CONFIG_SETTS_BSF) += setts_bsf.o > -OBJS-$(CONFIG_TEXT2MOVSUB_BSF) += movsub_bsf.o > -OBJS-$(CONFIG_TRACE_HEADERS_BSF) += trace_headers_bsf.o > -OBJS-$(CONFIG_TRUEHD_CORE_BSF) += truehd_core_bsf.o mlp_parse.o mlp.o > -OBJS-$(CONFIG_VP9_METADATA_BSF) += vp9_metadata_bsf.o > -OBJS-$(CONFIG_VP9_RAW_REORDER_BSF) += vp9_raw_reorder_bsf.o > -OBJS-$(CONFIG_VP9_SUPERFRAME_BSF) += vp9_superframe_bsf.o > -OBJS-$(CONFIG_VP9_SUPERFRAME_SPLIT_BSF) += vp9_superframe_split_bsf.o > -OBJS-$(CONFIG_VVC_METADATA_BSF) += h266_metadata_bsf.o > -OBJS-$(CONFIG_VVC_MP4TOANNEXB_BSF) += vvc_mp4toannexb_bsf.o > -OBJS-$(CONFIG_EVC_FRAME_MERGE_BSF) += evc_frame_merge_bsf.o > +include $(SRC_PATH)/libavcodec/bsf/Makefile > > # thread libraries > OBJS-$(HAVE_LIBC_MSVCRT) += file_open.o > diff --git a/libavcodec/bsf/Makefile b/libavcodec/bsf/Makefile > new file mode 100644 > index 0000000000..9c414cdb45 > --- /dev/null > +++ b/libavcodec/bsf/Makefile > @@ -0,0 +1,56 @@ > +clean:: > + $(RM) $(CLEANSUFFIXES:%=libavcodec/bsf/%) > + > +OBJS_BSF-$(CONFIG_AAC_ADTSTOASC_BSF) += bsf/aac_adtstoasc.o > +OBJS_BSF-$(CONFIG_AV1_METADATA_BSF) += bsf/av1_metadata.o > +OBJS_BSF-$(CONFIG_AV1_FRAME_MERGE_BSF) += bsf/av1_frame_merge.o > +OBJS_BSF-$(CONFIG_AV1_FRAME_SPLIT_BSF) += bsf/av1_frame_split.o > +OBJS_BSF-$(CONFIG_CHOMP_BSF) += bsf/chomp.o > +OBJS_BSF-$(CONFIG_DUMP_EXTRADATA_BSF) += bsf/dump_extradata.o > +OBJS_BSF-$(CONFIG_DCA_CORE_BSF) += bsf/dca_core.o > +OBJS_BSF-$(CONFIG_DTS2PTS_BSF) += bsf/dts2pts.o > +OBJS_BSF-$(CONFIG_DV_ERROR_MARKER_BSF) += bsf/dv_error_marker.o > +OBJS_BSF-$(CONFIG_EAC3_CORE_BSF) += bsf/eac3_core.o > +OBJS_BSF-$(CONFIG_EXTRACT_EXTRADATA_BSF) += bsf/extract_extradata.o \ > + av1_parse.o h2645_parse.o > +OBJS_BSF-$(CONFIG_FILTER_UNITS_BSF) += bsf/filter_units.o > +OBJS_BSF-$(CONFIG_H264_METADATA_BSF) += bsf/h264_metadata.o \ > + h264_levels.o h2645data.o > +OBJS_BSF-$(CONFIG_H264_MP4TOANNEXB_BSF) += bsf/h264_mp4toannexb.o > +OBJS_BSF-$(CONFIG_H264_REDUNDANT_PPS_BSF) += bsf/h264_redundant_pps.o > +OBJS_BSF-$(CONFIG_HAPQA_EXTRACT_BSF) += bsf/hapqa_extract.o \ > + hap.o > +OBJS_BSF-$(CONFIG_HEVC_METADATA_BSF) += bsf/h265_metadata.o \ > + h265_profile_level.o h2645data.o > +OBJS_BSF-$(CONFIG_HEVC_MP4TOANNEXB_BSF) += bsf/hevc_mp4toannexb.o > +OBJS_BSF-$(CONFIG_IMX_DUMP_HEADER_BSF) += bsf/imx_dump_header.o > +OBJS_BSF-$(CONFIG_MEDIA100_TO_MJPEGB_BSF) += bsf/media100_to_mjpegb.o > +OBJS_BSF-$(CONFIG_MJPEG2JPEG_BSF) += bsf/mjpeg2jpeg.o > +OBJS_BSF-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += bsf/mjpega_dump_header.o > +OBJS_BSF-$(CONFIG_MPEG4_UNPACK_BFRAMES_BSF) += bsf/mpeg4_unpack_bframes.o > +OBJS_BSF-$(CONFIG_MOV2TEXTSUB_BSF) += bsf/movsub.o > +OBJS_BSF-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += bsf/mp3_header_decompress.o \ > + mpegaudiotabs.o > +OBJS_BSF-$(CONFIG_MPEG2_METADATA_BSF) += bsf/mpeg2_metadata.o > +OBJS_BSF-$(CONFIG_NOISE_BSF) += bsf/noise.o > +OBJS_BSF-$(CONFIG_NULL_BSF) += bsf/null.o > +OBJS_BSF-$(CONFIG_OPUS_METADATA_BSF) += bsf/opus_metadata.o > +OBJS_BSF-$(CONFIG_PCM_RECHUNK_BSF) += bsf/pcm_rechunk.o > +OBJS_BSF-$(CONFIG_PGS_FRAME_MERGE_BSF) += bsf/pgs_frame_merge.o > +OBJS_BSF-$(CONFIG_PRORES_METADATA_BSF) += bsf/prores_metadata.o > +OBJS_BSF-$(CONFIG_REMOVE_EXTRADATA_BSF) += bsf/remove_extradata.o av1_parse.o > +OBJS_BSF-$(CONFIG_SETTS_BSF) += bsf/setts.o > +OBJS_BSF-$(CONFIG_TEXT2MOVSUB_BSF) += bsf/movsub.o > +OBJS_BSF-$(CONFIG_TRACE_HEADERS_BSF) += bsf/trace_headers.o > +OBJS_BSF-$(CONFIG_TRUEHD_CORE_BSF) += bsf/truehd_core.o mlp_parse.o mlp.o > +OBJS_BSF-$(CONFIG_VP9_METADATA_BSF) += bsf/vp9_metadata.o > +OBJS_BSF-$(CONFIG_VP9_RAW_REORDER_BSF) += bsf/vp9_raw_reorder.o > +OBJS_BSF-$(CONFIG_VP9_SUPERFRAME_BSF) += bsf/vp9_superframe.o > +OBJS_BSF-$(CONFIG_VP9_SUPERFRAME_SPLIT_BSF) += bsf/vp9_superframe_split.o > +OBJS_BSF-$(CONFIG_VVC_METADATA_BSF) += bsf/h266_metadata.o > +OBJS_BSF-$(CONFIG_VVC_MP4TOANNEXB_BSF) += bsf/vvc_mp4toannexb.o > +OBJS_BSF-$(CONFIG_EVC_FRAME_MERGE_BSF) += bsf/evc_frame_merge.o > + > +$(addprefix libavcodec/, $(OBJS_BSF-yes)): CPPFLAGS += -I$(SRC_PATH)/libavcodec/ This is inconsistent with the behaviour for arch-specific subfolders. It also interferes with the files not in the bsf-subfolder (like h264_levels.o). Granted, it won't break anything, but it nevertheless feels wrong. - Andreas
On 1/26/2024 9:17 AM, Anton Khirnov wrote: > Quoting Lynne (2024-01-26 13:11:33) >> Jan 26, 2024, 11:40 by anton@khirnov.net: >> >>> --- >>> libavcodec/Makefile | 49 +--------------- >>> libavcodec/bsf/Makefile | 56 +++++++++++++++++++ >>> >> >> Is that the general direction we want to take? >> I don't mind it, but I'm wondering if I should do this for what I care about? > > I'd say yes for things with >~ 10 files. libavcodec/ got way too large. Is your idea something like.. libavcodec/bsf libavcodec/common libavcodec/decoder libavcodec/encoder libavcodec/parser And then subfolders within those for big modules like h264, hevc, vvc, mpeg2, vp9, etc? And like Andreas mentioned, the arch subfolders need to be considered for this.
Quoting James Almer (2024-01-26 17:09:32) > On 1/26/2024 9:17 AM, Anton Khirnov wrote: > > Quoting Lynne (2024-01-26 13:11:33) > >> Jan 26, 2024, 11:40 by anton@khirnov.net: > >> > >>> --- > >>> libavcodec/Makefile | 49 +--------------- > >>> libavcodec/bsf/Makefile | 56 +++++++++++++++++++ > >>> > >> > >> Is that the general direction we want to take? > >> I don't mind it, but I'm wondering if I should do this for what I care about? > > > > I'd say yes for things with >~ 10 files. libavcodec/ got way too large. > > Is your idea something like.. > > libavcodec/bsf > libavcodec/common > libavcodec/decoder > libavcodec/encoder > libavcodec/parser > > And then subfolders within those for big modules like h264, hevc, vvc, > mpeg2, vp9, etc? No, that strikes me as overkill. A subdir for bsfs, a subdir for every codec/group of codecs/subsystem. > And like Andreas mentioned, the arch subfolders need to be considered > for this. Why?
On 1/26/2024 1:17 PM, Anton Khirnov wrote: > Quoting James Almer (2024-01-26 17:09:32) >> On 1/26/2024 9:17 AM, Anton Khirnov wrote: >>> Quoting Lynne (2024-01-26 13:11:33) >>>> Jan 26, 2024, 11:40 by anton@khirnov.net: >>>> >>>>> --- >>>>> libavcodec/Makefile | 49 +--------------- >>>>> libavcodec/bsf/Makefile | 56 +++++++++++++++++++ >>>>> >>>> >>>> Is that the general direction we want to take? >>>> I don't mind it, but I'm wondering if I should do this for what I care about? >>> >>> I'd say yes for things with >~ 10 files. libavcodec/ got way too large. >> >> Is your idea something like.. >> >> libavcodec/bsf >> libavcodec/common >> libavcodec/decoder >> libavcodec/encoder >> libavcodec/parser >> >> And then subfolders within those for big modules like h264, hevc, vvc, >> mpeg2, vp9, etc? > > No, that strikes me as overkill. A subdir for bsfs, a subdir for every > codec/group of codecs/subsystem. I don't think it's overkill. It separates modules per type, so it's easy to find a parser that right now is mixed between all the decoder related files. > >> And like Andreas mentioned, the arch subfolders need to be considered >> for this. > > Why? I mean, where do you want them? inside the decoder/encoder subfolders (thus splitting them), or outside as they are right now?
Quoting Andreas Rheinhardt (2024-01-26 13:35:56) > > This is inconsistent with the behaviour for arch-specific subfolders. Does it need to be consistent? Bitstream filters typically share more headers with decoders and parsers than arch-specific code. > It also interferes with the files not in the bsf-subfolder (like > h264_levels.o). Interferes how?
Quoting James Almer (2024-01-26 17:22:06) > On 1/26/2024 1:17 PM, Anton Khirnov wrote: > > Quoting James Almer (2024-01-26 17:09:32) > >> On 1/26/2024 9:17 AM, Anton Khirnov wrote: > >>> Quoting Lynne (2024-01-26 13:11:33) > >>>> Jan 26, 2024, 11:40 by anton@khirnov.net: > >>>> > >>>>> --- > >>>>> libavcodec/Makefile | 49 +--------------- > >>>>> libavcodec/bsf/Makefile | 56 +++++++++++++++++++ > >>>>> > >>>> > >>>> Is that the general direction we want to take? > >>>> I don't mind it, but I'm wondering if I should do this for what I care about? > >>> > >>> I'd say yes for things with >~ 10 files. libavcodec/ got way too large. > >> > >> Is your idea something like.. > >> > >> libavcodec/bsf > >> libavcodec/common > >> libavcodec/decoder > >> libavcodec/encoder > >> libavcodec/parser > >> > >> And then subfolders within those for big modules like h264, hevc, vvc, > >> mpeg2, vp9, etc? > > > > No, that strikes me as overkill. A subdir for bsfs, a subdir for every > > codec/group of codecs/subsystem. > > I don't think it's overkill. It separates modules per type, so it's easy > to find a parser that right now is mixed between all the decoder related > files. My plan is for parsers to turn into bitstream filters, so... > >> And like Andreas mentioned, the arch subfolders need to be considered > >> for this. > > > > Why? > > I mean, where do you want them? inside the decoder/encoder subfolders > (thus splitting them), or outside as they are right now? I am perfectly fine with leaving them as they are now. Too many directory levels make things hard to find as well.
diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 96361ac794..43b557faaf 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -1233,54 +1233,7 @@ OBJS-$(CONFIG_XMA_PARSER) += xma_parser.o OBJS-$(CONFIG_XWD_PARSER) += xwd_parser.o # bitstream filters -OBJS-$(CONFIG_AAC_ADTSTOASC_BSF) += aac_adtstoasc_bsf.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 -OBJS-$(CONFIG_DCA_CORE_BSF) += dca_core_bsf.o -OBJS-$(CONFIG_DTS2PTS_BSF) += dts2pts_bsf.o -OBJS-$(CONFIG_DV_ERROR_MARKER_BSF) += dv_error_marker_bsf.o -OBJS-$(CONFIG_EAC3_CORE_BSF) += eac3_core_bsf.o -OBJS-$(CONFIG_EXTRACT_EXTRADATA_BSF) += extract_extradata_bsf.o \ - av1_parse.o h2645_parse.o -OBJS-$(CONFIG_FILTER_UNITS_BSF) += filter_units_bsf.o -OBJS-$(CONFIG_H264_METADATA_BSF) += h264_metadata_bsf.o h264_levels.o \ - h2645data.o -OBJS-$(CONFIG_H264_MP4TOANNEXB_BSF) += h264_mp4toannexb_bsf.o -OBJS-$(CONFIG_H264_REDUNDANT_PPS_BSF) += h264_redundant_pps_bsf.o -OBJS-$(CONFIG_HAPQA_EXTRACT_BSF) += hapqa_extract_bsf.o hap.o -OBJS-$(CONFIG_HEVC_METADATA_BSF) += h265_metadata_bsf.o h265_profile_level.o \ - h2645data.o -OBJS-$(CONFIG_HEVC_MP4TOANNEXB_BSF) += hevc_mp4toannexb_bsf.o -OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF) += imx_dump_header_bsf.o -OBJS-$(CONFIG_MEDIA100_TO_MJPEGB_BSF) += media100_to_mjpegb_bsf.o -OBJS-$(CONFIG_MJPEG2JPEG_BSF) += mjpeg2jpeg_bsf.o -OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += mjpega_dump_header_bsf.o -OBJS-$(CONFIG_MPEG4_UNPACK_BFRAMES_BSF) += mpeg4_unpack_bframes_bsf.o -OBJS-$(CONFIG_MOV2TEXTSUB_BSF) += movsub_bsf.o -OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += mp3_header_decompress_bsf.o \ - mpegaudiotabs.o -OBJS-$(CONFIG_MPEG2_METADATA_BSF) += mpeg2_metadata_bsf.o -OBJS-$(CONFIG_NOISE_BSF) += noise_bsf.o -OBJS-$(CONFIG_NULL_BSF) += null_bsf.o -OBJS-$(CONFIG_OPUS_METADATA_BSF) += opus_metadata_bsf.o -OBJS-$(CONFIG_PCM_RECHUNK_BSF) += pcm_rechunk_bsf.o -OBJS-$(CONFIG_PGS_FRAME_MERGE_BSF) += pgs_frame_merge_bsf.o -OBJS-$(CONFIG_PRORES_METADATA_BSF) += prores_metadata_bsf.o -OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o av1_parse.o -OBJS-$(CONFIG_SETTS_BSF) += setts_bsf.o -OBJS-$(CONFIG_TEXT2MOVSUB_BSF) += movsub_bsf.o -OBJS-$(CONFIG_TRACE_HEADERS_BSF) += trace_headers_bsf.o -OBJS-$(CONFIG_TRUEHD_CORE_BSF) += truehd_core_bsf.o mlp_parse.o mlp.o -OBJS-$(CONFIG_VP9_METADATA_BSF) += vp9_metadata_bsf.o -OBJS-$(CONFIG_VP9_RAW_REORDER_BSF) += vp9_raw_reorder_bsf.o -OBJS-$(CONFIG_VP9_SUPERFRAME_BSF) += vp9_superframe_bsf.o -OBJS-$(CONFIG_VP9_SUPERFRAME_SPLIT_BSF) += vp9_superframe_split_bsf.o -OBJS-$(CONFIG_VVC_METADATA_BSF) += h266_metadata_bsf.o -OBJS-$(CONFIG_VVC_MP4TOANNEXB_BSF) += vvc_mp4toannexb_bsf.o -OBJS-$(CONFIG_EVC_FRAME_MERGE_BSF) += evc_frame_merge_bsf.o +include $(SRC_PATH)/libavcodec/bsf/Makefile # thread libraries OBJS-$(HAVE_LIBC_MSVCRT) += file_open.o diff --git a/libavcodec/bsf/Makefile b/libavcodec/bsf/Makefile new file mode 100644 index 0000000000..9c414cdb45 --- /dev/null +++ b/libavcodec/bsf/Makefile @@ -0,0 +1,56 @@ +clean:: + $(RM) $(CLEANSUFFIXES:%=libavcodec/bsf/%) + +OBJS_BSF-$(CONFIG_AAC_ADTSTOASC_BSF) += bsf/aac_adtstoasc.o +OBJS_BSF-$(CONFIG_AV1_METADATA_BSF) += bsf/av1_metadata.o +OBJS_BSF-$(CONFIG_AV1_FRAME_MERGE_BSF) += bsf/av1_frame_merge.o +OBJS_BSF-$(CONFIG_AV1_FRAME_SPLIT_BSF) += bsf/av1_frame_split.o +OBJS_BSF-$(CONFIG_CHOMP_BSF) += bsf/chomp.o +OBJS_BSF-$(CONFIG_DUMP_EXTRADATA_BSF) += bsf/dump_extradata.o +OBJS_BSF-$(CONFIG_DCA_CORE_BSF) += bsf/dca_core.o +OBJS_BSF-$(CONFIG_DTS2PTS_BSF) += bsf/dts2pts.o +OBJS_BSF-$(CONFIG_DV_ERROR_MARKER_BSF) += bsf/dv_error_marker.o +OBJS_BSF-$(CONFIG_EAC3_CORE_BSF) += bsf/eac3_core.o +OBJS_BSF-$(CONFIG_EXTRACT_EXTRADATA_BSF) += bsf/extract_extradata.o \ + av1_parse.o h2645_parse.o +OBJS_BSF-$(CONFIG_FILTER_UNITS_BSF) += bsf/filter_units.o +OBJS_BSF-$(CONFIG_H264_METADATA_BSF) += bsf/h264_metadata.o \ + h264_levels.o h2645data.o +OBJS_BSF-$(CONFIG_H264_MP4TOANNEXB_BSF) += bsf/h264_mp4toannexb.o +OBJS_BSF-$(CONFIG_H264_REDUNDANT_PPS_BSF) += bsf/h264_redundant_pps.o +OBJS_BSF-$(CONFIG_HAPQA_EXTRACT_BSF) += bsf/hapqa_extract.o \ + hap.o +OBJS_BSF-$(CONFIG_HEVC_METADATA_BSF) += bsf/h265_metadata.o \ + h265_profile_level.o h2645data.o +OBJS_BSF-$(CONFIG_HEVC_MP4TOANNEXB_BSF) += bsf/hevc_mp4toannexb.o +OBJS_BSF-$(CONFIG_IMX_DUMP_HEADER_BSF) += bsf/imx_dump_header.o +OBJS_BSF-$(CONFIG_MEDIA100_TO_MJPEGB_BSF) += bsf/media100_to_mjpegb.o +OBJS_BSF-$(CONFIG_MJPEG2JPEG_BSF) += bsf/mjpeg2jpeg.o +OBJS_BSF-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += bsf/mjpega_dump_header.o +OBJS_BSF-$(CONFIG_MPEG4_UNPACK_BFRAMES_BSF) += bsf/mpeg4_unpack_bframes.o +OBJS_BSF-$(CONFIG_MOV2TEXTSUB_BSF) += bsf/movsub.o +OBJS_BSF-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += bsf/mp3_header_decompress.o \ + mpegaudiotabs.o +OBJS_BSF-$(CONFIG_MPEG2_METADATA_BSF) += bsf/mpeg2_metadata.o +OBJS_BSF-$(CONFIG_NOISE_BSF) += bsf/noise.o +OBJS_BSF-$(CONFIG_NULL_BSF) += bsf/null.o +OBJS_BSF-$(CONFIG_OPUS_METADATA_BSF) += bsf/opus_metadata.o +OBJS_BSF-$(CONFIG_PCM_RECHUNK_BSF) += bsf/pcm_rechunk.o +OBJS_BSF-$(CONFIG_PGS_FRAME_MERGE_BSF) += bsf/pgs_frame_merge.o +OBJS_BSF-$(CONFIG_PRORES_METADATA_BSF) += bsf/prores_metadata.o +OBJS_BSF-$(CONFIG_REMOVE_EXTRADATA_BSF) += bsf/remove_extradata.o av1_parse.o +OBJS_BSF-$(CONFIG_SETTS_BSF) += bsf/setts.o +OBJS_BSF-$(CONFIG_TEXT2MOVSUB_BSF) += bsf/movsub.o +OBJS_BSF-$(CONFIG_TRACE_HEADERS_BSF) += bsf/trace_headers.o +OBJS_BSF-$(CONFIG_TRUEHD_CORE_BSF) += bsf/truehd_core.o mlp_parse.o mlp.o +OBJS_BSF-$(CONFIG_VP9_METADATA_BSF) += bsf/vp9_metadata.o +OBJS_BSF-$(CONFIG_VP9_RAW_REORDER_BSF) += bsf/vp9_raw_reorder.o +OBJS_BSF-$(CONFIG_VP9_SUPERFRAME_BSF) += bsf/vp9_superframe.o +OBJS_BSF-$(CONFIG_VP9_SUPERFRAME_SPLIT_BSF) += bsf/vp9_superframe_split.o +OBJS_BSF-$(CONFIG_VVC_METADATA_BSF) += bsf/h266_metadata.o +OBJS_BSF-$(CONFIG_VVC_MP4TOANNEXB_BSF) += bsf/vvc_mp4toannexb.o +OBJS_BSF-$(CONFIG_EVC_FRAME_MERGE_BSF) += bsf/evc_frame_merge.o + +$(addprefix libavcodec/, $(OBJS_BSF-yes)): CPPFLAGS += -I$(SRC_PATH)/libavcodec/ + +OBJS += $(OBJS_BSF-yes) diff --git a/libavcodec/aac_adtstoasc_bsf.c b/libavcodec/bsf/aac_adtstoasc.c similarity index 100% rename from libavcodec/aac_adtstoasc_bsf.c rename to libavcodec/bsf/aac_adtstoasc.c diff --git a/libavcodec/av1_frame_merge_bsf.c b/libavcodec/bsf/av1_frame_merge.c similarity index 100% rename from libavcodec/av1_frame_merge_bsf.c rename to libavcodec/bsf/av1_frame_merge.c diff --git a/libavcodec/av1_frame_split_bsf.c b/libavcodec/bsf/av1_frame_split.c similarity index 100% rename from libavcodec/av1_frame_split_bsf.c rename to libavcodec/bsf/av1_frame_split.c diff --git a/libavcodec/av1_metadata_bsf.c b/libavcodec/bsf/av1_metadata.c similarity index 100% rename from libavcodec/av1_metadata_bsf.c rename to libavcodec/bsf/av1_metadata.c diff --git a/libavcodec/chomp_bsf.c b/libavcodec/bsf/chomp.c similarity index 100% rename from libavcodec/chomp_bsf.c rename to libavcodec/bsf/chomp.c diff --git a/libavcodec/dca_core_bsf.c b/libavcodec/bsf/dca_core.c similarity index 100% rename from libavcodec/dca_core_bsf.c rename to libavcodec/bsf/dca_core.c diff --git a/libavcodec/dts2pts_bsf.c b/libavcodec/bsf/dts2pts.c similarity index 100% rename from libavcodec/dts2pts_bsf.c rename to libavcodec/bsf/dts2pts.c diff --git a/libavcodec/dump_extradata_bsf.c b/libavcodec/bsf/dump_extradata.c similarity index 100% rename from libavcodec/dump_extradata_bsf.c rename to libavcodec/bsf/dump_extradata.c diff --git a/libavcodec/dv_error_marker_bsf.c b/libavcodec/bsf/dv_error_marker.c similarity index 100% rename from libavcodec/dv_error_marker_bsf.c rename to libavcodec/bsf/dv_error_marker.c diff --git a/libavcodec/eac3_core_bsf.c b/libavcodec/bsf/eac3_core.c similarity index 100% rename from libavcodec/eac3_core_bsf.c rename to libavcodec/bsf/eac3_core.c diff --git a/libavcodec/evc_frame_merge_bsf.c b/libavcodec/bsf/evc_frame_merge.c similarity index 100% rename from libavcodec/evc_frame_merge_bsf.c rename to libavcodec/bsf/evc_frame_merge.c diff --git a/libavcodec/extract_extradata_bsf.c b/libavcodec/bsf/extract_extradata.c similarity index 100% rename from libavcodec/extract_extradata_bsf.c rename to libavcodec/bsf/extract_extradata.c diff --git a/libavcodec/filter_units_bsf.c b/libavcodec/bsf/filter_units.c similarity index 100% rename from libavcodec/filter_units_bsf.c rename to libavcodec/bsf/filter_units.c diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/bsf/h264_metadata.c similarity index 100% rename from libavcodec/h264_metadata_bsf.c rename to libavcodec/bsf/h264_metadata.c diff --git a/libavcodec/h264_mp4toannexb_bsf.c b/libavcodec/bsf/h264_mp4toannexb.c similarity index 100% rename from libavcodec/h264_mp4toannexb_bsf.c rename to libavcodec/bsf/h264_mp4toannexb.c diff --git a/libavcodec/h264_redundant_pps_bsf.c b/libavcodec/bsf/h264_redundant_pps.c similarity index 100% rename from libavcodec/h264_redundant_pps_bsf.c rename to libavcodec/bsf/h264_redundant_pps.c diff --git a/libavcodec/h265_metadata_bsf.c b/libavcodec/bsf/h265_metadata.c similarity index 100% rename from libavcodec/h265_metadata_bsf.c rename to libavcodec/bsf/h265_metadata.c diff --git a/libavcodec/h266_metadata_bsf.c b/libavcodec/bsf/h266_metadata.c similarity index 100% rename from libavcodec/h266_metadata_bsf.c rename to libavcodec/bsf/h266_metadata.c diff --git a/libavcodec/hapqa_extract_bsf.c b/libavcodec/bsf/hapqa_extract.c similarity index 100% rename from libavcodec/hapqa_extract_bsf.c rename to libavcodec/bsf/hapqa_extract.c diff --git a/libavcodec/hevc_mp4toannexb_bsf.c b/libavcodec/bsf/hevc_mp4toannexb.c similarity index 100% rename from libavcodec/hevc_mp4toannexb_bsf.c rename to libavcodec/bsf/hevc_mp4toannexb.c diff --git a/libavcodec/imx_dump_header_bsf.c b/libavcodec/bsf/imx_dump_header.c similarity index 100% rename from libavcodec/imx_dump_header_bsf.c rename to libavcodec/bsf/imx_dump_header.c diff --git a/libavcodec/media100_to_mjpegb_bsf.c b/libavcodec/bsf/media100_to_mjpegb.c similarity index 100% rename from libavcodec/media100_to_mjpegb_bsf.c rename to libavcodec/bsf/media100_to_mjpegb.c diff --git a/libavcodec/mjpeg2jpeg_bsf.c b/libavcodec/bsf/mjpeg2jpeg.c similarity index 100% rename from libavcodec/mjpeg2jpeg_bsf.c rename to libavcodec/bsf/mjpeg2jpeg.c diff --git a/libavcodec/mjpega_dump_header_bsf.c b/libavcodec/bsf/mjpega_dump_header.c similarity index 100% rename from libavcodec/mjpega_dump_header_bsf.c rename to libavcodec/bsf/mjpega_dump_header.c diff --git a/libavcodec/movsub_bsf.c b/libavcodec/bsf/movsub.c similarity index 100% rename from libavcodec/movsub_bsf.c rename to libavcodec/bsf/movsub.c diff --git a/libavcodec/mp3_header_decompress_bsf.c b/libavcodec/bsf/mp3_header_decompress.c similarity index 100% rename from libavcodec/mp3_header_decompress_bsf.c rename to libavcodec/bsf/mp3_header_decompress.c diff --git a/libavcodec/mpeg2_metadata_bsf.c b/libavcodec/bsf/mpeg2_metadata.c similarity index 100% rename from libavcodec/mpeg2_metadata_bsf.c rename to libavcodec/bsf/mpeg2_metadata.c diff --git a/libavcodec/mpeg4_unpack_bframes_bsf.c b/libavcodec/bsf/mpeg4_unpack_bframes.c similarity index 100% rename from libavcodec/mpeg4_unpack_bframes_bsf.c rename to libavcodec/bsf/mpeg4_unpack_bframes.c diff --git a/libavcodec/noise_bsf.c b/libavcodec/bsf/noise.c similarity index 100% rename from libavcodec/noise_bsf.c rename to libavcodec/bsf/noise.c diff --git a/libavcodec/null_bsf.c b/libavcodec/bsf/null.c similarity index 100% rename from libavcodec/null_bsf.c rename to libavcodec/bsf/null.c diff --git a/libavcodec/opus_metadata_bsf.c b/libavcodec/bsf/opus_metadata.c similarity index 100% rename from libavcodec/opus_metadata_bsf.c rename to libavcodec/bsf/opus_metadata.c diff --git a/libavcodec/pcm_rechunk_bsf.c b/libavcodec/bsf/pcm_rechunk.c similarity index 100% rename from libavcodec/pcm_rechunk_bsf.c rename to libavcodec/bsf/pcm_rechunk.c diff --git a/libavcodec/pgs_frame_merge_bsf.c b/libavcodec/bsf/pgs_frame_merge.c similarity index 100% rename from libavcodec/pgs_frame_merge_bsf.c rename to libavcodec/bsf/pgs_frame_merge.c diff --git a/libavcodec/prores_metadata_bsf.c b/libavcodec/bsf/prores_metadata.c similarity index 100% rename from libavcodec/prores_metadata_bsf.c rename to libavcodec/bsf/prores_metadata.c diff --git a/libavcodec/remove_extradata_bsf.c b/libavcodec/bsf/remove_extradata.c similarity index 100% rename from libavcodec/remove_extradata_bsf.c rename to libavcodec/bsf/remove_extradata.c diff --git a/libavcodec/setts_bsf.c b/libavcodec/bsf/setts.c similarity index 100% rename from libavcodec/setts_bsf.c rename to libavcodec/bsf/setts.c diff --git a/libavcodec/trace_headers_bsf.c b/libavcodec/bsf/trace_headers.c similarity index 100% rename from libavcodec/trace_headers_bsf.c rename to libavcodec/bsf/trace_headers.c diff --git a/libavcodec/truehd_core_bsf.c b/libavcodec/bsf/truehd_core.c similarity index 100% rename from libavcodec/truehd_core_bsf.c rename to libavcodec/bsf/truehd_core.c diff --git a/libavcodec/vp9_metadata_bsf.c b/libavcodec/bsf/vp9_metadata.c similarity index 100% rename from libavcodec/vp9_metadata_bsf.c rename to libavcodec/bsf/vp9_metadata.c diff --git a/libavcodec/vp9_raw_reorder_bsf.c b/libavcodec/bsf/vp9_raw_reorder.c similarity index 100% rename from libavcodec/vp9_raw_reorder_bsf.c rename to libavcodec/bsf/vp9_raw_reorder.c diff --git a/libavcodec/vp9_superframe_bsf.c b/libavcodec/bsf/vp9_superframe.c similarity index 100% rename from libavcodec/vp9_superframe_bsf.c rename to libavcodec/bsf/vp9_superframe.c diff --git a/libavcodec/vp9_superframe_split_bsf.c b/libavcodec/bsf/vp9_superframe_split.c similarity index 100% rename from libavcodec/vp9_superframe_split_bsf.c rename to libavcodec/bsf/vp9_superframe_split.c diff --git a/libavcodec/vvc_mp4toannexb_bsf.c b/libavcodec/bsf/vvc_mp4toannexb.c similarity index 100% rename from libavcodec/vvc_mp4toannexb_bsf.c rename to libavcodec/bsf/vvc_mp4toannexb.c