Re: [FFmpeg-devel] [PATCH] avformat/mov: Add support for still image AVIF parsing
Removed some trailing whitespace, edited commit msg and pushed as 499e245b856733c3bbcd3ba23b406729343ed5fe Consider adding avif to extensions in the AVInputFormat Regards, Gyan On 2022-04-23 12:29 am, Vignesh Venkatasubramanian wrote: Add support for parsing AVIF still images. This patches supports AVIF still images that have exactly 1 item (i.e.) no alpha channel. Essentially, we will have to parse the "iloc" box and populate the mov index. With this patch, we can decode still AVIF images like so: ffmpeg -i image.avif image.png Partially fixes trac ticket #7621 Signed-off-by: Vignesh Venkatasubramanian --- libavformat/isom.h | 1 + libavformat/mov.c | 141 + 2 files changed, 142 insertions(+) diff --git a/libavformat/isom.h b/libavformat/isom.h index 5caf42b15d..02d681e3ae 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -315,6 +315,7 @@ typedef struct MOVContext { int have_read_mfra_size; uint32_t mfra_size; uint32_t max_stts_delta; +int is_still_picture_avif; } MOVContext; int ff_mp4_read_descr_len(AVIOContext *pb); diff --git a/libavformat/mov.c b/libavformat/mov.c index 6c847de164..39feb9fba6 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1136,6 +1136,7 @@ static int mov_read_ftyp(MOVContext *c, AVIOContext *pb, MOVAtom atom) c->isom = 1; av_log(c->fc, AV_LOG_DEBUG, "ISO: File Type Major Brand: %.4s\n",(char *)&type); av_dict_set(&c->fc->metadata, "major_brand", type, 0); +c->is_still_picture_avif = !strncmp(type, "avif", 4); minor_ver = avio_rb32(pb); /* minor version */ av_dict_set_int(&c->fc->metadata, "minor_version", minor_ver, 0); @@ -7430,6 +7431,145 @@ static int mov_read_SAND(MOVContext *c, AVIOContext *pb, MOVAtom atom) return 0; } +static int rb_size(AVIOContext *pb, uint64_t* value, int size) +{ +if (size == 0) +*value = 0; +else if (size == 1) +*value = avio_r8(pb); +else if (size == 2) +*value = avio_rb16(pb); +else if (size == 4) +*value = avio_rb32(pb); +else if (size == 8) +*value = avio_rb64(pb); +else +return -1; +return size; +} + +static int mov_read_iloc(MOVContext *c, AVIOContext *pb, MOVAtom atom) +{ +int version, offset_size, length_size, base_offset_size, index_size; +int item_count, extent_count; +uint64_t base_offset, extent_offset, extent_length; +uint8_t value; +AVStream *st; +MOVStreamContext *sc; + +if (!c->is_still_picture_avif) { +// * For non-avif, we simply ignore the iloc box. +// * For animated avif, we don't care about the iloc box as all the +// necessary information can be found in the moov box. +return 0; +} + +if (c->fc->nb_streams) { +av_log(c->fc, AV_LOG_INFO, "Duplicate iloc box found\n"); +return 0; +} + +st = avformat_new_stream(c->fc, NULL); +if (!st) +return AVERROR(ENOMEM); +st->id = c->fc->nb_streams; +sc = av_mallocz(sizeof(MOVStreamContext)); +if (!sc) +return AVERROR(ENOMEM); + +st->priv_data = sc; +st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; +st->codecpar->codec_id = AV_CODEC_ID_AV1; +sc->ffindex = st->index; +c->trak_index = st->index; +st->avg_frame_rate.num = st->avg_frame_rate.den = 1; +st->time_base.num = st->time_base.den = 1; +st->nb_frames = 1; +sc->time_scale = 1; +sc = st->priv_data; +sc->pb = c->fc->pb; +sc->pb_is_copied = 1; + +version = avio_r8(pb); +avio_rb24(pb); // flags. + +value = avio_r8(pb); +offset_size = (value >> 4) & 0xF; +length_size = value & 0xF; +value = avio_r8(pb); +base_offset_size = (value >> 4) & 0xF; +index_size = !version ? 0 : (value & 0xF); +if (index_size) { +av_log(c->fc, AV_LOG_ERROR, "iloc: index_size != 0 not supported.\n"); +return AVERROR_PATCHWELCOME; +} +item_count = (version < 2) ? avio_rb16(pb) : avio_rb32(pb); +if (item_count > 1) { +// For still AVIF images, we only support one item. Second item will +// generally be found for AVIF images with alpha channel. We don't +// support them as of now. +av_log(c->fc, AV_LOG_ERROR, "iloc: item_count > 1 not supported.\n"); +return AVERROR_PATCHWELCOME; +} + +// Populate the necessary fields used by mov_build_index. +sc->stsc_count = item_count; +sc->stsc_data = av_malloc_array(item_count, sizeof(*sc->stsc_data)); +if (!sc->stsc_data) +return AVERROR(ENOMEM); +sc->stsc_data[0].first = 1; +sc->stsc_data[0].count = 1; +sc->stsc_data[0].id = 1; +sc->chunk_count = item_count; +sc->chunk_offsets = +av_malloc_array(item_count, sizeof(*sc->chunk_offsets)); +if (!sc->chunk_offsets) +return AVERROR(ENOMEM); +sc->sample_count = item_count; +sc->sample_sizes = +av_ma
Re: [FFmpeg-devel] [PATCH] libavformat/mov.c: Added configuration flag to skip cover art atom while opening mov parser
On Fri, Apr 22, 2022 at 4:30 PM Malviya, Janpriya wrote: > > Hi Derek, > > We require to add this configuration for the following reasons : > - We have our own pipeline mechanism to download & fetch audio data from > source. > - We are using ffmpeg with custom IO callbacks for parsing & decoding > fragmentedMP4 streams. > - Inside the custom IO read operation we are asking to download data from > upstream elements. > - If any stream contains a cover page ( e.g. image file ) then the custom io > read call-back issues a read request with large buffer size ( which is > obvious ) . On the other side , our source downloader is unable to handle a > data request of that size because of buffer constraints. > - To integrate FFmpeg with our architecture , we added this flag to issue > skip for cover page from parsing > > Let me know what you think. This sounds like you are solving a very specific problem in your environment, coming from your software stack and setup, in a generic library. I fail to see the use for anyone else. - Hendrik ___ 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".
Re: [FFmpeg-devel] [PATCH] libavcodec/videotoolboxenc.c: add option to hevc encoder to prioritize speed.
> Am 22.04.2022 um 18:52 schrieb Thilo Borgmann : > > > For that version I get: > > libavcodec/videotoolboxenc.c:1153:39: error: use of undeclared identifier > 'kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality' > > kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality, > ^ > > Should require some OSX version dependency via #if'ery somewhere sane. Like > #if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 > > or similar. If I understand the code correctly, it seems to me to be bettter to add kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality to the compat_keys struct. And digging through the SDK headers I’ve found that this property is available for h264 and ProRes encoders too. But since the SDK states that this property defaults to FALSE for h264 and hevc and to TRUE for ProRes I didn’t add it to the COMMON_OPTIONS but to each encoder options, because I didn’t want to make a regression to the ProRes or enabling it by default for h264 and hevc. Hope that’s ok. Here’s the resulting patch Regards Simone Signed-off-by: Simone Karin Lehmann mailto:sim...@lisanet.de>> --- libavcodec/videotoolboxenc.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 270496b7a7..462d2a8fb6 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -100,6 +100,7 @@ static struct{ CFStringRef kVTCompressionPropertyKey_RealTime; CFStringRef kVTCompressionPropertyKey_TargetQualityForAlpha; +CFStringRef kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality; CFStringRef kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder; CFStringRef kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder; @@ -161,6 +162,8 @@ static void loadVTEncSymbols(){ GET_SYM(kVTCompressionPropertyKey_RealTime, "RealTime"); GET_SYM(kVTCompressionPropertyKey_TargetQualityForAlpha, "TargetQualityForAlpha"); +GET_SYM(kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality, +"PrioritizeEncodingSpeedOverQuality"); GET_SYM(kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder, "EnableHardwareAcceleratedVideoEncoder"); @@ -237,6 +240,7 @@ typedef struct VTEncContext { int allow_sw; int require_sw; double alpha_quality; +int prio_speed; bool flushing; int has_b_frames; @@ -1146,6 +1150,16 @@ static int vtenc_create_encoder(AVCodecContext *avctx, return AVERROR_EXTERNAL; } +// prioritize speed over quality +if (vtctx->prio_speed) { +status = VTSessionSetProperty(vtctx->session, + compat_keys.kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality, + kCFBooleanTrue); +if (status) { +av_log(avctx, AV_LOG_WARNING, "PrioritizeEncodingSpeedOverQuality property is not supported on this device. Ignoring.\n"); +} +} + if ((vtctx->codec_id == AV_CODEC_ID_H264 || vtctx->codec_id == AV_CODEC_ID_HEVC) && max_rate > 0) { bytes_per_second_value = max_rate >> 3; @@ -2711,6 +2725,7 @@ static const AVOption h264_options[] = { { "ac","CABAC entropy coding", 0, AV_OPT_TYPE_CONST, { .i64 = VT_CABAC }, INT_MIN, INT_MAX, VE, "coder" }, { "a53cc", "Use A53 Closed Captions (if available)", OFFSET(a53_cc), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, VE }, +{ "prio_speed", "prioritize encoding speed", OFFSET(prio_speed), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, COMMON_OPTIONS { NULL }, @@ -2745,6 +2760,7 @@ static const AVOption hevc_options[] = { { "main10", "Main10 Profile", 0, AV_OPT_TYPE_CONST, { .i64 = HEVC_PROF_MAIN10 }, INT_MIN, INT_MAX, VE, "profile" }, { "alpha_quality", "Compression quality for the alpha channel", OFFSET(alpha_quality), AV_OPT_TYPE_DOUBLE, { .dbl = 0.0 }, 0.0, 1.0, VE }, +{ "prio_speed", "prioritize encoding speed", OFFSET(prio_speed), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, COMMON_OPTIONS { NULL }, @@ -2785,6 +2801,8 @@ static const AVOption prores_options[] = { { "", "ProRes ", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_PRORES_ },INT_MIN, INT_MAX, VE, "profile" }, { "xq", "ProRes XQ",0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_PRORES_XQ }, INT_MIN, INT_MAX, VE, "profile" }, + { "prio_speed", "prioritize encoding speed", OFFSET(prio_speed), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, VE }, + COMMON_OPTIONS { NULL }, }; -- 2.32.0 (Apple Git-132) ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or e
Re: [FFmpeg-devel] [PATCH 2/2] lavfi: Add blurriness filter
Hi, v3 updated to current HEAD. Named blurdetect filter now. Minor fixes on allocation and removed -f option. Please make this per plane filtering, with default to measure only first plane. done in v4. (Will add Changelog, version.h and fate test once the filter itself looks ok) Ping. v5 according to IRC comments. -ThiloFrom be0bed07d36d957caf328f91a6cd0402c27fb6b4 Mon Sep 17 00:00:00 2001 From: Thilo Borgmann Date: Sat, 23 Apr 2022 15:29:36 +0200 Subject: [PATCH v5 2/2] lavfi: Add blurdetect filter --- doc/filters.texi| 52 + libavfilter/Makefile| 1 + libavfilter/allfilters.c| 1 + libavfilter/vf_blurdetect.c | 395 4 files changed, 449 insertions(+) create mode 100644 libavfilter/vf_blurdetect.c diff --git a/doc/filters.texi b/doc/filters.texi index 636c80dbff..c6d4537804 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -7990,6 +7990,58 @@ tblend=all_mode=grainextract @subsection Commands This filter supports same @ref{commands} as options. +@anchor{blurdetect} +@section blurdetect + +Determines blurriness of frames without altering the input frames. + +Based on Marziliano, Pina, et al. "A no-reference perceptual blur metric." +Allows for a block-based abbreviation. + +The filter accepts the following options: + +@table @option +@item low +@item high +Set low and high threshold values used by the Canny thresholding +algorithm. + +The high threshold selects the "strong" edge pixels, which are then +connected through 8-connectivity with the "weak" edge pixels selected +by the low threshold. + +@var{low} and @var{high} threshold values must be chosen in the range +[0,1], and @var{low} should be lesser or equal to @var{high}. + +Default value for @var{low} is @code{20/255}, and default value for @var{high} +is @code{50/255}. + +@item radius +Define the radius to search around an edge pixel for local maxima. + +@item block_pct +Determine blurriness only for the most significant blocks, given in percentage. + +@item block_width +Determine blurriness for blocks of width @var{block_width}. If set to any value smaller 1, no blocks are used and the whole image is processed as one no matter of @var{block_height}. + +@item block_height +Determine blurriness for blocks of height @var{block_height}. If set to any value smaller 1, no blocks are used and the whole image is processed as one no matter of @var{block_width}. + +@item planes +Set planes to filter. Default is first only. +@end table + +@subsection Examples + +@itemize +@item +Determine blur for 80% of most significant 32x32 blocks: +@example +blurdetect=block_width=32:block_height=32:block_pct=80 +@end example +@end itemize + @section bm3d Denoise frames using Block-Matching 3D algorithm. diff --git a/libavfilter/Makefile b/libavfilter/Makefile index 006e59b2bd..6332a6f799 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -195,6 +195,7 @@ OBJS-$(CONFIG_BLACKDETECT_FILTER)+= vf_blackdetect.o OBJS-$(CONFIG_BLACKFRAME_FILTER) += vf_blackframe.o OBJS-$(CONFIG_BLEND_FILTER) += vf_blend.o framesync.o OBJS-$(CONFIG_BLEND_VULKAN_FILTER) += vf_blend_vulkan.o framesync.o vulkan.o vulkan_filter.o +OBJS-$(CONFIG_BLURDETECT_FILTER) += vf_blurdetect.o edge_common.o OBJS-$(CONFIG_BM3D_FILTER) += vf_bm3d.o framesync.o OBJS-$(CONFIG_BOXBLUR_FILTER)+= vf_boxblur.o boxblur.o OBJS-$(CONFIG_BOXBLUR_OPENCL_FILTER) += vf_avgblur_opencl.o opencl.o \ diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 9fbaaacf47..2667d153ad 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -183,6 +183,7 @@ extern const AVFilter ff_vf_blackdetect; extern const AVFilter ff_vf_blackframe; extern const AVFilter ff_vf_blend; extern const AVFilter ff_vf_blend_vulkan; +extern const AVFilter ff_vf_blurdetect; extern const AVFilter ff_vf_bm3d; extern const AVFilter ff_vf_boxblur; extern const AVFilter ff_vf_boxblur_opencl; diff --git a/libavfilter/vf_blurdetect.c b/libavfilter/vf_blurdetect.c new file mode 100644 index 00..c74f45ccb8 --- /dev/null +++ b/libavfilter/vf_blurdetect.c @@ -0,0 +1,395 @@ +/* + * Copyright (c) 2021 Thilo Borgmann + * + * 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 +
Re: [FFmpeg-devel] [PATCH] libavcodec/videotoolboxenc.c: add option to hevc encoder to prioritize speed.
Am 23.04.22 um 14:31 schrieb Simone Karin Lehmann: Am 22.04.2022 um 18:52 schrieb Thilo Borgmann : For that version I get: libavcodec/videotoolboxenc.c:1153:39: error: use of undeclared identifier 'kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality' kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality, ^ Should require some OSX version dependency via #if'ery somewhere sane. Like #if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 or similar. If I understand the code correctly, it seems to me to be bettter to add kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality to the compat_keys struct. And digging through the SDK headers I’ve found that this property is available for h264 and ProRes encoders too. But since the SDK states that this property defaults to FALSE for h264 and hevc and to TRUE for ProRes I didn’t add it to the COMMON_OPTIONS but to each encoder options, because I didn’t want to make a regression to the ProRes or enabling it by default for h264 and hevc. Hope that’s ok. Here’s the resulting patch Regards Simone Signed-off-by: Simone Karin Lehmann mailto:sim...@lisanet.de>> --- libavcodec/videotoolboxenc.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 270496b7a7..462d2a8fb6 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -100,6 +100,7 @@ static struct{ CFStringRef kVTCompressionPropertyKey_RealTime; CFStringRef kVTCompressionPropertyKey_TargetQualityForAlpha; +CFStringRef kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality; CFStringRef kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder; CFStringRef kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder; @@ -161,6 +162,8 @@ static void loadVTEncSymbols(){ GET_SYM(kVTCompressionPropertyKey_RealTime, "RealTime"); GET_SYM(kVTCompressionPropertyKey_TargetQualityForAlpha, "TargetQualityForAlpha"); +GET_SYM(kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality, +"PrioritizeEncodingSpeedOverQuality"); GET_SYM(kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder, "EnableHardwareAcceleratedVideoEncoder"); If that works I'd be happy. Does not apply for me anymore (on HEAD), though? -Thilo @@ -237,6 +240,7 @@ typedef struct VTEncContext { int allow_sw; int require_sw; double alpha_quality; +int prio_speed; bool flushing; int has_b_frames; @@ -1146,6 +1150,16 @@ static int vtenc_create_encoder(AVCodecContext *avctx, return AVERROR_EXTERNAL; } +// prioritize speed over quality +if (vtctx->prio_speed) { +status = VTSessionSetProperty(vtctx->session, + compat_keys.kVTCompressionPropertyKey_PrioritizeEncodingSpeedOverQuality, + kCFBooleanTrue); +if (status) { +av_log(avctx, AV_LOG_WARNING, "PrioritizeEncodingSpeedOverQuality property is not supported on this device. Ignoring.\n"); +} +} + if ((vtctx->codec_id == AV_CODEC_ID_H264 || vtctx->codec_id == AV_CODEC_ID_HEVC) && max_rate > 0) { bytes_per_second_value = max_rate >> 3; @@ -2711,6 +2725,7 @@ static const AVOption h264_options[] = { { "ac","CABAC entropy coding", 0, AV_OPT_TYPE_CONST, { .i64 = VT_CABAC }, INT_MIN, INT_MAX, VE, "coder" }, { "a53cc", "Use A53 Closed Captions (if available)", OFFSET(a53_cc), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, VE }, +{ "prio_speed", "prioritize encoding speed", OFFSET(prio_speed), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, COMMON_OPTIONS { NULL }, @@ -2745,6 +2760,7 @@ static const AVOption hevc_options[] = { { "main10", "Main10 Profile", 0, AV_OPT_TYPE_CONST, { .i64 = HEVC_PROF_MAIN10 }, INT_MIN, INT_MAX, VE, "profile" }, { "alpha_quality", "Compression quality for the alpha channel", OFFSET(alpha_quality), AV_OPT_TYPE_DOUBLE, { .dbl = 0.0 }, 0.0, 1.0, VE }, +{ "prio_speed", "prioritize encoding speed", OFFSET(prio_speed), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, COMMON_OPTIONS { NULL }, @@ -2785,6 +2801,8 @@ static const AVOption prores_options[] = { { "", "ProRes ", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_PRORES_ },INT_MIN, INT_MAX, VE, "profile" }, { "xq", "ProRes XQ",0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_PRORES_XQ }, INT_MIN, INT_MAX, VE, "profile" }, + { "prio_speed", "prioritize encoding speed", OFFSET(prio_speed), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, VE }, + COMMON_OPTIONS { NULL }, }; ___ ffmpeg-devel mailin
Re: [FFmpeg-devel] [PATCH] libavcodec/videotoolboxenc.c: add option to hevc encoder to prioritize speed.
> Am 23.04.2022 um 17:07 schrieb Thilo Borgmann : > > > If that works I'd be happy. Does not apply for me anymore (on HEAD), though? > > hhmm, the patch applies for me on current HEAD. I’ve tested it a few moments ago on a fresh downloaded git snapshot. Maybe a former patch from me still there in your source tree? Simone ___ 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".
[FFmpeg-devel] FFmpeg 5.0 LTS vs 5.1 LTS
Hi all Do people prefer that 5.0 becomes LTS or the next (5.1) ? Or something else ? Thanks -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Nations do behave wisely once they have exhausted all other alternatives. -- Abba Eban signature.asc Description: PGP signature ___ 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".
Re: [FFmpeg-devel] FFmpeg 5.0 LTS vs 5.1 LTS
On 4/23/2022 1:36 PM, Michael Niedermayer wrote: Hi all Do people prefer that 5.0 becomes LTS or the next (5.1) ? Or something else ? Thanks 5.0 lacks the new channel layout API, and making that an LTS will give projects less incentive to migrate, so IMO, 5.1 (or a newer one) should be the LTS. ___ 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".
Re: [FFmpeg-devel] [PATCH v15 4/4] avformat/image2: add Jpeg XL as image2 format
17 Apr 2022, 15:22 by leo.i...@gmail.com: > This commit adds support to libavformat for muxing > and demuxing Jpeg XL images as image2 streams. > --- > MAINTAINERS| 1 + > libavformat/Makefile | 1 + > libavformat/allformats.c | 1 + > libavformat/img2.c | 1 + > libavformat/img2dec.c | 20 ++ > libavformat/img2enc.c | 6 +- > libavformat/jpegxl_probe.c | 393 + > libavformat/jpegxl_probe.h | 32 +++ > libavformat/mov.c | 1 + > 9 files changed, 453 insertions(+), 3 deletions(-) > create mode 100644 libavformat/jpegxl_probe.c > create mode 100644 libavformat/jpegxl_probe.h > Patchset pushed, thanks! ___ 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".
Re: [FFmpeg-devel] FFmpeg 5.0 LTS vs 5.1 LTS
On Sat, Apr 23, 2022 at 12:40 PM James Almer wrote: > > On 4/23/2022 1:36 PM, Michael Niedermayer wrote: > > Hi all > > > > Do people prefer that 5.0 becomes LTS or the next (5.1) ? > > Or something else ? > > > > Thanks > > 5.0 lacks the new channel layout API, and making that an LTS will give > projects less incentive to migrate, so IMO, 5.1 (or a newer one) should > be the LTS. I thought 5.x was the LTS series already. Maybe I misunderstood, but I expected that the 5.x series does not break API/ABI, so minor versions of the 5.0 major series would be part of the same LTS and supported for that timeframe. At least, that was my impression when I started bringing ffmpeg into Fedora... -- 真実はいつも一つ!/ Always, there's only one truth! ___ 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".
Re: [FFmpeg-devel] FFmpeg 5.0 LTS vs 5.1 LTS
On 4/23/2022 3:08 PM, Neal Gompa wrote: On Sat, Apr 23, 2022 at 12:40 PM James Almer wrote: On 4/23/2022 1:36 PM, Michael Niedermayer wrote: Hi all Do people prefer that 5.0 becomes LTS or the next (5.1) ? Or something else ? Thanks 5.0 lacks the new channel layout API, and making that an LTS will give projects less incentive to migrate, so IMO, 5.1 (or a newer one) should be the LTS. I thought 5.x was the LTS series already. Maybe I misunderstood, but I expected that the 5.x series does not break API/ABI, so minor versions of the 5.0 major series would be part of the same LTS and supported for that timeframe. No 5.x release will break existing API/ABI, but all can and most likely will introduce new API. So if you target 5.0, you can use 5.x just fine. As an example, 5.1 will be the first with a new channel layout API in lavu, which will of course live alongside the old (now marked as deprecated) until a major bump takes place in a couple years. At least, that was my impression when I started bringing ffmpeg into Fedora... -- 真実はいつも一つ!/ Always, there's only one truth! ___ 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". ___ 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".
Re: [FFmpeg-devel] FFmpeg 5.0 LTS vs 5.1 LTS
On Sat, Apr 23, 2022 at 2:15 PM James Almer wrote: > > > > On 4/23/2022 3:08 PM, Neal Gompa wrote: > > On Sat, Apr 23, 2022 at 12:40 PM James Almer wrote: > >> > >> On 4/23/2022 1:36 PM, Michael Niedermayer wrote: > >>> Hi all > >>> > >>> Do people prefer that 5.0 becomes LTS or the next (5.1) ? > >>> Or something else ? > >>> > >>> Thanks > >> > >> 5.0 lacks the new channel layout API, and making that an LTS will give > >> projects less incentive to migrate, so IMO, 5.1 (or a newer one) should > >> be the LTS. > > > > I thought 5.x was the LTS series already. Maybe I misunderstood, but I > > expected that the 5.x series does not break API/ABI, so minor versions > > of the 5.0 major series would be part of the same LTS and supported > > for that timeframe. > > No 5.x release will break existing API/ABI, but all can and most likely > will introduce new API. So if you target 5.0, you can use 5.x just fine. > So, that aligns with my expectations. > As an example, 5.1 will be the first with a new channel layout API in > lavu, which will of course live alongside the old (now marked as > deprecated) until a major bump takes place in a couple years. > So then, to me, it makes sense to shift the LTS to 5.1 as part of the LTS 5.x cycle. It gets people upgrading and satisfies people's general expectation here (including mine). -- 真実はいつも一つ!/ Always, there's only one truth! ___ 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".
[FFmpeg-devel] [PATCH 0/2] Jpeg XL version.h bump
I missed the version.h bump when rebasing the Jpeg XL patchset onto master. This should properly bump the minor library versions. Leo Izen (2): avcodec/version.h: bump version for Jpeg XL avformat/version.h: bump version for Jpeg XL libavcodec/version.h | 2 +- libavformat/version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- 2.36.0 ___ 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".
[FFmpeg-devel] [PATCH 1/2] avcodec/version.h: bump version for Jpeg XL
The version.h bump got missed with the Jpeg XL patchset. This should bump the minor version in accordance with the contributing guidelines. --- libavcodec/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/version.h b/libavcodec/version.h index 26ee41eb1f..735c8b813c 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 26 +#define LIBAVCODEC_VERSION_MINOR 27 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ -- 2.36.0 ___ 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".
[FFmpeg-devel] [PATCH 2/2] avformat/version.h: bump version for Jpeg XL
The version.h bump got missed with the Jpeg XL patchset. This should bump the minor version in accordance with the contributing guidelines. --- libavformat/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/version.h b/libavformat/version.h index d8fc959f19..a8385d1a7b 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #include "version_major.h" -#define LIBAVFORMAT_VERSION_MINOR 22 +#define LIBAVFORMAT_VERSION_MINOR 23 #define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ -- 2.36.0 ___ 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".
Re: [FFmpeg-devel] [PATCH 0/2] Jpeg XL version.h bump
On Sat, Apr 23, 2022 at 10:39 PM Leo Izen wrote: > > I missed the version.h bump when rebasing the Jpeg XL > patchset onto master. This should properly bump the minor > library versions. > > Leo Izen (2): > avcodec/version.h: bump version for Jpeg XL > avformat/version.h: bump version for Jpeg XL > > libavcodec/version.h | 2 +- > libavformat/version.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > LGTM. Will apply with the dot-h removed and modifying the wording to "bump minor version". Jan ___ 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".
Re: [FFmpeg-devel] [PATCH v2 1/5] lavfi: generalize colorspace coefficent helpers
Merged in 2cb0cebd11eb90dfcccac5c258af1003bd4f17d2 On Tue, 19 Apr 2022 14:48:06 +0200 Niklas Haas wrote: > Merging this series at the end of the week if I don't get any additional > feedback. > ___ > 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". ___ 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".
Re: [FFmpeg-devel] [PATCH] libavcodec/videotoolboxenc.c: add option to hevc encoder to prioritize speed.
Am 23.04.22 um 17:42 schrieb Simone Karin Lehmann: Am 23.04.2022 um 17:07 schrieb Thilo Borgmann : If that works I'd be happy. Does not apply for me anymore (on HEAD), though? hhmm, the patch applies for me on current HEAD. I’ve tested it a few moments ago on a fresh downloaded git snapshot. Maybe a former patch from me still there in your source tree? Also cloned into a new one, but corrupt @75: Thilos-Mac-mini:github borgmann$ git clone git://source.ffmpeg.org/ffmpeg.git FFmpegNew Cloning into 'FFmpegNew'... remote: Enumerating objects: 662389, done. remote: Counting objects: 100% (662389/662389), done. remote: Compressing objects: 100% (132367/132367), done. remote: Total 662389 (delta 536006), reused 653667 (delta 528727) Receiving objects: 100% (662389/662389), 130.66 MiB | 6.20 MiB/s, done. Resolving deltas: 100% (536006/536006), done. Checking out files: 100% (7728/7728), done. Thilos-Mac-mini:github borgmann$ cd FFmpegNew/ Thilos-Mac-mini:FFmpegNew borgmann$ git am ../patches/vte/ 0001-selfmade.patch Re_ [FFmpeg-devel] [PATCH] libavcodec_videotoolboxenc.c_ add option to hevc encoder to prioritize speed. - Simone Karin Lehmann - 2022-04-21 1742.eml Re_ [FFmpeg-devel] [PATCH] libavcodec_videotoolboxenc.c_ add option to hevc encoder to prioritize speed. - Simone Karin Lehmann - 2022-04-23 1431.eml Re_ [FFmpeg-devel] [PATCH] libavcodec_videotoolboxenc.c_ add option to hevc encoder to prioritize speed. - Simone Karin Lehmann - 2022-04-23 1431.patch Thilos-Mac-mini:FFmpegNew borgmann$ git am ../patches/vte/Re_\ \[FFmpeg-devel\]\ \[PATCH\]\ libavcodec_videotoolboxenc.c_\ add\ option\ to\ hevc\ encoder\ to\ prioritize\ speed.\ -\ Simone\ Karin\ Lehmann\ \\ -\ 2022-04-23\ 1431.eml Applying: libavcodec/videotoolboxenc.c: add option to hevc encoder to prioritize speed. error: corrupt patch at line 75 Patch failed at 0001 libavcodec/videotoolboxenc.c: add option to hevc encoder to prioritize speed. hint: Use 'git am --show-current-patch' to see the failed patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Thilos-Mac-mini:FFmpegNew borgmann$ git log -1 commit ce23794b91031162da365a0d389fd0330cdb9486 (HEAD -> master, origin/master, origin/HEAD) Author: Paul B Mahol Date: Sat Apr 23 19:09:30 2022 +0200 avfilter/avf_showspectrum: filter support all channel counts ___ 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".
[FFmpeg-devel] [PATCH v10 1/6] libavutil/wchar_filename.h: Add whcartoutf8, wchartoansi and utf8toansi
These functions are going to be used in libavformat/avisynth.c and fftools/cmdutils.c remove MAX_PATH limit. --- libavutil/wchar_filename.h | 52 ++ 1 file changed, 52 insertions(+) diff --git a/libavutil/wchar_filename.h b/libavutil/wchar_filename.h index 90f08245..5fdd2ff0 100644 --- a/libavutil/wchar_filename.h +++ b/libavutil/wchar_filename.h @@ -1,3 +1,4 @@ + /* * This file is part of FFmpeg. * @@ -40,6 +41,57 @@ static inline int utf8towchar(const char *filename_utf8, wchar_t **filename_w) MultiByteToWideChar(CP_UTF8, 0, filename_utf8, -1, *filename_w, num_chars); return 0; } + +av_warn_unused_result +static inline int wchartocp(unsigned int code_page, const wchar_t *filename_w, +char **filename) +{ +DWORD flags = code_page == CP_UTF8 ? MB_ERR_INVALID_CHARS : 0; +int num_chars = WideCharToMultiByte(code_page, flags, filename_w, -1, +NULL, 0, NULL, NULL); +if (num_chars <= 0) { +*filename = NULL; +return 0; +} +*filename = av_calloc(num_chars, sizeof(char)); +if (!*filename) { +errno = ENOMEM; +return -1; +} +WideCharToMultiByte(code_page, flags, filename_w, -1, +*filename, num_chars, NULL, NULL); +return 0; +} + +av_warn_unused_result +static inline int wchartoutf8(const wchar_t *filename_w, char **filename) +{ +return wchartocp(CP_UTF8, filename_w, filename); +} + +av_warn_unused_result +static inline int wchartoansi(const wchar_t *filename_w, char **filename) +{ +return wchartocp(CP_ACP, filename_w, filename); +} + +av_warn_unused_result +static inline int utf8toansi(const char *filename_utf8, char **filename) +{ +wchar_t *filename_w = NULL; +int ret = -1; +if (utf8towchar(filename_utf8, &filename_w)) +return -1; + +if (!filename_w) { +*filename = NULL; +return 0; +} + +ret = wchartoansi(filename_w, filename); +av_free(filename_w); +return ret; +} #endif #endif /* AVUTIL_WCHAR_FILENAME_H */ -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v10 5/6] fftools: Enable long path support on Windows (fixes #8885)
Newer versions of Windows (Windows 10 1607 and newer) can support path names longer than MAX_PATH (260 characters). To take advantage of that, an application needs to opt in, by including a small manifest as a resource. Application must be prepared to handle filenames greater than MAX_PATH. Additionally, the path length limitation is only lifted for file APIs that pass paths as wchar_t. Therefore, the preceding patches have refactored a few remaining cases where: 1. filename length was restricted to MAX_PATH 2. files were opened using ANSI functions. On older versions of Windows, the newly added manifest has no effect. --- fftools/Makefile | 5 + fftools/fftools.manifest | 10 ++ fftools/manifest.rc | 3 +++ 3 files changed, 18 insertions(+) create mode 100644 fftools/fftools.manifest create mode 100644 fftools/manifest.rc diff --git a/fftools/Makefile b/fftools/Makefile index 81ad6c4f..105ae5cc 100644 --- a/fftools/Makefile +++ b/fftools/Makefile @@ -15,6 +15,11 @@ OBJS-ffmpeg += \ fftools/ffmpeg_mux.o\ fftools/ffmpeg_opt.o\ +# Windows resource files +OBJS-ffmpeg-$(HAVE_GNU_WINDRES) += fftools/manifest.o +OBJS-ffplay-$(HAVE_GNU_WINDRES) += fftools/manifest.o +OBJS-ffprobe-$(HAVE_GNU_WINDRES) += fftools/manifest.o + define DOFFTOOL OBJS-$(1) += fftools/cmdutils.o fftools/opt_common.o fftools/$(1).o $(OBJS-$(1)-yes) $(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) diff --git a/fftools/fftools.manifest b/fftools/fftools.manifest new file mode 100644 index ..30b7d8fe --- /dev/null +++ b/fftools/fftools.manifest @@ -0,0 +1,10 @@ + + + + + +http://schemas.microsoft.com/SMI/2016/WindowsSettings";> + true + + + diff --git a/fftools/manifest.rc b/fftools/manifest.rc new file mode 100644 index ..e436fa73 --- /dev/null +++ b/fftools/manifest.rc @@ -0,0 +1,3 @@ +#include + +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "fftools.manifest" -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v10 2/6] libavformat/avisynth.c: Remove MAX_PATH limit
--- libavformat/avisynth.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c index 8ba2bdea..f7bea8c3 100644 --- a/libavformat/avisynth.c +++ b/libavformat/avisynth.c @@ -34,6 +34,7 @@ /* Platform-specific directives. */ #ifdef _WIN32 #include "compat/w32dlfcn.h" + #include "libavutil/wchar_filename.h" #undef EXTERN_C #define AVISYNTH_LIB "avisynth" #else @@ -810,8 +811,7 @@ static int avisynth_open_file(AVFormatContext *s) AVS_Value arg, val; int ret; #ifdef _WIN32 -char filename_ansi[MAX_PATH * 4]; -wchar_t filename_wc[MAX_PATH * 4]; +char *filename_ansi = NULL; #endif if (ret = avisynth_context_create(s)) @@ -819,10 +819,12 @@ static int avisynth_open_file(AVFormatContext *s) #ifdef _WIN32 /* Convert UTF-8 to ANSI code page */ -MultiByteToWideChar(CP_UTF8, 0, s->url, -1, filename_wc, MAX_PATH * 4); -WideCharToMultiByte(CP_THREAD_ACP, 0, filename_wc, -1, filename_ansi, -MAX_PATH * 4, NULL, NULL); +if (utf8toansi(s->url, &filename_ansi)) { +ret = AVERROR_UNKNOWN; +goto fail; +} arg = avs_new_value_string(filename_ansi); +av_free(filename_ansi); #else arg = avs_new_value_string(s->url); #endif -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v10 3/6] compat/w32dlfcn.h: Remove MAX_PATH limit and replace LoadLibraryExA with LoadLibraryExW
--- compat/w32dlfcn.h | 78 ++- 1 file changed, 64 insertions(+), 14 deletions(-) diff --git a/compat/w32dlfcn.h b/compat/w32dlfcn.h index 52a94efa..2284ac7a 100644 --- a/compat/w32dlfcn.h +++ b/compat/w32dlfcn.h @@ -25,6 +25,30 @@ #if (_WIN32_WINNT < 0x0602) || HAVE_WINRT #include "libavutil/wchar_filename.h" #endif + +static inline wchar_t *get_module_filename(HMODULE module) +{ +wchar_t *path = NULL, *new_path = NULL; +DWORD path_size = 0, path_len = 0; + +do { +path_size = path_size ? 2 * path_size : MAX_PATH; +new_path = av_realloc_array(path, path_size, sizeof *path); +if (!new_path) { +av_free(path); +return NULL; +} +path = new_path; +path_len = GetModuleFileNameW(module, path, path_size); +} while (path_len && path_size <= 32768 && path_size <= path_len); + +if (!path_len) { +av_free(path); +return NULL; +} +return path; +} + /** * Safe function used to open dynamic libs. This attempts to improve program security * by removing the current directory from the dll search path. Only dll's found in the @@ -34,29 +58,53 @@ */ static inline HMODULE win32_dlopen(const char *name) { +wchar_t *name_w = NULL; +if (utf8towchar(name, &name_w)) +name_w = NULL; #if _WIN32_WINNT < 0x0602 // Need to check if KB2533623 is available if (!GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "SetDefaultDllDirectories")) { HMODULE module = NULL; -wchar_t *path = NULL, *name_w = NULL; -DWORD pathlen; -if (utf8towchar(name, &name_w)) +wchar_t *path = NULL, *new_path = NULL; +DWORD pathlen, pathsize, namelen; +if (!name_w) goto exit; -path = (wchar_t *)av_calloc(MAX_PATH, sizeof(wchar_t)); +namelen = wcslen(name_w); // Try local directory first -pathlen = GetModuleFileNameW(NULL, path, MAX_PATH); -pathlen = wcsrchr(path, '\\') - path; -if (pathlen == 0 || pathlen + wcslen(name_w) + 2 > MAX_PATH) +path = get_module_filename(NULL); +if (!path) goto exit; -path[pathlen] = '\\'; +new_path = wcsrchr(path, '\\'); +if (!new_path) +goto exit; +pathlen = new_path - path; +pathsize = pathlen + namelen + 2; +new_path = av_realloc_array(path, pathsize, sizeof *path); +if (!new_path) +goto exit; +path = new_path; wcscpy(path + pathlen + 1, name_w); module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if (module == NULL) { // Next try System32 directory -pathlen = GetSystemDirectoryW(path, MAX_PATH); -if (pathlen == 0 || pathlen + wcslen(name_w) + 2 > MAX_PATH) +pathlen = GetSystemDirectoryW(path, pathsize); +if (!pathlen) goto exit; -path[pathlen] = '\\'; +// Buffer is not enough in two cases: +// 1. system directory + \ + module name +// 2. system directory even without module name. +if (pathlen + namelen + 2 > pathsize) { +pathsize = pathlen + namelen + 2; +new_path = av_realloc_array(path, pathsize, sizeof *path); +if (!new_path) +goto exit; +path = new_path; +// Query again to handle case #2. +pathlen = GetSystemDirectoryW(path, pathsize); +if (!pathlen) +goto exit; +} +path[pathlen] = L'\\'; wcscpy(path + pathlen + 1, name_w); module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); } @@ -73,15 +121,17 @@ exit: # define LOAD_LIBRARY_SEARCH_SYSTEM320x0800 #endif #if HAVE_WINRT -wchar_t *name_w = NULL; int ret; -if (utf8towchar(name, &name_w)) +if (!name_w) return NULL; ret = LoadPackagedLibrary(name_w, 0); av_free(name_w); return ret; #else -return LoadLibraryExA(name, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32); +/* filename may be be in CP_ACP */ +if (!name_w) +return LoadLibraryExA(name, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32); +return LoadLibraryExW(name_w, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32); #endif } #define dlopen(name, flags) win32_dlopen(name) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v10 6/6] fftools: Set active code page to UTF-8 on Windows
Starting with Windows 1903 applications can set active code page to UTF-8 with the application manifest. It improves path name compatibility with dependencies that use char* pathnames internally, but whose code page has already been changed to UTF-8 via a manifest (e.g. AviSynth). On older versions of Windows, changes in the manifest have no effect. --- fftools/fftools.manifest | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fftools/fftools.manifest b/fftools/fftools.manifest index 30b7d8fe..d1ac1e4e 100644 --- a/fftools/fftools.manifest +++ b/fftools/fftools.manifest @@ -3,8 +3,10 @@ -http://schemas.microsoft.com/SMI/2016/WindowsSettings";> +http://schemas.microsoft.com/SMI/2016/WindowsSettings"; + xmlns:ws2019="http://schemas.microsoft.com/SMI/2019/WindowsSettings";> true + UTF-8 -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v10 4/6] fftools/cmdutils.c: Remove MAX_PATH limit
--- fftools/cmdutils.c | 32 ++-- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 5d7cdc3e..af070c19 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -37,6 +37,7 @@ #include "libswresample/swresample.h" #include "libavutil/avassert.h" #include "libavutil/avstring.h" +#include "libavutil/avutil.h" #include "libavutil/channel_layout.h" #include "libavutil/display.h" #include "libavutil/mathematics.h" @@ -50,6 +51,7 @@ #include "opt_common.h" #ifdef _WIN32 #include +#include "compat/w32dlfcn.h" #endif AVDictionary *sws_dict; @@ -812,6 +814,9 @@ FILE *get_preset_file(char *filename, size_t filename_size, { FILE *f = NULL; int i; +#if HAVE_GETMODULEHANDLE && defined(_WIN32) +char *datadir = NULL; +#endif const char *base[3] = { getenv("FFMPEG_DATADIR"), getenv("HOME"), FFMPEG_DATADIR, }; @@ -821,19 +826,31 @@ FILE *get_preset_file(char *filename, size_t filename_size, f = fopen(filename, "r"); } else { #if HAVE_GETMODULEHANDLE && defined(_WIN32) -char datadir[MAX_PATH], *ls; +wchar_t *datadir_w = get_module_filename(NULL); base[2] = NULL; -if (GetModuleFileNameA(GetModuleHandleA(NULL), datadir, sizeof(datadir) - 1)) +if (wchartoutf8(datadir_w, &datadir)) +datadir = NULL; +av_free(datadir_w); + +if (datadir) { -for (ls = datadir; ls < datadir + strlen(datadir); ls++) +char *ls; +for (ls = datadir; *ls; ls++) if (*ls == '\\') *ls = '/'; if (ls = strrchr(datadir, '/')) { -*ls = 0; -strncat(datadir, "/ffpresets", sizeof(datadir) - 1 - strlen(datadir)); -base[2] = datadir; +ptrdiff_t datadir_len = ls - datadir; +size_t desired_size = datadir_len + strlen("/ffpresets") + 1; +char *new_datadir = av_realloc_array( +datadir, desired_size, sizeof *datadir); +if (new_datadir) { +datadir = new_datadir; +datadir[datadir_len] = 0; +strncat(datadir, "/ffpresets", desired_size - 1 - datadir_len); +base[2] = datadir; +} } } #endif @@ -853,6 +870,9 @@ FILE *get_preset_file(char *filename, size_t filename_size, } } +#if HAVE_GETMODULEHANDLE && defined(_WIN32) +av_free(datadir); +#endif return f; } -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH] libavfilter/version: bump minor version for icc{gen, detect}
Missed during that patch set's life time. --- libavfilter/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/version.h b/libavfilter/version.h index 547b3b4e7d..9add1658e5 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -31,7 +31,7 @@ #include "version_major.h" -#define LIBAVFILTER_VERSION_MINOR 35 +#define LIBAVFILTER_VERSION_MINOR 36 #define LIBAVFILTER_VERSION_MICRO 100 -- 2.36.0 ___ 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".
Re: [FFmpeg-devel] [PATCH] libavfilter/version: bump minor version for icc{gen, detect}
LGTM On Sat, 23 Apr 2022 23:10:51 +0300 Jan Ekström wrote: > Missed during that patch set's life time. > --- > libavfilter/version.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavfilter/version.h b/libavfilter/version.h > index 547b3b4e7d..9add1658e5 100644 > --- a/libavfilter/version.h > +++ b/libavfilter/version.h > @@ -31,7 +31,7 @@ > > #include "version_major.h" > > -#define LIBAVFILTER_VERSION_MINOR 35 > +#define LIBAVFILTER_VERSION_MINOR 36 > #define LIBAVFILTER_VERSION_MICRO 100 > > > -- > 2.36.0 > > ___ > 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". ___ 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".
Re: [FFmpeg-devel] [PATCH] libavcodec/videotoolboxenc.c: add option to hevc encoder to prioritize speed.
> Am 23.04.2022 um 21:56 schrieb Thilo Borgmann : > > Am 23.04.22 um 17:42 schrieb Simone Karin Lehmann: >>> Am 23.04.2022 um 17:07 schrieb Thilo Borgmann : >>> >>> >>> If that works I'd be happy. Does not apply for me anymore (on HEAD), though? >>> >>> >> hhmm, the patch applies for me on current HEAD. I’ve tested it a few moments >> ago on a fresh downloaded git snapshot. >> Maybe a former patch from me still there in your source tree? > > Also cloned into a new one, but corrupt @75: > Weird. Apple Mail seems to somehow change the encoding of the mail and I couldn’t get the *.eml to apply correctly too. Never encountered that before. I've attached the patch as a file. Hope that’s ok on this mailing list. Sorry for the inconvenience. Simone 0001-add-options-to-h264-hevc-and-prores-encoders-to-prio.patch Description: Binary data ___ 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".
[FFmpeg-devel] [PATCH v11 2/6] libavformat/avisynth.c: Remove MAX_PATH limit
--- libavformat/avisynth.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c index 8ba2bdea..f7bea8c3 100644 --- a/libavformat/avisynth.c +++ b/libavformat/avisynth.c @@ -34,6 +34,7 @@ /* Platform-specific directives. */ #ifdef _WIN32 #include "compat/w32dlfcn.h" + #include "libavutil/wchar_filename.h" #undef EXTERN_C #define AVISYNTH_LIB "avisynth" #else @@ -810,8 +811,7 @@ static int avisynth_open_file(AVFormatContext *s) AVS_Value arg, val; int ret; #ifdef _WIN32 -char filename_ansi[MAX_PATH * 4]; -wchar_t filename_wc[MAX_PATH * 4]; +char *filename_ansi = NULL; #endif if (ret = avisynth_context_create(s)) @@ -819,10 +819,12 @@ static int avisynth_open_file(AVFormatContext *s) #ifdef _WIN32 /* Convert UTF-8 to ANSI code page */ -MultiByteToWideChar(CP_UTF8, 0, s->url, -1, filename_wc, MAX_PATH * 4); -WideCharToMultiByte(CP_THREAD_ACP, 0, filename_wc, -1, filename_ansi, -MAX_PATH * 4, NULL, NULL); +if (utf8toansi(s->url, &filename_ansi)) { +ret = AVERROR_UNKNOWN; +goto fail; +} arg = avs_new_value_string(filename_ansi); +av_free(filename_ansi); #else arg = avs_new_value_string(s->url); #endif -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v11 4/6] fftools/cmdutils.c: Remove MAX_PATH limit
--- fftools/cmdutils.c | 31 +-- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c index 5d7cdc3e..d42bb04e 100644 --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -50,6 +50,7 @@ #include "opt_common.h" #ifdef _WIN32 #include +#include "compat/w32dlfcn.h" #endif AVDictionary *sws_dict; @@ -812,6 +813,9 @@ FILE *get_preset_file(char *filename, size_t filename_size, { FILE *f = NULL; int i; +#if HAVE_GETMODULEHANDLE && defined(_WIN32) +char *datadir = NULL; +#endif const char *base[3] = { getenv("FFMPEG_DATADIR"), getenv("HOME"), FFMPEG_DATADIR, }; @@ -821,19 +825,31 @@ FILE *get_preset_file(char *filename, size_t filename_size, f = fopen(filename, "r"); } else { #if HAVE_GETMODULEHANDLE && defined(_WIN32) -char datadir[MAX_PATH], *ls; +wchar_t *datadir_w = get_module_filename(NULL); base[2] = NULL; -if (GetModuleFileNameA(GetModuleHandleA(NULL), datadir, sizeof(datadir) - 1)) +if (wchartoansi(datadir_w, &datadir)) +datadir = NULL; +av_free(datadir_w); + +if (datadir) { -for (ls = datadir; ls < datadir + strlen(datadir); ls++) +char *ls; +for (ls = datadir; *ls; ls++) if (*ls == '\\') *ls = '/'; if (ls = strrchr(datadir, '/')) { -*ls = 0; -strncat(datadir, "/ffpresets", sizeof(datadir) - 1 - strlen(datadir)); -base[2] = datadir; +ptrdiff_t datadir_len = ls - datadir; +size_t desired_size = datadir_len + strlen("/ffpresets") + 1; +char *new_datadir = av_realloc_array( +datadir, desired_size, sizeof *datadir); +if (new_datadir) { +datadir = new_datadir; +datadir[datadir_len] = 0; +strncat(datadir, "/ffpresets", desired_size - 1 - datadir_len); +base[2] = datadir; +} } } #endif @@ -853,6 +869,9 @@ FILE *get_preset_file(char *filename, size_t filename_size, } } +#if HAVE_GETMODULEHANDLE && defined(_WIN32) +av_free(datadir); +#endif return f; } -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v11 1/6] libavutil/wchar_filename.h: Add whcartoutf8, wchartoansi and utf8toansi
These functions are going to be used in libavformat/avisynth.c and fftools/cmdutils.c to remove MAX_PATH limit. --- libavutil/wchar_filename.h | 51 ++ 1 file changed, 51 insertions(+) diff --git a/libavutil/wchar_filename.h b/libavutil/wchar_filename.h index 90f08245..c0e5d47e 100644 --- a/libavutil/wchar_filename.h +++ b/libavutil/wchar_filename.h @@ -40,6 +40,57 @@ static inline int utf8towchar(const char *filename_utf8, wchar_t **filename_w) MultiByteToWideChar(CP_UTF8, 0, filename_utf8, -1, *filename_w, num_chars); return 0; } + +av_warn_unused_result +static inline int wchartocp(unsigned int code_page, const wchar_t *filename_w, +char **filename) +{ +DWORD flags = code_page == CP_UTF8 ? MB_ERR_INVALID_CHARS : 0; +int num_chars = WideCharToMultiByte(code_page, flags, filename_w, -1, +NULL, 0, NULL, NULL); +if (num_chars <= 0) { +*filename = NULL; +return 0; +} +*filename = av_calloc(num_chars, sizeof(char)); +if (!*filename) { +errno = ENOMEM; +return -1; +} +WideCharToMultiByte(code_page, flags, filename_w, -1, +*filename, num_chars, NULL, NULL); +return 0; +} + +av_warn_unused_result +static inline int wchartoutf8(const wchar_t *filename_w, char **filename) +{ +return wchartocp(CP_UTF8, filename_w, filename); +} + +av_warn_unused_result +static inline int wchartoansi(const wchar_t *filename_w, char **filename) +{ +return wchartocp(CP_ACP, filename_w, filename); +} + +av_warn_unused_result +static inline int utf8toansi(const char *filename_utf8, char **filename) +{ +wchar_t *filename_w = NULL; +int ret = -1; +if (utf8towchar(filename_utf8, &filename_w)) +return -1; + +if (!filename_w) { +*filename = NULL; +return 0; +} + +ret = wchartoansi(filename_w, filename); +av_free(filename_w); +return ret; +} #endif #endif /* AVUTIL_WCHAR_FILENAME_H */ -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v11 3/6] compat/w32dlfcn.h: Remove MAX_PATH limit and replace LoadLibraryExA with LoadLibraryExW
--- compat/w32dlfcn.h | 78 ++- 1 file changed, 64 insertions(+), 14 deletions(-) diff --git a/compat/w32dlfcn.h b/compat/w32dlfcn.h index 52a94efa..2284ac7a 100644 --- a/compat/w32dlfcn.h +++ b/compat/w32dlfcn.h @@ -25,6 +25,30 @@ #if (_WIN32_WINNT < 0x0602) || HAVE_WINRT #include "libavutil/wchar_filename.h" #endif + +static inline wchar_t *get_module_filename(HMODULE module) +{ +wchar_t *path = NULL, *new_path = NULL; +DWORD path_size = 0, path_len = 0; + +do { +path_size = path_size ? 2 * path_size : MAX_PATH; +new_path = av_realloc_array(path, path_size, sizeof *path); +if (!new_path) { +av_free(path); +return NULL; +} +path = new_path; +path_len = GetModuleFileNameW(module, path, path_size); +} while (path_len && path_size <= 32768 && path_size <= path_len); + +if (!path_len) { +av_free(path); +return NULL; +} +return path; +} + /** * Safe function used to open dynamic libs. This attempts to improve program security * by removing the current directory from the dll search path. Only dll's found in the @@ -34,29 +58,53 @@ */ static inline HMODULE win32_dlopen(const char *name) { +wchar_t *name_w = NULL; +if (utf8towchar(name, &name_w)) +name_w = NULL; #if _WIN32_WINNT < 0x0602 // Need to check if KB2533623 is available if (!GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "SetDefaultDllDirectories")) { HMODULE module = NULL; -wchar_t *path = NULL, *name_w = NULL; -DWORD pathlen; -if (utf8towchar(name, &name_w)) +wchar_t *path = NULL, *new_path = NULL; +DWORD pathlen, pathsize, namelen; +if (!name_w) goto exit; -path = (wchar_t *)av_calloc(MAX_PATH, sizeof(wchar_t)); +namelen = wcslen(name_w); // Try local directory first -pathlen = GetModuleFileNameW(NULL, path, MAX_PATH); -pathlen = wcsrchr(path, '\\') - path; -if (pathlen == 0 || pathlen + wcslen(name_w) + 2 > MAX_PATH) +path = get_module_filename(NULL); +if (!path) goto exit; -path[pathlen] = '\\'; +new_path = wcsrchr(path, '\\'); +if (!new_path) +goto exit; +pathlen = new_path - path; +pathsize = pathlen + namelen + 2; +new_path = av_realloc_array(path, pathsize, sizeof *path); +if (!new_path) +goto exit; +path = new_path; wcscpy(path + pathlen + 1, name_w); module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if (module == NULL) { // Next try System32 directory -pathlen = GetSystemDirectoryW(path, MAX_PATH); -if (pathlen == 0 || pathlen + wcslen(name_w) + 2 > MAX_PATH) +pathlen = GetSystemDirectoryW(path, pathsize); +if (!pathlen) goto exit; -path[pathlen] = '\\'; +// Buffer is not enough in two cases: +// 1. system directory + \ + module name +// 2. system directory even without module name. +if (pathlen + namelen + 2 > pathsize) { +pathsize = pathlen + namelen + 2; +new_path = av_realloc_array(path, pathsize, sizeof *path); +if (!new_path) +goto exit; +path = new_path; +// Query again to handle case #2. +pathlen = GetSystemDirectoryW(path, pathsize); +if (!pathlen) +goto exit; +} +path[pathlen] = L'\\'; wcscpy(path + pathlen + 1, name_w); module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); } @@ -73,15 +121,17 @@ exit: # define LOAD_LIBRARY_SEARCH_SYSTEM320x0800 #endif #if HAVE_WINRT -wchar_t *name_w = NULL; int ret; -if (utf8towchar(name, &name_w)) +if (!name_w) return NULL; ret = LoadPackagedLibrary(name_w, 0); av_free(name_w); return ret; #else -return LoadLibraryExA(name, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32); +/* filename may be be in CP_ACP */ +if (!name_w) +return LoadLibraryExA(name, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32); +return LoadLibraryExW(name_w, NULL, LOAD_LIBRARY_SEARCH_APPLICATION_DIR | LOAD_LIBRARY_SEARCH_SYSTEM32); #endif } #define dlopen(name, flags) win32_dlopen(name) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v11 5/6] fftools: Enable long path support on Windows (fixes #8885)
Newer versions of Windows (Windows 10 1607 and newer) can support path names longer than MAX_PATH (260 characters). To take advantage of that, an application needs to opt in, by including a small manifest as a resource. Application must be prepared to handle filenames greater than MAX_PATH. Additionally, the path length limitation is only lifted for file APIs that pass paths as wchar_t. Therefore, the preceding patches have refactored a few remaining cases where: 1. filename length was restricted to MAX_PATH 2. files were opened using ANSI functions. On older versions of Windows, the newly added manifest has no effect. --- fftools/Makefile | 5 + fftools/fftools.manifest | 10 ++ fftools/manifest.rc | 3 +++ 3 files changed, 18 insertions(+) create mode 100644 fftools/fftools.manifest create mode 100644 fftools/manifest.rc diff --git a/fftools/Makefile b/fftools/Makefile index 81ad6c4f..105ae5cc 100644 --- a/fftools/Makefile +++ b/fftools/Makefile @@ -15,6 +15,11 @@ OBJS-ffmpeg += \ fftools/ffmpeg_mux.o\ fftools/ffmpeg_opt.o\ +# Windows resource files +OBJS-ffmpeg-$(HAVE_GNU_WINDRES) += fftools/manifest.o +OBJS-ffplay-$(HAVE_GNU_WINDRES) += fftools/manifest.o +OBJS-ffprobe-$(HAVE_GNU_WINDRES) += fftools/manifest.o + define DOFFTOOL OBJS-$(1) += fftools/cmdutils.o fftools/opt_common.o fftools/$(1).o $(OBJS-$(1)-yes) $(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) diff --git a/fftools/fftools.manifest b/fftools/fftools.manifest new file mode 100644 index ..30b7d8fe --- /dev/null +++ b/fftools/fftools.manifest @@ -0,0 +1,10 @@ + + + + + +http://schemas.microsoft.com/SMI/2016/WindowsSettings";> + true + + + diff --git a/fftools/manifest.rc b/fftools/manifest.rc new file mode 100644 index ..e436fa73 --- /dev/null +++ b/fftools/manifest.rc @@ -0,0 +1,3 @@ +#include + +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "fftools.manifest" -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH v11 6/6] fftools: Set active code page to UTF-8 on Windows
Starting with Windows 1903, applications can set active code page to UTF-8 in the application manifest. It improves path name compatibility with dependencies that use char* pathnames internally, but whose code page has already been changed to UTF-8 with a manifest (e.g. AviSynth). On older versions of Windows, changes in the manifest have no effect. --- fftools/fftools.manifest | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fftools/fftools.manifest b/fftools/fftools.manifest index 30b7d8fe..d1ac1e4e 100644 --- a/fftools/fftools.manifest +++ b/fftools/fftools.manifest @@ -3,8 +3,10 @@ -http://schemas.microsoft.com/SMI/2016/WindowsSettings";> +http://schemas.microsoft.com/SMI/2016/WindowsSettings"; + xmlns:ws2019="http://schemas.microsoft.com/SMI/2019/WindowsSettings";> true + UTF-8 -- 2.32.0 ___ 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".
Re: [FFmpeg-devel] [PATCH v9 1/6] libavutil/wchar_filename.h: Add whcartoutf8, wchartoansi and utf8toansi
> However while reviewing this, I noticed a preexisting issue regarding the > av_fopen_utf8 function. This patchset extends the use of that function > into fftools, which isn't great given the issue... Reverted back to fopen(). > The other question is whether it's tolerable to use more non-installed > headers (like libavutil/wchar_filename.h) in fftools. (I'd like to have > this point confirmed with Anton before landing the patchset.) Currently the header consist entirely of static inline functions. If it's not OK to use it here, please suggest a better place for these functions. > We don't generally use 'const' like this in ffmpeg; we use 'const' where > it makes a functional difference (i.e. on the type that pointers point > at), but not for plain scalar values (neither parameters nor local > variables). Removed const from everywhere except pointer arguments. > I think this actually would be more correct to use CP_ACP, not > CP_THREAD_ACP. Changed to CP_ACP. New version of the patch: https://ffmpeg.org/pipermail/ffmpeg-devel/2022-April/295569.html. ___ 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".
Re: [FFmpeg-devel] [PATCH v9 2/6] libavformat/avisynth.c: Remove MAX_PATH limit
> This looks ok to me, but as mentioned in the other patch, I think CP_ACP > actually would be more correct than the current CP_THREAD_ACP utf8toansi was changed to use CP_ACP in https://ffmpeg.org/pipermail/ffmpeg-devel/2022-April/295569.html, so avisynth.c now uses CP_ACP as well. ___ 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".
Re: [FFmpeg-devel] [PATCH v9 4/6] fftools/cmdutils.c: Remove MAX_PATH limit and replace fopen with av_fopen_utf8
> > +#include "compat/w32dlfcn.h" > This adds a dependency on nonpublic headers - which I think can be > tolerated as it's only a build-time issue, and fftools are currently built > as part of the rest of the ffmpeg build anyway. Currently the header consist entirely of static inline functions and macros. If it's not OK to use it here, please suggest a better place for get_module_filename(). > > const char *base[3] = { getenv("FFMPEG_DATADIR"), > > getenv("HOME"), > > Hmm, I guess neither of these are commonly set on Windows - otherwise this > would suddenly change to interpret generic environment variables as UTF8. > > ... > > As mentioned elsewhere, I realized that av_fopen_utf8 is problematic, but > that's an orthogonal issue, and the issue is already preexisting, and it's > used for a fairly marginal feature here, so I guess that can be tolerated > too (and if the root cause is fixed, this gets taken care of at the same > time too). Reverted back to fopen(). ___ 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".
Re: [FFmpeg-devel] [PATCH v9 5/6] fftools: Enable long path support on Windows (fixes #8885)
> Does that sound like the correct explanation of the situation? Yes, thanks. I altered the suggested message a bit. New version of the patch: https://ffmpeg.org/pipermail/ffmpeg-devel/2022-April/295571.html. ___ 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".
Re: [FFmpeg-devel] [PATCH v9 6/6] fftools: Use UTF-8 on Windows
> This needs a similar commit message as what I suggested for the previous > commit, explaining what it does, when, why, and clarifying that this is a > noop for older versions. Done: https://ffmpeg.org/pipermail/ffmpeg-devel/2022-April/295572.html. > In particular, it'd be interesting to know why we actually need this; we > normally should be doing all the conversions between wchar_t and utf8 > everywhere anyway, so the exact codepage used shouldn't really matter > much? I presume the main noticable benefit is that it improves the path > name compatibility with avisynth which is stuck on using CP_ACP pathnames? Yes, it is primarily due to AviSynth. From https://github.com/staxrip/staxrip/wiki/AviSynth-Unicode-support-on-Windows-10-1903: > All AviSynth apps used by StaxRip have a UTF-8 manifest to enable full > Unicode support for AviSynth on Windows 10 1903 or higher: > ... > ffmpeg.exe (Patman Mod) > ... > On Windows 10 1903 or higher all these apps expect AviSynth scripts to be > UTF-8 encoded, ANSI encoded scripts don't work. ___ 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".
[FFmpeg-devel] [PATCH] lavf/tls_mbedtls: add support for mbedtls version 3
- certs.h is gone. Only contains test data, and was not used at all. - config.h is renamed. Was seemingly not used, so can be removed. - MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE is gone, instead MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE will be thrown. - mbedtls_pk_parse_keyfile now needs to be passed a properly seeded RNG. Hence, move the call to after RNG seeding. Signed-off-by: Timo Rothenpieler --- libavformat/tls_mbedtls.c | 34 ++ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/libavformat/tls_mbedtls.c b/libavformat/tls_mbedtls.c index 5754d0d018..8503523b6d 100644 --- a/libavformat/tls_mbedtls.c +++ b/libavformat/tls_mbedtls.c @@ -19,8 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include -#include +#include #include #include #include @@ -130,9 +129,15 @@ static void handle_pk_parse_error(URLContext *h, int ret) static void handle_handshake_error(URLContext *h, int ret) { switch (ret) { +#if MBEDTLS_VERSION_MAJOR < 3 case MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE: av_log(h, AV_LOG_ERROR, "None of the common ciphersuites is usable. Was the local certificate correctly set?\n"); break; +#else +case MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE: +av_log(h, AV_LOG_ERROR, "TLS handshake failed.\n"); +break; +#endif case MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE: av_log(h, AV_LOG_ERROR, "A fatal alert message was received from the peer, has the peer a correct certificate?\n"); break; @@ -195,16 +200,6 @@ static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **op } } -// load key file -if (shr->key_file) { -if ((ret = mbedtls_pk_parse_keyfile(&tls_ctx->priv_key, -shr->key_file, -tls_ctx->priv_key_pw)) != 0) { -handle_pk_parse_error(h, ret); -goto fail; -} -} - // seed the random number generator if ((ret = mbedtls_ctr_drbg_seed(&tls_ctx->ctr_drbg_context, mbedtls_entropy_func, @@ -214,6 +209,21 @@ static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **op goto fail; } +// load key file +if (shr->key_file) { +if ((ret = mbedtls_pk_parse_keyfile(&tls_ctx->priv_key, +shr->key_file, +tls_ctx->priv_key_pw +#if MBEDTLS_VERSION_MAJOR >= 3 +, mbedtls_ctr_drbg_random, +&tls_ctx->ctr_drbg_context +#endif +)) != 0) { +handle_pk_parse_error(h, ret); +goto fail; +} +} + if ((ret = mbedtls_ssl_config_defaults(&tls_ctx->ssl_config, shr->listen ? MBEDTLS_SSL_IS_SERVER : MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM, -- 2.25.1 ___ 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".
[FFmpeg-devel] [PATCH 01/32] fate/matroska: Use REMUX and TRANSCODE where appropriate
Signed-off-by: Andreas Rheinhardt --- tests/fate/matroska.mak | 70 ++--- 1 file changed, 23 insertions(+), 47 deletions(-) diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak index 3073b0a061..c9d88975ca 100644 --- a/tests/fate/matroska.mak +++ b/tests/fate/matroska.mak @@ -74,26 +74,19 @@ fate-matroska-zero-length-block: CMD = transcode matroska $(TARGET_SAMPLES)/mkv/ # It also tests writing PCM audio in both endiannesses and putting # Cues with the same timestamp in the same CuePoint as well as # omitting CRC-32 elements when writing Matroska. -FATE_MATROSKA-$(call ALLYES, FILE_PROTOCOL WAV_DEMUXER PCM_S24LE_DECODER\ - PCM_S24BE_ENCODER MATROSKA_MUXER \ - MATROSKA_DEMUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ +FATE_MATROSKA-$(call TRANSCODE, PCM_S24BE PCM_S24LE, MATROSKA, WAV_DEMUXER) \ += fate-matroska-move-cues-to-front fate-matroska-move-cues-to-front: CMD = transcode wav $(TARGET_SAMPLES)/audio-reference/divertimenti_2ch_96kHz_s24.wav matroska "-map 0 -map 0 -c:a:0 pcm_s24be -c:a:1 copy -cluster_time_limit 5 -cues_to_front yes -metadata_header_padding 7840 -write_crc32 0" "-map 0 -c copy -t 0.1" # This tests DOVI (reading from MP4 and Matroska and writing to Matroska) # as well as writing the Cues at the front (by shifting data) if # the initially reserved amount of space turns out to be insufficient. -FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MOV_DEMUXER \ -HEVC_DECODER MATROSKA_MUXER \ -MATROSKA_DEMUXER FRAMECRC_MUXER \ -PIPE_PROTOCOL) \ +FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MOV_DEMUXER HEVC_DECODER) \ += fate-matroska-dovi-write-config7 fate-matroska-dovi-write-config7: CMD = transcode mov $(TARGET_SAMPLES)/mov/dovi-p7.mp4 matroska "-map 0 -c copy -cues_to_front yes -reserve_index_space 40 -metadata_header_padding 64339" "-map 0 -c copy" "" "-show_entries stream_side_data_list" -FATE_MATROSKA_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL PIPE_PROTOCOL \ -MOV_DEMUXER MATROSKA_DEMUXER \ -HEVC_DECODER AAC_DECODER \ -MATROSKA_MUXER FRAMECRC_MUXER) \ +FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, MOV_DEMUXER \ + HEVC_DECODER AAC_DECODER) \ += fate-matroska-dovi-write-config8 fate-matroska-dovi-write-config8: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov matroska "-c copy" "-map 0 -c copy -t 0.4" "" "-show_entries stream_side_data_list -select_streams v" @@ -105,10 +98,9 @@ fate-matroska-dovi-write-config8: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv8 # yet there is an audio packet with the overall lowest pts. output_ts_offset # makes the pts of the audio packet, but not the leading video packet negative # so that we run into the above issue.) -FATE_MATROSKA-$(call ALLYES, FILE_PROTOCOL MPEGTS_DEMUXER MPEGVIDEO_PARSER \ - MPEG2VIDEO_DECODER EXTRACT_EXTRADATA_BSF \ - MP3FLOAT_DECODER MATROSKA_MUXER\ - MATROSKA_DEMUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ +FATE_MATROSKA-$(call REMUX, MATROSKA, MPEGTS_DEMUXER MPEGVIDEO_PARSER \ +MPEG2VIDEO_DECODER EXTRACT_EXTRADATA_BSF \ +MP3FLOAT_DECODER) \ += fate-matroska-avoid-negative-ts fate-matroska-avoid-negative-ts: CMD = transcode mpegts $(TARGET_SAMPLES)/mpeg2/t.mpg matroska "-c copy -ss 1.09 -output_ts_offset -60ms" "-c copy -t 0.4" @@ -116,22 +108,17 @@ fate-matroska-avoid-negative-ts: CMD = transcode mpegts $(TARGET_SAMPLES)/mpeg2/ # It furthermore tests writing the Cues at the front if the cues_to_front # option is set and more than enough space has been reserved in advance. # (Btw: The keyframe flags of the input video stream seem wrong.) -FATE_MATROSKA-$(call ALLYES, FILE_PROTOCOL AVI_DEMUXER MATROSKA_MUXER \ - MATROSKA_DEMUXER FRAMECRC_MUXER \ - PIPE_PROTOCOL) += fate-matroska-ms-mode +FATE_MATROSKA-$(call REMUX, MATROSKA, AVI_DEMUXER) += fate-matroska-ms-mode fate-matroska-ms-mode: CMD = transcode avi $(TARGET_SAMPLES)/vp5/potter512-400-partial.avi matroska "-map 0 -c copy -cues_to_front yes -reserve_index_space 5000" "-map 0 -c copy -t 1" # This tests Matroska's QT-compatibility mode. -FATE_MATROSKA-$(call ALLYES, FILE_PROTOCOL MOV_DEMUXER MATROSKA_MUXER \ - MATROSKA_DEMUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ -+= fate-matroska-qt-mode +FATE_MATROSKA-$
[FFmpeg-devel] [PATCH 02/32] fate/id3v2: Use REMUX where appropriate
Signed-off-by: Andreas Rheinhardt --- tests/fate/id3v2.mak | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tests/fate/id3v2.mak b/tests/fate/id3v2.mak index fea7545270..fc574e4487 100644 --- a/tests/fate/id3v2.mak +++ b/tests/fate/id3v2.mak @@ -1,14 +1,10 @@ FATE_ID3V2_FFPROBE-$(CONFIG_MP3_DEMUXER) += fate-id3v2-priv fate-id3v2-priv: CMD = probetags $(TARGET_SAMPLES)/id3v2/id3v2_priv.mp3 -FATE_ID3V2_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MP3_DEMUXER MP3_MUXER \ - FRAMECRC_MUXER PIPE_PROTOCOL) \ -+= fate-id3v2-priv-remux +FATE_ID3V2_FFMPEG_FFPROBE-$(call REMUX, MP3) += fate-id3v2-priv-remux fate-id3v2-priv-remux: CMD = transcode mp3 $(TARGET_SAMPLES)/id3v2/id3v2_priv.mp3 mp3 "-c copy" "-c copy -t 0.1" "" "-show_entries format_tags" -FATE_ID3V2_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL WAV_DEMUXER AIFF_MUXER \ - AIFF_DEMUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ -+= fate-id3v2-chapters +FATE_ID3V2_FFMPEG_FFPROBE-$(call REMUX, AIFF, WAV_DEMUXER) += fate-id3v2-chapters fate-id3v2-chapters: CMD = transcode wav $(TARGET_SAMPLES)/wav/200828-005.wav aiff "-c copy -metadata:c:0 description=foo -metadata:c:0 date=2021 -metadata:c copyright=none -metadata:c:1 genre=nonsense -write_id3v2 1" "-c copy -t 0.05" "" "-show_entries format_tags:chapters" FATE_SAMPLES_FFPROBE+= $(FATE_ID3V2_FFPROBE-yes) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 03/32] fate/amr[nw]b: Use REMUX where appropriate
Signed-off-by: Andreas Rheinhardt --- tests/fate/amrnb.mak | 4 +--- tests/fate/amrwb.mak | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/tests/fate/amrnb.mak b/tests/fate/amrnb.mak index f4f74f14d9..6f5ed413e3 100644 --- a/tests/fate/amrnb.mak +++ b/tests/fate/amrnb.mak @@ -30,9 +30,7 @@ FATE_AMRNB += fate-amrnb-12k2 fate-amrnb-12k2: CMD = pcm -i $(TARGET_SAMPLES)/amrnb/12.2k.amr fate-amrnb-12k2: REF = $(SAMPLES)/amrnb/12.2k.pcm -FATE_AMRNB_REMUX-$(call ALLYES, FILE_PROTOCOL AMR_DEMUXER AMR_PARSER\ -AMR_MUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ -+= fate-amrnb-remux +FATE_AMRNB_REMUX-$(call REMUX, AMR, AMR_PARSER) += fate-amrnb-remux fate-amrnb-remux: CMD = transcode amr $(TARGET_SAMPLES)/amrnb/10.2k.amr amr "-c copy" "-c copy -t 1" $(FATE_AMRNB): CMP = stddev diff --git a/tests/fate/amrwb.mak b/tests/fate/amrwb.mak index 8450c28bba..7cd17d266e 100644 --- a/tests/fate/amrwb.mak +++ b/tests/fate/amrwb.mak @@ -41,9 +41,7 @@ FATE_AMRWB += fate-amrwb-23k85-2 fate-amrwb-23k85-2: CMD = pcm -i $(TARGET_SAMPLES)/amrwb/deus-23k85.awb fate-amrwb-23k85-2: REF = $(SAMPLES)/amrwb/deus-23k85.pcm -FATE_AMRWB_REMUX-$(call ALLYES, FILE_PROTOCOL MOV_DEMUXER AMR_PARSER AMR_MUXER \ -AMR_DEMUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ -+= fate-amrwb-remux +FATE_AMRWB_REMUX-$(call REMUX, AMR, MOV_DEMUXER AMR_PARSER) += fate-amrwb-remux fate-amrwb-remux: CMD = transcode mov $(TARGET_SAMPLES)/amrwb/seed-23k85.awb amr "-c copy" "-c copy -t 1" $(FATE_AMRWB): CMP = stddev -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 04/32] fate/caf: Use REMUX where appropriate
And drop the FATE_CAF_REMUX variables which only existed to avoid having to repeat the common FILE_PROTOCOL PIPE_PROTOCOL FRAMECRC_MUXER stuff. Signed-off-by: Andreas Rheinhardt --- tests/fate/caf.mak | 21 +++-- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/tests/fate/caf.mak b/tests/fate/caf.mak index ae2c543358..f153bfeb79 100644 --- a/tests/fate/caf.mak +++ b/tests/fate/caf.mak @@ -1,33 +1,26 @@ FATE_CAF_FFMPEG-$(call ALLYES, CAF_DEMUXER CRC_MUXER) += fate-caf-demux fate-caf-demux: CMD = crc -i $(TARGET_SAMPLES)/caf/caf-pcm16.caf -c copy -FATE_CAF_REMUX_FFPROBE-$(CONFIG_MOV_DEMUXER) += fate-caf-alac-remux +FATE_CAF_FFMPEG_FFPROBE-$(call REMUX, CAF, MOV_DEMUXER) += fate-caf-alac-remux fate-caf-alac-remux: CMD = transcode m4a $(TARGET_SAMPLES)/lossless-audio/inside.m4a caf "-map 0:a -c copy -metadata major_brand= " "-c copy -t 0.2" "" "-show_entries format_tags" -FATE_CAF_REMUX-$(CONFIG_AMR_DEMUXER) += fate-caf-amr_nb-remux +FATE_CAF_FFMPEG-$(call REMUX, CAF, AMR_DEMUXER) += fate-caf-amr_nb-remux fate-caf-amr_nb-remux: CMD = transcode amr $(TARGET_SAMPLES)/amrnb/4.75k.amr caf "-c copy" "-c copy -t 0.2" -FATE_CAF_REMUX-$(CONFIG_MOV_DEMUXER) += fate-caf-qdm2-remux +FATE_CAF_FFMPEG-$(call REMUX, CAF, MOV_DEMUXER) += fate-caf-qdm2-remux fate-caf-qdm2-remux: CMD = transcode mov $(TARGET_SAMPLES)/qt-surge-suite/surge-2-16-B-QDM2.mov caf "-c copy" "-c copy -t 0.2" -FATE_CAF_REMUX-$(CONFIG_WAV_DEMUXER) += fate-caf-pcm_s24le-remux +FATE_CAF_FFMPEG-$(call REMUX, CAF, WAV_DEMUXER) += fate-caf-pcm_s24le-remux fate-caf-pcm_s24le-remux: CMD = transcode wav $(TARGET_SAMPLES)/audio-reference/divertimenti_2ch_96kHz_s24.wav caf "-c copy" "-c copy -t 0.05" -FATE_CAF_REMUX-$(call ALLYES, WAV_DEMUXER PCM_S24LE_DECODER \ - PCM_S24BE_ENCODER)\ +FATE_CAF_FFMPEG-$(call REMUX, CAF, WAV_DEMUXER PCM_S24LE_DECODER \ + PCM_S24BE_ENCODER)\ += fate-caf-pcm_s24-remux fate-caf-pcm_s24-remux: CMD = transcode wav $(TARGET_SAMPLES)/audio-reference/divertimenti_2ch_96kHz_s24.wav caf "-c pcm_s24be" "-c copy -t 0.05" -FATE_CAF_REMUX-$(CONFIG_MOV_DEMUXER) += fate-caf-mace6-remux +FATE_CAF_FFMPEG-$(call REMUX, CAF, MOV_DEMUXER) += fate-caf-mace6-remux fate-caf-mace6-remux: CMD = transcode mov $(TARGET_SAMPLES)/qtrle/Animation-16Greys.mov caf "-map 0:a -c copy" "-c copy -t 0.003" -FATE_CAF_FFMPEG-$(call ALLYES, FILE_PROTOCOL CAF_MUXER CAF_DEMUXER \ - FRAMECRC_MUXER PIPE_PROTOCOL) \ - += $(FATE_CAF_REMUX-yes) -FATE_CAF_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL CAF_MUXER\ - CAF_DEMUXER FRAMECRC_MUXER \ - PIPE_PROTOCOL) \ - += $(FATE_CAF_REMUX_FFPROBE-yes) FATE_SAMPLES_FFMPEG += $(FATE_CAF_FFMPEG-yes) FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_CAF_FFMPEG_FFPROBE-yes) fate-caf: $(FATE_CAF_FFMPEG-yes) $(FATE_CAF_FFMPEG_FFPROBE-yes) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 05/32] fate/mov: Use REMUX and TRANSCODE where appropriate
Also fix the requirements of fate-mov-channel-description: It needs the pcm_s16le decoder and the mov demuxer. Signed-off-by: Andreas Rheinhardt --- tests/fate/mov.mak | 18 +- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index 675c34a07d..a33f3694af 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -126,36 +126,28 @@ fate-mov-mp4-with-mov-in24-ver: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_entr fate-mov-mp4-extended-atom: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact -select_streams v $(TARGET_SAMPLES)/mov/extended_atom_size_probe -FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL OGG_DEMUXER\ - VORBIS_DECODER MP4_MUXER MOV_DEMUXER \ - FRAMECRC_MUXER PIPE_PROTOCOL)\ +FATE_MOV_FFMPEG_FFPROBE-$(call REMUX, MP4 MOV, OGG_DEMUXER VORBIS_DECODER) \ += fate-mov-mp4-chapters fate-mov-mp4-chapters: CMD = transcode ogg $(TARGET_SAMPLES)/vorbis/vorbis_chapter_extension_demo.ogg mp4 "-c copy" "-c copy -t 0.1" "" "-show_chapters" -FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL MOV_DEMUXER MJPEG_DECODER \ - SCALE_FILTER PNG_ENCODER PNG_DECODER \ - MP4_MUXER FRAMECRC_MUXER PIPE_PROTOCOL) \ +FATE_MOV_FFMPEG_FFPROBE-$(call TRANSCODE, PNG, MP4 MOV, MJPEG_DECODER SCALE_FILTER) \ += fate-mov-cover-image fate-mov-cover-image: CMD = transcode mov $(TARGET_SAMPLES)/cover_art/Owner-iTunes_9.0.3.15.m4a mp4 "-map 0 -map 0:v -c:a copy -c:v:0 copy -filter:v:1 scale -c:v:1 png" "-map 0 -t 0.1 -c copy" "" "-show_entries stream_disposition=attached_pic:stream=index,codec_name" -FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL SRT_DEMUXER MOV_DEMUXER SUBRIP_DECODER TTML_ENCODER TTML_MUXER MOV_MUXER) += fate-mov-mp4-ttml-stpp fate-mov-mp4-ttml-dfxp +FATE_MOV_FFMPEG_FFPROBE-$(call TRANSCODE, TTML SUBRIP, MP4 MOV, SRT_DEMUXER TTML_MUXER) += fate-mov-mp4-ttml-stpp fate-mov-mp4-ttml-dfxp fate-mov-mp4-ttml-stpp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt mp4 "-map 0:s -c:s ttml -time_base:s 1:1000" "-map 0 -c copy" "" "-of json -show_entries packet:stream=index,codec_type,codec_tag_string,codec_tag,codec_name,time_base,start_time,duration_ts,duration,nb_frames,nb_read_packets:stream_tags" fate-mov-mp4-ttml-dfxp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt mp4 "-map 0:s -c:s ttml -time_base:s 1:1000 -tag:s dfxp -strict unofficial" "-map 0 -c copy" "" "-of json -show_entries packet:stream=index,codec_type,codec_tag_string,codec_tag,codec_name,time_base,start_time,duration_ts,duration,nb_frames,nb_read_packets:stream_tags" # Resulting remux should have: # 1. first audio stream with AV_DISPOSITION_HEARING_IMPAIRED # 2. second audio stream with AV_DISPOSITION_VISUAL_IMPAIRED | DESCRIPTIONS -FATE_MOV_FFMPEG_FFPROBE-$(call ALLYES, FILE_PROTOCOL PIPE_PROTOCOL \ - MPEGTS_DEMUXER MOV_DEMUXER AC3_DECODER \ - MP4_MUXER FRAMECRC_MUXER ) \ +FATE_MOV_FFMPEG_FFPROBE-$(call REMUX, MP4 MOV, MPEGTS_DEMUXER AC3_DECODER) \ += fate-mov-mp4-disposition-mpegts-remux fate-mov-mp4-disposition-mpegts-remux: CMD = transcode mpegts $(TARGET_SAMPLES)/mpegts/pmtchange.ts mp4 "-map 0:1 -map 0:2 -c copy -disposition:a:0 +hearing_impaired" "-map 0 -c copy" "" "-of json -show_entries stream_disposition:stream=index" FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MOV_FFMPEG_FFPROBE-yes) -FATE_MOV_FFMPEG-$(call ALLYES, FILE_PROTOCOL PIPE_PROTOCOL \ - WAV_DEMUXER PAN_FILTER PCM_S16LE_ENCODER \ - MOV_MUXER FRAMECRC_MUXER ) \ +FATE_MOV_FFMPEG-$(call TRANSCODE, PCM_S16LE, MOV, WAV_DEMUXER PAN_FILTER) \ += fate-mov-channel-description fate-mov-channel-description: tests/data/asynth-44100-1.wav tests/data/filtergraphs/mov-channel-description fate-mov-channel-description: CMD = transcode wav $(TARGET_PATH)/tests/data/asynth-44100-1.wav mov "-filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/mov-channel-description -map [outFL] -map [outFR] -map [outFC] -map [outLFE] -map [outBL] -map [outBR] -map [outDL] -map [outDR] -c:a pcm_s16le" "-map 0 -c copy -frames:a 0" -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 06/32] fate/lavf-image: Fix requirements of tests
In particular, add the missing dependency on the scale filter (and therefore on libswscale). Signed-off-by: Andreas Rheinhardt --- tests/fate/lavf-image.mak | 70 +-- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/tests/fate/lavf-image.mak b/tests/fate/lavf-image.mak index dbbd374301..df5079e118 100644 --- a/tests/fate/lavf-image.mak +++ b/tests/fate/lavf-image.mak @@ -1,36 +1,40 @@ -FATE_LAVF_IMAGES-$(call ENCDEC, BMP,IMAGE2) += bmp -FATE_LAVF_IMAGES-$(call ENCDEC, DPX,IMAGE2) += dpx -FATE_LAVF_IMAGES-$(call ENCDEC, DPX,IMAGE2) += gbrp10le.dpx -FATE_LAVF_IMAGES-$(call ENCDEC, DPX,IMAGE2) += gbrp12le.dpx -FATE_LAVF_IMAGES-$(call ENCDEC, DPX,IMAGE2) += rgb48le.dpx -FATE_LAVF_IMAGES-$(call ENCDEC, DPX,IMAGE2) += rgb48le_10.dpx -FATE_LAVF_IMAGES-$(call ENCDEC, DPX,IMAGE2) += rgba64le.dpx -FATE_LAVF_IMAGES-$(call ENCDEC, MJPEG, IMAGE2) += jpg -FATE_LAVF_IMAGES-$(call ENCDEC, PAM,IMAGE2) += pam -FATE_LAVF_IMAGES-$(call ENCDEC, PAM,IMAGE2) += rgba.pam -FATE_LAVF_IMAGES-$(call ENCDEC, PAM,IMAGE2) += gray.pam -FATE_LAVF_IMAGES-$(call ENCDEC, PAM,IMAGE2) += gray16be.pam -FATE_LAVF_IMAGES-$(call ENCDEC, PAM,IMAGE2) += rgb48be.pam -FATE_LAVF_IMAGES-$(call ENCDEC, PAM,IMAGE2) += monob.pam -FATE_LAVF_IMAGES-$(call ENCDEC, PCX,IMAGE2) += pcx -FATE_LAVF_IMAGES-$(call ENCDEC, PGM,IMAGE2) += pgm -FATE_LAVF_IMAGES-$(call ENCDEC, PNG,IMAGE2) += png -FATE_LAVF_IMAGES-$(call ENCDEC, PNG,IMAGE2) += gray16be.png -FATE_LAVF_IMAGES-$(call ENCDEC, PNG,IMAGE2) += rgb48be.png -FATE_LAVF_IMAGES-$(call ENCDEC, PPM,IMAGE2) += ppm -FATE_LAVF_IMAGES-$(call ENCDEC, SGI,IMAGE2) += sgi -FATE_LAVF_IMAGES-$(call ENCDEC, SUNRAST,IMAGE2) += sun -FATE_LAVF_IMAGES-$(call ENCDEC, TARGA, IMAGE2) += tga -FATE_LAVF_IMAGES-$(call ENCDEC, TIFF, IMAGE2) += tiff -FATE_LAVF_IMAGES-$(call ENCDEC, XBM,IMAGE2) += xbm -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += xwd -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += rgba.xwd -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += rgb565be.xwd -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += rgb555be.xwd -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += rgb8.xwd -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += rgb4_byte.xwd -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += gray.xwd -FATE_LAVF_IMAGES-$(call ENCDEC, XWD,IMAGE2) += monow.xwd +LAVF_IMAGES = $(call ALLYES, FILE_PROTOCOL IMAGE2_DEMUXER PGMYUV_DECODER \ + SCALE_FILTER $(1)_ENCODER IMAGE2_MUXER \ + $(1)_DECODER RAWVIDEO_ENCODER CRC_MUXER) + +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, BMP) += bmp +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, DPX) += dpx +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, DPX) += gbrp10le.dpx +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, DPX) += gbrp12le.dpx +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, DPX) += rgb48le.dpx +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, DPX) += rgb48le_10.dpx +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, DPX) += rgba64le.dpx +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, MJPEG) += jpg +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PAM) += pam +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PAM) += rgba.pam +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PAM) += gray.pam +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PAM) += gray16be.pam +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PAM) += rgb48be.pam +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PAM) += monob.pam +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PCX) += pcx +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PGM) += pgm +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PNG) += png +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PNG) += gray16be.png +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PNG) += rgb48be.png +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, PPM) += ppm +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, SGI) += sgi +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, SUNRAST) += sun +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, TARGA) += tga +FATE_LAVF_IMAGES-$(call LAVF_IMAGES,TIFF) += tiff +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, XBM) += xbm +FATE_LAVF_IMAGES-$(call LAVF_IMAGES, XWD) += xwd +FATE_LAVF_IMAGES-$(c
[FFmpeg-devel] [PATCH 08/32] fate/image: Fix requirements of tests
Also reduce the amount of repetitions a bit. Signed-off-by: Andreas Rheinhardt --- tests/fate/image.mak | 129 +++ 1 file changed, 57 insertions(+), 72 deletions(-) diff --git a/tests/fate/image.mak b/tests/fate/image.mak index 63076f8ded..c8e0d321ef 100644 --- a/tests/fate/image.mak +++ b/tests/fate/image.mak @@ -1,13 +1,12 @@ +ADD_SCALE_IF = $(if $(findstring -vf scale,$(1)), SCALE_FILTER) + FATE_ALIASPIX += fate-aliaspix-bgr fate-aliaspix-bgr: CMD = transcode alias_pix $(TARGET_SAMPLES)/aliaspix/first.pix image2 "-c alias_pix" "-map 0 -map 0 -pix_fmt:0 bgr24 -c:v:1 copy" FATE_ALIASPIX += fate-aliaspix-gray fate-aliaspix-gray: CMD = transcode alias_pix $(TARGET_SAMPLES)/aliaspix/firstgray.pix image2 "-c alias_pix" "-map 0 -map 0 -pix_fmt:0 gray -c:v:1 copy" -FATE_ALIASPIX-$(call ALLYES, FILE_PROTOCOL IMAGE2_ALIAS_PIX_DEMUXER \ - ALIAS_PIX_DECODER ALIAS_PIX_ENCODER\ - IMAGE2_MUXER RAWVIDEO_ENCODER \ - FRAMECRC_MUXER PIPE_PROTOCOL) += $(FATE_ALIASPIX) +FATE_ALIASPIX-$(call TRANSCODE, ALIAS_PIX, IMAGE2 IMAGE2_ALIAS_PIX) += $(FATE_ALIASPIX) FATE_IMAGE += $(FATE_ALIASPIX-yes) fate-aliaspix: $(FATE_ALIASPIX-yes) @@ -17,29 +16,29 @@ fate-brenderpix-24: CMD = framecrc -c:v brender_pix -i $(TARGET_SAMPLES)/brender FATE_BRENDERPIX += fate-brenderpix-565 fate-brenderpix-565: CMD = framecrc -c:v brender_pix -i $(TARGET_SAMPLES)/brenderpix/maximafront.pix -FATE_BRENDERPIX += fate-brenderpix-defpal +FATE_BRENDERPIX-$(call DEMDEC, IMAGE2, BRENDER_PIX, SCALE_FILTER) += fate-brenderpix-defpal fate-brenderpix-defpal: CMD = framecrc -c:v brender_pix -i $(TARGET_SAMPLES)/brenderpix/rivrock1.pix -pix_fmt rgb24 -vf scale -FATE_BRENDERPIX += fate-brenderpix-intpal +FATE_BRENDERPIX-$(call DEMDEC, IMAGE2, BRENDER_PIX, SCALE_FILTER) += fate-brenderpix-intpal fate-brenderpix-intpal: CMD = framecrc -c:v brender_pix -i $(TARGET_SAMPLES)/brenderpix/testtex.pix -pix_fmt rgb24 -vf scale FATE_BRENDERPIX += fate-brenderpix-y400a fate-brenderpix-y400a: CMD = framecrc -c:v brender_pix -i $(TARGET_SAMPLES)/brenderpix/gears.pix FATE_BRENDERPIX-$(call DEMDEC, IMAGE2, BRENDER_PIX) += $(FATE_BRENDERPIX) -FATE_IMAGE += $(FATE_BRENDERPIX-yes) +FATE_IMAGE_FRAMECRC += $(FATE_BRENDERPIX-yes) fate-brenderpix: $(FATE_BRENDERPIX-yes) -FATE_IMAGE-$(call PARSERDEMDEC, BMP, IMAGE2PIPE, BMP) += fate-bmpparser +FATE_IMAGE_FRAMECRC-$(call PARSERDEMDEC, BMP, IMAGE2PIPE, BMP, SCALE_FILTER) += fate-bmpparser fate-bmpparser: CMD = framecrc -f image2pipe -i $(TARGET_SAMPLES)/bmp/numbers.bmp -pix_fmt rgb24 -vf scale define FATE_IMGSUITE_DDS -FATE_DDS += fate-dds-$(1) -fate-dds-$(1): CMD = framecrc -i $(TARGET_SAMPLES)/dds/fate_$(1).dds $(DDS_OPTS_$(1)) -vf scale +FATE_DDS-$(call DEMDEC, IMAGE2, DDS, $(call ADD_SCALE_IF, $(DDS_OPTS_$(1 += fate-dds-$(1) +fate-dds-$(1): CMD = framecrc -i $(TARGET_SAMPLES)/dds/fate_$(1).dds $(DDS_OPTS_$(1)) endef -DDS_OPTS_pal = -sws_flags +accurate_rnd+bitexact -pix_fmt rgba -DDS_OPTS_pal-ati = -sws_flags +accurate_rnd+bitexact -pix_fmt rgba +DDS_OPTS_pal:= -sws_flags +accurate_rnd+bitexact -pix_fmt rgba -vf scale +DDS_OPTS_pal-ati:= -sws_flags +accurate_rnd+bitexact -pix_fmt rgba -vf scale DDS_FMT = alpha8 \ argb \ argb-aexp\ @@ -90,14 +89,15 @@ DDS_FMT = alpha8 \ yuyv $(foreach FMT,$(DDS_FMT),$(eval $(call FATE_IMGSUITE_DDS,$(FMT -FATE_DDS-$(call DEMDEC, IMAGE2, DDS) += $(FATE_DDS) -FATE_IMAGE += $(FATE_DDS-yes) +FATE_IMAGE_FRAMECRC += $(FATE_DDS-yes) fate-dds: $(FATE_DDS-yes) -FATE_IMAGE-$(call DEMDEC, IMAGE2, DPX) += fate-dpx +FATE_IMAGE_FRAMECRC-$(call DEMDEC, IMAGE2, DPX) += fate-dpx fate-dpx: CMD = framecrc -i $(TARGET_SAMPLES)/dpx/lighthouse_rgb48.dpx -FATE_SAMPLES_AVCONV-$(call PARSERDEMDEC, DPX, IMAGE2PIPE, DPX) += fate-dpxparser +# The following sample has frames whose dimensions differ on a per-frame basis +# and therefore needs the scale filter. +FATE_IMAGE_FRAMECRC-$(call PARSERDEMDEC, DPX, IMAGE2PIPE, DPX, SCALE_FILTER) += fate-dpxparser fate-dpxparser: CMD = framecrc -f image2pipe -i $(TARGET_SAMPLES)/dpx/lena_4x_concat.dpx -sws_flags +accurate_rnd+bitexact FATE_IMAGE_PROBE-$(call DEMDEC, IMAGE2, DPX) += fate-dpx-probe @@ -226,7 +226,7 @@ fate-exr-rgb-scanline-pxr24-float-half-l1: CMD = framecrc -i $(TARGET_SAMPLES)/e FATE_EXR += fate-exr-rgb-scanline-pxr24-float-half-l2 fate-exr-rgb-scanline-pxr24-float-half-l2: CMD = framecrc -layer "VRaySamplerInfo" -i $(TARGET_SAMPLES)/exr/rgb_scanline_pxr24_float_half.exr -pix_fmt gbrapf32le -FATE_EXR += fate-exr-rgb-scanline-pxr24-half-uint32-13x9 +FATE_EXR-$(call DEMDEC, IMAGE2, EXR, SCALE
[FFmpeg-devel] [PATCH 09/32] tests/Makefile: Add FRAMECRC function
Intended for scenarios that currently use DEMDEC, but are missing the requirements that are implicitly needed by framecrc. Signed-off-by: Andreas Rheinhardt --- tests/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/Makefile b/tests/Makefile index e175631258..1c9e3594c0 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -88,6 +88,9 @@ REMUX = $(call ALLYES, $(firstword $(1))_MUXER $(lastword $(1))_DEMUXER \ DEMDEC = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER) $(3) FILE_PROTOCOL) ENCMUX = $(call ALLYES, $(1:%=%_ENCODER) $(2)_MUXER $(3)) +FRAMECRC = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER) $(3) \ + PCM_S16LE_ENCODER RAWVIDEO_ENCODER FRAMECRC_MUXER \ + PIPE_PROTOCOL FILE_PROTOCOL) DEMMUX = $(call ALLYES, $(1)_DEMUXER $(2)_MUXER $(3) FILE_PROTOCOL) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 10/32] fate/screen: Fix test requirements
In particular, add the missing dependency on the scale filter (and therefore on libswscale). Signed-off-by: Andreas Rheinhardt --- tests/fate/screen.mak | 55 --- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/tests/fate/screen.mak b/tests/fate/screen.mak index aa9832688d..bd6d228544 100644 --- a/tests/fate/screen.mak +++ b/tests/fate/screen.mak @@ -1,11 +1,11 @@ # FIXME dropped frames in this test because of coarse timebase -FATE_SCREEN-$(call DEMDEC, AVI, CSCD) += fate-cscd +FATE_SCREEN-$(call FRAMECRC, AVI, CSCD, SCALE_FILTER) += fate-cscd fate-cscd: CMD = framecrc -i $(TARGET_SAMPLES)/CSCD/sample_video.avi -an -pix_fmt rgb24 -vf scale -FATE_SCREEN-$(call DEMDEC, AVI, DXTORY) += fate-dxtory +FATE_SCREEN-$(call FRAMECRC, AVI, DXTORY) += fate-dxtory fate-dxtory: CMD = framecrc -i $(TARGET_SAMPLES)/dxtory/dxtory_mic.avi -an -FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, FIC) += fate-fic-avi +FATE_SCREEN-$(call FRAMECRC, AVI, FIC) += fate-fic-avi fate-fic-avi: CMD = framecrc -i $(TARGET_SAMPLES)/fic/fic-partial-2MB.avi -an FATE_FMVC += fate-fmvc-type1 @@ -14,8 +14,9 @@ fate-fmvc-type1: CMD = framecrc -i $(TARGET_SAMPLES)/fmvc/6-methyl-5-hepten-2-on FATE_FMVC += fate-fmvc-type2 fate-fmvc-type2: CMD = framecrc -i $(TARGET_SAMPLES)/fmvc/fmvcVirtualDub_small.avi -FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, FMVC) += $(FATE_FMVC) -fate-fmvc: $(FATE_FMVC) +FATE_FMVC-$(call FRAMECRC, AVI, FMVC) += $(FATE_FMVC) +FATE_SCREEN += $(FATE_FMVC-yes) +fate-fmvc: $(FATE_FMVC-yes) FATE_FRAPS += fate-fraps-v0 fate-fraps-v0: CMD = framecrc -i $(TARGET_SAMPLES)/fraps/Griffin_Ragdoll01-partial.avi @@ -26,7 +27,7 @@ fate-fraps-v1: CMD = framecrc -i $(TARGET_SAMPLES)/fraps/sample-v1.avi -an FATE_FRAPS += fate-fraps-v2 fate-fraps-v2: CMD = framecrc -i $(TARGET_SAMPLES)/fraps/test3-nosound-partial.avi -FATE_FRAPS += fate-fraps-v3 +FATE_FRAPS-$(call FRAMECRC, AVI, FRAPS, SCALE_FILTER) += fate-fraps-v3 fate-fraps-v3: CMD = framecrc -i $(TARGET_SAMPLES)/fraps/psclient-partial.avi -pix_fmt rgb24 -vf scale FATE_FRAPS += fate-fraps-v4 @@ -35,8 +36,9 @@ fate-fraps-v4: CMD = framecrc -i $(TARGET_SAMPLES)/fraps/WoW_2006-11-03_14-58-17 FATE_FRAPS += fate-fraps-v5 fate-fraps-v5: CMD = framecrc -i $(TARGET_SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi -FATE_SCREEN-$(call DEMDEC, AVI, FRAPS) += $(FATE_FRAPS) -fate-fraps: $(FATE_FRAPS) +FATE_FRAPS-$(call FRAMECRC, AVI, FRAPS) += $(FATE_FRAPS) +FATE_SCREEN += $(FATE_FRAPS-yes) +fate-fraps: $(FATE_FRAPS-yes) FATE_G2M += fate-g2m2 fate-g2m2: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/g2m/g2m2.asf -an @@ -47,13 +49,13 @@ fate-g2m3: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/g2m/g2m3.asf -frames FATE_G2M += fate-g2m4 fate-g2m4: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/g2m/g2m4.asf -FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, G2M) += $(FATE_G2M) +FATE_SCREEN-$(call FRAMECRC, ASF, G2M) += $(FATE_G2M) fate-g2m: $(FATE_G2M) FATE_RSCC += fate-iscc fate-iscc: CMD = framecrc -i $(TARGET_SAMPLES)/rscc/pip.avi -an -FATE_RSCC += fate-rscc-8bit +FATE_RSCC-$(call FRAMECRC, AVI, RSCC, SCALE_FILTER) += fate-rscc-8bit fate-rscc-8bit: CMD = framecrc -i $(TARGET_SAMPLES)/rscc/8bpp.avi -an -pix_fmt rgb24 -vf scale FATE_RSCC += fate-rscc-16bit @@ -65,8 +67,9 @@ fate-rscc-24bit: CMD = framecrc -i $(TARGET_SAMPLES)/rscc/24bpp.avi -an FATE_RSCC += fate-rscc-32bit fate-rscc-32bit: CMD = framecrc -i $(TARGET_SAMPLES)/rscc/32bpp.avi -an -FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, RSCC) += $(FATE_RSCC) -fate-rscc: $(FATE_RSCC) +FATE_RSCC-$(call FRAMECRC, AVI, RSCC) += $(FATE_RSCC) +FATE_SCREEN += $(FATE_RSCC-yes) +fate-rscc: $(FATE_RSCC-yes) FATE_SCREENPRESSO += fate-screenpresso-16bit fate-screenpresso-16bit: CMD = framecrc -i $(TARGET_SAMPLES)/spv1/16bpp_555.avi -an @@ -77,10 +80,11 @@ fate-screenpresso-24bit: CMD = framecrc -i $(TARGET_SAMPLES)/spv1/bunny.avi -an FATE_SCREENPRESSO += fate-screenpresso-32bit fate-screenpresso-32bit: CMD = framecrc -i $(TARGET_SAMPLES)/spv1/32bpp.avi -an -FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, SCREENPRESSO) += $(FATE_SCREENPRESSO) -fate-screenpresso: $(FATE_SCREENPRESSO) +FATE_SCREENPRESSO-$(call FRAMECRC, AVI, SCREENPRESSO) += $(FATE_SCREENPRESSO) +FATE_SCREEN += $(FATE_SCREENPRESSO-yes) +fate-screenpresso: $(FATE_SCREENPRESSO-yes) -FATE_SAMPLES_AVCONV-$(call DEMDEC, ASF, TDSC) += fate-tdsc +FATE_SCREEN-$(call FRAMECRC, ASF, TDSC) += fate-tdsc fate-tdsc: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/tdsc/tdsc.asf -an -pix_fmt bgr24 FATE_TSCC += fate-tscc-15bit @@ -89,16 +93,17 @@ fate-tscc-15bit: CMD = framecrc -i $(TARGET_SAMPLES)/tscc/oneminute.avi -t 15 -p FATE_TSCC += fate-tscc-32bit fate-tscc-32bit: CMD = framecrc -i $(TARGET_SAMPLES)/tscc/2004-12-17-uebung9-partial.avi -pix_fmt rgb24 -an -vf scale -FATE_SCREEN-$(call DEMDEC, AVI, TSCC) += $(FATE_TSCC) -fate-tscc: $(FATE_TSCC) +FATE_TSCC-$(call FRAMECRC, AVI, TSCC, SCALE_FILTER
[FFmpeg-devel] [PATCH 12/32] fate/dfa: Fix test requirements
Signed-off-by: Andreas Rheinhardt --- tests/fate/dfa.mak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fate/dfa.mak b/tests/fate/dfa.mak index 5b725e3a99..682a9d10b2 100644 --- a/tests/fate/dfa.mak +++ b/tests/fate/dfa.mak @@ -31,7 +31,7 @@ fate-dfa10: CMD = framecrc -i $(TARGET_SAMPLES)/chronomaster-dfa/0009.dfa -pix_f FATE_DFA += fate-dfa11 fate-dfa11: CMD = framecrc -i $(TARGET_SAMPLES)/chronomaster-dfa/0010.dfa -pix_fmt rgb24 -vf scale -FATE_DFA-$(call DEMDEC, DFA, DFA) += $(FATE_DFA) +FATE_DFA-$(call FRAMECRC, DFA, DFA, SCALE_FILTER) += $(FATE_DFA) FATE_SAMPLES_AVCONV += $(FATE_DFA-yes) fate-dfa: $(FATE_DFA-yes) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 11/32] fate/video: Fix test requirements
In particular, add the missing dependency on the scale and aresample filters (and therefore on libswscale resp. libswresample). Signed-off-by: Andreas Rheinhardt --- tests/fate/video.mak | 216 ++- 1 file changed, 110 insertions(+), 106 deletions(-) diff --git a/tests/fate/video.mak b/tests/fate/video.mak index dff1f13e88..40cdd9e3b6 100644 --- a/tests/fate/video.mak +++ b/tests/fate/video.mak @@ -4,55 +4,56 @@ fate-4xm-1: CMD = framecrc -i $(TARGET_SAMPLES)/4xm/version1.4xm -pix_fmt rgb24 FATE_4XM += fate-4xm-2 fate-4xm-2: CMD = framecrc -i $(TARGET_SAMPLES)/4xm/version2.4xm -pix_fmt rgb24 -an -vf scale -FATE_VIDEO-$(call DEMDEC, FOURXM, FOURXM) += $(FATE_4XM) -fate-4xm: $(FATE_4XM) +FATE_4XM-$(call FRAMECRC, FOURXM, FOURXM, SCALE_FILTER) += $(FATE_4XM) +FATE_VIDEO += $(FATE_4XM-yes) +fate-4xm: $(FATE_4XM-yes) -FATE_VIDEO-$(call DEMDEC, AVI, ZERO12V) += fate-012v +FATE_VIDEO-$(call FRAMECRC, AVI, ZERO12V, SCALE_FILTER) += fate-012v fate-012v: CMD = framecrc -i $(TARGET_SAMPLES)/012v/sample.avi -pix_fmt yuv422p16le -vf scale -FATE_VIDEO-$(call DEMDEC, AVI, AASC) += fate-aasc +FATE_VIDEO-$(call FRAMECRC, AVI, AASC, SCALE_FILTER) += fate-aasc fate-aasc: CMD = framecrc -i $(TARGET_SAMPLES)/aasc/AASC-1.5MB.AVI -pix_fmt rgb24 -vf scale -FATE_VIDEO-$(call DEMDEC, MOV, AIC) += fate-aic +FATE_VIDEO-$(call FRAMECRC, MOV, AIC) += fate-aic fate-aic: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/aic/small_apple_intermediate_codec.mov -an -frames:v 15 -FATE_VIDEO-$(call DEMDEC, MOV, AIC) += fate-aic-oddsize +FATE_VIDEO-$(call FRAMECRC, MOV, AIC) += fate-aic-oddsize fate-aic-oddsize: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/aic/aic_odd_dimensions.mov -FATE_VIDEO-$(call DEMDEC, MM, MMVIDEO) += fate-alg-mm +FATE_VIDEO-$(call FRAMECRC, MM, MMVIDEO, SCALE_FILTER) += fate-alg-mm fate-alg-mm: CMD = framecrc -i $(TARGET_SAMPLES)/alg-mm/ibmlogo.mm -an -pix_fmt rgb24 -vf scale -FATE_VIDEO-$(call DEMDEC, AVI, AMV) += fate-amv +FATE_VIDEO-$(call FRAMECRC, AVI, AMV) += fate-amv fate-amv: CMD = framecrc -idct simple -i $(TARGET_SAMPLES)/amv/MTV_high_res_320x240_sample_Penguin_Joke_MTV_from_WMV.amv -t 10 -an -FATE_VIDEO-$(call DEMDEC, TTY, ANSI) += fate-ansi +FATE_VIDEO-$(call FRAMECRC, TTY, ANSI, SCALE_FILTER) += fate-ansi fate-ansi: CMD = framecrc -chars_per_frame 44100 -i $(TARGET_SAMPLES)/ansi/TRE-IOM5.ANS -pix_fmt rgb24 -vf scale -FATE_VIDEO-$(call DEMDEC, TTY, ANSI) += fate-ansi256 +FATE_VIDEO-$(call FRAMECRC, TTY, ANSI, SCALE_FILTER) += fate-ansi256 fate-ansi256: CMD = framecrc -chars_per_frame 44100 -i $(TARGET_SAMPLES)/ansi/ansi256.ans -pix_fmt rgb24 -vf scale -FATE_VIDEO-$(call DEMDEC, RPL, ESCAPE124) += fate-armovie-escape124 +FATE_VIDEO-$(call FRAMECRC, RPL, ESCAPE124, ARESAMPLE_FILTER SCALE_FILTER) += fate-armovie-escape124 fate-armovie-escape124: CMD = framecrc -i $(TARGET_SAMPLES)/rpl/ESCAPE.RPL -pix_fmt rgb24 -vf scale -af aresample -FATE_VIDEO-$(call DEMDEC, RPL, ESCAPE130) += fate-armovie-escape130 +FATE_VIDEO-$(call FRAMECRC, RPL, ESCAPE130) += fate-armovie-escape130 fate-armovie-escape130: CMD = framecrc -i $(TARGET_SAMPLES)/rpl/landing.rpl -an -FATE_VIDEO-$(call DEMDEC, AVI, AURA) += fate-auravision-v1 +FATE_VIDEO-$(call FRAMECRC, AVI, AURA) += fate-auravision-v1 fate-auravision-v1: CMD = framecrc -i $(TARGET_SAMPLES)/auravision/SOUVIDEO.AVI -an -FATE_VIDEO-$(call DEMDEC, AVI, AURA2) += fate-auravision-v2 +FATE_VIDEO-$(call FRAMECRC, AVI, AURA2) += fate-auravision-v2 fate-auravision-v2: CMD = framecrc -i $(TARGET_SAMPLES)/auravision/salma-hayek-in-ugly-betty-partial-avi -an -FATE_VIDEO-$(call DEMDEC, AVI, AVRN) += fate-avid-interlaced +FATE_VIDEO-$(call FRAMECRC, AVI, AVRN) += fate-avid-interlaced fate-avid-interlaced: CMD = framecrc -i $(TARGET_SAMPLES)/avid/avid_ntsc_interlaced.avi -FATE_VIDEO-$(call DEMDEC, MOV, MJPEG) += fate-avid-meridian +FATE_VIDEO-$(call FRAMECRC, MOV, MJPEG) += fate-avid-meridian fate-avid-meridian: CMD = framecrc -i $(TARGET_SAMPLES)/avid/avidmeridianntsc.mov -FATE_VIDEO-$(call DEMDEC, BETHSOFTVID, BETHSOFTVID) += fate-bethsoft-vid +FATE_VIDEO-$(call FRAMECRC, BETHSOFTVID, BETHSOFTVID, ARESAMPLE_FILTER SCALE_FILTER) += fate-bethsoft-vid fate-bethsoft-vid: CMD = framecrc -i $(TARGET_SAMPLES)/bethsoft-vid/ANIM0001.VID -t 5 -pix_fmt rgb24 -vf scale -af aresample -FATE_VIDEO-$(call DEMDEC, BFI, BFI) += fate-bfi +FATE_VIDEO-$(call FRAMECRC, BFI, BFI, ARESAMPLE_FILTER SCALE_FILTER) += fate-bfi fate-bfi: CMD = framecrc -i $(TARGET_SAMPLES)/bfi/2287.bfi -pix_fmt rgb24 -vf scale -af aresample FATE_BINK_VIDEO += fate-bink-video-b @@ -64,69 +65,69 @@ fate-bink-video-f: CMD = framecrc -i $(TARGET_SAMPLES)/bink/hol2br.bik FATE_BINK_VIDEO += fate-bink-video-i fate-bink-video-i: CMD = framecrc -i $(TARGET_SAMPLES)/bink/RazOnBull.bik -an -FATE_VIDEO-$(call DEMDEC, BINK, BINK) += $(FATE_BINK_VIDEO) +FATE_VIDEO-$(call FRAMECRC, BINK, BINK) += $(FATE_BINK_VIDEO) -FATE_
[FFmpeg-devel] [PATCH 13/32] fate/cdxl: Fix test requirements
Signed-off-by: Andreas Rheinhardt --- tests/fate/cdxl.mak | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/fate/cdxl.mak b/tests/fate/cdxl.mak index 2a4e2dd510..db3045c27c 100644 --- a/tests/fate/cdxl.mak +++ b/tests/fate/cdxl.mak @@ -7,13 +7,13 @@ fate-cdxl-ham6: CMD = framecrc -i $(TARGET_SAMPLES)/cdxl/cat.cdxl -an -frames:v FATE_CDXL += fate-cdxl-ham8 fate-cdxl-ham8: CMD = framecrc -i $(TARGET_SAMPLES)/cdxl/mirage.cdxl -an -frames:v 1 -FATE_CDXL += fate-cdxl-pal8 +FATE_CDXL-$(call FRAMECRC, CDXL, CDXL, SCALE_FILTER) += fate-cdxl-pal8 fate-cdxl-pal8: CMD = framecrc -i $(TARGET_SAMPLES)/cdxl/maku.cdxl -pix_fmt rgb24 -frames:v 11 -vf scale -FATE_CDXL += fate-cdxl-pal8-small +FATE_CDXL-$(call FRAMECRC, CDXL, CDXL, SCALE_FILTER) += fate-cdxl-pal8-small fate-cdxl-pal8-small: CMD = framecrc -i $(TARGET_SAMPLES)/cdxl/fruit.cdxl -an -pix_fmt rgb24 -frames:v 46 -vf scale -FATE_CDXL-$(call DEMDEC, CDXL, CDXL) += $(FATE_CDXL) +FATE_CDXL-$(call FRAMECRC, CDXL, CDXL) += $(FATE_CDXL) FATE_SAMPLES_AVCONV += $(FATE_CDXL-yes) fate-cdxl: $(FATE_CDXL-yes) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 16/32] fate/fits: Fix test requirements
Signed-off-by: Andreas Rheinhardt --- tests/fate/fits.mak | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/fate/fits.mak b/tests/fate/fits.mak index f16fc83266..ea471d6654 100644 --- a/tests/fate/fits.mak +++ b/tests/fate/fits.mak @@ -18,19 +18,19 @@ tests/data/lena%.fits: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data -i $(TARGET_SAMPLES)/png1/lena-$(map.$(@)).png \ -y $(TARGET_PATH)/$(@) 2>/dev/null -FATE_FITS_DEC-$(call DEMDEC, FITS, FITS) += fate-fitsdec-ext_data_min_max +FATE_FITS_DEC-$(call FRAMECRC, FITS, FITS, SCALE_FILTER) += fate-fitsdec-ext_data_min_max fate-fitsdec-ext_data_min_max: CMD = framecrc -i $(TARGET_SAMPLES)/fits/x0cj010ct_d0h.fit -pix_fmt gray16le -vf scale -FATE_FITS_DEC-$(call DEMDEC, FITS, FITS) += fate-fitsdec-blank_bitpix32 +FATE_FITS_DEC-$(call FRAMECRC, FITS, FITS, SCALE_FILTER) += fate-fitsdec-blank_bitpix32 fate-fitsdec-blank_bitpix32: CMD = framecrc -blank_value 65535 -i $(TARGET_SAMPLES)/fits/file008.fits -pix_fmt gray16le -vf scale -FATE_FITS_DEC-$(call DEMDEC, FITS, FITS) += fate-fitsdec-bitpix-32 +FATE_FITS_DEC-$(call FRAMECRC, FITS, FITS, SCALE_FILTER) += fate-fitsdec-bitpix-32 fate-fitsdec-bitpix-32: CMD = framecrc -i $(TARGET_SAMPLES)/fits/tst0005.fits -pix_fmt gray16le -vf scale -FATE_FITS_DEC-$(call DEMDEC, FITS, FITS) += fate-fitsdec-bitpix-64 +FATE_FITS_DEC-$(call FRAMECRC, FITS, FITS, SCALE_FILTER) += fate-fitsdec-bitpix-64 fate-fitsdec-bitpix-64: CMD = framecrc -i $(TARGET_SAMPLES)/fits/tst0006.fits -pix_fmt gray16le -vf scale -FATE_FITS_DEC-$(call ALLYES, GIF_DEMUXER FITS_DEMUXER GIF_DECODER FITS_DECODER FITS_ENCODER FITS_MUXER) += fate-fitsdec-multi +FATE_FITS_DEC-$(call TRANSCODE, FITS, FITS, GIF_DEMUXER GIF_DECODER SCALE_FILTER) += fate-fitsdec-multi fate-fitsdec-multi: tests/data/fits-multi.fits fate-fitsdec-multi: CMD = framecrc -i $(TARGET_PATH)/tests/data/fits-multi.fits -pix_fmt gbrap @@ -40,7 +40,7 @@ fate-fitsdec%: CMD = framecrc -i $(SRC) -pix_fmt $(PIXFMT) FATE_FITS_DEC_PIXFMT = gray gbrp gbrp16 gbrap16le $(FATE_FITS_DEC_PIXFMT:%=fate-fitsdec-%): fate-fitsdec-%: tests/data/lena-%.fits -FATE_FITS_DEC-$(call ALLYES, FITS_DEMUXER IMAGE2_DEMUXER FITS_DECODER PNG_DECODER FITS_ENCODER FITS_MUXER) += $(FATE_FITS_DEC_PIXFMT:%=fate-fitsdec-%) +FATE_FITS_DEC-$(call TRANSCODE, FITS, FITS, IMAGE2_DEMUXER PNG_DECODER SCALE_FILTER) += $(FATE_FITS_DEC_PIXFMT:%=fate-fitsdec-%) FATE_FITS += $(FATE_FITS_DEC-yes) fate-fitsdec: $(FATE_FITS_DEC-yes) @@ -51,7 +51,7 @@ fate-fitsenc%: CMD = framecrc -auto_conversion_filters -i $(SRC) -c:v fits -pix_ FATE_FITS_ENC_PIXFMT = gray gray16be gbrp gbrap gbrp16be gbrap16be $(FATE_FITS_ENC_PIXFMT:%=fate-fitsenc-%): tests/data/fits-multi.fits -FATE_FITS_ENC-$(call ALLYES, GIF_DEMUXER GIF_DECODER FITS_ENCODER FITS_MUXER) += $(FATE_FITS_ENC_PIXFMT:%=fate-fitsenc-%) +FATE_FITS_ENC-$(call TRANSCODE, FITS, FITS, GIF_DEMUXER GIF_DECODER SCALE_FILTER) += $(FATE_FITS_ENC_PIXFMT:%=fate-fitsenc-%) FATE_FITS += $(FATE_FITS_ENC-yes) fate-fitsenc: $(FATE_FITS_ENC-yes) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 14/32] fate/bmp: Fix test requirements
Signed-off-by: Andreas Rheinhardt --- tests/fate/bmp.mak | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/fate/bmp.mak b/tests/fate/bmp.mak index de27f19b15..050d3d1357 100644 --- a/tests/fate/bmp.mak +++ b/tests/fate/bmp.mak @@ -22,7 +22,7 @@ fate-bmp-15bit-mask: CMD = framecrc -i $(TARGET_SAMPLES)/bmp/test16bf555.bmp -pi FATE_BMP += fate-bmp-16bit-mask fate-bmp-16bit-mask: CMD = framecrc -i $(TARGET_SAMPLES)/bmp/test16bf565.bmp -pix_fmt rgb565le -vf scale -FATE_BMP += fate-bmp-24bit +FATE_BMP-$(call FRAMECRC, IMAGE2, BMP) += fate-bmp-24bit fate-bmp-24bit: CMD = framecrc -i $(TARGET_SAMPLES)/bmp/test24.bmp FATE_BMP += fate-bmp-32bit @@ -37,7 +37,7 @@ fate-bmp-rle4: CMD = framecrc -i $(TARGET_SAMPLES)/bmp/testcompress4.bmp -pix_fm FATE_BMP += fate-bmp-rle8 fate-bmp-rle8: CMD = framecrc -i $(TARGET_SAMPLES)/bmp/testcompress8.bmp -pix_fmt rgb24 -vf scale -FATE_BMP-$(call DEMDEC, IMAGE2, BMP) += $(FATE_BMP) +FATE_BMP-$(call FRAMECRC, IMAGE2, BMP, SCALE_FILTER) += $(FATE_BMP) FATE_SAMPLES_AVCONV += $(FATE_BMP-yes) fate-bmp: $(FATE_BMP-yes) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 15/32] fate/utvideo: Fix test requirements
Signed-off-by: Andreas Rheinhardt --- tests/fate/utvideo.mak | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/fate/utvideo.mak b/tests/fate/utvideo.mak index 9329df5386..bf8401c370 100644 --- a/tests/fate/utvideo.mak +++ b/tests/fate/utvideo.mak @@ -64,8 +64,9 @@ fate-utvideo_yuv444_709_gradient: CMD = framecrc -i $(TARGET_SAMPLES)/utvideo/ut FATE_UTVIDEO += fate-utvideo_yuv444_709_int_gradient fate-utvideo_yuv444_709_int_gradient: CMD = framecrc -i $(TARGET_SAMPLES)/utvideo/utvideo_yuv444_709_64x48_int_gradient.avi -FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, UTVIDEO) += $(FATE_UTVIDEO) -fate-utvideo: $(FATE_UTVIDEO) +FATE_UTVIDEO-$(call FRAMECRC, AVI, UTVIDEO) += $(FATE_UTVIDEO) +FATE_SAMPLES_FFMPEG += $(FATE_UTVIDEO-yes) +fate-utvideo: $(FATE_UTVIDEO-yes) fate-utvideoenc%: CMD = framemd5 -f image2 -c:v pgmyuv -i $(TARGET_PATH)/tests/vsynth1/%02d.pgm -c:v utvideo -slices 1 -sws_flags +accurate_rnd+bitexact ${OPTS} -vf scale @@ -116,5 +117,6 @@ fate-utvideoenc_yuv444_none: OPTS = -pix_fmt yuv444p -pred none $(FATE_UTVIDEOENC): $(VREF) -FATE_AVCONV-$(call ENCMUX, UTVIDEO, AVI) += $(FATE_UTVIDEOENC) -fate-utvideoenc: $(FATE_UTVIDEOENC) +FATE_UTVIDEOENC-$(call FILTERDEMDECENCMUX, SCALE, IMAGE2, PGMYUV, UTVIDEO, FRAMEMD5, PIPE_PROTOCOL) += $(FATE_UTVIDEOENC) +FATE_FFMPEG += $(FATE_UTVIDEOENC-yes) +fate-utvideoenc: $(FATE_UTVIDEOENC-yes) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 07/32] tests/Makefile: Make DEMDEC etc. auxiliary functions more flexible
Add a parameter that allows to add additional requirements. Also add FILE_PROTOCOL to all the auxiliary functions that use a demuxer. Also fix the requirements for the fate-mpegts-probe-(latm|program) tests. They have misused DEMDEC. Signed-off-by: Andreas Rheinhardt --- tests/Makefile| 20 +++- tests/fate/mpegts.mak | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 5e4da2c42f..e175631258 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -68,11 +68,13 @@ XYES= $(if $(strip $(1)), \ yes) ENCDEC = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER \ - $(firstword $(2))_MUXER $(lastword $(2))_DEMUXER) + $(firstword $(2))_MUXER $(lastword $(2))_DEMUXER \ + $(3) FILE_PROTOCOL) ENCDEC2 = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER \ $(firstword $(2))_ENCODER $(lastword $(2))_DECODER \ - $(firstword $(3))_MUXER $(lastword $(3))_DEMUXER) + $(firstword $(3))_MUXER $(lastword $(3))_DEMUXER \ + $(4) FILE_PROTOCOL) # RAWVIDEO_ENCODER and PCM_S16LE_ENCODER corresponds to the default codecs # for framecrc. These requirements are not always necessary. @@ -84,16 +86,16 @@ TRANSCODE = $(call ALLYES, $(firstword $(1))_ENCODER $(lastword $(1))_DECODER \ REMUX = $(call ALLYES, $(firstword $(1))_MUXER $(lastword $(1))_DEMUXER \ $(2) FILE_PROTOCOL PIPE_PROTOCOL FRAMECRC_MUXER) -DEMDEC = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER)) -ENCMUX = $(call ALLYES, $(1:%=%_ENCODER) $(2)_MUXER) +DEMDEC = $(call ALLYES, $(1)_DEMUXER $(2:%=%_DECODER) $(3) FILE_PROTOCOL) +ENCMUX = $(call ALLYES, $(1:%=%_ENCODER) $(2)_MUXER $(3)) -DEMMUX = $(call ALLYES, $(1)_DEMUXER $(2)_MUXER) +DEMMUX = $(call ALLYES, $(1)_DEMUXER $(2)_MUXER $(3) FILE_PROTOCOL) -FILTERDEMDEC = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER) -FILTERDEMDECMUX= $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4)_MUXER) -FILTERDEMDECENCMUX = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4)_ENCODER $(5)_MUXER) +FILTERDEMDEC = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4) FILE_PROTOCOL) +FILTERDEMDECMUX= $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4)_MUXER $(5) FILE_PROTOCOL) +FILTERDEMDECENCMUX = $(call ALLYES, $(1:%=%_FILTER) $(2)_DEMUXER $(3)_DECODER $(4)_ENCODER $(5)_MUXER $(6) FILE_PROTOCOL) -PARSERDEMDEC = $(call ALLYES, $(1)_PARSER $(2)_DEMUXER $(3)_DECODER) +PARSERDEMDEC = $(call ALLYES, $(1)_PARSER $(2)_DEMUXER $(3)_DECODER $(4) FILE_PROTOCOL) # Allow overriding CONFIG_LARGE_TESTS via LARGE_TESTS, if set on the # make command line. diff --git a/tests/fate/mpegts.mak b/tests/fate/mpegts.mak index bbcbfc47b2..eaca8ec289 100644 --- a/tests/fate/mpegts.mak +++ b/tests/fate/mpegts.mak @@ -5,12 +5,12 @@ PROBE_CODEC_NAME_COMMAND = \ ffprobe$(PROGSSUF)$(EXESUF) -show_entries stream=codec_name \ -print_format default -bitexact -v 0 -FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS, HEVC, AAC_LATM) += fate-mpegts-probe-latm +FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS, HEVC, LOAS_DEMUXER) += fate-mpegts-probe-latm fate-mpegts-probe-latm: SRC = $(TARGET_SAMPLES)/mpegts/loewe.ts fate-mpegts-probe-latm: CMD = run $(PROBE_CODEC_NAME_COMMAND) -i "$(SRC)" -FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS, HEVC, AAC_LATM) += fate-mpegts-probe-program +FATE_MPEGTS_PROBE-$(call DEMDEC, MPEGTS, HEVC, LOAS_DEMUXER) += fate-mpegts-probe-program fate-mpegts-probe-program: SRC = $(TARGET_SAMPLES)/mpegts/loewe.ts fate-mpegts-probe-program: CMD = run $(PROBE_CODEC_NAME_COMMAND) -select_streams p:769:v:0 -i "$(SRC)" -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 17/32] fate/fits: Use transcode for transcode-like test
Each of the intermediately generated lena-*.fits files is only used for exactly one test; so it could be deleted right after the test. Switching to a transcode test (which is also more natural) achieves this. It also adds checksums of the intermediate files to the ref-file. Signed-off-by: Andreas Rheinhardt --- tests/fate/fits.mak | 19 +-- tests/ref/fate/fitsdec-gbrap16le | 2 ++ tests/ref/fate/fitsdec-gbrp | 2 ++ tests/ref/fate/fitsdec-gbrp16| 2 ++ tests/ref/fate/fitsdec-gray | 2 ++ 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/tests/fate/fits.mak b/tests/fate/fits.mak index ea471d6654..b9e99d97ee 100644 --- a/tests/fate/fits.mak +++ b/tests/fate/fits.mak @@ -6,17 +6,10 @@ tests/data/fits-multi.fits: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data #mapping of fits file formats to png filenames # TODO: Use an actual 64bit input file and fix the gbrp16 test on big-endian -map.tests/data/lena-gray.fits:= gray8 -map.tests/data/lena-gbrp.fits:= rgb24 -map.tests/data/lena-gbrp16.fits := rgb48 -map.tests/data/lena-gbrap16le.fits := rgba64 - -tests/data/lena%.fits: TAG = GEN -tests/data/lena%.fits: NAME = $(map.$(@)) -tests/data/lena%.fits: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data - $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \ --i $(TARGET_SAMPLES)/png1/lena-$(map.$(@)).png \ --y $(TARGET_PATH)/$(@) 2>/dev/null +fits-png-map-gray := gray8 +fits-png-map-gbrp := rgb24 +fits-png-map-gbrp16:= rgb48 +fits-png-map-gbrap16le := rgba64 FATE_FITS_DEC-$(call FRAMECRC, FITS, FITS, SCALE_FILTER) += fate-fitsdec-ext_data_min_max fate-fitsdec-ext_data_min_max: CMD = framecrc -i $(TARGET_SAMPLES)/fits/x0cj010ct_d0h.fit -pix_fmt gray16le -vf scale @@ -35,11 +28,9 @@ fate-fitsdec-multi: tests/data/fits-multi.fits fate-fitsdec-multi: CMD = framecrc -i $(TARGET_PATH)/tests/data/fits-multi.fits -pix_fmt gbrap fate-fitsdec%: PIXFMT = $(word 3, $(subst -, ,$(@))) -fate-fitsdec%: SRC = $(TARGET_PATH)/tests/data/lena-$(PIXFMT).fits -fate-fitsdec%: CMD = framecrc -i $(SRC) -pix_fmt $(PIXFMT) +fate-fitsdec%: CMD = transcode image2 $(TARGET_SAMPLES)/png1/lena-$(fits-png-map-$(PIXFMT)).png fits "-vf scale -pix_fmt $(PIXFMT)" FATE_FITS_DEC_PIXFMT = gray gbrp gbrp16 gbrap16le -$(FATE_FITS_DEC_PIXFMT:%=fate-fitsdec-%): fate-fitsdec-%: tests/data/lena-%.fits FATE_FITS_DEC-$(call TRANSCODE, FITS, FITS, IMAGE2_DEMUXER PNG_DECODER SCALE_FILTER) += $(FATE_FITS_DEC_PIXFMT:%=fate-fitsdec-%) FATE_FITS += $(FATE_FITS_DEC-yes) diff --git a/tests/ref/fate/fitsdec-gbrap16le b/tests/ref/fate/fitsdec-gbrap16le index 78abb5cde7..53ef980b13 100644 --- a/tests/ref/fate/fitsdec-gbrap16le +++ b/tests/ref/fate/fitsdec-gbrap16le @@ -1,3 +1,5 @@ +64526d8da12d1fa07ceea5725647076f *tests/data/fate/fitsdec-gbrap16le.fits +135360 tests/data/fate/fitsdec-gbrap16le.fits #tb 0: 1/1 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/fitsdec-gbrp b/tests/ref/fate/fitsdec-gbrp index 8767b6715f..23249f492b 100644 --- a/tests/ref/fate/fitsdec-gbrp +++ b/tests/ref/fate/fitsdec-gbrp @@ -1,3 +1,5 @@ +38e232e4c1ca57b5866efa01da70359c *tests/data/fate/fitsdec-gbrp.fits +54720 tests/data/fate/fitsdec-gbrp.fits #tb 0: 1/1 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/fitsdec-gbrp16 b/tests/ref/fate/fitsdec-gbrp16 index f6368f2c02..9250690e9b 100644 --- a/tests/ref/fate/fitsdec-gbrp16 +++ b/tests/ref/fate/fitsdec-gbrp16 @@ -1,3 +1,5 @@ +2078208c93ba417d3fe150ba42bf5a30 *tests/data/fate/fitsdec-gbrp16.fits +103680 tests/data/fate/fitsdec-gbrp16.fits #tb 0: 1/1 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/fitsdec-gray b/tests/ref/fate/fitsdec-gray index 488ee71022..b7992bfda3 100644 --- a/tests/ref/fate/fitsdec-gray +++ b/tests/ref/fate/fitsdec-gray @@ -1,3 +1,5 @@ +c02ac3e0a9f2ceeb1e6e66c085a63671 *tests/data/fate/fitsdec-gray.fits +20160 tests/data/fate/fitsdec-gray.fits #tb 0: 1/1 #media_type 0: video #codec_id 0: rawvideo -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 18/32] avformat/fitsenc: Simplify writing header padding
Signed-off-by: Andreas Rheinhardt --- libavformat/fitsenc.c | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/libavformat/fitsenc.c b/libavformat/fitsenc.c index 5cf34ef067..37ee10bb13 100644 --- a/libavformat/fitsenc.c +++ b/libavformat/fitsenc.c @@ -24,6 +24,7 @@ * FITS muxer. */ +#include "avio_internal.h" #include "internal.h" typedef struct FITSContext { @@ -177,11 +178,7 @@ static int write_image_header(AVFormatContext *s) lines_written++; lines_left = ((lines_written + 35) / 36) * 36 - lines_written; -memset(buffer, ' ', 80); -while (lines_left > 0) { -avio_write(s->pb, buffer, sizeof(buffer)); -lines_left--; -} +ffio_fill(s->pb, ' ', sizeof(buffer) * lines_left); return 0; } -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 19/32] fate/speedhq: Fix test requirements
Signed-off-by: Andreas Rheinhardt --- tests/fate/speedhq.mak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fate/speedhq.mak b/tests/fate/speedhq.mak index 32405b710f..199ee160ea 100644 --- a/tests/fate/speedhq.mak +++ b/tests/fate/speedhq.mak @@ -4,5 +4,5 @@ FATE_SPEEDHQ = fate-speedhq-422 \ fate-speedhq-422: CMD = framecrc -flags +bitexact -f rawvideo -c:v speedhq -tag:v SHQ2 -video_size 112x64 -i $(TARGET_SAMPLES)/speedhq/progressive.shq2 -pix_fmt yuv422p fate-speedhq-422-singlefield: CMD = framecrc -flags +bitexact -f rawvideo -c:v speedhq -tag:v SHQ2 -video_size 112x32 -i $(TARGET_SAMPLES)/speedhq/singlefield.shq2 -pix_fmt yuv422p -FATE_SAMPLES_FFMPEG-$(call DEMDEC, RAWVIDEO, SPEEDHQ) += $(FATE_SPEEDHQ) +FATE_SAMPLES_FFMPEG-$(call FRAMECRC, RAWVIDEO, SPEEDHQ) += $(FATE_SPEEDHQ) fate-speedhq: $(FATE_SPEEDHQ) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 20/32] tests/fate-run: Remove intermediate lavf_container_fate files
They are not used lateron. Signed-off-by: Andreas Rheinhardt --- tests/fate-run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 8c27210ac0..a96ff049b0 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -340,6 +340,7 @@ lavf_container_fate() t="${test#lavf-fate-}" outdir="tests/data/lavf-fate" file=${outdir}/lavf.$t +cleanfiles="$cleanfiles $file" input="${target_samples}/$1" do_avconv $file -auto_conversion_filters $DEC_OPTS $2 -i "$input" "$ENC_OPTS -metadata title=lavftest" -vcodec copy -acodec copy do_avconv_crc $file -auto_conversion_filters $DEC_OPTS -i $target_path/$file $3 -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 21/32] fate/seek: Avoid list of source files
The output files of the lavf tests are highly regular, allowing to use rules for the src files instead of a list. Signed-off-by: Andreas Rheinhardt --- The list of vsynth and acodec src file names could be removed if the tests were to be renamed/modified to allow to infer said filename from the name of the test. tests/fate/seek.mak | 157 1 file changed, 72 insertions(+), 85 deletions(-) diff --git a/tests/fate/seek.mak b/tests/fate/seek.mak index 5efec32702..b4e9246cc3 100644 --- a/tests/fate/seek.mak +++ b/tests/fate/seek.mak @@ -160,91 +160,78 @@ fate-seek-vsynth_lena-yuv: SRC = fate/vsynth_lena-yuv.avi FATE_SAMPLES_SEEK += $(FATE_SEEK_VSYNTH_LENA-yes:%=fate-seek-vsynth_lena-%) -# files from fate-lavf - -FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16BE, AIFF)+= aiff -FATE_SEEK_LAVF-$(call ENCDEC, PCM_ALAW, PCM_ALAW)+= al -FATE_SEEK_LAVF-$(call ENCDEC2, MSMPEG4V3, MP2, ASF) += asf -FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16BE, AU) += au -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, MP2, AVI) += avi -FATE_SEEK_LAVF-$(call ENCDEC, BMP, IMAGE2) += bmp -FATE_SEEK_LAVF-$(call ENCDEC2, DVVIDEO,PCM_S16LE, AVI) += dv -FATE_SEEK_LAVF-$(call ENCDEC, FLV, FLV) += flv -FATE_SEEK_LAVF-$(call ENCDEC, GIF, IMAGE2) += gif -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, GXF) += gxf -FATE_SEEK_LAVF-$(call ENCDEC, MJPEG, IMAGE2) += jpg -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, MP2, MATROSKA)+= mkv -FATE_SEEK_LAVF-$(call ENCDEC, ADPCM_YAMAHA, MMF) += mmf -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, PCM_ALAW, MOV) += mov -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG1VIDEO, MP2, MPEG1SYSTEM MPEGPS) += mpg -FATE_SEEK_LAVF-$(call ENCDEC, PCM_MULAW, PCM_MULAW) += ul -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += mxf -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF_D10 MXF) += mxf_d10 -FATE_SEEK_LAVF-$(call ENCDEC2, DVVIDEO,PCM_S16LE, MXF) += mxf_dv25 -FATE_SEEK_LAVF-$(call ENCDEC2, DVVIDEO,PCM_S16LE, MXF) += mxf_dvcpro50 -FATE_SEEK_LAVF-$(call ENCDEC2, DNXHD, PCM_S16LE, MXF_OPATOM MXF) += mxf_opatom -FATE_SEEK_LAVF-$(call ENCDEC2, DNXHD, PCM_S16LE, MXF_OPATOM MXF) += mxf_opatom_audio -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG4, MP2, NUT) += nut -FATE_SEEK_LAVF-$(call ENCDEC, FLAC, OGG) += ogg -FATE_SEEK_LAVF-$(call ENCDEC, PBM, IMAGE2PIPE) += pbmpipe -FATE_SEEK_LAVF-$(call ENCDEC, PCX, IMAGE2) += pcx -FATE_SEEK_LAVF-$(call ENCDEC, PGM, IMAGE2) += pgm -FATE_SEEK_LAVF-$(call ENCDEC, PGM, IMAGE2PIPE) += pgmpipe -FATE_SEEK_LAVF-$(call ENCDEC, PPM, IMAGE2) += ppm -FATE_SEEK_LAVF-$(call ENCDEC, PPM, IMAGE2PIPE) += ppmpipe -FATE_SEEK_LAVF-$(call ENCMUX, RV10 AC3_FIXED,RM) += rm -FATE_SEEK_LAVF-$(call ENCDEC, SGI, IMAGE2) += sgi -FATE_SEEK_LAVF-$(call ENCDEC, FLV, SWF) += swf -FATE_SEEK_LAVF-$(call ENCDEC, TARGA, IMAGE2) += tga -FATE_SEEK_LAVF-$(call ENCDEC, TIFF, IMAGE2) += tiff -FATE_SEEK_LAVF-$(call ENCDEC2, MPEG2VIDEO, MP2, MPEGTS) += ts -FATE_SEEK_LAVF-$(call ENCDEC, PCM_U8,VOC) += voc -FATE_SEEK_LAVF-$(call ENCDEC, PCM_S16LE, WAV) += wav -FATE_SEEK_LAVF-$(call ENCDEC, MP2, WTV) += wtv -FATE_SEEK_LAVF-$(CONFIG_YUV4MPEGPIPE_MUXER)+= y4m - -fate-seek-lavf-aiff: SRC = lavf/lavf.aiff -fate-seek-lavf-al: SRC = lavf/lavf.al -fate-seek-lavf-asf: SRC = lavf/lavf.asf -fate-seek-lavf-au: SRC = lavf/lavf.au -fate-seek-lavf-avi: SRC = lavf/lavf.avi -fate-seek-lavf-bmp: SRC = images/bmp/%02d.bmp -fate-seek-lavf-dv: SRC = lavf/lavf.dv -fate-seek-lavf-flv: SRC = lavf/lavf.flv -fate-seek-lavf-gif: SRC = lavf/lavf.gif -fate-seek-lavf-gxf: SRC = lavf/lavf.gxf -fate-seek-lavf-jpg: SRC = images/jpg/%02d.jpg -fate-seek-lavf-mkv: SRC = lavf/lavf.mkv -fate-seek-lavf-mmf: SRC = lavf/lavf.mmf -fate-seek-lavf-mov: SRC = lavf/lavf.mov -fate-seek-lavf-mpg: SRC = lavf/lavf.mpg -fate-seek-lavf-ul: SRC = lavf/lavf.ul -fate-seek-lavf-mxf: SRC = lavf/lavf.mxf -fate-seek-lavf-mxf_d10: SRC = lavf/lavf.mxf_d10 -fate-seek-lavf-mxf_dv25: SRC = lavf/lavf.mxf_dv25 -fate-seek-lavf-mxf_dvcpro50: SRC = lavf/lavf.mxf_dvcpro50 -fate-seek-lavf-mxf_opatom: SRC = lavf/lavf.mxf_opatom -fate-seek-lavf-mxf_opatom_audio: SRC = lavf/lavf.mxf_opatom_audio -fate-seek-lavf-nut: SRC = lavf/lavf.nut -fate-seek-lavf-ogg: SRC
[FFmpeg-devel] [PATCH 22/32] fate/seek: Don't duplicate test requirements
Most of the tests in seek.mak use files created by other tests as input. Therefore these tests have the other tests as prerequisite and duplicate their CONFIG-requirements. This duplication is of course bad as usual, so stop it by using the corresponding variable that contains the non-seek-tests that are enabled to filter out all the seek-tests without a corresponding enabled non-seek test. Signed-off-by: Andreas Rheinhardt --- tests/Makefile | 1 + tests/fate/seek.mak | 189 2 files changed, 68 insertions(+), 122 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 1c9e3594c0..e02eb57035 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -120,6 +120,7 @@ include $(SRC_PATH)/tests/fate/lavf-container.mak include $(SRC_PATH)/tests/fate/lavf-image.mak include $(SRC_PATH)/tests/fate/lavf-image2pipe.mak include $(SRC_PATH)/tests/fate/lavf-video.mak +# Must be included after acodec.mak, vcodec.mak and lavf-*.mak include $(SRC_PATH)/tests/fate/seek.mak include $(SRC_PATH)/tests/fate/aac.mak diff --git a/tests/fate/seek.mak b/tests/fate/seek.mak index b4e9246cc3..fc1ef50e49 100644 --- a/tests/fate/seek.mak +++ b/tests/fate/seek.mak @@ -1,32 +1,16 @@ # files from fate-acodec -FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_IMA_QT, AIFF)+= adpcm-ima_qt \ - adpcm-ima_qt-trellis -FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_IMA_WAV, WAV) += adpcm-ima_wav \ - adpcm-ima_wav-trellis -FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_MS, WAV) += adpcm-ms \ - adpcm-ms-trellis -FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_SWF, FLV) += adpcm-swf \ - adpcm-swf-trellis -FATE_SEEK_ACODEC-$(call ENCDEC, ADPCM_YAMAHA, WAV) += adpcm-yamaha \ - adpcm-yamaha-trellis -FATE_SEEK_ACODEC-$(call ENCDEC, ALAC, MOV) += alac -FATE_SEEK_ACODEC-$(call ENCDEC, FLAC, FLAC)+= flac -FATE_SEEK_ACODEC-$(call ENCDEC, MP2, MP2 MP3) += mp2 -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_ALAW, WAV) += pcm-alaw -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_MULAW, WAV) += pcm-mulaw -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S8,MOV) += pcm-s8 -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_U8,WAV) += pcm-u8 -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S16BE, MOV) += pcm-s16be -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S16LE, WAV) += pcm-s16le -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S24BE, MOV) += pcm-s24be -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S24LE, WAV) += pcm-s24le -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S32BE, MOV) += pcm-s32be -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_S32LE, WAV) += pcm-s32le -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F32BE, AU) += pcm-f32be -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F32LE, WAV) += pcm-f32le -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F64BE, AU) += pcm-f64be -FATE_SEEK_ACODEC-$(call ENCDEC, PCM_F64LE, WAV) += pcm-f64le +FATE_SEEK_ACODEC += adpcm-ima_qt adpcm-ima_qt-trellis \ +adpcm-ima_wav adpcm-ima_wav-trellis \ +adpcm-ms adpcm-ms-trellis \ +adpcm-swf adpcm-swf-trellis \ +adpcm-yamaha adpcm-yamaha-trellis \ +alac flac mp2 \ +pcm-alaw pcm-mulaw pcm-s8 pcm-u8 \ +pcm-s16be pcm-s16le pcm-s24be \ +pcm-s24le pcm-s32be pcm-s32le \ +pcm-f32be pcm-f32le pcm-f64be \ +pcm-f64le \ fate-seek-acodec-adpcm-ima_qt: SRC = fate/acodec-adpcm-ima_qt.aiff fate-seek-acodec-adpcm-ima_wav: SRC = fate/acodec-adpcm-ima_wav.wav @@ -56,57 +40,37 @@ fate-seek-acodec-pcm-s32le: SRC = fate/acodec-pcm-s32le.wav fate-seek-acodec-pcm-s8:SRC = fate/acodec-pcm-s8.mov fate-seek-acodec-pcm-u8:SRC = fate/acodec-pcm-u8.wav -FATE_SEEK += $(FATE_SEEK_ACODEC-yes:%=fate-seek-acodec-%) +FATE_SEEK_ACODEC := $(FATE_SEEK_ACODEC:%=fate-seek-acodec-%) +# The following disables every fate-seek-* test whose +# corresponding fate-* test has unmet requirements (or is disabled). +FATE_SEEK_ACODEC := $(filter $(subst fate-,fate-seek-,$(FATE_ACODEC)), $(FATE_SEEK_ACODEC)) +FATE_SEEK += $(FATE_SEEK_ACODEC) # files from fate-vsynth_lena -FATE_SEEK_VSYNTH_LENA-$(call ENCDEC, ASV1, AVI) += asv1 -FATE_SEEK_VSYNTH_LENA-$(call ENCDEC, ASV2, AVI) += asv2 -FATE_SEEK_VSYNTH_LENA-$(call ENCDEC, DNXHD, DNXHD) += dnxhd-720p -FATE_SEEK_VSYNTH_LENA-$(call ENCDEC, DNXHD, DNXHD) += dnxhd-720p-rd -FATE_SEEK_VSYNTH_LENA-$(call ENCDEC, DNXHD, MOV) += dnxhd-1080i -FATE_SE
[FFmpeg-devel] [PATCH 23/32] fate/vcodec: Don't add scale filter unnecessarily
If one uses a -s command, a scale filter is inserted even when doing so is redundant. This patch stops doing so. This makes the tests that don't need libswscale actually succeed in case it is disabled (only 315 of 470 tests need it). Signed-off-by: Andreas Rheinhardt --- tests/fate/vcodec.mak | 82 ++- 1 file changed, 35 insertions(+), 47 deletions(-) diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak index 2e6d16f1e7..667e3759a5 100644 --- a/tests/fate/vcodec.mak +++ b/tests/fate/vcodec.mak @@ -4,8 +4,9 @@ fate-vsynth_lena-%: SRC = tests/data/vsynth_lena.yuv fate-vsynth3-%: SRC = tests/data/vsynth3.yuv fate-vsynth%: CODEC = $(word 3, $(subst -, ,$(@))) fate-vsynth%: FMT = avi -fate-vsynth%: CMD = enc_dec "rawvideo -s 352x288 -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-s 352x288 -pix_fmt yuv420p -vsync passthrough $(DECOPTS)" "$(KEEP_OVERRIDE)" "$(DECINOPTS)" -fate-vsynth3-%: CMD = enc_dec "rawvideo -s $(FATEW)x$(FATEH) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-s $(FATEW)x$(FATEH) -pix_fmt yuv420p -vsync passthrough $(DECOPTS)" "" "$(DECINOPTS)" +fate-vsynth%: DEFAULT_SIZE = -s 352x288 +fate-vsynth3-%: DEFAULT_SIZE = -s $(FATEW)x$(FATEH) +fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-pix_fmt yuv420p -vsync passthrough $(DECOPTS)" "$(KEEP_OVERRIDE)" "$(DECINOPTS)" fate-vsynth%: CMP_UNIT = 1 fate-vsynth%: REF = $(SRC_PATH)/tests/ref/vsynth/$(@:fate-%=%) @@ -20,24 +21,10 @@ fate-vsynth%-asv2: ENCOPTS = -qscale 10 FATE_VCODEC-$(call ENCDEC, CINEPAK, AVI) += cinepak fate-vsynth%-cinepak:ENCOPTS = -s sqcif -strip_number_adaptivity 1 -fate-vsynth%-cinepak:DECOPTS = -s sqcif FATE_VCODEC-$(call ENCDEC, CLJR, AVI) += cljr fate-vsynth%-cljr: ENCOPTS = -strict -1 -FATE_VCODEC-$(call ENCDEC, DNXHD, DNXHD) += dnxhd-720p \ -dnxhd-720p-rd \ -dnxhd-720p-10bit\ -dnxhd-720p-hr-lb\ -dnxhd-edge1-hr \ -dnxhd-edge2-hr \ -dnxhd-edge3-hr - -FATE_VCODEC-$(call ALLYES, DNXHD_ENCODER DNXHD_DECODER LARGE_TESTS) += dnxhd-4k-hr-lb \ - dnxhd-2k-hr-hq \ - dnxhd-uhd-hr-sq - - FATE_VCODEC-$(call ENCDEC, VC2 DIRAC, MOV) += vc2-420p vc2-420p10 vc2-420p12 \ vc2-422p vc2-422p10 vc2-422p12 \ vc2-444p vc2-444p10 vc2-444p12 \ @@ -59,112 +46,112 @@ fate-vsynth2-vc2-t%: ENCOPTS = -pix_fmt yuv422p10 -c:v vc2 -frames 5 fate-vsynth_lena-vc2-t%: FMT = mov fate-vsynth_lena-vc2-t%: ENCOPTS = -pix_fmt yuv422p10 -c:v vc2 -frames 5 -strict -1 -wavelet_type $(@:fate-vsynth_lena-vc2-t%=%) +FATE_VCODEC_DNXHD_DNXHD := dnxhd-720p \ + dnxhd-720p-rd \ + dnxhd-720p-10bit\ + dnxhd-720p-hr-lb\ + dnxhd-edge1-hr \ + dnxhd-edge2-hr \ + dnxhd-edge3-hr \ + $(if $(CONFIG_LARGE_TESTS), dnxhd-4k-hr-lb \ + dnxhd-2k-hr-hq \ + dnxhd-uhd-hr-sq) \ + +FATE_VCODEC-$(call ENCDEC, DNXHD, DNXHD) += $(FATE_VCODEC_DNXHD_DNXHD) + fate-vsynth%-dnxhd-720p: ENCOPTS = -s hd720 -b 90M \ -pix_fmt yuv422p -frames 5 -qmax 8 -fate-vsynth%-dnxhd-720p: FMT = dnxhd fate-vsynth%-dnxhd-720p-rd: ENCOPTS = -s hd720 -b 90M -threads 4 -mbd rd \ -pix_fmt yuv422p -frames 5 -qmax 8 -fate-vsynth%-dnxhd-720p-rd: FMT = dnxhd fate-vsynth%-dnxhd-720p-10bit: ENCOPTS = -s hd720 -b 90M \ -pix_fmt yuv422p10 -frames 5 -qmax 8 -fate-vsynth%-dnxhd-720p-10bit: FMT = dnxhd fate-vsynth%-dnxhd-720p-hr-lb: ENCOPTS = -s hd720 -profile:v dnxhr_lb \ -pix_fmt yuv422p -frames 5 fate-vsynth%-dnxhd-720p-hr-lb: DECOPTS= -sws_flags area+accurate_rnd+bitexact -fate-vsynth%-dnxhd-720p-hr-lb: FMT = dnxhd fate-vsynth%-dnxhd-4k-hr-lb: ENCOPTS= -s 4k -profile:v dnxhr_lb \
[FFmpeg-devel] [PATCH 24/32] fate/vcodec: Fix test requirements
This automatically fixes the requirements of the fate-seek-vsynth* tests (e.g. 16 of the 49 such tests are now automatically disabled if the scale filter is disabled). Signed-off-by: Andreas Rheinhardt --- tests/fate/vcodec.mak | 82 +++ 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/tests/fate/vcodec.mak b/tests/fate/vcodec.mak index 667e3759a5..6f49ffed40 100644 --- a/tests/fate/vcodec.mak +++ b/tests/fate/vcodec.mak @@ -10,7 +10,7 @@ fate-vsynth%: CMD = enc_dec "rawvideo $(DEFAULT_SIZE) -pix_fmt yuv420p $(RAWDECO fate-vsynth%: CMP_UNIT = 1 fate-vsynth%: REF = $(SRC_PATH)/tests/ref/vsynth/$(@:fate-%=%) -FATE_VCODEC-$(call ENCDEC, AMV, AVI) += amv +FATE_VCODEC_SCALE-$(call ENCDEC, AMV, AVI) += amv fate-vsynth%-amv:ENCOPTS = -strict -1 FATE_VCODEC-$(call ENCDEC, ASV1, AVI) += asv1 @@ -19,16 +19,17 @@ fate-vsynth%-asv1: ENCOPTS = -qscale 10 FATE_VCODEC-$(call ENCDEC, ASV2, AVI) += asv2 fate-vsynth%-asv2: ENCOPTS = -qscale 10 -FATE_VCODEC-$(call ENCDEC, CINEPAK, AVI) += cinepak +FATE_VCODEC_SCALE-$(call ENCDEC, CINEPAK, AVI) += cinepak fate-vsynth%-cinepak:ENCOPTS = -s sqcif -strip_number_adaptivity 1 -FATE_VCODEC-$(call ENCDEC, CLJR, AVI) += cljr +FATE_VCODEC_SCALE-$(call ENCDEC, CLJR, AVI) += cljr fate-vsynth%-cljr: ENCOPTS = -strict -1 -FATE_VCODEC-$(call ENCDEC, VC2 DIRAC, MOV) += vc2-420p vc2-420p10 vc2-420p12 \ - vc2-422p vc2-422p10 vc2-422p12 \ - vc2-444p vc2-444p10 vc2-444p12 \ - vc2-thaar vc2-t5_3 +FATE_VCODEC-$(call ENCDEC, VC2 DIRAC, MOV) += vc2-420p +FATE_VCODEC_SCALE-$(call ENCDEC, VC2 DIRAC, MOV) += vc2-420p10 vc2-420p12 \ +vc2-422p vc2-422p10 vc2-422p12 \ +vc2-444p vc2-444p10 vc2-444p12 \ +vc2-thaar vc2-t5_3 fate-vsynth1-vc2-4%: FMT = mov fate-vsynth1-vc2-4%: ENCOPTS = -pix_fmt yuv$(@:fate-vsynth1-vc2-%=%) \ -c:v vc2 -frames 5 -strict -1 @@ -57,7 +58,7 @@ FATE_VCODEC_DNXHD_DNXHD := dnxhd-720p \ dnxhd-2k-hr-hq \ dnxhd-uhd-hr-sq) \ -FATE_VCODEC-$(call ENCDEC, DNXHD, DNXHD) += $(FATE_VCODEC_DNXHD_DNXHD) +FATE_VCODEC_SCALE-$(call ENCDEC, DNXHD, DNXHD) += $(FATE_VCODEC_DNXHD_DNXHD) fate-vsynth%-dnxhd-720p: ENCOPTS = -s hd720 -b 90M \ -pix_fmt yuv422p -frames 5 -qmax 8 @@ -102,7 +103,7 @@ $(FATE_VCODEC_DNXHD_DNXHD:%=fate-vsynth\%-%): DECOPTS += $(DEFAULT_SIZE) FATE_VCODEC_DNXHD_MOV := dnxhd-1080i dnxhd-1080i-10bit dnxhd-1080i-colr \ dnxhd-hr-lb-mov dnxhd-hr-sq-mov dnxhd-hr-hq-mov \ -FATE_VCODEC-$(call ENCDEC, DNXHD, MOV) += $(FATE_VCODEC_DNXHD_MOV) +FATE_VCODEC_SCALE-$(call ENCDEC, DNXHD, MOV) += $(FATE_VCODEC_DNXHD_MOV) fate-vsynth%-dnxhd-1080i:ENCOPTS = -s hd1080 -b 120M -flags +ildct \ -pix_fmt yuv422p -frames 5 -qmax 8 @@ -130,7 +131,7 @@ $(FATE_VCODEC_DNXHD_MOV:%=fate-vsynth\%-%): FMT = mov $(FATE_VCODEC_DNXHD_MOV:%=fate-vsynth\%-%): DECOPTS += $(DEFAULT_SIZE) FATE_VCODEC_DV := dv dv-411 dv-50 dv-hd dv-fhd -FATE_VCODEC-$(call ENCDEC, DVVIDEO, DV) += $(FATE_VCODEC_DV) +FATE_VCODEC_SCALE-$(call ENCDEC, DVVIDEO, DV) += $(FATE_VCODEC_DV) fate-vsynth%-dv: ENCOPTS = -dct int -s pal fate-vsynth%-dv-411: ENCOPTS = -dct int -s pal -pix_fmt yuv411p \ @@ -154,8 +155,9 @@ $(FATE_VCODEC_DV:%=fate-vsynth\%-%): FMT = dv $(FATE_VCODEC_DV:%=fate-vsynth\%-%): DECOPTS += $(DEFAULT_SIZE) FATE_VCODEC-$(call ENCDEC, FFV1, AVI) += ffv1 ffv1-v0 \ - ffv1-v3-yuv420p ffv1-v3-yuv422p10 ffv1-v3-yuv444p16 \ - ffv1-v3-bgr0 ffv1-v3-rgb48 + ffv1-v3-yuv420p +FATE_VCODEC_SCALE-$(call ENCDEC, FFV1, AVI) += ffv1-v3-yuv422p10 ffv1-v3-yuv444p16 \ + ffv1-v3-bgr0 ffv1-v3-rgb48 fate-vsynth%-ffv1: ENCOPTS = -slices 4 fate-vsynth%-ffv1-v0:CODEC = ffv1 fate-vsynth%-ffv1-v3-yuv420p:ENCOPTS = -level 3 -pix_fmt yuv420p @@ -172,18 +174,19 @@ fate-vsynth%-ffv1-v3-rgb48: ENCOPTS = -level 3 -pix_fmt rgb48 -strict -2 \ -sws_flags neighbor+bitexact fate-vsynth%-ffv1-v3-rgb48: DECOPTS = -sws_flags neighbor+bitexact -FATE_VCODEC-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff ffvhuff444 ffvhuff420p12 ffvhuff422p10left ffvhuff444p16 +FATE_VCODEC
[FFmpeg-devel] [PATCH 25/32] fate/acodec: Fix test requirements
This automatically fixes the requirements of the fate-seek-acodec* tests (e.g. 16 of the 27 such tests are now automatically disabled if the aresample filter is disabled). Signed-off-by: Andreas Rheinhardt --- tests/fate/acodec.mak | 85 ++- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/tests/fate/acodec.mak b/tests/fate/acodec.mak index eda449c085..efaeaf2c6e 100644 --- a/tests/fate/acodec.mak +++ b/tests/fate/acodec.mak @@ -6,31 +6,33 @@ fate-acodec-%: REF = $(SRC_PATH)/tests/ref/acodec/$(@:fate-acodec-%=%) FATE_ACODEC_PCM-$(call ENCDEC, PCM_ALAW, WAV) += alaw FATE_ACODEC_PCM-$(call ENCDEC, PCM_MULAW, WAV) += mulaw -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S8,MOV) += s8 -FATE_ACODEC_PCM-$(call ENCDEC, PCM_U8,WAV) += u8 +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S8,MOV) += s8 +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_U8,WAV) += u8 FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16BE, MOV) += s16be FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16LE, WAV) += s16le FATE_ACODEC_PCM-$(call ENCDEC, PCM_U16BE, NUT) += u16be FATE_ACODEC_PCM-$(call ENCDEC, PCM_U16LE, NUT) += u16le -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24BE, MOV) += s24be -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24LE, WAV) += s24le -FATE_ACODEC_PCM-$(call ENCDEC, PCM_U24BE, NUT) += u24be -FATE_ACODEC_PCM-$(call ENCDEC, PCM_U24LE, NUT) += u24le -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32BE, MOV) += s32be -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32LE, WAV) += s32le -FATE_ACODEC_PCM-$(call ENCDEC, PCM_U32BE, NUT) += u32be -FATE_ACODEC_PCM-$(call ENCDEC, PCM_U32LE, NUT) += u32le -FATE_ACODEC_PCM-$(call ENCDEC, PCM_F32BE, AU) += f32be -FATE_ACODEC_PCM-$(call ENCDEC, PCM_F32LE, WAV) += f32le -FATE_ACODEC_PCM-$(call ENCDEC, PCM_F64BE, AU) += f64be -FATE_ACODEC_PCM-$(call ENCDEC, PCM_F64LE, WAV) += f64le -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S8_PLANAR, NUT) += s8_planar -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16BE_PLANAR, NUT) += s16be_planar -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S16LE_PLANAR, NUT) += s16le_planar -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S24LE_PLANAR, NUT) += s24le_planar -FATE_ACODEC_PCM-$(call ENCDEC, PCM_S32LE_PLANAR, NUT) += s32le_planar - -FATE_ACODEC_PCM := $(FATE_ACODEC_PCM-yes:%=fate-acodec-pcm-%) +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S24BE, MOV) += s24be +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S24LE, WAV) += s24le +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_U24BE, NUT) += u24be +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_U24LE, NUT) += u24le +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S32BE, MOV) += s32be +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S32LE, WAV) += s32le +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_U32BE, NUT) += u32be +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_U32LE, NUT) += u32le +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_F32BE, AU) += f32be +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_F32LE, WAV) += f32le +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_F64BE, AU) += f64be +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_F64LE, WAV) += f64le +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S8_PLANAR, NUT) += s8_planar +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S16BE_PLANAR, NUT) += s16be_planar +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S16LE_PLANAR, NUT) += s16le_planar +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S24LE_PLANAR, NUT) += s24le_planar +FATE_ACODEC_PCM_RESAMPLE-$(call ENCDEC, PCM_S32LE_PLANAR, NUT) += s32le_planar + +FATE_ACODEC_PCM-$(CONFIG_ARESAMPLE_FILTER) += $(FATE_ACODEC_PCM_RESAMPLE-yes) +FATE_ACODEC_PCM := $(if $(call ENCDEC, PCM_S16LE, WAV), $(FATE_ACODEC_PCM-yes)) +FATE_ACODEC_PCM := $(FATE_ACODEC_PCM:%=fate-acodec-pcm-%) FATE_ACODEC += $(FATE_ACODEC_PCM) fate-acodec-pcm: $(FATE_ACODEC_PCM) @@ -44,20 +46,22 @@ fate-acodec-pcm-u%be: FMT = nut fate-acodec-pcm-u%le: FMT = nut fate-acodec-pcm-f%be: FMT = au -FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_ADX, ADX) += adx -FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_ARGO,ARGO_ASF) += argo +FATE_ACODEC_ADPCM_RESAMPLE-$(call ENCDEC, ADPCM_ADX, ADX) += adx +FATE_ACODEC_ADPCM_RESAMPLE-$(call ENCDEC, ADPCM_ARGO, ARGO_ASF) += argo FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_APM, APM) += ima_apm FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_ALP, ALP) += ima_alp -FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_QT, AIFF) += ima_qt +FATE_ACODEC_ADPCM_RESAMPLE-$(call ENCDEC, ADPCM_IMA_QT, AIFF) += ima_qt FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_SSI, KVAG) += ima_ssi -FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_WAV, WAV) += ima_wav +FATE_ACODEC_ADPCM_RESAMPLE-$(call ENCDEC, ADPCM_IMA_WAV, WAV) += ima_wav FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_IMA_WS, WSAUD)+= ima_ws FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_MS, WAV) += ms FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_SWF, FLV) += swf FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_SWF, WAV) += swf-wav FATE_ACODEC_ADPCM-$(call ENCDEC, ADPCM_YAMAHA, WAV) += yamaha -FATE_ACODEC_ADPCM := $(FATE
[FFmpeg-devel] [PATCH 26/32] fate/acodec: Remove acodec-adpcm-adx-trellis test
adx ignores the trellis option, making this test identical to acodec-adpcm-adx. Signed-off-by: Andreas Rheinhardt --- tests/fate/acodec.mak | 3 +-- tests/ref/acodec/adpcm-adx-trellis | 4 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 tests/ref/acodec/adpcm-adx-trellis diff --git a/tests/fate/acodec.mak b/tests/fate/acodec.mak index efaeaf2c6e..848d57ef9c 100644 --- a/tests/fate/acodec.mak +++ b/tests/fate/acodec.mak @@ -84,7 +84,7 @@ fate-acodec-adpcm-swf-wav: CODEC = adpcm_swf fate-acodec-adpcm-ima_alp: FMT = alp fate-acodec-adpcm-ima_alp: ENCOPTS = -type pcm -FATE_ACODEC_ADPCM_TRELLIS := adx ima_qt ima_wav ms swf yamaha +FATE_ACODEC_ADPCM_TRELLIS := ima_qt ima_wav ms swf yamaha FATE_ACODEC_ADPCM_TRELLIS := $(FATE_ACODEC_ADPCM_TRELLIS:%=fate-acodec-adpcm-%-trellis) FATE_ACODEC_ADPCM_TRELLIS := $(filter $(addsuffix -trellis,$(FATE_ACODEC_ADPCM)), $(FATE_ACODEC_ADPCM_TRELLIS)) @@ -94,7 +94,6 @@ fate-acodec-adpcm-trellis: $(FATE_ACODEC_ADPCM_TRELLIS) fate-acodec-adpcm-%-trellis: CODEC = adpcm_$(@:fate-acodec-adpcm-%-trellis=%) fate-acodec-adpcm-%-trellis: ENCOPTS = -trellis 5 -fate-acodec-adpcm-adx-trellis: FMT = adx fate-acodec-adpcm-ima_qt-trellis: FMT = aiff fate-acodec-adpcm-ima_wav-trellis: FMT = wav fate-acodec-adpcm-ms-trellis: FMT = wav diff --git a/tests/ref/acodec/adpcm-adx-trellis b/tests/ref/acodec/adpcm-adx-trellis deleted file mode 100644 index f6f5d768f5..00 --- a/tests/ref/acodec/adpcm-adx-trellis +++ /dev/null @@ -1,4 +0,0 @@ -c257001314241b469a6512616fd56548 *tests/data/fate/acodec-adpcm-adx-trellis.adx -297738 tests/data/fate/acodec-adpcm-adx-trellis.adx -5b5a436ec9d528d6eb0bebaf667521b0 *tests/data/fate/acodec-adpcm-adx-trellis.out.wav -stddev: 2549.93 PSNR: 28.20 MAXDIFF:57514 bytes: 1058400/ 1058432 -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 27/32] avformat/format: Also search for image2-codecs for image2pipe
Signed-off-by: Andreas Rheinhardt --- libavformat/format.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/format.c b/libavformat/format.c index 5f8155be59..4b1f3c2986 100644 --- a/libavformat/format.c +++ b/libavformat/format.c @@ -99,7 +99,7 @@ enum AVCodecID av_guess_codec(const AVOutputFormat *fmt, const char *short_name, if (type == AVMEDIA_TYPE_VIDEO) { enum AVCodecID codec_id = AV_CODEC_ID_NONE; -#if CONFIG_IMAGE2_MUXER +#if CONFIG_IMAGE2_MUXER || CONFIG_IMAGE2PIPE_MUXER if (!strcmp(fmt->name, "image2") || !strcmp(fmt->name, "image2pipe")) { codec_id = ff_guess_image2_codec(filename); } -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 28/32] fate/lavf-image2pipe: Fix test requirements
The fix is automatically inherited by the corresponding fate-seek-lavf-*pipe tests. Signed-off-by: Andreas Rheinhardt --- tests/fate/lavf-image2pipe.mak | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/fate/lavf-image2pipe.mak b/tests/fate/lavf-image2pipe.mak index 297f677ada..318655140b 100644 --- a/tests/fate/lavf-image2pipe.mak +++ b/tests/fate/lavf-image2pipe.mak @@ -1,6 +1,11 @@ -FATE_LAVF_IMAGE2PIPE-$(call ENCDEC, PBM,IMAGE2PIPE) += pbmpipe -FATE_LAVF_IMAGE2PIPE-$(call ENCDEC, PGM,IMAGE2PIPE) += pgmpipe -FATE_LAVF_IMAGE2PIPE-$(call ENCDEC, PPM,IMAGE2PIPE) += ppmpipe +LAVF_IMAGE2PIPE = $(call ALLYES, $(1)_DECODER $(1)_ENCODER $(2) \ + IMAGE2_DEMUXER PGMYUV_DECODER \ + IMAGE2PIPE_MUXER IMAGE2PIPE_DEMUXER \ + RAWVIDEO_ENCODER CRC_MUXER FILE_PROTOCOL) + +FATE_LAVF_IMAGE2PIPE-$(call LAVF_IMAGE2PIPE, PBM, PNM_PARSER SCALE_FILTER) += pbmpipe +FATE_LAVF_IMAGE2PIPE-$(call LAVF_IMAGE2PIPE, PGM, PNM_PARSER SCALE_FILTER) += pgmpipe +FATE_LAVF_IMAGE2PIPE-$(call LAVF_IMAGE2PIPE, PPM, PNM_PARSER SCALE_FILTER) += ppmpipe FATE_LAVF_IMAGE2PIPE = $(FATE_LAVF_IMAGE2PIPE-yes:%=fate-lavf-%) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 29/32] fate/lavf-video: Fix test requirements
The new requirements are also automatically inherited by the FATE_SEEK_LAVF_VIDEO seek-tests. Signed-off-by: Andreas Rheinhardt --- tests/fate/lavf-video.mak | 24 ++-- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/tests/fate/lavf-video.mak b/tests/fate/lavf-video.mak index f6e98246c4..7557283dd3 100644 --- a/tests/fate/lavf-video.mak +++ b/tests/fate/lavf-video.mak @@ -1,15 +1,19 @@ -FATE_LAVF_VIDEO-$(call ENCDEC, APNG, APNG) += apng -FATE_LAVF_VIDEO-$(call ENCDEC, APNG, APNG) += apng.png -FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gray.fits -FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gray16be.fits -FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrp.fits -FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrap.fits -FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrp16be.fits -FATE_LAVF_VIDEO-$(call ENCDEC, FITS, FITS) += gbrap16be.fits -FATE_LAVF_VIDEO-$(call ENCDEC, GIF, GIF) += gif -FATE_LAVF_VIDEO-$(CONFIG_YUV4MPEGPIPE_MUXER)+= y4m +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, APNG, APNG) += apng +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, APNG PNG, APNG) += apng.png +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gray.fits +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gray16be.fits +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gbrp.fits +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gbrap.fits +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gbrp16be.fits +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, FITS, FITS) += gbrap16be.fits +FATE_LAVF_VIDEO_SCALE-$(call ENCDEC, GIF, GIF) += gif +FATE_LAVF_VIDEO-$(call ENCDEC, WRAPPED_AVFRAME RAWVIDEO, YUV4MPEGPIPE) += y4m +FATE_LAVF_VIDEO-$(CONFIG_SCALE_FILTER) += $(FATE_LAVF_VIDEO_SCALE-yes) FATE_LAVF_VIDEO = $(FATE_LAVF_VIDEO-yes:%=fate-lavf-%) +FATE_LAVF_VIDEO := $(if $(call ALLYES, IMAGE2_DEMUXER PGMYUV_DECODER \ + RAWVIDEO_ENCODER CRC_MUXER), \ +$(FATE_LAVF_VIDEO)) $(FATE_LAVF_VIDEO): CMD = lavf_video $(FATE_LAVF_VIDEO): REF = $(SRC_PATH)/tests/ref/lavf/$(@:fate-lavf-%=%) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 30/32] fate/lavf-audio: Fix requirements of tests
These changes are automatically inherited by the fate-seek-tests based upon lavf-audio. Signed-off-by: Andreas Rheinhardt --- tests/fate/lavf-audio.mak | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/fate/lavf-audio.mak b/tests/fate/lavf-audio.mak index a0600491a8..b03030176c 100644 --- a/tests/fate/lavf-audio.mak +++ b/tests/fate/lavf-audio.mak @@ -1,14 +1,10 @@ FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16BE,AIFF) += aiff FATE_LAVF_AUDIO-$(call ENCDEC, PCM_ALAW, PCM_ALAW) += al -FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16BE_PLANAR, AST) += ast FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16BE,AU) += au FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16BE,CAF) += caf FATE_LAVF_AUDIO-$(call ENCDEC, ADPCM_YAMAHA, MMF) += mmf FATE_LAVF_AUDIO-$(call ENCDEC, FLAC, OGG) += ogg -FATE_LAVF_AUDIO-$(call ENCDEC, PCM_U8, RSO) += rso -FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16LE,SOX) += sox FATE_LAVF_AUDIO-$(call ENCDEC, PCM_MULAW,PCM_MULAW)+= ul -FATE_LAVF_AUDIO-$(call ENCDEC, PCM_U8, VOC) += voc FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16LE,IRCAM)+= ircam FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16LE,VOC) += s16.voc FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16LE,WAV) += wav @@ -17,9 +13,15 @@ FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16LE,WAV) += peak_only.wav FATE_LAVF_AUDIO-$(call ENCDEC, PCM_S16LE,W64) += w64 FATE_LAVF_AUDIO-$(call ENCDEC, TTA, TTA) += tta FATE_LAVF_AUDIO-$(call ENCMUX, TTA, MATROSKA_AUDIO) += mka -FATE_LAVF_AUDIO-$(call ENCDEC, WAVPACK, WV) += wv +FATE_LAVF_AUDIO_RESAMPLE-$(call ENCDEC, PCM_S16BE_PLANAR, AST) += ast +FATE_LAVF_AUDIO_RESAMPLE-$(call ENCDEC, PCM_U8, RSO) += rso +FATE_LAVF_AUDIO_RESAMPLE-$(call ENCDEC, PCM_S16LE,SOX) += sox +FATE_LAVF_AUDIO_RESAMPLE-$(call ENCDEC, PCM_U8, VOC) += voc +FATE_LAVF_AUDIO_RESAMPLE-$(call ENCDEC, WAVPACK, WV) += wv +FATE_LAVF_AUDIO-$(CONFIG_ARESAMPLE_FILTER) += $(FATE_LAVF_AUDIO_RESAMPLE-yes) FATE_LAVF_AUDIO = $(FATE_LAVF_AUDIO-yes:%=fate-lavf-%) +FATE_LAVF_AUDIO := $(if $(call ENCDEC, PCM_S16LE, CRC PCM_S16LE), $(FATE_LAVF_AUDIO)) $(FATE_LAVF_AUDIO): CMD = lavf_audio $(FATE_LAVF_AUDIO): REF = $(SRC_PATH)/tests/ref/lavf/$(@:fate-lavf-%=%) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 31/32] fate/lavf-container: Fix test requirements
Automatically inherited by the fate-seek-lavf tests based upon these tests. Signed-off-by: Andreas Rheinhardt --- tests/fate/lavf-container.mak | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/fate/lavf-container.mak b/tests/fate/lavf-container.mak index 9e0eed4851..7fb54d7406 100644 --- a/tests/fate/lavf-container.mak +++ b/tests/fate/lavf-container.mak @@ -13,12 +13,22 @@ FATE_LAVF_CONTAINER-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF_D10 MXF)+ FATE_LAVF_CONTAINER-$(call ENCDEC2, DNXHD, PCM_S16LE, MXF_OPATOM MXF) += mxf_opatom mxf_opatom_audio FATE_LAVF_CONTAINER-$(call ENCDEC2, MPEG4, MP2, NUT) += nut FATE_LAVF_CONTAINER-$(call ENCMUX, RV10 AC3_FIXED,RM) += rm -FATE_LAVF_CONTAINER-$(call ENCMUX, MJPEG PCM_S16LE, SMJPEG) += smjpeg +FATE_LAVF_CONTAINER-$(call ENCDEC2, MJPEG, PCM_S16LE, SMJPEG) += smjpeg FATE_LAVF_CONTAINER-$(call ENCDEC, FLV, SWF) += swf FATE_LAVF_CONTAINER-$(call ENCDEC2, MPEG2VIDEO, MP2, MPEGTS) += ts FATE_LAVF_CONTAINER-$(call ENCDEC, MP2, WTV) += wtv +FATE_LAVF_CONTAINER_RESAMPLE := asf avi dv_pal dv_ntsc gxf_pal gxf_ntsc \ +mkv mkv_attachment mpg mxf nut rm ts wtv +FATE_LAVF_CONTAINER-$(!CONFIG_ARESAMPLE_FILTER) := $(filter-out $(FATE_LAVF_CONTAINER_RESAMPLE),$(FATE_LAVF_CONTAINER-yes)) + +FATE_LAVF_CONTAINER_SCALE := dv dv_pal dv_ntsc flm gxf gxf_pal gxf_ntsc \ + mxf_dv25 mxf_dvcpro50 mxf_d10 mxf_opatom \ + smjpeg +FATE_LAVF_CONTAINER-$(!CONFIG_SCALE_FILTER) := $(filter-out $(FATE_LAVF_CONTAINER_SCALE),$(FATE_LAVF_CONTAINER-yes)) + FATE_LAVF_CONTAINER = $(FATE_LAVF_CONTAINER-yes:%=fate-lavf-%) +FATE_LAVF_CONTAINER := $(if $(call ENCDEC2, RAWVIDEO PGMYUV, PCM_S16LE, CRC IMAGE2, PCM_S16LE_DEMUXER), $(FATE_LAVF_CONTAINER)) $(FATE_LAVF_CONTAINER): CMD = lavf_container $(FATE_LAVF_CONTAINER): REF = $(SRC_PATH)/tests/ref/lavf/$(@:fate-lavf-%=%) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 32/32] fate/concatdec: Don't duplicate test requirements
The tests in concatdec.mak reuse files created by tests from lavf-container. Therefore these tests have the other tests as prerequisite and mostly duplicate their CONFIG-requirements. (The mxf_d10 tests did it incorrect as they only required the MXF muxer.) This duplication is of course bad as usual, so stop it by using the corresponding variable that contains the non-lavf-container-tests that are enabled to filter out all the concat-tests without a corresponding enabled non-concat test. Signed-off-by: Andreas Rheinhardt --- tests/Makefile | 1 + tests/fate/concatdec.mak | 31 --- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index e02eb57035..6e8fc5906e 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -141,6 +141,7 @@ include $(SRC_PATH)/tests/fate/canopus.mak include $(SRC_PATH)/tests/fate/cbs.mak include $(SRC_PATH)/tests/fate/cdxl.mak include $(SRC_PATH)/tests/fate/checkasm.mak +# Must be included after lavf-container.mak include $(SRC_PATH)/tests/fate/concatdec.mak include $(SRC_PATH)/tests/fate/cover-art.mak include $(SRC_PATH)/tests/fate/dca.mak diff --git a/tests/fate/concatdec.mak b/tests/fate/concatdec.mak index 988559d251..e7d2e9b4b1 100644 --- a/tests/fate/concatdec.mak +++ b/tests/fate/concatdec.mak @@ -1,21 +1,22 @@ -FATE_CONCAT_DEMUXER_SIMPLE1_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += mxf -FATE_CONCAT_DEMUXER_SIMPLE1_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += mxf_d10 +FATE_CONCAT_DEMUXER_SIMPLE1_LAVF := mxf mxf_d10 -FATE_CONCAT_DEMUXER_SIMPLE2_LAVF-$(call ENCDEC2, MPEG2VIDEO, MP2, MPEGTS) += ts +FATE_CONCAT_DEMUXER_SIMPLE2_LAVF := ts -FATE_CONCAT_DEMUXER_EXTENDED_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += mxf -FATE_CONCAT_DEMUXER_EXTENDED_LAVF-$(call ENCDEC2, MPEG2VIDEO, PCM_S16LE, MXF) += mxf_d10 +FATE_CONCAT_DEMUXER_EXTENDED_LAVF := mxf mxf_d10 -$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE1_LAVF-yes),$(eval fate-concat-demuxer-simple1-lavf-$(D): ffprobe$(PROGSSUF)$(EXESUF) fate-lavf-$(D))) -$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE1_LAVF-yes),$(eval fate-concat-demuxer-simple1-lavf-$(D): CMD = concat $(SRC_PATH)/tests/simple1.ffconcat ../lavf/lavf.$(D))) -FATE_CONCAT_DEMUXER-$(CONFIG_CONCAT_DEMUXER) += $(FATE_CONCAT_DEMUXER_SIMPLE1_LAVF-yes:%=fate-concat-demuxer-simple1-lavf-%) +$(foreach D,SIMPLE1 SIMPLE2 EXTENDED,$(eval FATE_CONCAT_DEMUXER_$(D)_LAVF := $$(filter $$(FATE_LAVF_CONTAINER:fate-lavf-%=%),$$(FATE_CONCAT_DEMUXER_$(D)_LAVF +#FATE_CONCAT_DEMUXER_SIMPLE1_LAVF := $(filter $(FATE_LAVF_CONTAINER:fate-lavf-%=%),$(FATE_CONCAT_DEMUXER_SIMPLE1_LAVF)) -$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE2_LAVF-yes),$(eval fate-concat-demuxer-simple2-lavf-$(D): ffprobe$(PROGSSUF)$(EXESUF) fate-lavf-$(D))) -$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE2_LAVF-yes),$(eval fate-concat-demuxer-simple2-lavf-$(D): CMD = concat $(SRC_PATH)/tests/simple2.ffconcat ../lavf/lavf.$(D))) -FATE_CONCAT_DEMUXER-$(CONFIG_CONCAT_DEMUXER) += $(FATE_CONCAT_DEMUXER_SIMPLE2_LAVF-yes:%=fate-concat-demuxer-simple2-lavf-%) +$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE1_LAVF),$(eval fate-concat-demuxer-simple1-lavf-$(D): fate-lavf-$(D))) +$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE1_LAVF),$(eval fate-concat-demuxer-simple1-lavf-$(D): CMD = concat $(SRC_PATH)/tests/simple1.ffconcat ../lavf/lavf.$(D))) +FATE_CONCAT_DEMUXER += $(FATE_CONCAT_DEMUXER_SIMPLE1_LAVF:%=fate-concat-demuxer-simple1-lavf-%) -$(foreach D,$(FATE_CONCAT_DEMUXER_EXTENDED_LAVF-yes),$(eval fate-concat-demuxer-extended-lavf-$(D): ffprobe$(PROGSSUF)$(EXESUF) fate-lavf-$(D))) -$(foreach D,$(FATE_CONCAT_DEMUXER_EXTENDED_LAVF-yes),$(eval fate-concat-demuxer-extended-lavf-$(D): CMD = concat $(SRC_PATH)/tests/extended.ffconcat ../lavf/lavf.$(D) md5)) -FATE_CONCAT_DEMUXER-$(CONFIG_CONCAT_DEMUXER) += $(FATE_CONCAT_DEMUXER_EXTENDED_LAVF-yes:%=fate-concat-demuxer-extended-lavf-%) +$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE2_LAVF),$(eval fate-concat-demuxer-simple2-lavf-$(D): fate-lavf-$(D))) +$(foreach D,$(FATE_CONCAT_DEMUXER_SIMPLE2_LAVF),$(eval fate-concat-demuxer-simple2-lavf-$(D): CMD = concat $(SRC_PATH)/tests/simple2.ffconcat ../lavf/lavf.$(D))) +FATE_CONCAT_DEMUXER += $(FATE_CONCAT_DEMUXER_SIMPLE2_LAVF:%=fate-concat-demuxer-simple2-lavf-%) -FATE-$(CONFIG_FFPROBE) += $(FATE_CONCAT_DEMUXER-yes) +$(foreach D,$(FATE_CONCAT_DEMUXER_EXTENDED_LAVF),$(eval fate-concat-demuxer-extended-lavf-$(D): fate-lavf-$(D))) +$(foreach D,$(FATE_CONCAT_DEMUXER_EXTENDED_LAVF),$(eval fate-concat-demuxer-extended-lavf-$(D): CMD = concat $(SRC_PATH)/tests/extended.ffconcat ../lavf/lavf.$(D) md5)) +FATE_CONCAT_DEMUXER += $(FATE_CONCAT_DEMUXER_EXTENDED_LAVF:%=fate-concat-demuxer-extended-lavf-%) + +FATE_FFPROBE += $(FATE_CONCAT_DEMUXER) -- 2.32.0 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link
Re: [FFmpeg-devel] [PATCH v11 1/6] libavutil/wchar_filename.h: Add whcartoutf8, wchartoansi and utf8toansi
> -Original Message- > From: ffmpeg-devel On Behalf Of Nil > Admirari > Sent: Saturday, April 23, 2022 10:56 PM > To: ffmpeg-devel@ffmpeg.org > Subject: [FFmpeg-devel] [PATCH v11 1/6] libavutil/wchar_filename.h: > Add whcartoutf8, wchartoansi and utf8toansi > > These functions are going to be used in libavformat/avisynth.c > and fftools/cmdutils.c to remove MAX_PATH limit. > --- Hi, thanks for submitting this patchset. I'm afraid that I hadn't found time to look into this at an earlier stage, so please apologize if one of my questions has been covered before. 1. Patch 3/6 - Replace LoadLibraryExA with LoadLibraryExW What's the point in making changes to library loading? What does it fix? Which dll cannot be loaded with the current implementation and what would be the location of the dll and the location of the exe in that case? Could you please give an example of a situation that this is supposed to fix? 2. Patches 5/6 and 6/6 - Add Fusion Manifest The manifest that you want to add includes two settings: - longPathAware effective on Windows 10, version 1607 or later - activeCodePage effective on Windows 10, version 1903 or later Both of these manifest attributes are affecting the runtime behavior of an application running on Windows - but only starting from a certain OS version. That means - effectively you would end up having an ffmpeg executable with three different kinds of behavior: 1. Win < 1607 2. Win >= 1607 && < 1903 3. Win >= 1903 An ffmpeg executable, where you can't rely on the exposed behavior being consistent and where you would need to check the operating system version before using to make sure that you are providing parameters in the "right" way - I'm not sure whether that would make much sense. 3. All Patches x/6 - Remove MAX_PATH limit The punch line sounds compelling. But how is the current situation and what exactly would be the benefit? What's important to understand is that the basic Windows file APIs are supporting long (> MAX_PATH length) for a long time already. MS has just been a bit hesitant regarding the transition and wanted to avoid breaking changes to the API. The outcome was that long paths are only supported when using a lower-level path syntax, which is as simple as prepending "\\?\" to the actual path, no matter whether drive or UNC network path. As an example, the following command runs without issue on Windows with a normal current ffmpeg build: .\ffmpeg.exe -i "\\?\U:\TestMedia\This is a very long path - This is a very long path - This is a very long path - This is a very long path - This is a very long path -\This is a very long path - This is a very long path - This is a very long path - This is a very lon\aassdd\TestMediaThis is a very long path - This is a very long path - This is a very long path - This is a very long path - This is a very long path -This is a very long path - This is a very long path - Thi - 不要抬头.ts" It's not only a path with len > MAX_PATH, the name also includes Chinese (non-ANSI) characters. All this is working in a predictable and reliable way on all common Windows versions. Recently, MS have taken additional effort in order to ease compatibility and improve platform portability, by allowing applications to use ANSI file APIs with long paths and UTF-8 charset. BUT: there are several prerequisites for this to work: 1. Windows version needs to be >= 1903 (for being able to have both attributes in effect) 2. Application needs to be compiled with and manifest file as resource 3. A registry key or group policy needs to be set on Windows to enable this ´ (in both cases, administrative permission/UAC is required to set it) 4. Even when registry key or group policy is set, it might still be pending a reboot SUMMARY From my understanding, the benefit of this patchset would be: When 1. and 2. and 3. and 4. are fulfilled (and only then) - it would be possible to use long path names in ffmpeg _without_ prefixing it with '\\?\' On the other side, there's a risk of regressions by adding those manifest attributes. I wonder whether it wouldn’t be a better idea, to simply auto-add this prefix in the ffmpeg file handling code if: - OS == Windows - len > MAX_PATH This would work on all common Windows versions and would be predictable and reliable. Best regards, softworkz ___ 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".
[FFmpeg-devel] [PATCH 1/7] avcodec/pgxdec: Make better use of size check
Each of the three calls to pgx_get_number() consumes at least two bytes. Signed-off-by: Andreas Rheinhardt --- libavcodec/pgxdec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavcodec/pgxdec.c b/libavcodec/pgxdec.c index 899e7a9994..154a683b4f 100644 --- a/libavcodec/pgxdec.c +++ b/libavcodec/pgxdec.c @@ -56,9 +56,8 @@ static int pgx_decode_header(AVCodecContext *avctx, GetByteContext *g, { int byte; -if (bytestream2_get_bytes_left(g) < 6) { +if (bytestream2_get_bytes_left(g) < 12) return AVERROR_INVALIDDATA; -} bytestream2_skip(g, 6); -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 2/7] avcodec/pgxdec: Avoid always-false checks
We have already checked that there is data to be read. Signed-off-by: Andreas Rheinhardt --- libavcodec/pgxdec.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libavcodec/pgxdec.c b/libavcodec/pgxdec.c index 154a683b4f..9c474036da 100644 --- a/libavcodec/pgxdec.c +++ b/libavcodec/pgxdec.c @@ -32,9 +32,9 @@ static int pgx_get_number(AVCodecContext *avctx, GetByteContext *g, int *number) *number = 0; while (1) { uint64_t temp; -if (!bytestream2_get_bytes_left(g)) +if (bytestream2_get_bytes_left(g) <= 0) return AVERROR_INVALIDDATA; -digit = bytestream2_get_byte(g); +digit = bytestream2_get_byteu(g); if (digit == ' ' || digit == 0xA || digit == 0xD) break; else if (digit < '0' || digit > '9') @@ -59,22 +59,22 @@ static int pgx_decode_header(AVCodecContext *avctx, GetByteContext *g, if (bytestream2_get_bytes_left(g) < 12) return AVERROR_INVALIDDATA; -bytestream2_skip(g, 6); +bytestream2_skipu(g, 6); // Is the component signed? -byte = bytestream2_peek_byte(g); +byte = bytestream2_peek_byteu(g); if (byte == '+') { *sign = 0; -bytestream2_skip(g, 1); +bytestream2_skipu(g, 1); } else if (byte == '-') { *sign = 1; -bytestream2_skip(g, 1); +bytestream2_skipu(g, 1); } else if (byte == 0) goto error; -byte = bytestream2_peek_byte(g); +byte = bytestream2_peek_byteu(g); if (byte == ' ') -bytestream2_skip(g, 1); +bytestream2_skipu(g, 1); else if (byte == 0) goto error; @@ -104,9 +104,9 @@ error: for (j = 0; j < width; j++) { \ unsigned val; \ if (sign) \ -val = (PIXEL)bytestream2_get_ ##suffix(g) + (1 << (depth - 1)); \ +val = (PIXEL)bytestream2_get_ ##suffix##u(g) + (1 << (depth - 1)); \ else \ -val = bytestream2_get_ ##suffix(g); \ +val = bytestream2_get_ ##suffix##u(g); \ val <<= (D - depth); \ *(line + j) = val; \ } \ -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 3/7] avcodec/pgxdec: Remove pointless checks
These checks were (most likely) added to check for overreads as the bytestream2_get_* functions return 0 in this case. Yet this is not necessary anymore as we now have an explicit check for the size. Should the input contain a real \0, pgx_get_number() will error out lateron. Signed-off-by: Andreas Rheinhardt --- libavcodec/pgxdec.c | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libavcodec/pgxdec.c b/libavcodec/pgxdec.c index 9c474036da..c9ada5afb5 100644 --- a/libavcodec/pgxdec.c +++ b/libavcodec/pgxdec.c @@ -69,14 +69,11 @@ static int pgx_decode_header(AVCodecContext *avctx, GetByteContext *g, } else if (byte == '-') { *sign = 1; bytestream2_skipu(g, 1); -} else if (byte == 0) -goto error; +} byte = bytestream2_peek_byteu(g); if (byte == ' ') bytestream2_skipu(g, 1); -else if (byte == 0) -goto error; if (pgx_get_number(avctx, g, depth)) goto error; -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 4/7] avcodec/pgxdec: Fix issue with negative linesizes
The PGX decoder accesses the lines via code like (PIXEL*)frame->data[0] + i*frame->linesize[0]/sizeof(PIXEL) where PIXEL is a macro parameter. This code has issues with negative linesizes, because the type of sizeof(PIXEL) is size_t, so that on common systems i*linesize/sizeof(PIXEL) will always be an unsigned type that is very large in case linesize is negative. This happens to work*, but it is undefined behaviour and e.g. leads to "src/libavcodec/pgxdec.c:114:1: runtime error: addition of unsigned offset to 0x7efe9c2b7040 overflowed to 0x7efe9c2b6040" errors from UBSAN. Fix this by using (PIXEL*)(frame->data[0] + i*frame->linesize[0]). This is allowed because linesize has to be suitably aligned. *: Converting a negative int to size_t works by adding SIZE_MAX + 1 to the number, so that the result is off by (SIZE_MAX + 1) / sizeof(PIXEL). Converting the pointer arithmetic (performed on PIXELs) back to ordinary pointers is tantamount to multiplying by sizeof(PIXEL), so that the result is off by SIZE_MAX + 1; but SIZE_MAX + 1 == 0 for the underlying pointers. Signed-off-by: Andreas Rheinhardt --- libavcodec/pgxdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/pgxdec.c b/libavcodec/pgxdec.c index c9ada5afb5..30895b51ee 100644 --- a/libavcodec/pgxdec.c +++ b/libavcodec/pgxdec.c @@ -97,7 +97,7 @@ error: { \ int i, j; \ for (i = 0; i < height; i++) { \ -PIXEL *line = (PIXEL*)frame->data[0] + i*frame->linesize[0]/sizeof(PIXEL); \ +PIXEL *line = (PIXEL*)(frame->data[0] + i * frame->linesize[0]); \ for (j = 0; j < width; j++) { \ unsigned val; \ if (sign) \ -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 5/7] avcodec/pgxdec: Hoist branch out of loop
Signed-off-by: Andreas Rheinhardt --- libavcodec/pgxdec.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libavcodec/pgxdec.c b/libavcodec/pgxdec.c index 30895b51ee..29de103167 100644 --- a/libavcodec/pgxdec.c +++ b/libavcodec/pgxdec.c @@ -95,16 +95,13 @@ error: static inline void write_frame_ ##D(AVFrame *frame, GetByteContext *g, \ int width, int height, int sign, int depth) \ { \ +const unsigned offset = sign ? (1 << (D - 1)) : 0; \ int i, j; \ for (i = 0; i < height; i++) { \ PIXEL *line = (PIXEL*)(frame->data[0] + i * frame->linesize[0]); \ for (j = 0; j < width; j++) { \ -unsigned val; \ -if (sign) \ -val = (PIXEL)bytestream2_get_ ##suffix##u(g) + (1 << (depth - 1)); \ -else \ -val = bytestream2_get_ ##suffix##u(g); \ -val <<= (D - depth); \ +unsigned val = bytestream2_get_ ##suffix##u(g) << (D - depth); \ +val ^= offset; \ *(line + j) = val; \ } \ } \ -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 6/7] avcodec/pgxdec: Use unsigned types for unsigned values
Both AV_PIX_FMT_GRAY8 and AV_PIX_FMT_GRAY16 use unsigned values, not signed ones. The fact that the input might be signed in some cases in the original format doesn't change this. Signed-off-by: Andreas Rheinhardt --- libavcodec/pgxdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/pgxdec.c b/libavcodec/pgxdec.c index 29de103167..52e2c2a36c 100644 --- a/libavcodec/pgxdec.c +++ b/libavcodec/pgxdec.c @@ -107,8 +107,8 @@ error: } \ } \ -WRITE_FRAME(8, int8_t, byte) -WRITE_FRAME(16, int16_t, be16) +WRITE_FRAME(8, uint8_t, byte) +WRITE_FRAME(16, uint16_t, be16) static int pgx_decode_frame(AVCodecContext *avctx, AVFrame *p, int *got_frame, AVPacket *avpkt) -- 2.32.0 ___ 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".
[FFmpeg-devel] [PATCH 7/7] avcodec/xfacedec: Add AV_CODEC_CAP_DR1
This decoder uses ff_get_buffer() and does nothing weird (it does not even rely on any alignment of the frame's data/linesize). Signed-off-by: Andreas Rheinhardt --- libavcodec/xfacedec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/xfacedec.c b/libavcodec/xfacedec.c index b103b5beda..f15bc2d773 100644 --- a/libavcodec/xfacedec.c +++ b/libavcodec/xfacedec.c @@ -180,6 +180,7 @@ const FFCodec ff_xface_decoder = { .p.long_name= NULL_IF_CONFIG_SMALL("X-face image"), .p.type = AVMEDIA_TYPE_VIDEO, .p.id = AV_CODEC_ID_XFACE, +.p.capabilities = AV_CODEC_CAP_DR1, .priv_data_size = sizeof(XFaceContext), .init = xface_decode_init, FF_CODEC_DECODE_CB(xface_decode_frame), -- 2.32.0 ___ 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".