summaryrefslogtreecommitdiff
blob: f2f9085f4a7f457030e97601c733a2595a1ef6f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
--- vbam-1.8.0.1228/src/common/ffmpeg.cpp
+++ vbam-1.8.0.1228/src/common/ffmpeg.cpp
@@ -178,17 +178,31 @@ MediaRet MediaRecorder::setup_video_stre
     // make sure RGB is supported (mostly not)
     if(codec->pix_fmts) {
 	const enum PixelFormat *p;
+#if LIBAVCODEC_VERSION_MAJOR < 55
 	int64_t mask = 0;
+#endif
 	for(p = codec->pix_fmts; *p != -1; p++) {
 	    // may get complaints about 1LL; thus the cast
+#if LIBAVCODEC_VERSION_MAJOR < 55
 	    mask |= ((int64_t)1) << *p;
+#endif
 	    if(*p == pixfmt)
 		break;
 	}
 	if(*p == -1) {
 	    // if not supported, use a converter to the next best format
 	    // this is swscale, the converter used by the output demo
+#if LIBAVCODEC_VERSION_MAJOR < 55
 	    enum PixelFormat dp = (PixelFormat)avcodec_find_best_pix_fmt(mask, pixfmt, 0, NULL);
+#else
+#if LIBAVCODEC_VERSION_MICRO >= 100
+// FFmpeg
+	    enum AVPixelFormat dp = avcodec_find_best_pix_fmt_of_list(codec->pix_fmts, pixfmt, 0, NULL);
+#else
+// Libav
+	    enum AVPixelFormat dp = avcodec_find_best_pix_fmt2(codec->pix_fmts, pixfmt, 0, NULL);
+#endif
+#endif
 	    if(dp == -1)
 		dp = codec->pix_fmts[0];
 	    if(!(convpic = avcodec_alloc_frame()) ||