[FFmpeg-devel] [PATCH v2 1/4] avformat/argo_asf: don't check or probe file version

Paul B Mahol onemda at gmail.com
Sun Aug 9 10:29:16 EEST 2020


This is really bad practice.

On 8/8/20, Zane van Iperen <zane at zanevaniperen.com> wrote:
> All files I've seen are identical, irregardless of version.
> Until shown otherwise, assume unknown ones are too.
>
> Signed-off-by: Zane van Iperen <zane at zanevaniperen.com>
> ---
>  libavformat/argo_asf.c | 37 +++++++------------------------------
>  1 file changed, 7 insertions(+), 30 deletions(-)
>
> diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
> index 671b7482f9..beec46a0d4 100644
> --- a/libavformat/argo_asf.c
> +++ b/libavformat/argo_asf.c
> @@ -29,6 +29,12 @@
>  #define ASF_CHUNK_HEADER_SIZE   20
>  #define ASF_SAMPLE_COUNT        32
>
> +/*
> + * Known versions:
> + * 1.1: The sample files in /game-formats/brender/part2.zip
> + * 1.2: Croc! Legend of the Gobbos
> + * 2.1: Croc 2
> + */
>  typedef struct ArgoASFFileHeader {
>      uint32_t    magic;          /*< Magic Number, {'A', 'S', 'F', '\0'} */
>      uint16_t    version_major;  /*< File Major Version. */
> @@ -85,33 +91,11 @@ static void
> argo_asf_parse_chunk_header(ArgoASFChunkHeader *hdr, const uint8_t *
>      hdr->flags          = AV_RL32(buf + 16);
>  }
>
> -/*
> - * Known versions:
> - * 1.1: The sample files in /game-formats/brender/part2.zip
> - * 1.2: Croc! Legend of the Gobbos
> - * 2.1: Croc 2
> - */
> -static int argo_asf_is_known_version(const ArgoASFFileHeader *hdr)
> -{
> -    return (hdr->version_major == 1 && hdr->version_minor == 1) ||
> -           (hdr->version_major == 1 && hdr->version_minor == 2) ||
> -           (hdr->version_major == 2 && hdr->version_minor == 1);
> -}
> -
>  static int argo_asf_probe(const AVProbeData *p)
>  {
> -    ArgoASFFileHeader hdr;
> -
> -    av_assert0(AVPROBE_PADDING_SIZE >= ASF_FILE_HEADER_SIZE);
> -
> -    argo_asf_parse_file_header(&hdr, p->buf);
> -
> -    if (hdr.magic != ASF_TAG)
> +    if (AV_RL32(p->buf) != ASF_TAG)
>          return 0;
>
> -    if (!argo_asf_is_known_version(&hdr))
> -        return AVPROBE_SCORE_EXTENSION / 2;
> -
>      return AVPROBE_SCORE_EXTENSION + 1;
>  }
>
> @@ -133,13 +117,6 @@ static int argo_asf_read_header(AVFormatContext *s)
>
>      argo_asf_parse_file_header(&asf->fhdr, buf);
>
> -    if (!argo_asf_is_known_version(&asf->fhdr)) {
> -        avpriv_request_sample(s, "Version %hu.%hu",
> -            asf->fhdr.version_major, asf->fhdr.version_minor
> -        );
> -        return AVERROR_PATCHWELCOME;
> -    }
> -
>      if (asf->fhdr.num_chunks == 0) {
>          return AVERROR_INVALIDDATA;
>      } else if (asf->fhdr.num_chunks > 1) {
> --
> 2.25.1
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list