mirror of
https://github.com/davisking/dlib.git
synced 2024-11-01 10:14:53 +08:00
[FFMPEG] support ffmpeg 7 (#2987)
* support ffmpeg 7 * you need assembler --------- Co-authored-by: pfeatherstone <pfeatherstone@pf>
This commit is contained in:
parent
58b50552fe
commit
3ca155da68
33
.github/workflows/build_cpp.yml
vendored
33
.github/workflows/build_cpp.yml
vendored
@ -195,6 +195,39 @@ jobs:
|
|||||||
- name: Build examples, etc
|
- name: Build examples, etc
|
||||||
run: cmake --build build --config Release --parallel 2
|
run: cmake --build build --config Release --parallel 2
|
||||||
|
|
||||||
|
ubuntu-latest-ffmpeg7:
|
||||||
|
runs-on: 'ubuntu-latest'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install make yasm
|
||||||
|
|
||||||
|
- name: Cache FFmpeg 7
|
||||||
|
uses: actions/cache@v3
|
||||||
|
id: cache-ffmpeg7
|
||||||
|
with:
|
||||||
|
path: /home/runner/ffmpeg-n7.0.1_installation
|
||||||
|
key: ffmpeg-n7.0.1_try2
|
||||||
|
|
||||||
|
- name: Build FFmpeg 7
|
||||||
|
if: steps.cache-ffmpeg7.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
wget https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.1.tar.gz
|
||||||
|
tar -xf n7.0.1.tar.gz
|
||||||
|
cd FFmpeg-n7.0.1
|
||||||
|
./configure --prefix=/home/runner/ffmpeg-n7.0.1_installation --disable-doc --disable-programs
|
||||||
|
make -j4
|
||||||
|
make install
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: cmake . -B build -DCMAKE_PREFIX_PATH=/home/runner/ffmpeg-n7.0.1_installation
|
||||||
|
- name: Build ffmpeg example
|
||||||
|
run: cmake --build build --config Release --target ffmpeg_video_muxing_ex --parallel 4
|
||||||
|
|
||||||
windows-latest:
|
windows-latest:
|
||||||
runs-on: 'windows-latest'
|
runs-on: 'windows-latest'
|
||||||
steps:
|
steps:
|
||||||
|
@ -64,6 +64,10 @@ extern "C" {
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include "../logger.h"
|
#include "../logger.h"
|
||||||
|
|
||||||
|
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59, 24, 100)
|
||||||
|
#define FFMPEG_HAS_CH_LAYOUT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace dlib { namespace ffmpeg { namespace details
|
namespace dlib { namespace ffmpeg { namespace details
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -156,7 +160,7 @@ namespace dlib { namespace ffmpeg { namespace details
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if FF_API_OLD_CHANNEL_LAYOUT
|
#if FFMPEG_HAS_CH_LAYOUT
|
||||||
|
|
||||||
inline AVChannelLayout convert_layout(const uint64_t channel_layout)
|
inline AVChannelLayout convert_layout(const uint64_t channel_layout)
|
||||||
{
|
{
|
||||||
|
@ -788,7 +788,7 @@ namespace dlib
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if FF_API_OLD_CHANNEL_LAYOUT
|
#if FFMPEG_HAS_CH_LAYOUT
|
||||||
if (pCodec->ch_layouts)
|
if (pCodec->ch_layouts)
|
||||||
{
|
{
|
||||||
bool channel_layout_supported = false;
|
bool channel_layout_supported = false;
|
||||||
|
@ -775,7 +775,7 @@ namespace dlib
|
|||||||
if (std::tie(src_sample_rate, src_channel_layout, src_fmt) !=
|
if (std::tie(src_sample_rate, src_channel_layout, src_fmt) !=
|
||||||
std::tie(dst_sample_rate, dst_channel_layout, dst_fmt))
|
std::tie(dst_sample_rate, dst_channel_layout, dst_fmt))
|
||||||
{
|
{
|
||||||
#if FF_API_OLD_CHANNEL_LAYOUT
|
#if LIBSWRESAMPLE_VERSION_INT >= AV_VERSION_INT(4, 5, 100)
|
||||||
AVChannelLayout layout_src = convert_layout(src_channel_layout);
|
AVChannelLayout layout_src = convert_layout(src_channel_layout);
|
||||||
AVChannelLayout layout_dst = convert_layout(dst_channel_layout);
|
AVChannelLayout layout_dst = convert_layout(dst_channel_layout);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user