1 |
aballier 15/02/04 12:01:03 |
2 |
|
3 |
Added: gst-plugins-libav-1.4.5-libav9.patch |
4 |
Log: |
5 |
add patch to build and work with latest visible libav-9; loosen dep to >=libav-9. |
6 |
|
7 |
Signed-off-by: aballier@g.o |
8 |
(Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 160F534A) |
9 |
|
10 |
Revision Changes Path |
11 |
1.1 media-plugins/gst-plugins-libav/files/gst-plugins-libav-1.4.5-libav9.patch |
12 |
|
13 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/media-plugins/gst-plugins-libav/files/gst-plugins-libav-1.4.5-libav9.patch?rev=1.1&view=markup |
14 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/media-plugins/gst-plugins-libav/files/gst-plugins-libav-1.4.5-libav9.patch?rev=1.1&content-type=text/plain |
15 |
|
16 |
Index: gst-plugins-libav-1.4.5-libav9.patch |
17 |
=================================================================== |
18 |
Add compatibility for libav-9 not to require still hardmasked libav-10. |
19 |
aballier@g.o |
20 |
|
21 |
|
22 |
Index: work/gst-libav-1.4.5/ext/libav/gstavauddec.c |
23 |
=================================================================== |
24 |
--- work.orig/gst-libav-1.4.5/ext/libav/gstavauddec.c |
25 |
+++ work/gst-libav-1.4.5/ext/libav/gstavauddec.c |
26 |
@@ -582,9 +582,11 @@ gst_ffmpegauddec_audio_frame (GstFFMpegA |
27 |
ffmpegdec->info.position); |
28 |
} |
29 |
|
30 |
+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52,17,0) |
31 |
/* Mark corrupted frames as corrupted */ |
32 |
if (frame.flags & AV_FRAME_FLAG_CORRUPT) |
33 |
GST_BUFFER_FLAG_SET (*outbuf, GST_BUFFER_FLAG_CORRUPTED); |
34 |
+#endif |
35 |
} else { |
36 |
*outbuf = NULL; |
37 |
} |
38 |
Index: work/gst-libav-1.4.5/ext/libav/gstavcodecmap.c |
39 |
=================================================================== |
40 |
--- work.orig/gst-libav-1.4.5/ext/libav/gstavcodecmap.c |
41 |
+++ work/gst-libav-1.4.5/ext/libav/gstavcodecmap.c |
42 |
@@ -1206,6 +1206,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodec |
43 |
} |
44 |
break; |
45 |
|
46 |
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,41,0) |
47 |
case AV_CODEC_ID_HEVC: |
48 |
caps = |
49 |
gst_ff_vid_caps_new (context, NULL, codec_id, encode, "video/x-h265", |
50 |
@@ -1226,6 +1227,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodec |
51 |
g_value_unset (&arr); |
52 |
} |
53 |
break; |
54 |
+#endif |
55 |
|
56 |
case AV_CODEC_ID_INDEO5: |
57 |
caps = |
58 |
@@ -1706,11 +1708,13 @@ gst_ffmpeg_codecid_to_caps (enum AVCodec |
59 |
} |
60 |
break; |
61 |
|
62 |
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,5,0) |
63 |
case AV_CODEC_ID_AIC: |
64 |
caps = |
65 |
gst_ff_vid_caps_new (context, NULL, codec_id, encode, |
66 |
"video/x-apple-intermediate-codec", NULL); |
67 |
break; |
68 |
+#endif |
69 |
|
70 |
case AV_CODEC_ID_WS_VQA: |
71 |
case AV_CODEC_ID_IDCIN: |
72 |
@@ -3760,9 +3764,11 @@ gst_ffmpeg_caps_to_codecid (const GstCap |
73 |
id = AV_CODEC_ID_FFV1; |
74 |
video = TRUE; |
75 |
} |
76 |
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,5,0) |
77 |
} else if (!strcmp (mimetype, "video/x-apple-intermediate-codec")) { |
78 |
id = AV_CODEC_ID_AIC; |
79 |
video = TRUE; |
80 |
+#endif |
81 |
} else if (!strcmp (mimetype, "audio/x-adpcm")) { |
82 |
const gchar *layout; |
83 |
|
84 |
@@ -3924,9 +3930,11 @@ gst_ffmpeg_caps_to_codecid (const GstCap |
85 |
} else if (!strcmp (mimetype, "video/x-h264")) { |
86 |
id = AV_CODEC_ID_H264; |
87 |
video = TRUE; |
88 |
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,41,0) |
89 |
} else if (!strcmp (mimetype, "video/x-h265")) { |
90 |
id = AV_CODEC_ID_HEVC; |
91 |
video = TRUE; |
92 |
+#endif |
93 |
} else if (!strcmp (mimetype, "video/x-flash-video")) { |
94 |
gint flvversion = 0; |
95 |
|
96 |
Index: work/gst-libav-1.4.5/ext/libav/gstavviddec.c |
97 |
=================================================================== |
98 |
--- work.orig/gst-libav-1.4.5/ext/libav/gstavviddec.c |
99 |
+++ work/gst-libav-1.4.5/ext/libav/gstavviddec.c |
100 |
@@ -368,8 +368,10 @@ gst_ffmpegviddec_open (GstFFMpegVidDec * |
101 |
break; |
102 |
} |
103 |
|
104 |
+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52,17,0) |
105 |
gst_ffmpegviddec_context_set_flags (ffmpegdec->context, |
106 |
CODEC_FLAG_OUTPUT_CORRUPT, ffmpegdec->output_corrupt); |
107 |
+#endif |
108 |
|
109 |
return TRUE; |
110 |
|
111 |
@@ -733,17 +735,21 @@ invalid_frame: |
112 |
fallback: |
113 |
{ |
114 |
int c; |
115 |
+#if LIBAVUTIL_VERSION_MAJOR >= 53 |
116 |
gboolean first = TRUE; |
117 |
+#endif |
118 |
int ret = avcodec_default_get_buffer (context, picture); |
119 |
|
120 |
for (c = 0; c < AV_NUM_DATA_POINTERS; c++) { |
121 |
ffmpegdec->stride[c] = picture->linesize[c]; |
122 |
|
123 |
+#if LIBAVUTIL_VERSION_MAJOR >= 53 |
124 |
if (picture->buf[c] == NULL && first) { |
125 |
picture->buf[c] = |
126 |
av_buffer_create (NULL, 0, dummy_free_buffer, dframe, 0); |
127 |
first = FALSE; |
128 |
} |
129 |
+#endif |
130 |
} |
131 |
|
132 |
return ret; |
133 |
@@ -1280,8 +1286,10 @@ gst_ffmpegviddec_video_frame (GstFFMpegV |
134 |
ffmpegdec->picture->repeat_pict); |
135 |
GST_DEBUG_OBJECT (ffmpegdec, "interlaced_frame:%d (current:%d)", |
136 |
ffmpegdec->picture->interlaced_frame, ffmpegdec->ctx_interlaced); |
137 |
+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52,17,0) |
138 |
GST_DEBUG_OBJECT (ffmpegdec, "corrupted frame: %d", |
139 |
! !(ffmpegdec->picture->flags & AV_FRAME_FLAG_CORRUPT)); |
140 |
+#endif |
141 |
|
142 |
if (G_UNLIKELY (ffmpegdec->picture->interlaced_frame != |
143 |
ffmpegdec->ctx_interlaced)) { |
144 |
@@ -1298,9 +1306,11 @@ gst_ffmpegviddec_video_frame (GstFFMpegV |
145 |
if (G_UNLIKELY (*ret != GST_FLOW_OK)) |
146 |
goto no_output; |
147 |
|
148 |
+#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(52,17,0) |
149 |
/* Mark corrupted frames as corrupted */ |
150 |
if (ffmpegdec->picture->flags & AV_FRAME_FLAG_CORRUPT) |
151 |
GST_BUFFER_FLAG_SET (out_frame->output_buffer, GST_BUFFER_FLAG_CORRUPTED); |
152 |
+#endif |
153 |
|
154 |
if (ffmpegdec->ctx_interlaced) { |
155 |
/* set interlaced flags */ |
156 |
@@ -1980,7 +1990,9 @@ gst_ffmpegviddec_register (GstPlugin * p |
157 |
case AV_CODEC_ID_MPEG4: |
158 |
case AV_CODEC_ID_MSMPEG4V3: |
159 |
case AV_CODEC_ID_H264: |
160 |
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,41,0) |
161 |
case AV_CODEC_ID_HEVC: |
162 |
+#endif |
163 |
case AV_CODEC_ID_RV10: |
164 |
case AV_CODEC_ID_RV20: |
165 |
case AV_CODEC_ID_RV30: |
166 |
Index: work/gst-libav-1.4.5/ext/libav/gstavaudenc.c |
167 |
=================================================================== |
168 |
--- work.orig/gst-libav-1.4.5/ext/libav/gstavaudenc.c |
169 |
+++ work/gst-libav-1.4.5/ext/libav/gstavaudenc.c |
170 |
@@ -409,7 +409,11 @@ gst_ffmpegaudenc_set_format (GstAudioEnc |
171 |
static void |
172 |
gst_ffmpegaudenc_free_avpacket (gpointer pkt) |
173 |
{ |
174 |
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,16,0) |
175 |
av_packet_unref ((AVPacket *) pkt); |
176 |
+#else |
177 |
+ av_destruct_packet ((AVPacket *) pkt); |
178 |
+#endif |
179 |
g_slice_free (AVPacket, pkt); |
180 |
} |
181 |
|
182 |
Index: work/gst-libav-1.4.5/ext/libav/gstavvidenc.c |
183 |
=================================================================== |
184 |
--- work.orig/gst-libav-1.4.5/ext/libav/gstavvidenc.c |
185 |
+++ work/gst-libav-1.4.5/ext/libav/gstavvidenc.c |
186 |
@@ -576,7 +576,11 @@ gst_ffmpegvidenc_propose_allocation (Gst |
187 |
static void |
188 |
gst_ffmpegvidenc_free_avpacket (gpointer pkt) |
189 |
{ |
190 |
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,16,0) |
191 |
av_packet_unref ((AVPacket *) pkt); |
192 |
+#else |
193 |
+ av_destruct_packet ((AVPacket *) pkt); |
194 |
+#endif |
195 |
g_slice_free (AVPacket, pkt); |
196 |
} |