diff mbox series

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

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

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Liu Steven July 19, 2023, 9:03 a.m. UTC
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
---
 tests/fate/flvenc.mak            | 7 ++++++-
 tests/ref/fate/enhanced-flv-hevc | 8 ++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 tests/ref/fate/enhanced-flv-hevc

Comments

Andreas Rheinhardt July 19, 2023, 10:33 a.m. UTC | #1
Steven Liu:
> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> ---
>  tests/fate/flvenc.mak            | 7 ++++++-
>  tests/ref/fate/enhanced-flv-hevc | 8 ++++++++
>  2 files changed, 14 insertions(+), 1 deletion(-)
>  create mode 100644 tests/ref/fate/enhanced-flv-hevc
> 
> diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
> index 5032fface3..6b2fbe8c89 100644
> --- a/tests/fate/flvenc.mak
> +++ b/tests/fate/flvenc.mak
> @@ -1,5 +1,10 @@
>  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"
>  
> +FATE_ENHANCED_FLVENC_FFMPEG-$(call REMUX, MOV, FLV_MUXER) += fate-enhanced-flv-hevc
> +fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
> +		flv "-vcodec copy -map 0:v -frames 1"
> +
>  FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
> -fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
> +FATE_SAMPLES_FFMPEG += $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
> +fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes) $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
> diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
> new file mode 100644
> index 0000000000..41eaefaf6e
> --- /dev/null
> +++ b/tests/ref/fate/enhanced-flv-hevc
> @@ -0,0 +1,8 @@
> +afed0105d121688bad7dc94218256571 *tests/data/fate/enhanced-flv-hevc.flv
> +64396 tests/data/fate/enhanced-flv-hevc.flv
> +#tb 0: 1/30
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1920x1080
> +#sar 0: 0/1
> +0,          0,          0,        1,  6220800, 0x1f259c93

Why are you restricting this to one frame? And why are you not copying
the audio, too (this would test multiplexing)? After all, FLV supports AAC.
Furthermore, you are copying the video when creating the intermediate
FLV file, yet then you are decoding it at the next stage. This decoding
would necessitate a dependency on the HEVC decoder (and maybe the parser
as well as the extract_extradata bsf?). Alternatively, one can just use
codec copy when reading the intermediate file as well (the latter is my
preferred approach).
The same remarks also apply to the other patches.

- Andreas
Steven Liu July 20, 2023, 2:07 a.m. UTC | #2
Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2023年7月19日周三 18:32写道:
>
> Steven Liu:
> > Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> > ---
> >  tests/fate/flvenc.mak            | 7 ++++++-
> >  tests/ref/fate/enhanced-flv-hevc | 8 ++++++++
> >  2 files changed, 14 insertions(+), 1 deletion(-)
> >  create mode 100644 tests/ref/fate/enhanced-flv-hevc
> >
> > diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
> > index 5032fface3..6b2fbe8c89 100644
> > --- a/tests/fate/flvenc.mak
> > +++ b/tests/fate/flvenc.mak
> > @@ -1,5 +1,10 @@
> >  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"
> >
> > +FATE_ENHANCED_FLVENC_FFMPEG-$(call REMUX, MOV, FLV_MUXER) += fate-enhanced-flv-hevc
> > +fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
> > +             flv "-vcodec copy -map 0:v -frames 1"
> > +
> >  FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
> > -fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
> > +FATE_SAMPLES_FFMPEG += $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
> > +fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes) $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
> > diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
> > new file mode 100644
> > index 0000000000..41eaefaf6e
> > --- /dev/null
> > +++ b/tests/ref/fate/enhanced-flv-hevc
> > @@ -0,0 +1,8 @@
> > +afed0105d121688bad7dc94218256571 *tests/data/fate/enhanced-flv-hevc.flv
> > +64396 tests/data/fate/enhanced-flv-hevc.flv
> > +#tb 0: 1/30
> > +#media_type 0: video
> > +#codec_id 0: rawvideo
> > +#dimensions 0: 1920x1080
> > +#sar 0: 0/1
> > +0,          0,          0,        1,  6220800, 0x1f259c93
>
> Why are you restricting this to one frame? And why are you not copying
> the audio, too (this would test multiplexing)? After all, FLV supports AAC.
> Furthermore, you are copying the video when creating the intermediate
> FLV file, yet then you are decoding it at the next stage. This decoding
> would necessitate a dependency on the HEVC decoder (and maybe the parser
> as well as the extract_extradata bsf?). Alternatively, one can just use
> codec copy when reading the intermediate file as well (the latter is my
> preferred approach).
> The same remarks also apply to the other patches.
Hi Andreas,


What about do it like this:

FATE_ENHANCED_FLVENC_FFMPEG-$(call TRANSCODE, RAWVIDEO HEVC, FLV MOV,
HEVCPARSE) += fate-enhanced-flv-hevc
fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
        flv "-c copy" "-af aresample"


Thanks
Steven
Andreas Rheinhardt July 20, 2023, 8:42 a.m. UTC | #3
Steven Liu:
> Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2023年7月19日周三 18:32写道:
>>
>> Steven Liu:
>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
>>> ---
>>>  tests/fate/flvenc.mak            | 7 ++++++-
>>>  tests/ref/fate/enhanced-flv-hevc | 8 ++++++++
>>>  2 files changed, 14 insertions(+), 1 deletion(-)
>>>  create mode 100644 tests/ref/fate/enhanced-flv-hevc
>>>
>>> diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
>>> index 5032fface3..6b2fbe8c89 100644
>>> --- a/tests/fate/flvenc.mak
>>> +++ b/tests/fate/flvenc.mak
>>> @@ -1,5 +1,10 @@
>>>  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"
>>>
>>> +FATE_ENHANCED_FLVENC_FFMPEG-$(call REMUX, MOV, FLV_MUXER) += fate-enhanced-flv-hevc
>>> +fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
>>> +             flv "-vcodec copy -map 0:v -frames 1"
>>> +
>>>  FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
>>> -fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
>>> +FATE_SAMPLES_FFMPEG += $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
>>> +fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes) $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
>>> diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
>>> new file mode 100644
>>> index 0000000000..41eaefaf6e
>>> --- /dev/null
>>> +++ b/tests/ref/fate/enhanced-flv-hevc
>>> @@ -0,0 +1,8 @@
>>> +afed0105d121688bad7dc94218256571 *tests/data/fate/enhanced-flv-hevc.flv
>>> +64396 tests/data/fate/enhanced-flv-hevc.flv
>>> +#tb 0: 1/30
>>> +#media_type 0: video
>>> +#codec_id 0: rawvideo
>>> +#dimensions 0: 1920x1080
>>> +#sar 0: 0/1
>>> +0,          0,          0,        1,  6220800, 0x1f259c93
>>
>> Why are you restricting this to one frame? And why are you not copying
>> the audio, too (this would test multiplexing)? After all, FLV supports AAC.
>> Furthermore, you are copying the video when creating the intermediate
>> FLV file, yet then you are decoding it at the next stage. This decoding
>> would necessitate a dependency on the HEVC decoder (and maybe the parser
>> as well as the extract_extradata bsf?). Alternatively, one can just use
>> codec copy when reading the intermediate file as well (the latter is my
>> preferred approach).
>> The same remarks also apply to the other patches.
> Hi Andreas,
> 
> 
> What about do it like this:
> 
> FATE_ENHANCED_FLVENC_FFMPEG-$(call TRANSCODE, RAWVIDEO HEVC, FLV MOV,
> HEVCPARSE) += fate-enhanced-flv-hevc
> fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
>         flv "-c copy" "-af aresample"
> 

You would not need to resample when you simply copied the stuff instead
of decoding.

- Andreas
Steven Liu July 20, 2023, 8:45 a.m. UTC | #4
Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2023年7月20日周四 16:41写道:
>
> Steven Liu:
> > Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2023年7月19日周三 18:32写道:
> >>
> >> Steven Liu:
> >>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
> >>> ---
> >>>  tests/fate/flvenc.mak            | 7 ++++++-
> >>>  tests/ref/fate/enhanced-flv-hevc | 8 ++++++++
> >>>  2 files changed, 14 insertions(+), 1 deletion(-)
> >>>  create mode 100644 tests/ref/fate/enhanced-flv-hevc
> >>>
> >>> diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
> >>> index 5032fface3..6b2fbe8c89 100644
> >>> --- a/tests/fate/flvenc.mak
> >>> +++ b/tests/fate/flvenc.mak
> >>> @@ -1,5 +1,10 @@
> >>>  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"
> >>>
> >>> +FATE_ENHANCED_FLVENC_FFMPEG-$(call REMUX, MOV, FLV_MUXER) += fate-enhanced-flv-hevc
> >>> +fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
> >>> +             flv "-vcodec copy -map 0:v -frames 1"
> >>> +
> >>>  FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
> >>> -fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
> >>> +FATE_SAMPLES_FFMPEG += $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
> >>> +fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes) $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
> >>> diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
> >>> new file mode 100644
> >>> index 0000000000..41eaefaf6e
> >>> --- /dev/null
> >>> +++ b/tests/ref/fate/enhanced-flv-hevc
> >>> @@ -0,0 +1,8 @@
> >>> +afed0105d121688bad7dc94218256571 *tests/data/fate/enhanced-flv-hevc.flv
> >>> +64396 tests/data/fate/enhanced-flv-hevc.flv
> >>> +#tb 0: 1/30
> >>> +#media_type 0: video
> >>> +#codec_id 0: rawvideo
> >>> +#dimensions 0: 1920x1080
> >>> +#sar 0: 0/1
> >>> +0,          0,          0,        1,  6220800, 0x1f259c93
> >>
> >> Why are you restricting this to one frame? And why are you not copying
> >> the audio, too (this would test multiplexing)? After all, FLV supports AAC.
> >> Furthermore, you are copying the video when creating the intermediate
> >> FLV file, yet then you are decoding it at the next stage. This decoding
> >> would necessitate a dependency on the HEVC decoder (and maybe the parser
> >> as well as the extract_extradata bsf?). Alternatively, one can just use
> >> codec copy when reading the intermediate file as well (the latter is my
> >> preferred approach).
> >> The same remarks also apply to the other patches.
> > Hi Andreas,
> >
> >
> > What about do it like this:
> >
> > FATE_ENHANCED_FLVENC_FFMPEG-$(call TRANSCODE, RAWVIDEO HEVC, FLV MOV,
> > HEVCPARSE) += fate-enhanced-flv-hevc
> > fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
> >         flv "-c copy" "-af aresample"
> >
>
> You would not need to resample when you simply copied the stuff instead
> of decoding.

It will get error message if i don't use resample:

ffmpeg version N-111514-g6efbbe7d25 Copyright (c) 2000-2023 the FFmpeg
developers
  built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
  configuration: --prefix=/usr/local/ --libdir=/usr/local/lib/
--cc=clang --enable-htmlpages --enable-libx264 --enable-gpl
--extra-cflags='-I/usr/local/include/GraphicsMagick/
-I/usr/local/opt/openssl/include/ -O0 -g3 -fsanitize=address
-Wno-error -fPIC -I/usr/local/include -fno-omit-frame-pointer'
--extra-ldflags='-O0 -g3 -fsanitize=address -fno-omit-frame-pointer
-Wno-error -fPIC -L/usr/local/lib -L/usr/local/opt/openssl/lib -lpng'
--enable-libfreetype --enable-fontconfig --enable-libspeex
--enable-libopus --enable-libzmq --enable-libx265 --enable-libass
--enable-videotoolbox --disable-optimizations --enable-audiotoolbox
--enable-opengl --disable-stripping --samples=../../fate-suite/
--enable-encoder=hevc_videotoolbox --enable-hwaccel=hevc_videotoolbox
--enable-hwaccel=h264_videotoolbox --enable-openssl --enable-nonfree
--disable-shared --enable-libfdk_aac --enable-libxml2
--enable-libmp3lame --enable-libaom --enable-lcms2 --enable-libwebp
--enable-libvpx
  libavutil      58. 14.100 / 58. 14.100
  libavcodec     60. 22.100 / 60. 22.100
  libavformat    60. 10.100 / 60. 10.100
  libavdevice    60.  2.101 / 60.  2.101
  libavfilter     9.  8.102 /  9.  8.102
  libswscale      7.  3.100 /  7.  3.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100
Input #0, flv, from
'/Users/liuqi/multimedia/upstream_ffmpeg/ufbuild/tests/data/fate/enhanced-flv-hevc.flv':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    com.apple.quicktime.creationdate: 2021-05-29T15:14:19-0400
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone 12 mini
    com.apple.quicktime.software: 14.4.1
  Duration: 00:00:03.40, start: 0.000000, bitrate: 8469 kb/s
  Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv,
bt2020nc/bt2020/arib-std-b67), 1920x1080, 8479 kb/s, 30 fps, 29.97
tbr, 1k tbn
  Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 148 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
  Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
The filters 'Parsed_anull_0' and 'format_out_0_1' do not have a common
format and automatic conversion is disabled.
[af#0:1 @ 0x61000000b740] Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Invalid argument
Conversion failed!
threads=1


>
> - Andreas
>
> _______________________________________________
> 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 20, 2023, 10:06 a.m. UTC | #5
Steven Liu:
> Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2023年7月20日周四 16:41写道:
>>
>> Steven Liu:
>>> Andreas Rheinhardt <andreas.rheinhardt@outlook.com> 于2023年7月19日周三 18:32写道:
>>>>
>>>> Steven Liu:
>>>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
>>>>> ---
>>>>>  tests/fate/flvenc.mak            | 7 ++++++-
>>>>>  tests/ref/fate/enhanced-flv-hevc | 8 ++++++++
>>>>>  2 files changed, 14 insertions(+), 1 deletion(-)
>>>>>  create mode 100644 tests/ref/fate/enhanced-flv-hevc
>>>>>
>>>>> diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
>>>>> index 5032fface3..6b2fbe8c89 100644
>>>>> --- a/tests/fate/flvenc.mak
>>>>> +++ b/tests/fate/flvenc.mak
>>>>> @@ -1,5 +1,10 @@
>>>>>  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"
>>>>>
>>>>> +FATE_ENHANCED_FLVENC_FFMPEG-$(call REMUX, MOV, FLV_MUXER) += fate-enhanced-flv-hevc
>>>>> +fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
>>>>> +             flv "-vcodec copy -map 0:v -frames 1"
>>>>> +
>>>>>  FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
>>>>> -fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
>>>>> +FATE_SAMPLES_FFMPEG += $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
>>>>> +fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes) $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
>>>>> diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
>>>>> new file mode 100644
>>>>> index 0000000000..41eaefaf6e
>>>>> --- /dev/null
>>>>> +++ b/tests/ref/fate/enhanced-flv-hevc
>>>>> @@ -0,0 +1,8 @@
>>>>> +afed0105d121688bad7dc94218256571 *tests/data/fate/enhanced-flv-hevc.flv
>>>>> +64396 tests/data/fate/enhanced-flv-hevc.flv
>>>>> +#tb 0: 1/30
>>>>> +#media_type 0: video
>>>>> +#codec_id 0: rawvideo
>>>>> +#dimensions 0: 1920x1080
>>>>> +#sar 0: 0/1
>>>>> +0,          0,          0,        1,  6220800, 0x1f259c93
>>>>
>>>> Why are you restricting this to one frame? And why are you not copying
>>>> the audio, too (this would test multiplexing)? After all, FLV supports AAC.
>>>> Furthermore, you are copying the video when creating the intermediate
>>>> FLV file, yet then you are decoding it at the next stage. This decoding
>>>> would necessitate a dependency on the HEVC decoder (and maybe the parser
>>>> as well as the extract_extradata bsf?). Alternatively, one can just use
>>>> codec copy when reading the intermediate file as well (the latter is my
>>>> preferred approach).
>>>> The same remarks also apply to the other patches.
>>> Hi Andreas,
>>>
>>>
>>> What about do it like this:
>>>
>>> FATE_ENHANCED_FLVENC_FFMPEG-$(call TRANSCODE, RAWVIDEO HEVC, FLV MOV,
>>> HEVCPARSE) += fate-enhanced-flv-hevc
>>> fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
>>>         flv "-c copy" "-af aresample"
>>>
>>
>> You would not need to resample when you simply copied the stuff instead
>> of decoding.
> 
> It will get error message if i don't use resample:
> 
> ffmpeg version N-111514-g6efbbe7d25 Copyright (c) 2000-2023 the FFmpeg
> developers
>   built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
>   configuration: --prefix=/usr/local/ --libdir=/usr/local/lib/
> --cc=clang --enable-htmlpages --enable-libx264 --enable-gpl
> --extra-cflags='-I/usr/local/include/GraphicsMagick/
> -I/usr/local/opt/openssl/include/ -O0 -g3 -fsanitize=address
> -Wno-error -fPIC -I/usr/local/include -fno-omit-frame-pointer'
> --extra-ldflags='-O0 -g3 -fsanitize=address -fno-omit-frame-pointer
> -Wno-error -fPIC -L/usr/local/lib -L/usr/local/opt/openssl/lib -lpng'
> --enable-libfreetype --enable-fontconfig --enable-libspeex
> --enable-libopus --enable-libzmq --enable-libx265 --enable-libass
> --enable-videotoolbox --disable-optimizations --enable-audiotoolbox
> --enable-opengl --disable-stripping --samples=../../fate-suite/
> --enable-encoder=hevc_videotoolbox --enable-hwaccel=hevc_videotoolbox
> --enable-hwaccel=h264_videotoolbox --enable-openssl --enable-nonfree
> --disable-shared --enable-libfdk_aac --enable-libxml2
> --enable-libmp3lame --enable-libaom --enable-lcms2 --enable-libwebp
> --enable-libvpx
>   libavutil      58. 14.100 / 58. 14.100
>   libavcodec     60. 22.100 / 60. 22.100
>   libavformat    60. 10.100 / 60. 10.100
>   libavdevice    60.  2.101 / 60.  2.101
>   libavfilter     9.  8.102 /  9.  8.102
>   libswscale      7.  3.100 /  7.  3.100
>   libswresample   4. 11.100 /  4. 11.100
>   libpostproc    57.  2.100 / 57.  2.100
> Input #0, flv, from
> '/Users/liuqi/multimedia/upstream_ffmpeg/ufbuild/tests/data/fate/enhanced-flv-hevc.flv':
>   Metadata:
>     major_brand     : qt
>     minor_version   : 0
>     compatible_brands: qt
>     com.apple.quicktime.creationdate: 2021-05-29T15:14:19-0400
>     com.apple.quicktime.make: Apple
>     com.apple.quicktime.model: iPhone 12 mini
>     com.apple.quicktime.software: 14.4.1
>   Duration: 00:00:03.40, start: 0.000000, bitrate: 8469 kb/s
>   Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv,
> bt2020nc/bt2020/arib-std-b67), 1920x1080, 8479 kb/s, 30 fps, 29.97
> tbr, 1k tbn
>   Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 148 kb/s
> Stream mapping:
>   Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
>   Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
> The filters 'Parsed_anull_0' and 'format_out_0_1' do not have a common
> format and automatic conversion is disabled.
> [af#0:1 @ 0x61000000b740] Error reinitializing filters!
> Failed to inject frame into filter network: Invalid argument
> Invalid argument
> Conversion failed!
> threads=1
> 
> 

The reason for this is that you do not copy the stuff when demuxing the
intermediate file; instead you decode it.

- Andreas
diff mbox series

Patch

diff --git a/tests/fate/flvenc.mak b/tests/fate/flvenc.mak
index 5032fface3..6b2fbe8c89 100644
--- a/tests/fate/flvenc.mak
+++ b/tests/fate/flvenc.mak
@@ -1,5 +1,10 @@ 
 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"
 
+FATE_ENHANCED_FLVENC_FFMPEG-$(call REMUX, MOV, FLV_MUXER) += fate-enhanced-flv-hevc
+fate-enhanced-flv-hevc: CMD = transcode mov $(TARGET_SAMPLES)/hevc/dv84.mov\
+		flv "-vcodec copy -map 0:v -frames 1"
+
 FATE_FFMPEG_FFPROBE += $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
-fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes)
+FATE_SAMPLES_FFMPEG += $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
+fate-flvenc: $(FATE_FLVENC_FFMPEG_FFPROBE-yes) $(FATE_ENHANCED_FLVENC_FFMPEG-yes)
diff --git a/tests/ref/fate/enhanced-flv-hevc b/tests/ref/fate/enhanced-flv-hevc
new file mode 100644
index 0000000000..41eaefaf6e
--- /dev/null
+++ b/tests/ref/fate/enhanced-flv-hevc
@@ -0,0 +1,8 @@ 
+afed0105d121688bad7dc94218256571 *tests/data/fate/enhanced-flv-hevc.flv
+64396 tests/data/fate/enhanced-flv-hevc.flv
+#tb 0: 1/30
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1920x1080
+#sar 0: 0/1
+0,          0,          0,        1,  6220800, 0x1f259c93