diff --git a/mini_analyser/mini_analyser.pro b/mini_analyser/mini_analyser.pro index 58f3333..2a86296 100644 --- a/mini_analyser/mini_analyser.pro +++ b/mini_analyser/mini_analyser.pro @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------- # mini_analyser build system -# minivideo library must be built first in order for mini_analyser to work +# minivideo library must be built first for mini_analyser to work #------------------------------------------------------------------------------- TARGET = mini_analyser @@ -78,8 +78,8 @@ LIBS += -lminivideo # dynamic linking unix { # Enables AddressSanitizer - #QMAKE_CXXFLAGS += -fsanitize=address,undefined -fno-omit-frame-pointer - #QMAKE_LFLAGS += -fsanitize=address,undefined + #QMAKE_CXXFLAGS += -fsanitize=address,undefined,pointer-compare,pointer-subtract -fno-omit-frame-pointer + #QMAKE_LFLAGS += -fsanitize=address,undefined,pointer-compare,pointer-subtract } win32 { DEFINES += _USE_MATH_DEFINES } diff --git a/mini_analyser/src/hw_apis/videobackends_vtb.cpp b/mini_analyser/src/hw_apis/videobackends_vtb.cpp index 9c76de5..1168dd4 100644 --- a/mini_analyser/src/hw_apis/videobackends_vtb.cpp +++ b/mini_analyser/src/hw_apis/videobackends_vtb.cpp @@ -75,17 +75,17 @@ static Desc decoder_profiles_vtb[] = { CODEC_H264, PROF_H264_HiP, 7680, 3840, 8, avcC_HiP_3840 }, { CODEC_H264, PROF_H264_HiP, 8192, 4096, 8, nullptr }, - { CODEC_H264, PROF_H264_PHiP, 1280, 720, 8, nullptr }, - { CODEC_H264, PROF_H264_CHiP, 1280, 720, 8, nullptr }, - { CODEC_H264, PROF_H264_Hi444PP, 1280, 720, 8, nullptr }, - - { CODEC_H265, PROF_H265_Main, 1920, 1080, 8, hvcC_main_2160 }, - { CODEC_H265, PROF_H265_Main, 4096, 2160, 8, hvcC_main_2160 }, - { CODEC_H265, PROF_H265_Main10, 1920, 1080, 8, hvcC_main10_2160 }, - { CODEC_H265, PROF_H265_Main10, 4096, 2160, 8, hvcC_main10_2160 }, - { CODEC_H265, PROF_H265_MainStill,1280, 720, 8, nullptr }, - { CODEC_H265, PROF_H265_Main12, 1280, 720, 8, nullptr }, - { CODEC_H265, PROF_H265_Main444, 1280, 720, 8, nullptr }, + { CODEC_H264, PROF_H264_PHiP, 1280, 720, 8, nullptr }, + { CODEC_H264, PROF_H264_CHiP, 1280, 720, 8, nullptr }, + { CODEC_H264, PROF_H264_Hi444PP, 1280, 720, 8, nullptr }, + + { CODEC_H265, PROF_H265_Main, 1920, 1080, 8, hvcC_main_2160 }, + { CODEC_H265, PROF_H265_Main, 4096, 2160, 8, hvcC_main_2160 }, + { CODEC_H265, PROF_H265_Main10, 1920, 1080, 8, hvcC_main10_2160 }, + { CODEC_H265, PROF_H265_Main10, 4096, 2160, 8, hvcC_main10_2160 }, + { CODEC_H265, PROF_H265_Main_still, 1280, 720, 8, nullptr }, + { CODEC_H265, PROF_H265_Main12, 1280, 720, 8, nullptr }, + { CODEC_H265, PROF_H265_Main444, 1280, 720, 8, nullptr }, }; const size_t decoder_profile_count = sizeof(decoder_profiles_vtb) / sizeof(Desc); diff --git a/mini_extractor/mini_extractor.pro b/mini_extractor/mini_extractor.pro index f4baa54..f833ab9 100644 --- a/mini_extractor/mini_extractor.pro +++ b/mini_extractor/mini_extractor.pro @@ -9,10 +9,10 @@ CONFIG += c++11 warn_off DESTDIR = bin/ # build artifacts -OBJECTS_DIR = build/ -MOC_DIR = build/ -RCC_DIR = build/ -UI_DIR = build/ +OBJECTS_DIR = build/$${QT_ARCH} +MOC_DIR = build/$${QT_ARCH} +RCC_DIR = build/$${QT_ARCH} +UI_DIR = build/$${QT_ARCH} # mini_extractor files SOURCES += src/main.cpp diff --git a/mini_thumbnailer/mini_thumbnailer.pro b/mini_thumbnailer/mini_thumbnailer.pro index 007dab1..3e83c43 100644 --- a/mini_thumbnailer/mini_thumbnailer.pro +++ b/mini_thumbnailer/mini_thumbnailer.pro @@ -9,10 +9,10 @@ CONFIG += c++11 warn_off DESTDIR = bin/ # build artifacts -OBJECTS_DIR = build/ -MOC_DIR = build/ -RCC_DIR = build/ -UI_DIR = build/ +OBJECTS_DIR = build/$${QT_ARCH} +MOC_DIR = build/$${QT_ARCH} +RCC_DIR = build/$${QT_ARCH} +UI_DIR = build/$${QT_ARCH} # mini_thumbnailer files SOURCES += src/main.cpp diff --git a/minivideo/CMakeLists.txt b/minivideo/CMakeLists.txt index e14fc86..f018d5e 100644 --- a/minivideo/CMakeLists.txt +++ b/minivideo/CMakeLists.txt @@ -200,6 +200,9 @@ set(minivideo_SRC src/export.cpp src/export_utils.cpp src/thirdparty/stb_image_write.h + src/demuxer/idr_filter.cpp + src/demuxer/xml_mapper.cpp + src/demuxer/codecs/codec_private_struct.h src/demuxer/mp4/mp4_struct.h src/demuxer/mp4/mp4.cpp src/demuxer/mp4/mp4_box.cpp src/demuxer/mp4/mp4_stbl.cpp src/demuxer/mp4/mp4_stsd.cpp src/demuxer/mp4/mp4_meta.cpp src/demuxer/mp4/mp4_picture.cpp src/demuxer/mp4/mp4_gopro.cpp src/demuxer/mp4/mp4_virb.cpp src/demuxer/mp4/mp4_spatial.cpp src/demuxer/mp4/mp4_convert.cpp @@ -207,8 +210,6 @@ set(minivideo_SRC src/demuxer/mkv/mkv_struct.h src/demuxer/mkv/mkv.cpp src/demuxer/mkv/ebml.cpp src/demuxer/mkv/mkv_tracks.cpp src/demuxer/mkv/mkv_cluster.cpp src/demuxer/mkv/mkv_codec.cpp src/demuxer/mkv/mkv_convert.cpp src/demuxer/esparser/esparser.cpp - src/demuxer/idr_filter.cpp - src/demuxer/xml_mapper.cpp src/demuxer/mpeg/pes/pes_struct.h src/demuxer/mpeg/pes/pes.cpp src/demuxer/mpeg/descriptor_struct.h src/demuxer/mpeg/ps/ps_struct.h src/demuxer/mpeg/ps/ps.cpp @@ -240,6 +241,12 @@ set(minivideo_SRC src/decoder/h264/h264_inter_prediction.cpp src/decoder/h264/h264_spatial.cpp src/decoder/h264/h264_transform.cpp + src/decoder/h265/h265_nalu.cpp + src/decoder/h265/h265_parameterset.cpp + src/decoder/h265/h265_parameterset_struct.h + src/decoder/h266/h266_nalu.cpp + src/decoder/h266/h266_parameterset.cpp + src/decoder/h266/h266_parameterset_struct.h ) # MiniVideo public headers diff --git a/minivideo/minivideo.pro b/minivideo/minivideo.pro index 831840e..790bdb6 100644 --- a/minivideo/minivideo.pro +++ b/minivideo/minivideo.pro @@ -10,7 +10,7 @@ CONFIG += c++11 shared_and_static CONFIG -= qt # build artifacts -OBJECTS_DIR = build/artifacts +OBJECTS_DIR = build/$${QT_ARCH}/ DESTDIR = build/ # build settings --------------------------------------------------------------- @@ -46,8 +46,8 @@ unix { contains(COMPILER_BASENAME, "clang++") { QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-private-field } # Clang only # Enables AddressSanitizer - #QMAKE_CXXFLAGS += -fsanitize=address,undefined -fno-omit-frame-pointer - #QMAKE_LFLAGS += -fsanitize=address,undefined + #QMAKE_CXXFLAGS += -fsanitize=address,undefined,pointer-compare,pointer-subtract -fno-omit-frame-pointer + #QMAKE_LFLAGS += -fsanitize=address,undefined,pointer-compare,pointer-subtract } linux {