Bladeren bron

try to fix libav 9.18

AlexVinS 10 jaren geleden
bovenliggende
commit
f9dfa8d0c2
2 gewijzigde bestanden met toevoegingen van 15 en 2 verwijderingen
  1. 10 2
      client/CVideoHandler.cpp
  2. 5 0
      client/CVideoHandler.h

+ 10 - 2
client/CVideoHandler.cpp

@@ -141,9 +141,12 @@ bool CVideoPlayer::open(std::string fname, bool loop, bool useOverlay, bool scal
 		codec = nullptr;
 		return false;
 	}
-
 	// Allocate video frame
+#ifdef VCMI_USE_OLD_AVUTIL 
+ 	frame = avcodec_alloc_frame();
+#else
 	frame = av_frame_alloc();
+#endif
 	
 	//setup scaling
 	
@@ -359,7 +362,12 @@ void CVideoPlayer::close()
 
 	if (frame)
 	{
-		av_frame_free(&frame);//will be set to null
+#ifdef VCMI_USE_OLD_AVUTIL
+		av_free(frame);
+		frame = nullptr;
+#else
+		av_frame_free(&frame);//will be set to null		
+#endif		
 	}
 
 	if (codec)

+ 5 - 0
client/CVideoHandler.h

@@ -53,6 +53,11 @@ extern "C" {
 #include <libswscale/swscale.h>
 }
 
+//compatibility for libav 9.18 in ubuntu 14.04, 52.66.100 is ffmpeg 2.2.3
+#if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(52, 66, 100) 
+#define VCMI_USE_OLD_AVUTIL
+#endif // LIBSWSCALE_VERSION_INT
+
 class CVideoPlayer : public IMainVideoPlayer
 {
 	int stream;					// stream index in video