Detect AV1 in MKV

This commit is contained in:
Martchus 2018-07-28 14:54:46 +02:00
parent a2ff0f418f
commit 1dc8fb4839
4 changed files with 35 additions and 25 deletions

View File

@ -94,6 +94,8 @@ MediaFormat MatroskaTrack::codecIdToMediaFormat(const string &codecId)
fmt.general = GeneralMediaFormat::Vp8; fmt.general = GeneralMediaFormat::Vp8;
} else if (part1 == "V_VP9") { } else if (part1 == "V_VP9") {
fmt.general = GeneralMediaFormat::Vp9; fmt.general = GeneralMediaFormat::Vp9;
} else if (part1 == "V_AV1") {
fmt.general = GeneralMediaFormat::Av1;
} else if (part1 == "A_MPEG") { } else if (part1 == "A_MPEG") {
fmt.general = GeneralMediaFormat::Mpeg1Audio; fmt.general = GeneralMediaFormat::Mpeg1Audio;
if (part2 == "L1") { if (part2 == "L1") {

View File

@ -93,6 +93,8 @@ const char *MediaFormat::name() const
default: default:
return "Advanced Video Coding"; return "Advanced Video Coding";
} }
case GeneralMediaFormat::Av1:
return "AOMedia Video 1";
case GeneralMediaFormat::Bitmap: case GeneralMediaFormat::Bitmap:
return "Windows Bitmap"; return "Windows Bitmap";
case GeneralMediaFormat::Daala: case GeneralMediaFormat::Daala:
@ -489,6 +491,8 @@ const char *MediaFormat::abbreviation() const
return "AMR"; return "AMR";
case GeneralMediaFormat::Avc: case GeneralMediaFormat::Avc:
return "H.264"; return "H.264";
case GeneralMediaFormat::Av1:
return "AV1";
case GeneralMediaFormat::Bitmap: case GeneralMediaFormat::Bitmap:
return "BMP"; return "BMP";
case GeneralMediaFormat::Daala: case GeneralMediaFormat::Daala:
@ -774,6 +778,8 @@ const char *MediaFormat::shortAbbreviation() const
return "AMR"; return "AMR";
case GeneralMediaFormat::Avc: case GeneralMediaFormat::Avc:
return "H.264"; return "H.264";
case GeneralMediaFormat::Av1:
return "AV1";
case GeneralMediaFormat::Bitmap: case GeneralMediaFormat::Bitmap:
return "BMP"; return "BMP";
case GeneralMediaFormat::Daala: case GeneralMediaFormat::Daala:

View File

@ -36,6 +36,7 @@ enum class GeneralMediaFormat : unsigned int {
Als, /**< ALS */ Als, /**< ALS */
Amr, /**< AMR */ Amr, /**< AMR */
Avc, /**< Advanced Video Coding */ Avc, /**< Advanced Video Coding */
Av1, /**< AOMedia Video 1 (AV1) */
Bitmap, /**< Windows Bitmap */ Bitmap, /**< Windows Bitmap */
Daala, /**< Daala ("next-generation video codec" by Xiph) */ Daala, /**< Daala ("next-generation video codec" by Xiph) */
Dirac, /**< Dirac */ Dirac, /**< Dirac */

View File

@ -31,6 +31,7 @@ if [[ -z $testfilespath ]] || [[ -z $testfileurl ]]; then
echo "Usage: testfilepath testfileurl" echo "Usage: testfilepath testfileurl"
echo " testfilepath specifies the directory to store the downloaded files" echo " testfilepath specifies the directory to store the downloaded files"
echo " testfileurl specifies the URL to the server hosting the test files" echo " testfileurl specifies the URL to the server hosting the test files"
exit -1
fi fi
# enter testfiles directory # enter testfiles directory
@ -100,31 +101,31 @@ if [[ ! -z $missing ]]; then
exit 1 exit 1
fi fi
# convert FLAC files for FLAC tests with ffmpeg # convert more testfiles from the downloaded ones (FIXME: use a Makefile)
inform "Creating further testfiles with ffmpeg" inform "Creating further testfiles with ffmpeg and mkvtoolnix"
mkdir -p flac mkdir -p flac
# raw FLAC stream mkdir -p mkv
[[ ! -f flac/test.flac ]] \ convert() {
&& ffmpeg -i mtx-test-data/alac/othertest-itunes.m4a -c:a flac flac/test.flac \ local filename=$1 && shift
|| inform "Skipping already existing flac/test.flac" if [[ -f $filename ]]; then
# FLAC in Ogg inform "Skipping already existing $filename"
[[ ! -f flac/test.ogg ]] \ return
&& ffmpeg -i flac/test.flac -vn -c:a copy flac/test.ogg \ fi
|| inform "Skipping already existing flac/test.ogg" "$@"
}
# convert further Mkv files mkvmerge convert flac/test.flac ffmpeg -i mtx-test-data/alac/othertest-itunes.m4a -c:a flac flac/test.flac
inform "Creating further testfiles with mkvmerge" convert flac/test.ogg ffmpeg -i flac/test.flac -vn -c:a copy flac/test.ogg
[[ ! -f mkv/nested-tags.mkv ]] \ convert mkv/av1_test.mkv ffmpeg -i matroska_wave1/test1.mkv -t 1 -c:v libaom-av1 -crf 30 -cpu-used 5 -an -strict experimental mkv/av1_test.mkv
&& mkvmerge --ui-language en_US \ convert mkv/nested-tags.mkv \
--output 'mkv/nested-tags.mkv' \ mkvmerge --ui-language en_US \
--no-global-tags \ --output 'mkv/nested-tags.mkv' \
--language '0:und' \ --no-global-tags \
--default-track '0:yes' \ --language '0:und' \
--language '1:und' \ --default-track '0:yes' \
--default-track '1:yes' \ --language '1:und' \
\( 'mtx-test-data/mkv/tags.mkv' \) \ --default-track '1:yes' \
--global-tags "$srcdir/testfiles/mkv/nested-tags.xml" \ \( 'mtx-test-data/mkv/tags.mkv' \) \
--track-order '0:0,0:1' \ --global-tags "$srcdir/testfiles/mkv/nested-tags.xml" \
|| inform "Skipping already existing mkv/nested-tags.mkv" --track-order '0:0,0:1'
success "All testfiles downloaded/converted!" success "All testfiles downloaded/converted!"