PR #22730 opened by michaelni
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22730
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22730.patch


>From c2d5e12d77bd2b6886aa90418bb2d30ded1f6b82 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <[email protected]>
Date: Mon, 6 Apr 2026 18:14:56 +0200
Subject: [PATCH 1/2] avformat/g726: Add file extensions for automated probing

Signed-off-by: Michael Niedermayer <[email protected]>
---
 libavformat/g726.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/g726.c b/libavformat/g726.c
index 05b7ba3d3e..295e576fb5 100644
--- a/libavformat/g726.c
+++ b/libavformat/g726.c
@@ -79,6 +79,7 @@ static const AVClass g726_demuxer_class = {
 const FFInputFormat ff_g726_demuxer = {
     .p.name         = "g726",
     .p.long_name    = NULL_IF_CONFIG_SMALL("raw big-endian G.726 (\"left 
aligned\")"),
+    .p.extensions   = "g726",
     .p.priv_class   = &g726_demuxer_class,
     .read_header    = g726_read_header,
     .read_packet    = g726_read_packet,
@@ -91,6 +92,7 @@ const FFInputFormat ff_g726_demuxer = {
 const FFInputFormat ff_g726le_demuxer = {
     .p.name         = "g726le",
     .p.long_name    = NULL_IF_CONFIG_SMALL("raw little-endian G.726 (\"right 
aligned\")"),
+    .p.extensions   = "g726le",
     .p.priv_class   = &g726_demuxer_class,
     .read_header    = g726_read_header,
     .read_packet    = g726_read_packet,
-- 
2.52.0


>From 2e27958be3ca72b6a6dbad0962bf06eba13c0124 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <[email protected]>
Date: Mon, 6 Apr 2026 18:15:39 +0200
Subject: [PATCH 2/2] tests/fate/voice: Add fate-g726le-encode

Co-Authored-by: AI
Signed-off-by: Michael Niedermayer <[email protected]>
---
 tests/fate/voice.mak         | 10 ++++++++++
 tests/ref/fate/g726le-encode | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 tests/ref/fate/g726le-encode

diff --git a/tests/fate/voice.mak b/tests/fate/voice.mak
index 945b8624ac..82b989f564 100644
--- a/tests/fate/voice.mak
+++ b/tests/fate/voice.mak
@@ -54,6 +54,16 @@ $(FATE_G726): SRC = tests/data/asynth-8000-1.wav
 FATE_VOICE-$(call FRAMEMD5, WAV, ADPCM_G726, WAV_MUXER ADPCM_G726_ENCODER 
PCM_S16LE_DECODER) += $(FATE_G726)
 fate-g726: $(FATE_G726)
 
+# Raw g726le demuxer defaults to code_size=4 (32 kbit/s); other bitrates need 
-code_size
+# which enc_dec_pcm does not pass through, so only 32kbps is tested here (g726 
also covers 16/24/32/40 in WAV).
+FATE_G726LE += fate-g726le-encode
+fate-g726le-encode: tests/data/asynth-8000-1.wav
+fate-g726le-encode: SRC = tests/data/asynth-8000-1.wav
+fate-g726le-encode: CMD = enc_dec_pcm g726le framemd5 s16le $(SRC) -c:a g726le 
-b:a 32k
+
+FATE_VOICE-$(call FRAMEMD5, G726LE, ADPCM_G726LE, G726LE_MUXER 
ADPCM_G726LE_ENCODER PCM_S16LE_DECODER) += $(FATE_G726LE)
+fate-g726le: $(FATE_G726LE)
+
 FATE_GSM-$(call FRAMECRC, WAV, GSM) += fate-gsm-ms
 fate-gsm-ms: CMD = framecrc -i $(TARGET_SAMPLES)/gsm/ciao.wav
 
diff --git a/tests/ref/fate/g726le-encode b/tests/ref/fate/g726le-encode
new file mode 100644
index 0000000000..4451120bfd
--- /dev/null
+++ b/tests/ref/fate/g726le-encode
@@ -0,0 +1,33 @@
+#format: frame checksums
+#version: 2
+#hash: MD5
+#tb 0: 1/8000
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 8000
+#channel_layout_name 0: mono
+#stream#, dts,        pts, duration,     size, hash
+0,          0,          0,     2040,     4080, 0f35e3d018360ea30f0365cf85af1c74
+0,       2040,       2040,     2040,     4080, 363676e57dcce3389936d657d586213a
+0,       4080,       4080,     2040,     4080, 2d4e679ef3e5e1d02e8f929a42e6de2a
+0,       6120,       6120,     2040,     4080, b9ed40ec48cc83fbafb63e6389daf2c5
+0,       8160,       8160,     2040,     4080, f43b1a74c1e1d7e6573648e1a38325d8
+0,      10200,      10200,     2040,     4080, 8f5c6160b4fa40d43fbb939638805107
+0,      12240,      12240,     2040,     4080, 2078cc58e0393eb7deba62740b5d35c4
+0,      14280,      14280,     2040,     4080, 19dad7d751e7abaf8dffdacba220204f
+0,      16320,      16320,     2040,     4080, 7f2d63c711c6ad57d2681c7128112587
+0,      18360,      18360,     2040,     4080, d7fae3ef7351c7f5b68e9a2bf3369a99
+0,      20400,      20400,     2040,     4080, 8033809b4fecbc0cc0fae81ec7723e0a
+0,      22440,      22440,     2040,     4080, a209d125d1f201eea85d6e21eee70f2b
+0,      24480,      24480,     2040,     4080, eb83a47d5c07abb11f5f0fb514f49338
+0,      26520,      26520,     2040,     4080, 9a40833c1e2ad5083328534e3ce06deb
+0,      28560,      28560,     2040,     4080, 3dab6653ad292782c9fddfd67f916e6e
+0,      30600,      30600,     2040,     4080, 7a5728ce53cd90339c29b3ebdaf3fd04
+0,      32640,      32640,     2040,     4080, e68b344b2c973a69ac7e04c0cbfd28dc
+0,      34680,      34680,     2040,     4080, 65761050aa26ca138dac84c1300c0d9a
+0,      36720,      36720,     2040,     4080, 99eb79a1999217b7442dc226071b73f9
+0,      38760,      38760,     2040,     4080, 8a1d411fa6f0b9ca538a81cae840a517
+0,      40800,      40800,     2040,     4080, 57330132b1978e5232402927e8af82fb
+0,      42840,      42840,     2040,     4080, f63771cfe60cb63424529c672c588ff6
+0,      44880,      44880,     2040,     4080, 5b24acee4ce3f5710223ad3c4ddc2ae3
+0,      46920,      46920,     1080,     2160, 26a69e5e5653818ecdbc7511e9a8fd9e
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to