* [FFmpeg-devel] [PATCH 1/4] avformat/iamfenc: don't write empty packets
@ 2024-01-07 21:30 James Almer
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 2/4] fftools/cmdutils: add OPT_TYPE_FILE James Almer
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: James Almer @ 2024-01-07 21:30 UTC (permalink / raw)
To: ffmpeg-devel
And return an error if they are not side data only packets.
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavformat/iamfenc.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/libavformat/iamfenc.c b/libavformat/iamfenc.c
index 1de416b663..a02f84035a 100644
--- a/libavformat/iamfenc.c
+++ b/libavformat/iamfenc.c
@@ -278,6 +278,16 @@ static int iamf_write_packet(AVFormatContext *s, AVPacket *pkt)
int dyn_size, type = st->id <= 17 ? st->id + IAMF_OBU_IA_AUDIO_FRAME_ID0 : IAMF_OBU_IA_AUDIO_FRAME;
int ret;
+ if (!pkt->size) {
+ uint8_t *new_extradata = av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, NULL);
+
+ if (!new_extradata)
+ return AVERROR_INVALIDDATA;
+
+ // TODO: update FLAC Streaminfo on seekable output
+ return 0;
+ }
+
if (s->nb_stream_groups && st->id == c->first_stream_id) {
AVIAMFParamDefinition *mix =
(AVIAMFParamDefinition *)av_packet_get_side_data(pkt, AV_PKT_DATA_IAMF_MIX_GAIN_PARAM, NULL);
--
2.43.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-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 2/4] fftools/cmdutils: add OPT_TYPE_FILE
2024-01-07 21:30 [FFmpeg-devel] [PATCH 1/4] avformat/iamfenc: don't write empty packets James Almer
@ 2024-01-07 21:30 ` James Almer
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 3/4] fftools/ffmpeg_opt: add a stream_group_script option James Almer
2024-01-07 21:31 ` [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests James Almer
2 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-01-07 21:30 UTC (permalink / raw)
To: ffmpeg-devel
Same as OPT_TYPE_STRING, except it takes a file argument whose contents
are read as a string.
Signed-off-by: James Almer <jamrial@gmail.com>
---
fftools/cmdutils.c | 34 ++++++++++++++++++++++++++++++++++
fftools/cmdutils.h | 3 +++
fftools/ffmpeg.h | 1 -
fftools/ffmpeg_opt.c | 32 +++-----------------------------
4 files changed, 40 insertions(+), 30 deletions(-)
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 44228ea637..40623a9ace 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/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/display.h"
#include "libavutil/getenv_utf8.h"
@@ -266,6 +267,13 @@ static int write_option(void *optctx, const OptionDef *po, const char *opt,
if (!str)
return AVERROR(ENOMEM);
*(char **)dst = str;
+ } else if (po->type == OPT_TYPE_FILE) {
+ char *str;
+ str = file_read(arg);
+ av_freep(dst);
+ if (!str)
+ return AVERROR(ENOMEM);
+ *(char **)dst = str;
} else if (po->type == OPT_TYPE_BOOL || po->type == OPT_TYPE_INT) {
ret = parse_number(opt, arg, OPT_TYPE_INT64, INT_MIN, INT_MAX, &num);
if (ret < 0)
@@ -1088,3 +1096,29 @@ double get_rotation(const int32_t *displaymatrix)
return theta;
}
+
+/* read file contents into a string */
+char *file_read(const char *filename)
+{
+ AVIOContext *pb = NULL;
+ int ret = avio_open(&pb, filename, AVIO_FLAG_READ);
+ AVBPrint bprint;
+ char *str;
+
+ if (ret < 0) {
+ av_log(NULL, AV_LOG_ERROR, "Error opening file %s.\n", filename);
+ return NULL;
+ }
+
+ av_bprint_init(&bprint, 0, AV_BPRINT_SIZE_UNLIMITED);
+ ret = avio_read_to_bprint(pb, &bprint, SIZE_MAX);
+ avio_closep(&pb);
+ if (ret < 0) {
+ av_bprint_finalize(&bprint, NULL);
+ return NULL;
+ }
+ ret = av_bprint_finalize(&bprint, &str);
+ if (ret < 0)
+ return NULL;
+ return str;
+}
diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h
index 53227abb47..016ee325b9 100644
--- a/fftools/cmdutils.h
+++ b/fftools/cmdutils.h
@@ -81,6 +81,7 @@ enum OptionType {
OPT_TYPE_FUNC,
OPT_TYPE_BOOL,
OPT_TYPE_STRING,
+ OPT_TYPE_FILE,
OPT_TYPE_INT,
OPT_TYPE_INT64,
OPT_TYPE_FLOAT,
@@ -470,4 +471,6 @@ void *allocate_array_elem(void *array, size_t elem_size, int *nb_elems);
double get_rotation(const int32_t *displaymatrix);
+char *file_read(const char *filename);
+
#endif /* FFTOOLS_CMDUTILS_H */
diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index 6137ac991e..cdde3c2c03 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -652,7 +652,6 @@ void remove_avoptions(AVDictionary **a, AVDictionary *b);
int check_avoptions(AVDictionary *m);
int assert_file_overwrite(const char *filename);
-char *file_read(const char *filename);
AVDictionary *strip_specifiers(const AVDictionary *dict);
int find_codec(void *logctx, const char *name,
enum AVMediaType type, int encoder, const AVCodec **codec);
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index c189cf373b..7ae1b55cf0 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -43,7 +43,6 @@
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/avutil.h"
-#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/display.h"
#include "libavutil/intreadwrite.h"
@@ -108,12 +107,13 @@ static void uninit_options(OptionsContext *o)
SpecifierOptList *so = dst;
for (int i = 0; i < so->nb_opt; i++) {
av_freep(&so->opt[i].specifier);
- if (po->type == OPT_TYPE_STRING)
+ if (po->type == OPT_TYPE_STRING || po->type == OPT_TYPE_FILE)
av_freep(&so->opt[i].u.str);
}
av_freep(&so->opt);
so->nb_opt = 0;
- } else if (po->flags & OPT_FLAG_OFFSET && po->type == OPT_TYPE_STRING)
+ } else if (po->flags & OPT_FLAG_OFFSET && ( po->type == OPT_TYPE_STRING
+ || po->type == OPT_TYPE_FILE))
av_freep(dst);
po++;
}
@@ -759,32 +759,6 @@ int assert_file_overwrite(const char *filename)
return 0;
}
-/* read file contents into a string */
-char *file_read(const char *filename)
-{
- AVIOContext *pb = NULL;
- int ret = avio_open(&pb, filename, AVIO_FLAG_READ);
- AVBPrint bprint;
- char *str;
-
- if (ret < 0) {
- av_log(NULL, AV_LOG_ERROR, "Error opening file %s.\n", filename);
- return NULL;
- }
-
- av_bprint_init(&bprint, 0, AV_BPRINT_SIZE_UNLIMITED);
- ret = avio_read_to_bprint(pb, &bprint, SIZE_MAX);
- avio_closep(&pb);
- if (ret < 0) {
- av_bprint_finalize(&bprint, NULL);
- return NULL;
- }
- ret = av_bprint_finalize(&bprint, &str);
- if (ret < 0)
- return NULL;
- return str;
-}
-
/* arg format is "output-stream-index:streamid-value". */
static int opt_streamid(void *optctx, const char *opt, const char *arg)
{
--
2.43.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-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 3/4] fftools/ffmpeg_opt: add a stream_group_script option
2024-01-07 21:30 [FFmpeg-devel] [PATCH 1/4] avformat/iamfenc: don't write empty packets James Almer
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 2/4] fftools/cmdutils: add OPT_TYPE_FILE James Almer
@ 2024-01-07 21:30 ` James Almer
2024-01-08 1:43 ` Steven Liu
2024-01-07 21:31 ` [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests James Almer
2 siblings, 1 reply; 10+ messages in thread
From: James Almer @ 2024-01-07 21:30 UTC (permalink / raw)
To: ffmpeg-devel
Similar to filter_complex_script. Should make setting stream groups
easier.
Signed-off-by: James Almer <jamrial@gmail.com>
---
fftools/ffmpeg_mux_init.c | 2 +-
fftools/ffmpeg_opt.c | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
index 80109df0ae..1b42ac9a1d 100644
--- a/fftools/ffmpeg_mux_init.c
+++ b/fftools/ffmpeg_mux_init.c
@@ -2301,7 +2301,7 @@ static int of_add_groups(Muxer *mux, const OptionsContext *o)
char *str, *ptr = NULL;
int ret = 0;
- str = av_strdup(o->stream_groups.opt[i].u.str);
+ str = av_strireplace(o->stream_groups.opt[i].u.str, "\n", "");
if (!str)
return ret;
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 7ae1b55cf0..7347fcbd31 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -1508,6 +1508,9 @@ const OptionDef options[] = {
{ "stream_group", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT,
{ .off = OFFSET(stream_groups) },
"add stream group with specified streams and group type-specific arguments", "id=number:st=number..." },
+ { "stream_group_script", OPT_TYPE_FILE, OPT_SPEC | OPT_OUTPUT,
+ { .off = OFFSET(stream_groups) },
+ "read stream group with specified streams and group type-specific arguments from a file", "filename" },
{ "dframes", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_PERFILE | OPT_EXPERT | OPT_OUTPUT | OPT_HAS_CANON,
{ .func_arg = opt_data_frames },
"set the number of data frames to output", "number",
--
2.43.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-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests
2024-01-07 21:30 [FFmpeg-devel] [PATCH 1/4] avformat/iamfenc: don't write empty packets James Almer
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 2/4] fftools/cmdutils: add OPT_TYPE_FILE James Almer
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 3/4] fftools/ffmpeg_opt: add a stream_group_script option James Almer
@ 2024-01-07 21:31 ` James Almer
2024-01-10 3:05 ` Michael Niedermayer
2 siblings, 1 reply; 10+ messages in thread
From: James Almer @ 2024-01-07 21:31 UTC (permalink / raw)
To: ffmpeg-devel
Covers muxing from raw pcm audio input into FLAC, using several scalable layouts,
and demuxing the result.
Signed-off-by: James Almer <jamrial@gmail.com>
---
tests/Makefile | 7 +-
tests/fate/iamf.mak | 31 ++++++
tests/filtergraphs/iamf_5_1 | 4 +
tests/filtergraphs/iamf_5_1_2 | 5 +
tests/filtergraphs/iamf_5_1_4 | 6 ++
tests/filtergraphs/iamf_7_1_4 | 7 ++
tests/ref/fate/iamf-5_1_4 | 98 ++++++++++++++++++
tests/ref/fate/iamf-7_1_4 | 114 +++++++++++++++++++++
tests/ref/fate/iamf-stereo | 18 ++++
tests/streamgroups/audio_element-5_1_4 | 7 ++
tests/streamgroups/audio_element-7_1_4 | 6 ++
tests/streamgroups/audio_element-stereo | 3 +
tests/streamgroups/mix_presentation-5_1_4 | 2 +
tests/streamgroups/mix_presentation-7_1_4 | 2 +
tests/streamgroups/mix_presentation-stereo | 3 +
15 files changed, 312 insertions(+), 1 deletion(-)
create mode 100644 tests/fate/iamf.mak
create mode 100644 tests/filtergraphs/iamf_5_1
create mode 100644 tests/filtergraphs/iamf_5_1_2
create mode 100644 tests/filtergraphs/iamf_5_1_4
create mode 100644 tests/filtergraphs/iamf_7_1_4
create mode 100644 tests/ref/fate/iamf-5_1_4
create mode 100644 tests/ref/fate/iamf-7_1_4
create mode 100644 tests/ref/fate/iamf-stereo
create mode 100644 tests/streamgroups/audio_element-5_1_4
create mode 100644 tests/streamgroups/audio_element-7_1_4
create mode 100644 tests/streamgroups/audio_element-stereo
create mode 100644 tests/streamgroups/mix_presentation-5_1_4
create mode 100644 tests/streamgroups/mix_presentation-7_1_4
create mode 100644 tests/streamgroups/mix_presentation-stereo
diff --git a/tests/Makefile b/tests/Makefile
index e89ce7f8e6..e76163acf3 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -23,7 +23,7 @@ FFMPEG=ffmpeg$(PROGSSUF)$(EXESUF)
$(AREF): CMP=
APITESTSDIR := tests/api
-FATE_OUTDIRS = tests/data tests/data/fate tests/data/filtergraphs tests/data/maps tests/data/lavf tests/data/lavf-fate tests/data/pixfmt tests/vsynth1 $(APITESTSDIR)
+FATE_OUTDIRS = tests/data tests/data/fate tests/data/filtergraphs tests/data/maps tests/data/streamgroups tests/data/lavf tests/data/lavf-fate tests/data/pixfmt tests/vsynth1 $(APITESTSDIR)
OUTDIRS += $(FATE_OUTDIRS)
$(VREF): tests/videogen$(HOSTEXESUF) | tests/vsynth1
@@ -70,6 +70,10 @@ tests/data/maps/%: TAG = COPY
tests/data/maps/%: $(SRC_PATH)/tests/maps/% | tests/data/maps
$(M)cp $< $@
+tests/data/streamgroups/%: TAG = COPY
+tests/data/streamgroups/%: $(SRC_PATH)/tests/streamgroups/% | tests/data/streamgroups
+ $(M)cp $< $@
+
RUNNING_FATE := $(filter check fate%,$(filter-out fate-rsync,$(MAKECMDGOALS)))
# Check sanity of dependencies when running FATE tests.
@@ -199,6 +203,7 @@ include $(SRC_PATH)/tests/fate/hap.mak
include $(SRC_PATH)/tests/fate/hevc.mak
include $(SRC_PATH)/tests/fate/hlsenc.mak
include $(SRC_PATH)/tests/fate/hw.mak
+include $(SRC_PATH)/tests/fate/iamf.mak
include $(SRC_PATH)/tests/fate/id3v2.mak
include $(SRC_PATH)/tests/fate/image.mak
include $(SRC_PATH)/tests/fate/imf.mak
diff --git a/tests/fate/iamf.mak b/tests/fate/iamf.mak
new file mode 100644
index 0000000000..a1ba5916ba
--- /dev/null
+++ b/tests/fate/iamf.mak
@@ -0,0 +1,31 @@
+FATE_IAMF += fate-iamf-stereo
+fate-iamf-stereo: tests/data/asynth-44100-2.wav tests/data/streamgroups/audio_element-stereo tests/data/streamgroups/mix_presentation-stereo
+fate-iamf-stereo: SRC = $(TARGET_PATH)/tests/data/asynth-44100-2.wav
+fate-iamf-stereo: CMD = transcode wav $(SRC) iamf " \
+ -stream_group_script $(TARGET_PATH)/tests/data/streamgroups/audio_element-stereo \
+ -stream_group_script $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-stereo \
+ -streamid 0:0 -c:a flac -t 1" "-c:a copy -map 0"
+
+FATE_IAMF += fate-iamf-5_1_4
+fate-iamf-5_1_4: tests/data/asynth-44100-10.wav tests/data/filtergraphs/iamf_5_1_4 tests/data/streamgroups/audio_element-5_1_4 tests/data/streamgroups/mix_presentation-5_1_4
+fate-iamf-5_1_4: SRC = $(TARGET_PATH)/tests/data/asynth-44100-10.wav
+fate-iamf-5_1_4: CMD = transcode wav $(SRC) iamf "-auto_conversion_filters \
+ -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/iamf_5_1_4 \
+ -stream_group_script $(TARGET_PATH)/tests/data/streamgroups/audio_element-5_1_4 \
+ -stream_group_script $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-5_1_4 \
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0"
+
+FATE_IAMF += fate-iamf-7_1_4
+fate-iamf-7_1_4: tests/data/asynth-44100-12.wav tests/data/filtergraphs/iamf_7_1_4 tests/data/streamgroups/audio_element-7_1_4 tests/data/streamgroups/mix_presentation-7_1_4
+fate-iamf-7_1_4: SRC = $(TARGET_PATH)/tests/data/asynth-44100-12.wav
+fate-iamf-7_1_4: CMD = transcode wav $(SRC) iamf "-auto_conversion_filters \
+ -filter_complex_script $(TARGET_PATH)/tests/data/filtergraphs/iamf_7_1_4 \
+ -stream_group_script $(TARGET_PATH)/tests/data/streamgroups/audio_element-7_1_4 \
+ -stream_group_script $(TARGET_PATH)/tests/data/streamgroups/mix_presentation-7_1_4 \
+ -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -streamid 4:4 -streamid 5:5 -streamid 6:6 -map [FRONT] -map [BACK] -map [CENTER] -map [LFE] -map [SIDE] -map [TOP_FRONT] -map [TOP_BACK] -c:a flac -t 1" "-c:a copy -map 0"
+
+FATE_IAMF-$(call TRANSCODE, FLAC, IAMF, WAV_DEMUXER PCM_S16LE_DECODER) += $(FATE_IAMF)
+
+FATE_FFMPEG += $(FATE_IAMF-yes)
+
+fate-iamf: $(FATE_IAMF-yes)
diff --git a/tests/filtergraphs/iamf_5_1 b/tests/filtergraphs/iamf_5_1
new file mode 100644
index 0000000000..b1eedda4a0
--- /dev/null
+++ b/tests/filtergraphs/iamf_5_1
@@ -0,0 +1,4 @@
+[0:a]channelmap=0|1:stereo[FRONT];
+[0:a]channelmap=4|5:stereo[BACK];
+[0:a]channelmap=2:mono[CENTER];
+[0:a]channelmap=3:mono[LFE];
diff --git a/tests/filtergraphs/iamf_5_1_2 b/tests/filtergraphs/iamf_5_1_2
new file mode 100644
index 0000000000..c18510f4b4
--- /dev/null
+++ b/tests/filtergraphs/iamf_5_1_2
@@ -0,0 +1,5 @@
+[0:a]channelmap=0|1:stereo[FRONT];
+[0:a]channelmap=4|5:stereo[BACK];
+[0:a]channelmap=2:mono[CENTER];
+[0:a]channelmap=3:mono[LFE];
+[0:a]channelmap=6|7:stereo[TOP_FRONT];
diff --git a/tests/filtergraphs/iamf_5_1_4 b/tests/filtergraphs/iamf_5_1_4
new file mode 100644
index 0000000000..80dcc1f580
--- /dev/null
+++ b/tests/filtergraphs/iamf_5_1_4
@@ -0,0 +1,6 @@
+[0:a]channelmap=0|1:stereo[FRONT];
+[0:a]channelmap=4|5:stereo[BACK];
+[0:a]channelmap=2:mono[CENTER];
+[0:a]channelmap=3:mono[LFE];
+[0:a]channelmap=6|7:stereo[TOP_FRONT];
+[0:a]channelmap=8|9:stereo[TOP_BACK];
diff --git a/tests/filtergraphs/iamf_7_1_4 b/tests/filtergraphs/iamf_7_1_4
new file mode 100644
index 0000000000..4a2c5a834c
--- /dev/null
+++ b/tests/filtergraphs/iamf_7_1_4
@@ -0,0 +1,7 @@
+[0:a]channelmap=0|1:stereo[FRONT];
+[0:a]channelmap=4|5:stereo[BACK];
+[0:a]channelmap=2:mono[CENTER];
+[0:a]channelmap=3:mono[LFE];
+[0:a]channelmap=6|7:stereo[SIDE];
+[0:a]channelmap=8|9:stereo[TOP_FRONT];
+[0:a]channelmap=10|11:stereo[TOP_BACK];
diff --git a/tests/ref/fate/iamf-5_1_4 b/tests/ref/fate/iamf-5_1_4
new file mode 100644
index 0000000000..e6eb356ff0
--- /dev/null
+++ b/tests/ref/fate/iamf-5_1_4
@@ -0,0 +1,98 @@
+c447cbbc8943cfb751fdf1145a094250 *tests/data/fate/iamf-5_1_4.iamf
+85603 tests/data/fate/iamf-5_1_4.iamf
+#extradata 0: 34, 0x40a802c6
+#extradata 1: 34, 0x40a802c6
+#extradata 2: 34, 0x407c02c4
+#extradata 3: 34, 0x407c02c4
+#extradata 4: 34, 0x40a802c6
+#extradata 5: 34, 0x40a802c6
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: flac
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+#tb 1: 1/44100
+#media_type 1: audio
+#codec_id 1: flac
+#sample_rate 1: 44100
+#channel_layout_name 1: stereo
+#tb 2: 1/44100
+#media_type 2: audio
+#codec_id 2: flac
+#sample_rate 2: 44100
+#channel_layout_name 2: mono
+#tb 3: 1/44100
+#media_type 3: audio
+#codec_id 3: flac
+#sample_rate 3: 44100
+#channel_layout_name 3: mono
+#tb 4: 1/44100
+#media_type 4: audio
+#codec_id 4: flac
+#sample_rate 4: 44100
+#channel_layout_name 4: stereo
+#tb 5: 1/44100
+#media_type 5: audio
+#codec_id 5: flac
+#sample_rate 5: 44100
+#channel_layout_name 5: stereo
+0, 0, 0, 4608, 1399, 0x6e89566e
+1, 0, 0, 4608, 1399, 0x6e89566e
+2, 0, 0, 4608, 1396, 0x0dcb5677
+3, 0, 0, 4608, 1396, 0x0dcb5677
+4, 0, 0, 4608, 1399, 0x6e89566e
+5, 0, 0, 4608, 1399, 0x6e89566e
+0, 4608, 4608, 4608, 1442, 0x6c3c5b13
+1, 4608, 4608, 4608, 1442, 0x6c3c5b13
+2, 4608, 4608, 4608, 1439, 0xc46b5ac5
+3, 4608, 4608, 4608, 1439, 0xc46b5ac5
+4, 4608, 4608, 4608, 1442, 0x6c3c5b13
+5, 4608, 4608, 4608, 1442, 0x6c3c5b13
+0, 9216, 9216, 4608, 1380, 0xc497571b
+1, 9216, 9216, 4608, 1380, 0xc497571b
+2, 9216, 9216, 4608, 1377, 0x5b2a55fe
+3, 9216, 9216, 4608, 1377, 0x5b2a55fe
+4, 9216, 9216, 4608, 1380, 0xc497571b
+5, 9216, 9216, 4608, 1380, 0xc497571b
+0, 13824, 13824, 4608, 1383, 0x48e9510f
+1, 13824, 13824, 4608, 1383, 0x48e9510f
+2, 13824, 13824, 4608, 1380, 0x045550d3
+3, 13824, 13824, 4608, 1380, 0x045550d3
+4, 13824, 13824, 4608, 1383, 0x48e9510f
+5, 13824, 13824, 4608, 1383, 0x48e9510f
+0, 18432, 18432, 4608, 1572, 0x9a514719
+1, 18432, 18432, 4608, 1572, 0x9a514719
+2, 18432, 18432, 4608, 1568, 0xa2bc45f4
+3, 18432, 18432, 4608, 1568, 0xa2bc45f4
+4, 18432, 18432, 4608, 1572, 0x9a514719
+5, 18432, 18432, 4608, 1572, 0x9a514719
+0, 23040, 23040, 4608, 1391, 0x74ac5014
+1, 23040, 23040, 4608, 1391, 0x74ac5014
+2, 23040, 23040, 4608, 1388, 0x96c85007
+3, 23040, 23040, 4608, 1388, 0x96c85007
+4, 23040, 23040, 4608, 1391, 0x74ac5014
+5, 23040, 23040, 4608, 1391, 0x74ac5014
+0, 27648, 27648, 4608, 1422, 0x2f9d47c5
+1, 27648, 27648, 4608, 1422, 0x2f9d47c5
+2, 27648, 27648, 4608, 1419, 0x4d4d466a
+3, 27648, 27648, 4608, 1419, 0x4d4d466a
+4, 27648, 27648, 4608, 1422, 0x2f9d47c5
+5, 27648, 27648, 4608, 1422, 0x2f9d47c5
+0, 32256, 32256, 4608, 1768, 0x2a044b99
+1, 32256, 32256, 4608, 1768, 0x2a044b99
+2, 32256, 32256, 4608, 1765, 0xacb84b24
+3, 32256, 32256, 4608, 1765, 0xacb84b24
+4, 32256, 32256, 4608, 1768, 0x2a044b99
+5, 32256, 32256, 4608, 1768, 0x2a044b99
+0, 36864, 36864, 4608, 1534, 0xb0b35a3f
+1, 36864, 36864, 4608, 1534, 0xb0b35a3f
+2, 36864, 36864, 4608, 1531, 0x996458aa
+3, 36864, 36864, 4608, 1531, 0x996458aa
+4, 36864, 36864, 4608, 1534, 0xb0b35a3f
+5, 36864, 36864, 4608, 1534, 0xb0b35a3f
+0, 41472, 41472, 4608, 926, 0xc26a5eae
+1, 41472, 41472, 4608, 926, 0xc26a5eae
+2, 41472, 41472, 4608, 923, 0xa7225edf
+3, 41472, 41472, 4608, 923, 0xa7225edf
+4, 41472, 41472, 4608, 926, 0xc26a5eae
+5, 41472, 41472, 4608, 926, 0xc26a5eae
diff --git a/tests/ref/fate/iamf-7_1_4 b/tests/ref/fate/iamf-7_1_4
new file mode 100644
index 0000000000..c176f4a1cd
--- /dev/null
+++ b/tests/ref/fate/iamf-7_1_4
@@ -0,0 +1,114 @@
+157c3185684e12cc8385ee7c3ef2fb4c *tests/data/fate/iamf-7_1_4.iamf
+99851 tests/data/fate/iamf-7_1_4.iamf
+#extradata 0: 34, 0x40a802c6
+#extradata 1: 34, 0x40a802c6
+#extradata 2: 34, 0x407c02c4
+#extradata 3: 34, 0x407c02c4
+#extradata 4: 34, 0x40a802c6
+#extradata 5: 34, 0x40a802c6
+#extradata 6: 34, 0x40a802c6
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: flac
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+#tb 1: 1/44100
+#media_type 1: audio
+#codec_id 1: flac
+#sample_rate 1: 44100
+#channel_layout_name 1: stereo
+#tb 2: 1/44100
+#media_type 2: audio
+#codec_id 2: flac
+#sample_rate 2: 44100
+#channel_layout_name 2: mono
+#tb 3: 1/44100
+#media_type 3: audio
+#codec_id 3: flac
+#sample_rate 3: 44100
+#channel_layout_name 3: mono
+#tb 4: 1/44100
+#media_type 4: audio
+#codec_id 4: flac
+#sample_rate 4: 44100
+#channel_layout_name 4: stereo
+#tb 5: 1/44100
+#media_type 5: audio
+#codec_id 5: flac
+#sample_rate 5: 44100
+#channel_layout_name 5: stereo
+#tb 6: 1/44100
+#media_type 6: audio
+#codec_id 6: flac
+#sample_rate 6: 44100
+#channel_layout_name 6: stereo
+0, 0, 0, 4608, 1399, 0x6e89566e
+1, 0, 0, 4608, 1399, 0x6e89566e
+2, 0, 0, 4608, 1396, 0x0dcb5677
+3, 0, 0, 4608, 1396, 0x0dcb5677
+4, 0, 0, 4608, 1399, 0x6e89566e
+5, 0, 0, 4608, 1399, 0x6e89566e
+6, 0, 0, 4608, 1399, 0x6e89566e
+0, 4608, 4608, 4608, 1442, 0x6c3c5b13
+1, 4608, 4608, 4608, 1442, 0x6c3c5b13
+2, 4608, 4608, 4608, 1439, 0xc46b5ac5
+3, 4608, 4608, 4608, 1439, 0xc46b5ac5
+4, 4608, 4608, 4608, 1442, 0x6c3c5b13
+5, 4608, 4608, 4608, 1442, 0x6c3c5b13
+6, 4608, 4608, 4608, 1442, 0x6c3c5b13
+0, 9216, 9216, 4608, 1380, 0xc497571b
+1, 9216, 9216, 4608, 1380, 0xc497571b
+2, 9216, 9216, 4608, 1377, 0x5b2a55fe
+3, 9216, 9216, 4608, 1377, 0x5b2a55fe
+4, 9216, 9216, 4608, 1380, 0xc497571b
+5, 9216, 9216, 4608, 1380, 0xc497571b
+6, 9216, 9216, 4608, 1380, 0xc497571b
+0, 13824, 13824, 4608, 1383, 0x48e9510f
+1, 13824, 13824, 4608, 1383, 0x48e9510f
+2, 13824, 13824, 4608, 1380, 0x045550d3
+3, 13824, 13824, 4608, 1380, 0x045550d3
+4, 13824, 13824, 4608, 1383, 0x48e9510f
+5, 13824, 13824, 4608, 1383, 0x48e9510f
+6, 13824, 13824, 4608, 1383, 0x48e9510f
+0, 18432, 18432, 4608, 1572, 0x9a514719
+1, 18432, 18432, 4608, 1572, 0x9a514719
+2, 18432, 18432, 4608, 1568, 0xa2bc45f4
+3, 18432, 18432, 4608, 1568, 0xa2bc45f4
+4, 18432, 18432, 4608, 1572, 0x9a514719
+5, 18432, 18432, 4608, 1572, 0x9a514719
+6, 18432, 18432, 4608, 1572, 0x9a514719
+0, 23040, 23040, 4608, 1391, 0x74ac5014
+1, 23040, 23040, 4608, 1391, 0x74ac5014
+2, 23040, 23040, 4608, 1388, 0x96c85007
+3, 23040, 23040, 4608, 1388, 0x96c85007
+4, 23040, 23040, 4608, 1391, 0x74ac5014
+5, 23040, 23040, 4608, 1391, 0x74ac5014
+6, 23040, 23040, 4608, 1391, 0x74ac5014
+0, 27648, 27648, 4608, 1422, 0x2f9d47c5
+1, 27648, 27648, 4608, 1422, 0x2f9d47c5
+2, 27648, 27648, 4608, 1419, 0x4d4d466a
+3, 27648, 27648, 4608, 1419, 0x4d4d466a
+4, 27648, 27648, 4608, 1422, 0x2f9d47c5
+5, 27648, 27648, 4608, 1422, 0x2f9d47c5
+6, 27648, 27648, 4608, 1422, 0x2f9d47c5
+0, 32256, 32256, 4608, 1768, 0x2a044b99
+1, 32256, 32256, 4608, 1768, 0x2a044b99
+2, 32256, 32256, 4608, 1765, 0xacb84b24
+3, 32256, 32256, 4608, 1765, 0xacb84b24
+4, 32256, 32256, 4608, 1768, 0x2a044b99
+5, 32256, 32256, 4608, 1768, 0x2a044b99
+6, 32256, 32256, 4608, 1768, 0x2a044b99
+0, 36864, 36864, 4608, 1534, 0xb0b35a3f
+1, 36864, 36864, 4608, 1534, 0xb0b35a3f
+2, 36864, 36864, 4608, 1531, 0x996458aa
+3, 36864, 36864, 4608, 1531, 0x996458aa
+4, 36864, 36864, 4608, 1534, 0xb0b35a3f
+5, 36864, 36864, 4608, 1534, 0xb0b35a3f
+6, 36864, 36864, 4608, 1534, 0xb0b35a3f
+0, 41472, 41472, 4608, 926, 0xc26a5eae
+1, 41472, 41472, 4608, 926, 0xc26a5eae
+2, 41472, 41472, 4608, 923, 0xa7225edf
+3, 41472, 41472, 4608, 923, 0xa7225edf
+4, 41472, 41472, 4608, 926, 0xc26a5eae
+5, 41472, 41472, 4608, 926, 0xc26a5eae
+6, 41472, 41472, 4608, 926, 0xc26a5eae
diff --git a/tests/ref/fate/iamf-stereo b/tests/ref/fate/iamf-stereo
new file mode 100644
index 0000000000..65d6b506d4
--- /dev/null
+++ b/tests/ref/fate/iamf-stereo
@@ -0,0 +1,18 @@
+ace731a4fbc302e24498d6b64daa16e7 *tests/data/fate/iamf-stereo.iamf
+14426 tests/data/fate/iamf-stereo.iamf
+#extradata 0: 34, 0x40a802c6
+#tb 0: 1/44100
+#media_type 0: audio
+#codec_id 0: flac
+#sample_rate 0: 44100
+#channel_layout_name 0: stereo
+0, 0, 0, 4608, 1399, 0x6e89566e
+0, 4608, 4608, 4608, 1442, 0x6c3c5b13
+0, 9216, 9216, 4608, 1380, 0xc497571b
+0, 13824, 13824, 4608, 1383, 0x48e9510f
+0, 18432, 18432, 4608, 1572, 0x9a514719
+0, 23040, 23040, 4608, 1391, 0x74ac5014
+0, 27648, 27648, 4608, 1422, 0x2f9d47c5
+0, 32256, 32256, 4608, 1768, 0x2a044b99
+0, 36864, 36864, 4608, 1534, 0xb0b35a3f
+0, 41472, 41472, 4608, 926, 0xc26a5eae
diff --git a/tests/streamgroups/audio_element-5_1_4 b/tests/streamgroups/audio_element-5_1_4
new file mode 100644
index 0000000000..f537d1dc5d
--- /dev/null
+++ b/tests/streamgroups/audio_element-5_1_4
@@ -0,0 +1,7 @@
+type=iamf_audio_element:id=1:st=0:st=1:st=2:st=3:st=4:st=5:default_w=10,
+demixing=dmixp_mode=1:parameter_id=998,
+recon_gain=parameter_id=101,
+layer=ch_layout=stereo,
+layer=ch_layout=5.1,
+layer=ch_layout=5.1.2,
+layer=ch_layout=5.1.4,
diff --git a/tests/streamgroups/audio_element-7_1_4 b/tests/streamgroups/audio_element-7_1_4
new file mode 100644
index 0000000000..67acd1ebfc
--- /dev/null
+++ b/tests/streamgroups/audio_element-7_1_4
@@ -0,0 +1,6 @@
+type=iamf_audio_element:id=1:st=0:st=1:st=2:st=3:st=4:st=5:st=6:default_w=10,
+demixing=dmixp_mode=1:parameter_id=998,recon_gain=parameter_id=101,
+layer=ch_layout=stereo,
+layer=ch_layout=3.1.2,
+layer=ch_layout=7.1.2,
+layer=ch_layout=7.1.4,
diff --git a/tests/streamgroups/audio_element-stereo b/tests/streamgroups/audio_element-stereo
new file mode 100644
index 0000000000..b10d73adc5
--- /dev/null
+++ b/tests/streamgroups/audio_element-stereo
@@ -0,0 +1,3 @@
+type=iamf_audio_element:id=1:st=0:default_w=10,demixing=dmixp_mode=1:parameter_id=998,
+recon_gain=parameter_id=101,
+layer=ch_layout=stereo,
diff --git a/tests/streamgroups/mix_presentation-5_1_4 b/tests/streamgroups/mix_presentation-5_1_4
new file mode 100644
index 0000000000..36fcd20124
--- /dev/null
+++ b/tests/streamgroups/mix_presentation-5_1_4
@@ -0,0 +1,2 @@
+type=iamf_mix_presentation:id=2:stg=0:annotations=en-us=Mix_Presentation,
+submix=parameter_id=100:parameter_rate=48000:default_mix_gain=1.0|element=stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix|layout=sound_system=stereo:integrated_loudness=1.0|layout=sound_system=5.1|layout=sound_system=5.1.2|layout=sound_system=5.1.4,
diff --git a/tests/streamgroups/mix_presentation-7_1_4 b/tests/streamgroups/mix_presentation-7_1_4
new file mode 100644
index 0000000000..eee67b28e8
--- /dev/null
+++ b/tests/streamgroups/mix_presentation-7_1_4
@@ -0,0 +1,2 @@
+type=iamf_mix_presentation:id=2:stg=0:annotations=en-us=Mix_Presentation,
+submix=parameter_id=100:parameter_rate=48000:default_mix_gain=1.0|element=stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix|layout=sound_system=stereo:integrated_loudness=1.0|layout=sound_system=3.1.2|layout=sound_system=7.1.2|layout=sound_system=7.1.4,
diff --git a/tests/streamgroups/mix_presentation-stereo b/tests/streamgroups/mix_presentation-stereo
new file mode 100644
index 0000000000..0ade6352ff
--- /dev/null
+++ b/tests/streamgroups/mix_presentation-stereo
@@ -0,0 +1,3 @@
+type=iamf_mix_presentation:id=2:stg=0:annotations=en-us=Mix_Presentation,
+submix=parameter_id=100:parameter_rate=48000:default_mix_gain=1.0|element=stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix|layout=sound_system=stereo:integrated_loudness=1.0,
+submix=parameter_id=100|element=stg=0:parameter_id=100:headphones_rendering_mode=binaural:default_mix_gain=1.0:annotations=en-us=Binaural_submix|layout=layout_type=binaural,
--
2.43.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-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/4] fftools/ffmpeg_opt: add a stream_group_script option
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 3/4] fftools/ffmpeg_opt: add a stream_group_script option James Almer
@ 2024-01-08 1:43 ` Steven Liu
2024-01-08 1:44 ` James Almer
0 siblings, 1 reply; 10+ messages in thread
From: Steven Liu @ 2024-01-08 1:43 UTC (permalink / raw)
To: FFmpeg development discussions and patches
James Almer <jamrial@gmail.com> 于2024年1月8日周一 05:31写道:
Hi James,
>
> Similar to filter_complex_script. Should make setting stream groups
> easier.
>
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> fftools/ffmpeg_mux_init.c | 2 +-
> fftools/ffmpeg_opt.c | 3 +++
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
> index 80109df0ae..1b42ac9a1d 100644
> --- a/fftools/ffmpeg_mux_init.c
> +++ b/fftools/ffmpeg_mux_init.c
> @@ -2301,7 +2301,7 @@ static int of_add_groups(Muxer *mux, const OptionsContext *o)
> char *str, *ptr = NULL;
> int ret = 0;
>
> - str = av_strdup(o->stream_groups.opt[i].u.str);
> + str = av_strireplace(o->stream_groups.opt[i].u.str, "\n", "");
> if (!str)
> return ret;
>
> diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
> index 7ae1b55cf0..7347fcbd31 100644
> --- a/fftools/ffmpeg_opt.c
> +++ b/fftools/ffmpeg_opt.c
> @@ -1508,6 +1508,9 @@ const OptionDef options[] = {
> { "stream_group", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT,
> { .off = OFFSET(stream_groups) },
> "add stream group with specified streams and group type-specific arguments", "id=number:st=number..." },
> + { "stream_group_script", OPT_TYPE_FILE, OPT_SPEC | OPT_OUTPUT,
added documentation about this option yet?
> + { .off = OFFSET(stream_groups) },
> + "read stream group with specified streams and group type-specific arguments from a file", "filename" },
> { "dframes", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_PERFILE | OPT_EXPERT | OPT_OUTPUT | OPT_HAS_CANON,
> { .func_arg = opt_data_frames },
> "set the number of data frames to output", "number",
> --
> 2.43.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-request@ffmpeg.org with subject "unsubscribe".
Thanks
Steven
_______________________________________________
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".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/4] fftools/ffmpeg_opt: add a stream_group_script option
2024-01-08 1:43 ` Steven Liu
@ 2024-01-08 1:44 ` James Almer
0 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-01-08 1:44 UTC (permalink / raw)
To: ffmpeg-devel
On 1/7/2024 10:43 PM, Steven Liu wrote:
> James Almer <jamrial@gmail.com> 于2024年1月8日周一 05:31写道:
> Hi James,
>>
>> Similar to filter_complex_script. Should make setting stream groups
>> easier.
>>
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> fftools/ffmpeg_mux_init.c | 2 +-
>> fftools/ffmpeg_opt.c | 3 +++
>> 2 files changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
>> index 80109df0ae..1b42ac9a1d 100644
>> --- a/fftools/ffmpeg_mux_init.c
>> +++ b/fftools/ffmpeg_mux_init.c
>> @@ -2301,7 +2301,7 @@ static int of_add_groups(Muxer *mux, const OptionsContext *o)
>> char *str, *ptr = NULL;
>> int ret = 0;
>>
>> - str = av_strdup(o->stream_groups.opt[i].u.str);
>> + str = av_strireplace(o->stream_groups.opt[i].u.str, "\n", "");
>> if (!str)
>> return ret;
>>
>> diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
>> index 7ae1b55cf0..7347fcbd31 100644
>> --- a/fftools/ffmpeg_opt.c
>> +++ b/fftools/ffmpeg_opt.c
>> @@ -1508,6 +1508,9 @@ const OptionDef options[] = {
>> { "stream_group", OPT_TYPE_STRING, OPT_SPEC | OPT_OUTPUT,
>> { .off = OFFSET(stream_groups) },
>> "add stream group with specified streams and group type-specific arguments", "id=number:st=number..." },
>> + { "stream_group_script", OPT_TYPE_FILE, OPT_SPEC | OPT_OUTPUT,
> added documentation about this option yet?
Will add before pushing.
>> + { .off = OFFSET(stream_groups) },
>> + "read stream group with specified streams and group type-specific arguments from a file", "filename" },
>> { "dframes", OPT_TYPE_FUNC, OPT_FUNC_ARG | OPT_PERFILE | OPT_EXPERT | OPT_OUTPUT | OPT_HAS_CANON,
>> { .func_arg = opt_data_frames },
>> "set the number of data frames to output", "number",
>> --
>> 2.43.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-request@ffmpeg.org with subject "unsubscribe".
>
> Thanks
> Steven
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests
2024-01-07 21:31 ` [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests James Almer
@ 2024-01-10 3:05 ` Michael Niedermayer
2024-01-10 12:52 ` James Almer
0 siblings, 1 reply; 10+ messages in thread
From: Michael Niedermayer @ 2024-01-10 3:05 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 3830 bytes --]
On Sun, Jan 07, 2024 at 06:31:00PM -0300, James Almer wrote:
> Covers muxing from raw pcm audio input into FLAC, using several scalable layouts,
> and demuxing the result.
>
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> tests/Makefile | 7 +-
> tests/fate/iamf.mak | 31 ++++++
> tests/filtergraphs/iamf_5_1 | 4 +
> tests/filtergraphs/iamf_5_1_2 | 5 +
> tests/filtergraphs/iamf_5_1_4 | 6 ++
> tests/filtergraphs/iamf_7_1_4 | 7 ++
> tests/ref/fate/iamf-5_1_4 | 98 ++++++++++++++++++
> tests/ref/fate/iamf-7_1_4 | 114 +++++++++++++++++++++
> tests/ref/fate/iamf-stereo | 18 ++++
> tests/streamgroups/audio_element-5_1_4 | 7 ++
> tests/streamgroups/audio_element-7_1_4 | 6 ++
> tests/streamgroups/audio_element-stereo | 3 +
> tests/streamgroups/mix_presentation-5_1_4 | 2 +
> tests/streamgroups/mix_presentation-7_1_4 | 2 +
> tests/streamgroups/mix_presentation-stereo | 3 +
> 15 files changed, 312 insertions(+), 1 deletion(-)
> create mode 100644 tests/fate/iamf.mak
> create mode 100644 tests/filtergraphs/iamf_5_1
> create mode 100644 tests/filtergraphs/iamf_5_1_2
> create mode 100644 tests/filtergraphs/iamf_5_1_4
> create mode 100644 tests/filtergraphs/iamf_7_1_4
> create mode 100644 tests/ref/fate/iamf-5_1_4
> create mode 100644 tests/ref/fate/iamf-7_1_4
> create mode 100644 tests/ref/fate/iamf-stereo
> create mode 100644 tests/streamgroups/audio_element-5_1_4
> create mode 100644 tests/streamgroups/audio_element-7_1_4
> create mode 100644 tests/streamgroups/audio_element-stereo
> create mode 100644 tests/streamgroups/mix_presentation-5_1_4
> create mode 100644 tests/streamgroups/mix_presentation-7_1_4
> create mode 100644 tests/streamgroups/mix_presentation-stereo
Iam probably missing some dependancies but, reporting anyway
this fails fate:
[aist#0:0/pcm_s16le @ 0x5645f5820680] Guessed Channel Layout: stereo
Input #0, wav, from 'ffmpeg/tests/data/asynth-44100-2.wav':
Duration: 00:00:06.00, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
[in#0/wav @ 0x5645f5812400] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
[out#0/iamf @ 0x5645f585af80] Codec AVOption dct (DCT algorithm) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
[out#0/iamf @ 0x5645f585af80] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
[out#0/iamf @ 0x5645f585af80] Invalid or missing stream group index in submix element specification "stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix"
Error opening output file ffmpeg/tests/data/fate/iamf-stereo.iamf.
Error opening output files: Invalid argument
threads=1
tests/Makefile:317: recipe for target 'fate-iamf-stereo' failed
make: *** [fate-iamf-stereo] Error 234
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Its not that you shouldnt use gotos but rather that you should write
readable code and code with gotos often but not always is less readable
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: 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".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests
2024-01-10 3:05 ` Michael Niedermayer
@ 2024-01-10 12:52 ` James Almer
2024-01-11 3:17 ` Michael Niedermayer
0 siblings, 1 reply; 10+ messages in thread
From: James Almer @ 2024-01-10 12:52 UTC (permalink / raw)
To: ffmpeg-devel
On 1/10/2024 12:05 AM, Michael Niedermayer wrote:
> On Sun, Jan 07, 2024 at 06:31:00PM -0300, James Almer wrote:
>> Covers muxing from raw pcm audio input into FLAC, using several scalable layouts,
>> and demuxing the result.
>>
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> tests/Makefile | 7 +-
>> tests/fate/iamf.mak | 31 ++++++
>> tests/filtergraphs/iamf_5_1 | 4 +
>> tests/filtergraphs/iamf_5_1_2 | 5 +
>> tests/filtergraphs/iamf_5_1_4 | 6 ++
>> tests/filtergraphs/iamf_7_1_4 | 7 ++
>> tests/ref/fate/iamf-5_1_4 | 98 ++++++++++++++++++
>> tests/ref/fate/iamf-7_1_4 | 114 +++++++++++++++++++++
>> tests/ref/fate/iamf-stereo | 18 ++++
>> tests/streamgroups/audio_element-5_1_4 | 7 ++
>> tests/streamgroups/audio_element-7_1_4 | 6 ++
>> tests/streamgroups/audio_element-stereo | 3 +
>> tests/streamgroups/mix_presentation-5_1_4 | 2 +
>> tests/streamgroups/mix_presentation-7_1_4 | 2 +
>> tests/streamgroups/mix_presentation-stereo | 3 +
>> 15 files changed, 312 insertions(+), 1 deletion(-)
>> create mode 100644 tests/fate/iamf.mak
>> create mode 100644 tests/filtergraphs/iamf_5_1
>> create mode 100644 tests/filtergraphs/iamf_5_1_2
>> create mode 100644 tests/filtergraphs/iamf_5_1_4
>> create mode 100644 tests/filtergraphs/iamf_7_1_4
>> create mode 100644 tests/ref/fate/iamf-5_1_4
>> create mode 100644 tests/ref/fate/iamf-7_1_4
>> create mode 100644 tests/ref/fate/iamf-stereo
>> create mode 100644 tests/streamgroups/audio_element-5_1_4
>> create mode 100644 tests/streamgroups/audio_element-7_1_4
>> create mode 100644 tests/streamgroups/audio_element-stereo
>> create mode 100644 tests/streamgroups/mix_presentation-5_1_4
>> create mode 100644 tests/streamgroups/mix_presentation-7_1_4
>> create mode 100644 tests/streamgroups/mix_presentation-stereo
>
> Iam probably missing some dependancies but, reporting anyway
> this fails fate:
>
> [aist#0:0/pcm_s16le @ 0x5645f5820680] Guessed Channel Layout: stereo
> Input #0, wav, from 'ffmpeg/tests/data/asynth-44100-2.wav':
> Duration: 00:00:06.00, bitrate: 1411 kb/s
> Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
> [in#0/wav @ 0x5645f5812400] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
> [out#0/iamf @ 0x5645f585af80] Codec AVOption dct (DCT algorithm) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
> [out#0/iamf @ 0x5645f585af80] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
> [out#0/iamf @ 0x5645f585af80] Invalid or missing stream group index in submix element specification "stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix"
> Error opening output file ffmpeg/tests/data/fate/iamf-stereo.iamf.
> Error opening output files: Invalid argument
> threads=1
> tests/Makefile:317: recipe for target 'fate-iamf-stereo' failed
> make: *** [fate-iamf-stereo] Error 234
>
> thx
I can't reproduce this. Tried with these four patches using current
master and it works.
Could it be strtoll misbehaving? Can you check what values are in idx,
oc->nb_stream_groups, and endptr?
_______________________________________________
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".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests
2024-01-10 12:52 ` James Almer
@ 2024-01-11 3:17 ` Michael Niedermayer
2024-01-11 12:02 ` James Almer
0 siblings, 1 reply; 10+ messages in thread
From: Michael Niedermayer @ 2024-01-11 3:17 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 7691 bytes --]
On Wed, Jan 10, 2024 at 09:52:28AM -0300, James Almer wrote:
> On 1/10/2024 12:05 AM, Michael Niedermayer wrote:
> > On Sun, Jan 07, 2024 at 06:31:00PM -0300, James Almer wrote:
> > > Covers muxing from raw pcm audio input into FLAC, using several scalable layouts,
> > > and demuxing the result.
> > >
> > > Signed-off-by: James Almer <jamrial@gmail.com>
> > > ---
> > > tests/Makefile | 7 +-
> > > tests/fate/iamf.mak | 31 ++++++
> > > tests/filtergraphs/iamf_5_1 | 4 +
> > > tests/filtergraphs/iamf_5_1_2 | 5 +
> > > tests/filtergraphs/iamf_5_1_4 | 6 ++
> > > tests/filtergraphs/iamf_7_1_4 | 7 ++
> > > tests/ref/fate/iamf-5_1_4 | 98 ++++++++++++++++++
> > > tests/ref/fate/iamf-7_1_4 | 114 +++++++++++++++++++++
> > > tests/ref/fate/iamf-stereo | 18 ++++
> > > tests/streamgroups/audio_element-5_1_4 | 7 ++
> > > tests/streamgroups/audio_element-7_1_4 | 6 ++
> > > tests/streamgroups/audio_element-stereo | 3 +
> > > tests/streamgroups/mix_presentation-5_1_4 | 2 +
> > > tests/streamgroups/mix_presentation-7_1_4 | 2 +
> > > tests/streamgroups/mix_presentation-stereo | 3 +
> > > 15 files changed, 312 insertions(+), 1 deletion(-)
> > > create mode 100644 tests/fate/iamf.mak
> > > create mode 100644 tests/filtergraphs/iamf_5_1
> > > create mode 100644 tests/filtergraphs/iamf_5_1_2
> > > create mode 100644 tests/filtergraphs/iamf_5_1_4
> > > create mode 100644 tests/filtergraphs/iamf_7_1_4
> > > create mode 100644 tests/ref/fate/iamf-5_1_4
> > > create mode 100644 tests/ref/fate/iamf-7_1_4
> > > create mode 100644 tests/ref/fate/iamf-stereo
> > > create mode 100644 tests/streamgroups/audio_element-5_1_4
> > > create mode 100644 tests/streamgroups/audio_element-7_1_4
> > > create mode 100644 tests/streamgroups/audio_element-stereo
> > > create mode 100644 tests/streamgroups/mix_presentation-5_1_4
> > > create mode 100644 tests/streamgroups/mix_presentation-7_1_4
> > > create mode 100644 tests/streamgroups/mix_presentation-stereo
> >
> > Iam probably missing some dependancies but, reporting anyway
> > this fails fate:
> >
> > [aist#0:0/pcm_s16le @ 0x5645f5820680] Guessed Channel Layout: stereo
> > Input #0, wav, from 'ffmpeg/tests/data/asynth-44100-2.wav':
> > Duration: 00:00:06.00, bitrate: 1411 kb/s
> > Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
> > [in#0/wav @ 0x5645f5812400] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
> > [out#0/iamf @ 0x5645f585af80] Codec AVOption dct (DCT algorithm) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
> > [out#0/iamf @ 0x5645f585af80] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
> > [out#0/iamf @ 0x5645f585af80] Invalid or missing stream group index in submix element specification "stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix"
> > Error opening output file ffmpeg/tests/data/fate/iamf-stereo.iamf.
> > Error opening output files: Invalid argument
> > threads=1
> > tests/Makefile:317: recipe for target 'fate-iamf-stereo' failed
> > make: *** [fate-iamf-stereo] Error 234
> >
> > thx
>
> I can't reproduce this. Tried with these four patches using current master
> and it works.
> Could it be strtoll misbehaving? Can you check what values are in idx,
> oc->nb_stream_groups, and endptr?
didnt had time to look its 4am i need to eat and go to bed :)
but a quick test with this:
diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
index 1b42ac9a1d7..224e9e8268e 100644
--- a/fftools/ffmpeg_mux_init.c
+++ b/fftools/ffmpeg_mux_init.c
@@ -2113,8 +2113,10 @@ static int of_parse_iamf_submixes(Muxer *mux, AVStreamGroup *stg, char *ptr)
char *endptr = NULL;
int64_t idx = -1;
- if (e = av_dict_get(dict, "stg", NULL, 0))
+ if (e = av_dict_get(dict, "stg", NULL, 0)) {
idx = strtoll(e->value, &endptr, 0);
+ av_log(0,0, "B idx:%"PRId64" NSG:%d endptr: %p endptr:%s value:%s\n", idx, oc->nb_stream_groups, endptr, endptr, e->value);
+ }
av_dict_set(&dict, "stg", NULL, 0);
if (!endptr || *endptr || idx < 0 || idx >= oc->nb_stream_groups - 1 ||
oc->stream_groups[idx]->type != AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT) {
@@ -2245,6 +2247,7 @@ static int of_parse_group_token(Muxer *mux, const char *token, char *ptr)
while (e = av_dict_get(dict, "stg", e, 0)) {
char *endptr;
int64_t idx = strtoll(e->value, &endptr, 0);
+ av_log(0,0, "idx:%"PRId64" NSG:%d endptr:%s\n", idx, oc->nb_stream_groups, endptr);
if (*endptr || idx < 0 || idx >= oc->nb_stream_groups - 1) {
av_log(mux, AV_LOG_ERROR, "Invalid stream group index %"PRId64"\n", idx);
ret = AVERROR(EINVAL);
i get:
[aist#0:0/pcm_s16le @ 0x55ae216e6680] Guessed Channel Layout: stereo
Input #0, wav, from 'ffmpeg/tests/data/asynth-44100-2.wav':
Duration: 00:00:06.00, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
[in#0/wav @ 0x55ae216d8400] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
[out#0/iamf @ 0x55ae21720f80] Codec AVOption dct (DCT algorithm) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
[out#0/iamf @ 0x55ae21720f80] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
idx:0 NSG:2 endptr:
B idx:0 NSG:2 endptr: 0x55ae21728b81 endptr: value:0
[out#0/iamf @ 0x55ae21720f80] Invalid or missing stream group index in submix element specification "stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix"
Error opening output file ffmpeg/tests/data/fate/iamf-stereo.iamf.
Error opening output files: Invalid argument
threads=1
tests/Makefile:317: recipe for target 'fate-iamf-stereo' failed
make: *** [fate-iamf-stereo] Error 234
i also see other failures:
make: *** [fate-iamf-stereo] Error 234
make: *** [fate-iamf-5_1_4] Error 234
make: *** [fate-iamf-7_1_4] Error 234
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
He who knows, does not speak. He who speaks, does not know. -- Lao Tsu
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: 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".
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests
2024-01-11 3:17 ` Michael Niedermayer
@ 2024-01-11 12:02 ` James Almer
0 siblings, 0 replies; 10+ messages in thread
From: James Almer @ 2024-01-11 12:02 UTC (permalink / raw)
To: ffmpeg-devel
On 1/11/2024 12:17 AM, Michael Niedermayer wrote:
> On Wed, Jan 10, 2024 at 09:52:28AM -0300, James Almer wrote:
>> On 1/10/2024 12:05 AM, Michael Niedermayer wrote:
>>> On Sun, Jan 07, 2024 at 06:31:00PM -0300, James Almer wrote:
>>>> Covers muxing from raw pcm audio input into FLAC, using several scalable layouts,
>>>> and demuxing the result.
>>>>
>>>> Signed-off-by: James Almer <jamrial@gmail.com>
>>>> ---
>>>> tests/Makefile | 7 +-
>>>> tests/fate/iamf.mak | 31 ++++++
>>>> tests/filtergraphs/iamf_5_1 | 4 +
>>>> tests/filtergraphs/iamf_5_1_2 | 5 +
>>>> tests/filtergraphs/iamf_5_1_4 | 6 ++
>>>> tests/filtergraphs/iamf_7_1_4 | 7 ++
>>>> tests/ref/fate/iamf-5_1_4 | 98 ++++++++++++++++++
>>>> tests/ref/fate/iamf-7_1_4 | 114 +++++++++++++++++++++
>>>> tests/ref/fate/iamf-stereo | 18 ++++
>>>> tests/streamgroups/audio_element-5_1_4 | 7 ++
>>>> tests/streamgroups/audio_element-7_1_4 | 6 ++
>>>> tests/streamgroups/audio_element-stereo | 3 +
>>>> tests/streamgroups/mix_presentation-5_1_4 | 2 +
>>>> tests/streamgroups/mix_presentation-7_1_4 | 2 +
>>>> tests/streamgroups/mix_presentation-stereo | 3 +
>>>> 15 files changed, 312 insertions(+), 1 deletion(-)
>>>> create mode 100644 tests/fate/iamf.mak
>>>> create mode 100644 tests/filtergraphs/iamf_5_1
>>>> create mode 100644 tests/filtergraphs/iamf_5_1_2
>>>> create mode 100644 tests/filtergraphs/iamf_5_1_4
>>>> create mode 100644 tests/filtergraphs/iamf_7_1_4
>>>> create mode 100644 tests/ref/fate/iamf-5_1_4
>>>> create mode 100644 tests/ref/fate/iamf-7_1_4
>>>> create mode 100644 tests/ref/fate/iamf-stereo
>>>> create mode 100644 tests/streamgroups/audio_element-5_1_4
>>>> create mode 100644 tests/streamgroups/audio_element-7_1_4
>>>> create mode 100644 tests/streamgroups/audio_element-stereo
>>>> create mode 100644 tests/streamgroups/mix_presentation-5_1_4
>>>> create mode 100644 tests/streamgroups/mix_presentation-7_1_4
>>>> create mode 100644 tests/streamgroups/mix_presentation-stereo
>>>
>>> Iam probably missing some dependancies but, reporting anyway
>>> this fails fate:
>>>
>>> [aist#0:0/pcm_s16le @ 0x5645f5820680] Guessed Channel Layout: stereo
>>> Input #0, wav, from 'ffmpeg/tests/data/asynth-44100-2.wav':
>>> Duration: 00:00:06.00, bitrate: 1411 kb/s
>>> Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
>>> [in#0/wav @ 0x5645f5812400] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
>>> [out#0/iamf @ 0x5645f585af80] Codec AVOption dct (DCT algorithm) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
>>> [out#0/iamf @ 0x5645f585af80] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
>>> [out#0/iamf @ 0x5645f585af80] Invalid or missing stream group index in submix element specification "stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix"
>>> Error opening output file ffmpeg/tests/data/fate/iamf-stereo.iamf.
>>> Error opening output files: Invalid argument
>>> threads=1
>>> tests/Makefile:317: recipe for target 'fate-iamf-stereo' failed
>>> make: *** [fate-iamf-stereo] Error 234
>>>
>>> thx
>>
>> I can't reproduce this. Tried with these four patches using current master
>> and it works.
>> Could it be strtoll misbehaving? Can you check what values are in idx,
>> oc->nb_stream_groups, and endptr?
>
> didnt had time to look its 4am i need to eat and go to bed :)
> but a quick test with this:
> diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
> index 1b42ac9a1d7..224e9e8268e 100644
> --- a/fftools/ffmpeg_mux_init.c
> +++ b/fftools/ffmpeg_mux_init.c
> @@ -2113,8 +2113,10 @@ static int of_parse_iamf_submixes(Muxer *mux, AVStreamGroup *stg, char *ptr)
> char *endptr = NULL;
> int64_t idx = -1;
>
> - if (e = av_dict_get(dict, "stg", NULL, 0))
> + if (e = av_dict_get(dict, "stg", NULL, 0)) {
> idx = strtoll(e->value, &endptr, 0);
> + av_log(0,0, "B idx:%"PRId64" NSG:%d endptr: %p endptr:%s value:%s\n", idx, oc->nb_stream_groups, endptr, endptr, e->value);
> + }
> av_dict_set(&dict, "stg", NULL, 0);
I guess this called before the checks is what's wrong.
> if (!endptr || *endptr || idx < 0 || idx >= oc->nb_stream_groups - 1 ||
> oc->stream_groups[idx]->type != AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT) {
> @@ -2245,6 +2247,7 @@ static int of_parse_group_token(Muxer *mux, const char *token, char *ptr)
> while (e = av_dict_get(dict, "stg", e, 0)) {
> char *endptr;
> int64_t idx = strtoll(e->value, &endptr, 0);
> + av_log(0,0, "idx:%"PRId64" NSG:%d endptr:%s\n", idx, oc->nb_stream_groups, endptr);
> if (*endptr || idx < 0 || idx >= oc->nb_stream_groups - 1) {
> av_log(mux, AV_LOG_ERROR, "Invalid stream group index %"PRId64"\n", idx);
> ret = AVERROR(EINVAL);
>
>
> i get:
> [aist#0:0/pcm_s16le @ 0x55ae216e6680] Guessed Channel Layout: stereo
> Input #0, wav, from 'ffmpeg/tests/data/asynth-44100-2.wav':
> Duration: 00:00:06.00, bitrate: 1411 kb/s
> Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
> [in#0/wav @ 0x55ae216d8400] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some decoder which was not actually used for any stream.
> [out#0/iamf @ 0x55ae21720f80] Codec AVOption dct (DCT algorithm) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
> [out#0/iamf @ 0x55ae21720f80] Codec AVOption idct (select IDCT implementation) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
> idx:0 NSG:2 endptr:
> B idx:0 NSG:2 endptr: 0x55ae21728b81 endptr: value:0
> [out#0/iamf @ 0x55ae21720f80] Invalid or missing stream group index in submix element specification "stg=0:parameter_id=100:headphones_rendering_mode=stereo:annotations=en-us=Scalable_Submix"
> Error opening output file ffmpeg/tests/data/fate/iamf-stereo.iamf.
> Error opening output files: Invalid argument
> threads=1
> tests/Makefile:317: recipe for target 'fate-iamf-stereo' failed
> make: *** [fate-iamf-stereo] Error 234
>
> i also see other failures:
> make: *** [fate-iamf-stereo] Error 234
> make: *** [fate-iamf-5_1_4] Error 234
> make: *** [fate-iamf-7_1_4] Error 234
>
> thx
>
> [...]
>
>
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-01-11 12:02 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-07 21:30 [FFmpeg-devel] [PATCH 1/4] avformat/iamfenc: don't write empty packets James Almer
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 2/4] fftools/cmdutils: add OPT_TYPE_FILE James Almer
2024-01-07 21:30 ` [FFmpeg-devel] [PATCH 3/4] fftools/ffmpeg_opt: add a stream_group_script option James Almer
2024-01-08 1:43 ` Steven Liu
2024-01-08 1:44 ` James Almer
2024-01-07 21:31 ` [FFmpeg-devel] [PATCH 4/4] fate: add raw IAMF tests James Almer
2024-01-10 3:05 ` Michael Niedermayer
2024-01-10 12:52 ` James Almer
2024-01-11 3:17 ` Michael Niedermayer
2024-01-11 12:02 ` James Almer
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