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:
Karl Blomster 2009-07-13 02:34:41 +00:00
parent 24da41faaf
commit 1f55f362fb
4 changed files with 18 additions and 8 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;