From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: [FFmpeg-devel] [PATCH] fftools/ffprobe: Remove endianness dependency of pix fmt when, bitexact Date: Fri, 21 Mar 2025 12:23:18 +0100 Message-ID: <GV1SPRMB00365E156663D1F18E2116B98FDB2@GV1SPRMB0036.EURP250.PROD.OUTLOOK.COM> (raw) [-- Attachment #1: Type: text/plain, Size: 27 bytes --] Patch attached. - Andreas [-- Attachment #2: 0001-fftools-ffprobe-Remove-endianness-dependency-of-pix-.patch --] [-- Type: text/x-patch, Size: 4660 bytes --] From 399db8b981f7d09cfb7305549a134d6e8522357e Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Date: Fri, 21 Mar 2025 12:19:56 +0100 Subject: [PATCH] fftools/ffprobe: Remove endianness dependency of pix fmt when bitexact Also remove the sed workarounds in fate/mxf.mak. This is supposed to fix the enhanced-flv-hevc-hdr10 test on big endian systems. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- fftools/ffprobe.c | 33 +++++++++++++++++++++----- tests/fate/mxf.mak | 4 ++-- tests/ref/fate/enhanced-flv-hevc-hdr10 | 2 +- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 7341731d2f..ccc046c560 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2651,6 +2651,31 @@ static void print_private_data(WriterContext *w, void *priv_data) } } +static void print_pixel_format(WriterContext *w, enum AVPixelFormat pix_fmt) +{ + const char *s = av_get_pix_fmt_name(pix_fmt); + enum AVPixelFormat swapped_pix_fmt; + + if (!s) { + print_str_opt("pix_fmt", "unknown"); + } else if (!do_bitexact || + (swapped_pix_fmt = av_pix_fmt_swap_endianness(pix_fmt)) == AV_PIX_FMT_NONE) { + print_str ("pix_fmt", s); + } else { + const char *s2 = av_get_pix_fmt_name(swapped_pix_fmt); + char buf[128]; + size_t i = 0; + + while (s[i] && s[i] == s2[i]) + i++; + + memcpy(buf, s, FFMIN(sizeof(buf) - 1, i)); + buf[i] = '\0'; + + print_str ("pix_fmt", buf); + } +} + static void print_color_range(WriterContext *w, enum AVColorRange color_range) { const char *val = av_color_range_name(color_range); @@ -2959,9 +2984,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, print_int("crop_bottom", frame->crop_bottom); print_int("crop_left", frame->crop_left); print_int("crop_right", frame->crop_right); - s = av_get_pix_fmt_name(frame->format); - if (s) print_str ("pix_fmt", s); - else print_str_opt("pix_fmt", "unknown"); + print_pixel_format(w, frame->format); sar = av_guess_sample_aspect_ratio(fmt_ctx, stream, frame); if (sar.num) { print_q("sample_aspect_ratio", sar, ':'); @@ -3360,9 +3383,7 @@ static int show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_id print_str_opt("sample_aspect_ratio", "N/A"); print_str_opt("display_aspect_ratio", "N/A"); } - s = av_get_pix_fmt_name(par->format); - if (s) print_str ("pix_fmt", s); - else print_str_opt("pix_fmt", "unknown"); + print_pixel_format(w, par->format); print_int("level", par->level); print_color_range(w, par->color_range); diff --git a/tests/fate/mxf.mak b/tests/fate/mxf.mak index 3e0e70e28b..ba09d136ce 100644 --- a/tests/fate/mxf.mak +++ b/tests/fate/mxf.mak @@ -29,7 +29,7 @@ fate-mxf-probe-dnxhd: CMD = run $(PROBE_FORMAT_STREAMS_COMMAND) -i "$(SRC)" FATE_MXF_PROBE-$(call DEMDEC, MXF, JPEG2000) += fate-mxf-probe-j2k fate-mxf-probe-j2k: SRC = $(TARGET_SAMPLES)/imf/countdown/countdown-small.mxf -fate-mxf-probe-j2k: CMD = run $(PROBE_FORMAT_STREAMS_COMMAND) -i "$(SRC)" | sed -e "s/rgb48../rgb48/" +fate-mxf-probe-j2k: CMD = run $(PROBE_FORMAT_STREAMS_COMMAND) -i "$(SRC)" FATE_MXF_PROBE-$(call DEMDEC, MXF, DVVIDEO PCM_S16LE) += fate-mxf-probe-dv25 fate-mxf-probe-dv25: SRC = $(TARGET_SAMPLES)/mxf/Avid-00005.mxf @@ -37,7 +37,7 @@ fate-mxf-probe-dv25: CMD = run $(PROBE_FORMAT_STREAMS_COMMAND) -i "$(SRC)" FATE_MXF_PROBE-$(call DEMDEC, MXF, PRORES PCM_S24LE) += fate-mxf-probe-applehdr10 fate-mxf-probe-applehdr10: SRC = $(TARGET_SAMPLES)/mxf/Meridian-Apple_ProResProxy-HDR10.mxf -fate-mxf-probe-applehdr10: CMD = run $(PROBE_FORMAT_STREAMS_COMMAND) -i "$(SRC)" | sed -e "s/yuv422p10../yuv422p10/" +fate-mxf-probe-applehdr10: CMD = run $(PROBE_FORMAT_STREAMS_COMMAND) -i "$(SRC)" # Tests remuxing ProRes as well as writing mastering display metadata. FATE_MXF_FFMPEG_FFPROBE-$(call REMUX, MXF, PRORES_DECODER) += fate-mxf-remux-applehdr10 diff --git a/tests/ref/fate/enhanced-flv-hevc-hdr10 b/tests/ref/fate/enhanced-flv-hevc-hdr10 index cb7acea328..4d93f98e57 100644 --- a/tests/ref/fate/enhanced-flv-hevc-hdr10 +++ b/tests/ref/fate/enhanced-flv-hevc-hdr10 @@ -25,7 +25,7 @@ crop_top=0 crop_bottom=0 crop_left=0 crop_right=0 -pix_fmt=yuv420p10le +pix_fmt=yuv420p10 sample_aspect_ratio=N/A pict_type=I interlaced_frame=0 -- 2.45.2 [-- Attachment #3: Type: text/plain, Size: 251 bytes --] _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next reply other threads:[~2025-03-21 11:23 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-03-21 11:23 Andreas Rheinhardt [this message] 2025-03-21 11:40 ` Zhao Zhili 2025-03-21 12:51 ` Andreas Rheinhardt 2025-03-21 13:09 ` Zhao Zhili 2025-03-21 13:14 ` Andreas Rheinhardt 2025-03-24 17:24 ` Dawid Kozinski/Multimedia (PLT) /SRPOL/Staff Engineer/Samsung Electronics
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=GV1SPRMB00365E156663D1F18E2116B98FDB2@GV1SPRMB0036.EURP250.PROD.OUTLOOK.COM \ --to=andreas.rheinhardt@outlook.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git