forked from mia/Aegisub
Hack in some compatibility #defines in FFMS2's utils.h so it'll compile with both older and newer ffmpeg versions. Reverts r3012. Part of this change based on a patch by CharlieB. Fixes #909.
Originally committed to SVN as r3108.
This commit is contained in:
parent
24da41faaf
commit
1f55f362fb
4 changed files with 18 additions and 8 deletions
|
@ -453,7 +453,7 @@ int FFMatroskaAudio::DecodeNextAudioBlock(int64_t *Count, int AudioBlock, char *
|
||||||
TempPacket.data = MC.Buffer;
|
TempPacket.data = MC.Buffer;
|
||||||
TempPacket.size = FrameSize;
|
TempPacket.size = FrameSize;
|
||||||
if (Frames[AudioBlock].KeyFrame)
|
if (Frames[AudioBlock].KeyFrame)
|
||||||
TempPacket.flags = PKT_FLAG_KEY;
|
TempPacket.flags = AV_PKT_FLAG_KEY;
|
||||||
else
|
else
|
||||||
TempPacket.flags = 0;
|
TempPacket.flags = 0;
|
||||||
|
|
||||||
|
@ -512,7 +512,7 @@ int FFHaaliAudio::DecodeNextAudioBlock(int64_t *AFirstStartTime, int64_t *Count,
|
||||||
Packet.data = Data;
|
Packet.data = Data;
|
||||||
Packet.size = pMMF->GetActualDataLength();
|
Packet.size = pMMF->GetActualDataLength();
|
||||||
if (pMMF->IsSyncPoint() == S_OK)
|
if (pMMF->IsSyncPoint() == S_OK)
|
||||||
Packet.flags = PKT_FLAG_KEY;
|
Packet.flags = AV_PKT_FLAG_KEY;
|
||||||
else
|
else
|
||||||
Packet.flags = 0;
|
Packet.flags = 0;
|
||||||
|
|
||||||
|
|
|
@ -528,7 +528,7 @@ int FFMatroskaVideo::DecodeNextFrame(int64_t *AFirstStartTime, char *ErrorMsg, u
|
||||||
Packet.data = MC.Buffer;
|
Packet.data = MC.Buffer;
|
||||||
Packet.size = FrameSize;
|
Packet.size = FrameSize;
|
||||||
if (FrameFlags & FRAME_KF)
|
if (FrameFlags & FRAME_KF)
|
||||||
Packet.flags = PKT_FLAG_KEY;
|
Packet.flags = AV_PKT_FLAG_KEY;
|
||||||
else
|
else
|
||||||
Packet.flags = 0;
|
Packet.flags = 0;
|
||||||
|
|
||||||
|
@ -769,7 +769,7 @@ int FFHaaliVideo::DecodeNextFrame(int64_t *AFirstStartTime, char *ErrorMsg, unsi
|
||||||
Packet.data = Data;
|
Packet.data = Data;
|
||||||
Packet.size = pMMF->GetActualDataLength();
|
Packet.size = pMMF->GetActualDataLength();
|
||||||
if (pMMF->IsSyncPoint() == S_OK)
|
if (pMMF->IsSyncPoint() == S_OK)
|
||||||
Packet.flags = PKT_FLAG_KEY;
|
Packet.flags = AV_PKT_FLAG_KEY;
|
||||||
else
|
else
|
||||||
Packet.flags = 0;
|
Packet.flags = 0;
|
||||||
|
|
||||||
|
|
|
@ -312,7 +312,7 @@ FFIndex *FFHaaliIndexer::DoIndexing(char *ErrorMsg, unsigned MsgSize) {
|
||||||
pMMF->GetPointer(&TempPacket.data);
|
pMMF->GetPointer(&TempPacket.data);
|
||||||
TempPacket.size = pMMF->GetActualDataLength();
|
TempPacket.size = pMMF->GetActualDataLength();
|
||||||
if (pMMF->IsSyncPoint() == S_OK)
|
if (pMMF->IsSyncPoint() == S_OK)
|
||||||
TempPacket.flags = PKT_FLAG_KEY;
|
TempPacket.flags = AV_PKT_FLAG_KEY;
|
||||||
else
|
else
|
||||||
TempPacket.flags = 0;
|
TempPacket.flags = 0;
|
||||||
|
|
||||||
|
@ -457,7 +457,7 @@ FFIndex *FFMatroskaIndexer::DoIndexing(char *ErrorMsg, unsigned MsgSize) {
|
||||||
TempPacket.data = MC.Buffer;
|
TempPacket.data = MC.Buffer;
|
||||||
TempPacket.size = FrameSize;
|
TempPacket.size = FrameSize;
|
||||||
if ((FrameFlags & FRAME_KF) != 0)
|
if ((FrameFlags & FRAME_KF) != 0)
|
||||||
TempPacket.flags = PKT_FLAG_KEY;
|
TempPacket.flags = AV_PKT_FLAG_KEY;
|
||||||
else
|
else
|
||||||
TempPacket.flags = 0;
|
TempPacket.flags = 0;
|
||||||
|
|
||||||
|
@ -600,9 +600,9 @@ FFIndex *FFLAVFIndexer::DoIndexing(char *ErrorMsg, unsigned MsgSize) {
|
||||||
|
|
||||||
// Only create index entries for video for now to save space
|
// Only create index entries for video for now to save space
|
||||||
if (FormatContext->streams[Packet.stream_index]->codec->codec_type == CODEC_TYPE_VIDEO) {
|
if (FormatContext->streams[Packet.stream_index]->codec->codec_type == CODEC_TYPE_VIDEO) {
|
||||||
(*TrackIndices)[Packet.stream_index].push_back(TFrameInfo(Packet.dts, (Packet.flags & PKT_FLAG_KEY) ? 1 : 0));
|
(*TrackIndices)[Packet.stream_index].push_back(TFrameInfo(Packet.dts, (Packet.flags & AV_PKT_FLAG_KEY) ? 1 : 0));
|
||||||
} else if (FormatContext->streams[Packet.stream_index]->codec->codec_type == CODEC_TYPE_AUDIO && (IndexMask & (1 << Packet.stream_index))) {
|
} else if (FormatContext->streams[Packet.stream_index]->codec->codec_type == CODEC_TYPE_AUDIO && (IndexMask & (1 << Packet.stream_index))) {
|
||||||
(*TrackIndices)[Packet.stream_index].push_back(TFrameInfo(Packet.dts, AudioContexts[Packet.stream_index].CurrentSample, (Packet.flags & PKT_FLAG_KEY) ? 1 : 0));
|
(*TrackIndices)[Packet.stream_index].push_back(TFrameInfo(Packet.dts, AudioContexts[Packet.stream_index].CurrentSample, (Packet.flags & AV_PKT_FLAG_KEY) ? 1 : 0));
|
||||||
AVCodecContext *AudioCodecContext = FormatContext->streams[Packet.stream_index]->codec;
|
AVCodecContext *AudioCodecContext = FormatContext->streams[Packet.stream_index]->codec;
|
||||||
TempPacket.data = Packet.data;
|
TempPacket.data = Packet.data;
|
||||||
TempPacket.size = Packet.size;
|
TempPacket.size = Packet.size;
|
||||||
|
|
|
@ -45,6 +45,16 @@ extern "C" {
|
||||||
# include "guids.h"
|
# include "guids.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Compatibility with older/newer ffmpegs
|
||||||
|
#if (LIBAVFORMAT_VERSION_INT) > (AV_VERSION_INT(52,34,0))
|
||||||
|
#define codec_bmp_tags ff_codec_bmp_tags
|
||||||
|
#endif
|
||||||
|
#ifndef AV_PKT_FLAG_KEY
|
||||||
|
#define AV_PKT_FLAG_KEY PKT_FLAG_KEY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
struct TFrameInfo {
|
struct TFrameInfo {
|
||||||
FFMS_FRAMEINFO_COMMON
|
FFMS_FRAMEINFO_COMMON
|
||||||
int64_t SampleStart;
|
int64_t SampleStart;
|
||||||
|
|
Loading…
Reference in a new issue