Skip to content

Commit

Permalink
Bump version numbers and requirements a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
emericg committed Aug 3, 2024
1 parent 7479322 commit 32bea4e
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 28 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ MiniVideo is a **multimedia framework developed from scratch** in C/C++, bundled
MiniVideo has been tested with several CPU architectures (x86, SH4, MIPS, ARM).
The project uses a dual CMake/QMake build system (CMake is prefered though). Both library and test programs can be installed into your system.

MiniVideo has been initially developed in 2010/2011 during an internship I did in a French company called *httv*, as a small **video decoding library developed from scratch** in C. Its goal was to generate video thumbnails, with a source code easy to read and to understand for learning purpose. After a clean-up pass, the code has been published early 2014 with *httv* permission under the LGPL v3 license (video framework) and GPLv3 (test softwares).
MiniVideo has been initially developed in 2010/2011 during an internship I did in a French company called *httv*, as a small **video decoding library developed from scratch** in C.
Its goal was to generate video thumbnails, with a source code easy to read and to understand for learning purpose.
After a clean-up pass, the code has been published early 2014 with *httv* permission under the LGPL v3 license (video framework) and GPLv3 (test softwares).

The minivideo library can:
* Open video files with various container to demux and remux audios/videos content.
* Open H.264 compressed videos and decode/export intra-coded pictures.
* Extract various metadata from container and elementary streams.
* Map exact container structure to xml file / GUI.
* Map exact container structure to XML file / GUI.

### Supported video codec (decoding)
- H.264 / MPEG-4 part 10 "Advance Video Coding"
Expand All @@ -29,7 +31,7 @@ The minivideo library can:
- MP4 / MOV (ISOM container) [.mp4, .mov, .3gp, ...]
- MPEG-PS (MPEG "Program Stream") [.mpg, .mpeg, .vob, ...]
- MPEG-1/2 "elementary stream" [.mpg, .mpeg]
- H.264 / H.265 "elementary stream" ("Annex B" format) [.264, .265]
- H.264 / H.265 / H.266 "elementary stream" ("Annex B" format) [.264, .265, .266]
- MP3 "elementary stream" [.mp3]

### Supported container formats (export modules)
Expand Down
12 changes: 8 additions & 4 deletions mini_analyser/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ mini_analyser is a software designed to help you extract a maximum of informatio
- MP4 / MOV (ISOM container) [.mp4, .mov, .3gp, ...]
- MPEG-PS (MPEG "Program Stream") [.mpg, .mpeg, .vob, ...]
- MPEG-1/2 "elementary stream" [.mpg, .mpeg]
- H.264 / H.265 "elementary stream" ("Annex B" format) [.264, .265]
- H.264 / H.265 / H.266 "elementary stream" ("Annex B" format) [.264, .265, .266]
- MP3 "elementary stream" [.mp3]

![main screen](https://i.imgur.com/kDJ6NQx.png)
Expand All @@ -26,17 +26,21 @@ mini_analyser is a software designed to help you extract a maximum of informatio
![HW decoding checker](https://i.imgur.com/0qGcZxR.png)


Dependencies
------------

- minivideo library must have been built first!
- Qt6

Building mini_analyser
----------------------

minivideo library must have been built first!

You can either use CMake (recommanded, more configurable)
> $ cd minivideo/build
> $ cmake ..
> $ make
Or qmake (simplier)
Or qmake (simpler)
> $ cd minivideo/
> $ qmake
> $ make
Expand Down
17 changes: 6 additions & 11 deletions mini_analyser/mini_analyser.pro
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,14 @@
# minivideo library must be built first for mini_analyser to work
#-------------------------------------------------------------------------------

TARGET = mini_analyser
TARGET = mini_analyser
VERSION = 49
DEFINES += VERSION_STR=\\\"r$${VERSION}\\\"

VERSION = 48
DEFINES += VERSION_STR=\\\"r$${VERSION}\\\"
CONFIG += c++14
QT += core svg gui widgets svgwidgets printsupport

equals(QT_MAJOR_VERSION, 5) {
CONFIG += c++11
QT += core svg gui widgets printsupport
}
equals(QT_MAJOR_VERSION, 6) {
CONFIG += c++14
QT += core svg gui widgets svgwidgets printsupport
}
!versionAtLeast(QT_VERSION, 6.0) : error("You need at least Qt version 6.0 for $${TARGET}")

# Project files ----------------------------------------------------------------

Expand Down
4 changes: 2 additions & 2 deletions mini_analyser/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ int main(int argc, char *argv[])

MiniAnalyserCLI app(argc, argv);

for (auto const &file: qAsConst(files))
for (auto const &file: std::as_const(files))
{
app.cli.printFile(file, cli_details_enabled);
}
Expand Down Expand Up @@ -120,7 +120,7 @@ int main(int argc, char *argv[])
}

// If files have been passed as arguments, load them
for (auto const &file: qAsConst(files))
for (auto const &file: std::as_const(files))
{
app.gui.loadFile(file);
}
Expand Down
8 changes: 5 additions & 3 deletions minivideo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.20)

# MiniVideo "library" build system / CMake edition
################################################################################

project(minivideo)

set(minivideo_VERSION_MAJOR 0)
set(minivideo_VERSION_MINOR 14)
set(minivideo_VERSION_MINOR 15)
set(minivideo_VERSION_PATCH 0)
set(minivideo_VERSION_STRING ${minivideo_VERSION_MAJOR}.${minivideo_VERSION_MINOR}.${minivideo_VERSION_PATCH})

Expand Down Expand Up @@ -103,7 +103,7 @@ endif()
# Build configuration
################################################################################

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

Expand Down Expand Up @@ -265,6 +265,8 @@ set(minivideo_SRC
src/decoder/h266/h266_parameterset_struct.h
)

include_directories(src/)

# MiniVideo public headers
set(minivideo_PUBLIC_HEADERS
src/minivideo.h src/minivideo_export.h
Expand Down
11 changes: 6 additions & 5 deletions minivideo/minivideo.pro
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@
#-------------------------------------------------------------------------------

TARGET = minivideo
TEMPLATE = lib
VERSION = 0.15.0

CONFIG += c++11 shared_and_static
CONFIG -= qt
TEMPLATE = lib
CONFIG += c++14 shared_and_static

# minivideo files --------------------------------------------------------------

SOURCES = $$files(src/*.cpp, true)
HEADERS = $$files(src/*.h, true)

INCLUDEPATH += $${PWD}/src/

# build artifacts --------------------------------------------------------------

OBJECTS_DIR = build/$${QT_ARCH}/
Expand All @@ -26,9 +28,8 @@ DESTDIR = bin/$${QT_ARCH}/
# we force MINIVIDEO_SETTINGS_H to make sure we don't use the CMake settings file.
DEFINES += MINIVIDEO_SETTINGS_H

VERSION = 0.14.0
DEFINES += minivideo_VERSION_MAJOR=0
DEFINES += minivideo_VERSION_MINOR=14
DEFINES += minivideo_VERSION_MINOR=15
DEFINES += minivideo_VERSION_PATCH=0

CONFIG(debug, debug|release) { DEFINES += ENABLE_DEBUG=1 }
Expand Down

0 comments on commit 32bea4e

Please sign in to comment.