diff mbox series

[FFmpeg-devel,v1,1/3] tests/fate/flvenc: add hevc in enhanced flv test case

Message ID 20230718073214.14415-2-lq@chinaffmpeg.org
State New
Headers show
Series Add test cases of hevc, vp9, av1 in enhanced flv | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Liu Steven July 18, 2023, 7:32 a.m. UTC
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
---
 tests/fate/flvenc.mak            | 11 +++++++++++
 tests/ref/fate/enhanced-flv-hevc |  6 ++++++
 2 files changed, 17 insertions(+)
 create mode 100644 tests/ref/fate/enhanced-flv-hevc

Comments

Anton Khirnov July 18, 2023, 9:50 a.m. UTC | #1
Quoting Steven Liu (2023-07-18 09:32:12)
> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> ---
>  tests/fate/flvenc.mak            | 11 +++++++++++
>  tests/ref/fate/enhanced-flv-hevc |  6 ++++++
>  2 files changed, 17 insertions(+)
>  create mode 100644 tests/ref/fate/enhanced-flv-hevc
> 
> diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
> index 5032fface3..a0af45e1a8 100644
> --- a/tests/fate/flvenc.mak
> +++ b/tests/fate/flvenc.mak
> @@ -1,5 +1,16 @@
>  FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, FLV, FLV, RAWVIDEO_DECODER SCALE_FILTER TESTSRC_FILTER LAVFI_INDEV) += fate-flv-add_keyframe_index
>  fate-flv-add_keyframe_index: CMD = transcode "lavfi -graph testsrc=r=7:n=2:d=20" "foo" flv "-vf scale -c:v flv1 -dct int -g 7 -flvflags add_keyframe_index" "-c copy -t 0.1" "-show_entries format_tags"
>  
> +
> +tests/data/enhanced_flv_hevc.flv: TAG = GEN
> +tests/data/enhanced_flv_hevc.flv: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
> +	$(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
> +         -f lavfi -i "testsrc=s=176x144:r=1:n=1:d=0.04"
 -filter_complex "testsrc=s=176x144:r=1:n=1:d=0.04"

>-threads 1

 why?

> -t 0.04
  seems like you mean -frames 1
Steven Liu July 18, 2023, 9:54 a.m. UTC | #2
Anton Khirnov <anton@khirnov.net> 于2023年7月18日周二 17:50写道:
>
> Quoting Steven Liu (2023-07-18 09:32:12)
> > Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> > ---
> >  tests/fate/flvenc.mak            | 11 +++++++++++
> >  tests/ref/fate/enhanced-flv-hevc |  6 ++++++
> >  2 files changed, 17 insertions(+)
> >  create mode 100644 tests/ref/fate/enhanced-flv-hevc
> >
> > diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
> > index 5032fface3..a0af45e1a8 100644
> > --- a/tests/fate/flvenc.mak
> > +++ b/tests/fate/flvenc.mak
> > @@ -1,5 +1,16 @@
> >  FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, FLV, FLV, RAWVIDEO_DECODER SCALE_FILTER TESTSRC_FILTER LAVFI_INDEV) += fate-flv-add_keyframe_index
> >  fate-flv-add_keyframe_index: CMD = transcode "lavfi -graph testsrc=r=7:n=2:d=20" "foo" flv "-vf scale -c:v flv1 -dct int -g 7 -flvflags add_keyframe_index" "-c copy -t 0.1" "-show_entries format_tags"
> >
> > +
> > +tests/data/enhanced_flv_hevc.flv: TAG = GEN
> > +tests/data/enhanced_flv_hevc.flv: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
> > +     $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
> > +         -f lavfi -i "testsrc=s=176x144:r=1:n=1:d=0.04"
>  -filter_complex "testsrc=s=176x144:r=1:n=1:d=0.04"
>
> >-threads 1
>
>  why?
thread type maybe have slice , frame, i cannot sure some times about
the framecrc is only one result after encode operation.
>
> > -t 0.04
>   seems like you mean -frames 1
fix locally.
>
> --
> Anton Khirnov
> _______________________________________________
> 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".
Andreas Rheinhardt July 18, 2023, 11:36 a.m. UTC | #3
Steven Liu:
> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> ---
>  tests/fate/flvenc.mak            | 11 +++++++++++
>  tests/ref/fate/enhanced-flv-hevc |  6 ++++++
>  2 files changed, 17 insertions(+)
>  create mode 100644 tests/ref/fate/enhanced-flv-hevc
> 
> diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
> index 5032fface3..a0af45e1a8 100644
> --- a/tests/fate/flvenc.mak
> +++ b/tests/fate/flvenc.mak
> @@ -1,5 +1,16 @@
>  FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, FLV, FLV, RAWVIDEO_DECODER SCALE_FILTER TESTSRC_FILTER LAVFI_INDEV) += fate-flv-add_keyframe_index
>  fate-flv-add_keyframe_index: CMD = transcode "lavfi -graph testsrc=r=7:n=2:d=20" "foo" flv "-vf scale -c:v flv1 -dct int -g 7 -flvflags add_keyframe_index" "-c copy -t 0.1" "-show_entries format_tags"
>  
> +
> +tests/data/enhanced_flv_hevc.flv: TAG = GEN
> +tests/data/enhanced_flv_hevc.flv: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
> +	$(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
> +			-f lavfi -i "testsrc=s=176x144:r=1:n=1:d=0.04" -pix_fmt yuv420p -c:v libx265 -bf 0 -threads 1 -t 0.04 -y $(TARGET_PATH)/tests/data/enhanced_flv_hevc.flv 2>/dev/null
> +

This will encode using libx265 which is beyond our control (and has
issues with Valgrind). This would only work if the codec were lossless;
but your command line isn't.

Anyway, you should instead just use any of our hevc samples and remux it
to flv and read the resulting file. There are lots of examples of how to
do this that also avoid keeping the intermediate file around.

The other two patches have the same issues.

> +FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, LIBX265 HEVC, FLV, TESTSRC_FILTER LAVFI_INDEV) += fate-enhanced-flv-hevc
> +fate-enhanced-flv-hevc: tests/data/enhanced_flv_hevc.flv
> +fate-enhanced-flv-hevc: SRC = $(TARGET_PATH)/tests/data/enhanced_flv_hevc.flv
> +fate-enhanced-flv-hevc: CMD = framecrc -auto_conversion_filters -flags +bitexact -i $(TARGET_PATH)/tests/data/enhanced_flv_hevc.flv
> +
>  FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
>  fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
> diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
> new file mode 100644
> index 0000000000..ee53ccf982
> --- /dev/null
> +++ b/tests/ref/fate/enhanced-flv-hevc
> @@ -0,0 +1,6 @@
> +#tb 0: 1/1
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 176x144
> +#sar 0: 1/1
> +0,          0,          0,        1,    38016, 0x01bce789
Steven Liu July 19, 2023, 9:11 a.m. UTC | #4
Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2023年7月18日周二 19:35写道:
>
> Steven Liu:
> > Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> > ---
> >  tests/fate/flvenc.mak            | 11 +++++++++++
> >  tests/ref/fate/enhanced-flv-hevc |  6 ++++++
> >  2 files changed, 17 insertions(+)
> >  create mode 100644 tests/ref/fate/enhanced-flv-hevc
> >
> > diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
> > index 5032fface3..a0af45e1a8 100644
> > --- a/tests/fate/flvenc.mak
> > +++ b/tests/fate/flvenc.mak
> > @@ -1,5 +1,16 @@
> >  FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, FLV, FLV, RAWVIDEO_DECODER SCALE_FILTER TESTSRC_FILTER LAVFI_INDEV) += fate-flv-add_keyframe_index
> >  fate-flv-add_keyframe_index: CMD = transcode "lavfi -graph testsrc=r=7:n=2:d=20" "foo" flv "-vf scale -c:v flv1 -dct int -g 7 -flvflags add_keyframe_index" "-c copy -t 0.1" "-show_entries format_tags"
> >
> > +
> > +tests/data/enhanced_flv_hevc.flv: TAG = GEN
> > +tests/data/enhanced_flv_hevc.flv: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
> > +     $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
> > +                     -f lavfi -i "testsrc=s=176x144:r=1:n=1:d=0.04" -pix_fmt yuv420p -c:v libx265 -bf 0 -threads 1 -t 0.04 -y $(TARGET_PATH)/tests/data/enhanced_flv_hevc.flv 2>/dev/null
> > +
>
> This will encode using libx265 which is beyond our control (and has
> issues with Valgrind). This would only work if the codec were lossless;
> but your command line isn't.
>
> Anyway, you should instead just use any of our hevc samples and remux it
> to flv and read the resulting file. There are lots of examples of how to
> do this that also avoid keeping the intermediate file around.
>
> The other two patches have the same issues.

Thanks Nicolas, i have modified the patchset try to use the samples
now, and resumit patchset :
https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=9350

Thanks
Steven
diff mbox series

Patch

diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
index 5032fface3..a0af45e1a8 100644
--- a/tests/fate/flvenc.mak
+++ b/tests/fate/flvenc.mak
@@ -1,5 +1,16 @@ 
 FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, FLV, FLV, RAWVIDEO_DECODER SCALE_FILTER TESTSRC_FILTER LAVFI_INDEV) += fate-flv-add_keyframe_index
 fate-flv-add_keyframe_index: CMD = transcode "lavfi -graph testsrc=r=7:n=2:d=20" "foo" flv "-vf scale -c:v flv1 -dct int -g 7 -flvflags add_keyframe_index" "-c copy -t 0.1" "-show_entries format_tags"
 
+
+tests/data/enhanced_flv_hevc.flv: TAG = GEN
+tests/data/enhanced_flv_hevc.flv: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
+	$(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
+			-f lavfi -i "testsrc=s=176x144:r=1:n=1:d=0.04" -pix_fmt yuv420p -c:v libx265 -bf 0 -threads 1 -t 0.04 -y $(TARGET_PATH)/tests/data/enhanced_flv_hevc.flv 2>/dev/null
+
+FATE_FLVENC_FFMPEG_FFPROBE-$(call TRANSCODE, LIBX265 HEVC, FLV, TESTSRC_FILTER LAVFI_INDEV) += fate-enhanced-flv-hevc
+fate-enhanced-flv-hevc: tests/data/enhanced_flv_hevc.flv
+fate-enhanced-flv-hevc: SRC = $(TARGET_PATH)/tests/data/enhanced_flv_hevc.flv
+fate-enhanced-flv-hevc: CMD = framecrc -auto_conversion_filters -flags +bitexact -i $(TARGET_PATH)/tests/data/enhanced_flv_hevc.flv
+
 FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
 fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
new file mode 100644
index 0000000000..ee53ccf982
--- /dev/null
+++ b/tests/ref/fate/enhanced-flv-hevc
@@ -0,0 +1,6 @@ 
+#tb 0: 1/1
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 176x144
+#sar 0: 1/1
+0,          0,          0,        1,    38016, 0x01bce789