Gentoo Archives: gentoo-commits

From: "Alexis Ballier (aballier)" <aballier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in media-plugins/gst-plugins-libav/files: gst-plugins-libav-1.4.5-libav9.patch
Date: Wed, 04 Feb 2015 12:01:09
Message-Id: 20150204120103.317811108D@oystercatcher.gentoo.org
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 }