Skip to content

Commit 00320d2

Browse files
committed
added support for audio filters AND cross-video/audio-filters (ie waveform that converts an audio stream to a video stream)
1 parent ffc8a37 commit 00320d2

31 files changed

+785
-16
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@
2525
/source/ffmpeg-cpp/difference/obj/x64/Debug
2626
/source/ffmpeg-cpp/difference/obj
2727
/source/ffmpeg-cpp/print_info/obj/x64
28+
/source/ffmpeg-cpp/filtering_audio/obj/x64

source/ffmpeg-cpp/ffmpeg-cpp.sln

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "difference", "difference\di
2525
EndProject
2626
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "print_info", "print_info\print_info.vcxproj", "{B4DB4D63-7AD7-42B9-9671-AD39D696B4FF}"
2727
EndProject
28+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filtering_audio", "filtering_audio\filtering_audio.vcxproj", "{220FA552-86EF-4437-867D-AB34F7285F8B}"
29+
EndProject
2830
Global
2931
GlobalSection(SolutionConfigurationPlatforms) = preSolution
3032
Debug|x64 = Debug|x64
@@ -323,6 +325,34 @@ Global
323325
{B4DB4D63-7AD7-42B9-9671-AD39D696B4FF}.ReleaseLTO|x64.Build.0 = Release|x64
324326
{B4DB4D63-7AD7-42B9-9671-AD39D696B4FF}.ReleaseLTO|x86.ActiveCfg = Release|Win32
325327
{B4DB4D63-7AD7-42B9-9671-AD39D696B4FF}.ReleaseLTO|x86.Build.0 = Release|Win32
328+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Debug|x64.ActiveCfg = Debug|x64
329+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Debug|x64.Build.0 = Debug|x64
330+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Debug|x86.ActiveCfg = Debug|Win32
331+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Debug|x86.Build.0 = Debug|Win32
332+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLL|x64.ActiveCfg = Debug|x64
333+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLL|x64.Build.0 = Debug|x64
334+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLL|x86.ActiveCfg = Debug|Win32
335+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLL|x86.Build.0 = Debug|Win32
336+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64
337+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLLStaticDeps|x64.Build.0 = Debug|x64
338+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLLStaticDeps|x86.ActiveCfg = Debug|Win32
339+
{220FA552-86EF-4437-867D-AB34F7285F8B}.DebugDLLStaticDeps|x86.Build.0 = Debug|Win32
340+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Release|x64.ActiveCfg = Release|x64
341+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Release|x64.Build.0 = Release|x64
342+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Release|x86.ActiveCfg = Release|Win32
343+
{220FA552-86EF-4437-867D-AB34F7285F8B}.Release|x86.Build.0 = Release|Win32
344+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLL|x64.ActiveCfg = Release|x64
345+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLL|x64.Build.0 = Release|x64
346+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLL|x86.ActiveCfg = Release|Win32
347+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLL|x86.Build.0 = Release|Win32
348+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64
349+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLLStaticDeps|x64.Build.0 = Release|x64
350+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLLStaticDeps|x86.ActiveCfg = Release|Win32
351+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseDLLStaticDeps|x86.Build.0 = Release|Win32
352+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseLTO|x64.ActiveCfg = Release|x64
353+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseLTO|x64.Build.0 = Release|x64
354+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseLTO|x86.ActiveCfg = Release|Win32
355+
{220FA552-86EF-4437-867D-AB34F7285F8B}.ReleaseLTO|x86.Build.0 = Release|Win32
326356
EndGlobalSection
327357
GlobalSection(SolutionProperties) = preSolution
328358
HideSolutionNode = FALSE
@@ -336,6 +366,7 @@ Global
336366
{80579A29-8073-46A0-B328-661155E0887B} = {3B1FE419-D7D2-4406-9C24-5A6F6ED63E73}
337367
{9BD8FF1D-1C1B-4755-BF5C-AD58DC023711} = {3B1FE419-D7D2-4406-9C24-5A6F6ED63E73}
338368
{B4DB4D63-7AD7-42B9-9671-AD39D696B4FF} = {3B1FE419-D7D2-4406-9C24-5A6F6ED63E73}
369+
{220FA552-86EF-4437-867D-AB34F7285F8B} = {3B1FE419-D7D2-4406-9C24-5A6F6ED63E73}
339370
EndGlobalSection
340371
GlobalSection(ExtensibilityGlobals) = postSolution
341372
SolutionGuid = {1838F09B-B929-4D1E-ABB6-FA2A94F4A4BE}

source/ffmpeg-cpp/ffmpeg-cpp/Demuxing/InputStream.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ namespace ffmpegcpp
116116
StreamData* metaData = new StreamData();
117117
metaData->timeBase = tb;
118118
metaData->frameRate = fr;
119+
120+
metaData->type = codecContext->codec->type;
121+
119122
return metaData;
120123
}
121124

source/ffmpeg-cpp/ffmpeg-cpp/Demuxing/InputStream.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "std.h"
55
#include "Frame Sinks/FrameSink.h"
66
#include "Info/ContainerInfo.h"
7+
#include "Demuxing/StreamData.h"
78

89
namespace ffmpegcpp
910
{
@@ -25,7 +26,6 @@ namespace ffmpegcpp
2526

2627
virtual void AddStreamInfo(ContainerInfo* info) = 0;
2728

28-
2929
protected:
3030

3131
AVCodecContext* codecContext = nullptr;

source/ffmpeg-cpp/ffmpeg-cpp/Demuxing/StreamData.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ namespace ffmpegcpp
66
{
77
struct StreamData
88
{
9+
AVMediaType type;
10+
911
AVRational timeBase;
1012
AVRational frameRate;
1113
};

source/ffmpeg-cpp/ffmpeg-cpp/Frame Sinks/AudioEncoder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace ffmpegcpp
1717
muxer->AddOutputStream(output);
1818

1919
// this one is used to make sure we only allow one frame sink stream to be generated
20-
oneInputFrameSink = new OneInputFrameSink(this);
20+
oneInputFrameSink = new OneInputFrameSink(this, AVMEDIA_TYPE_AUDIO);
2121
}
2222

2323
AudioEncoder::AudioEncoder(AudioCodec* codec, Muxer* muxer, int bitRate)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include "AudioFilter.h"
2+
3+
4+
5+
AudioFilter::AudioFilter()
6+
{
7+
}
8+
9+
10+
AudioFilter::~AudioFilter()
11+
{
12+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#pragma once
2+
class AudioFilter
3+
{
4+
public:
5+
AudioFilter();
6+
~AudioFilter();
7+
};
8+

source/ffmpeg-cpp/ffmpeg-cpp/Frame Sinks/AudioFrameSink.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ namespace ffmpegcpp
88
{
99
public:
1010

11+
virtual AVMediaType GetMediaType()
12+
{
13+
return AVMEDIA_TYPE_AUDIO;
14+
}
15+
1116
virtual ~AudioFrameSink() {}
1217
};
1318
}

0 commit comments

Comments
 (0)