Package: gst-libav1.0
Version: 1.6.1-1
Severity: important
Tags: patch
User: [email protected]
Usertags: ffmpeg2.9
Dear Maintainer,
your package fails to build with the upcoming ffmpeg 2.9.
This bug will become release-critical at some point when the
ffmpeg2.9 transition gets closer.
Attached is a patch replacing the deprecated functionality.
It also works with ffmpeg 2.8.
Please apply this patch and forward it upstream, if necessary.
These changes are non-trivial and should be runtime-tested.
Best regards,
Andreas
diff --git a/debian/control b/debian/control
index 7a1e349..52521cd 100644
--- a/debian/control
+++ b/debian/control
@@ -24,6 +24,7 @@ Build-Depends: debhelper (>= 9),
liborc-0.4-dev (>= 1:0.4.16),
libavutil-dev (>= 7:2.7),
libavcodec-dev (>= 7:2.7),
+ libavfilter-dev,
libavformat-dev (>= 7:2.7),
libswscale-dev (>= 7:2.7),
libbz2-dev,
diff --git a/debian/patches/ffmpeg_2.9.patch b/debian/patches/ffmpeg_2.9.patch
new file mode 100644
index 0000000..563ed9d
--- /dev/null
+++ b/debian/patches/ffmpeg_2.9.patch
@@ -0,0 +1,498 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <[email protected]>
+Last-Update: <2015-11-02>
+
+--- gst-libav1.0-1.6.1.orig/configure.ac
++++ gst-libav1.0-1.6.1/configure.ac
+@@ -256,7 +256,7 @@ AC_ARG_WITH(system-libav,
+ [AC_HELP_STRING([--with-system-libav], [use system Libav libraries])])
+
+ if test "x$with_system_libav" = "xyes"; then
+- PKG_CHECK_MODULES(LIBAV, libavformat libavcodec libavutil)
++ PKG_CHECK_MODULES(LIBAV, libavfilter libavformat libavcodec libavutil)
+ PKG_CHECK_MODULES(SWSCALE, libswscale libavutil)
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $LIBAV_CFLAGS"
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavcfg.c
++++ gst-libav1.0-1.6.1/ext/libav/gstavcfg.c
+@@ -173,13 +173,10 @@ gst_ffmpeg_idct_algo_get_type (void)
+ {FF_IDCT_SIMPLEMMX, "Simple MMX", "simplemmx"},
+ {FF_IDCT_ARM, "ARM", "arm"},
+ {FF_IDCT_ALTIVEC, "Altivec", "altivec"},
+- {FF_IDCT_SH4, "SH4", "sh4"},
+ {FF_IDCT_SIMPLEARM, "Simple ARM", "simplearm"},
+- {FF_IDCT_IPP, "IPP", "ipp"},
+ {FF_IDCT_XVID, "XVID", "xvid"},
+ {FF_IDCT_SIMPLEARMV5TE, "Simple ARMV5TE", "simplearmv5te"},
+ {FF_IDCT_SIMPLEARMV6, "Simple ARMV6", "simplearmv6"},
+- {FF_IDCT_SIMPLEVIS, "Simple Vis", "simplevis"},
+ {FF_IDCT_FAAN, "FAAN", "faan"},
+ {FF_IDCT_SIMPLENEON, "Simple NEON", "simpleneon"},
+ {0, NULL, NULL},
+@@ -665,7 +662,7 @@ gst_ffmpeg_cfg_init (void)
+ gst_ffmpeg_add_pspec (pspec, interlaced, FALSE, mpeg, NULL);
+
+ pspec = g_param_spec_int ("max-bframes", "Max B-Frames",
+- "Maximum B-frames in a row", 0, FF_MAX_B_FRAMES, 0,
++ "Maximum B-frames in a row", 0, INT_MAX, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ gst_ffmpeg_add_pspec (pspec, config.max_b_frames, FALSE, mpeg, NULL);
+
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavcodecmap.c
++++ gst-libav1.0-1.6.1/ext/libav/gstavcodecmap.c
+@@ -758,10 +758,6 @@ gst_ffmpeg_codecid_to_caps (enum AVCodec
+ }
+ break;
+
+- case AV_CODEC_ID_MPEG2VIDEO_XVMC:
+- /* this is a special ID - don't need it in GStreamer, I think */
+- break;
+-
+ case AV_CODEC_ID_H263:
+ if (encode) {
+ caps =
+@@ -2178,7 +2174,7 @@ gst_ffmpeg_codecid_to_caps (enum AVCodec
+ */
+
+ static GstCaps *
+-gst_ffmpeg_pixfmt_to_caps (enum PixelFormat pix_fmt, AVCodecContext * context,
++gst_ffmpeg_pixfmt_to_caps (enum AVPixelFormat pix_fmt, AVCodecContext * context,
+ enum AVCodecID codec_id)
+ {
+ GstCaps *caps = NULL;
+@@ -2509,7 +2505,7 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
+ typedef struct
+ {
+ GstVideoFormat format;
+- enum PixelFormat pixfmt;
++ enum AVPixelFormat pixfmt;
+ } PixToFmt;
+
+ /* FIXME : FILLME */
+@@ -2601,7 +2597,7 @@ static const PixToFmt pixtofmttable[] =
+ };
+
+ GstVideoFormat
+-gst_ffmpeg_pixfmt_to_videoformat (enum PixelFormat pixfmt)
++gst_ffmpeg_pixfmt_to_videoformat (enum AVPixelFormat pixfmt)
+ {
+ guint i;
+
+@@ -2613,7 +2609,7 @@ gst_ffmpeg_pixfmt_to_videoformat (enum P
+ return GST_VIDEO_FORMAT_UNKNOWN;
+ }
+
+-static enum PixelFormat
++static enum AVPixelFormat
+ gst_ffmpeg_videoformat_to_pixfmt_for_codec (GstVideoFormat format,
+ const AVCodec * codec)
+ {
+@@ -2637,7 +2633,7 @@ gst_ffmpeg_videoformat_to_pixfmt_for_cod
+ return AV_PIX_FMT_NONE;
+ }
+
+-enum PixelFormat
++enum AVPixelFormat
+ gst_ffmpeg_videoformat_to_pixfmt (GstVideoFormat format)
+ {
+ return gst_ffmpeg_videoformat_to_pixfmt_for_codec (format, NULL);
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavcodecmap.h
++++ gst-libav1.0-1.6.1/ext/libav/gstavcodecmap.h
+@@ -132,8 +132,8 @@ void
+ gst_ffmpeg_audioinfo_to_context (GstAudioInfo *info,
+ AVCodecContext *context);
+
+-GstVideoFormat gst_ffmpeg_pixfmt_to_videoformat (enum PixelFormat pixfmt);
+-enum PixelFormat gst_ffmpeg_videoformat_to_pixfmt (GstVideoFormat format);
++GstVideoFormat gst_ffmpeg_pixfmt_to_videoformat (enum AVPixelFormat pixfmt);
++enum AVPixelFormat gst_ffmpeg_videoformat_to_pixfmt (GstVideoFormat format);
+
+ GstAudioFormat gst_ffmpeg_smpfmt_to_audioformat (enum AVSampleFormat sample_fmt);
+
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavdeinterlace.c
++++ gst-libav1.0-1.6.1/ext/libav/gstavdeinterlace.c
+@@ -25,6 +25,9 @@
+ #endif
+
+ #include <libavcodec/avcodec.h>
++#include <libavfilter/avfilter.h>
++#include <libavfilter/buffersrc.h>
++#include <libavfilter/buffersink.h>
+
+ #include <gst/gst.h>
+ #include <gst/video/video.h>
+@@ -91,8 +94,16 @@ typedef struct _GstFFMpegDeinterlace
+ gboolean reconfigure;
+ GstFFMpegDeinterlaceMode new_mode;
+
+- enum PixelFormat pixfmt;
++ enum AVPixelFormat pixfmt;
+ AVPicture from_frame, to_frame;
++
++ AVFilterContext *buffersink_ctx;
++ AVFilterContext *buffersrc_ctx;
++ AVFilterGraph *filter_graph;
++ AVFrame *filter_frame;
++ int last_width, last_height;
++ enum AVPixelFormat last_pixfmt;
++
+ } GstFFMpegDeinterlace;
+
+ typedef struct _GstFFMpegDeinterlaceClass
+@@ -135,6 +146,8 @@ G_DEFINE_TYPE (GstFFMpegDeinterlace, gst
+ static GstFlowReturn gst_ffmpegdeinterlace_chain (GstPad * pad,
+ GstObject * parent, GstBuffer * inbuf);
+
++static void gst_ffmpegdeinterlace_dispose (GObject *obj);
++
+ static void
+ gst_ffmpegdeinterlace_class_init (GstFFMpegDeinterlaceClass * klass)
+ {
+@@ -167,6 +180,8 @@ gst_ffmpegdeinterlace_class_init (GstFFM
+ gst_element_class_set_static_metadata (element_class,
+ "libav Deinterlace element", "Filter/Effect/Video/Deinterlace",
+ "Deinterlace video", "Luca Ognibene <[email protected]>");
++
++ gobject_class->dispose = gst_ffmpegdeinterlace_dispose;
+ }
+
+ static void
+@@ -277,8 +292,84 @@ gst_ffmpegdeinterlace_init (GstFFMpegDei
+ deinterlace->reconfigure = FALSE;
+ deinterlace->mode = DEFAULT_MODE;
+ deinterlace->new_mode = -1;
++ deinterlace->last_width = -1;
++ deinterlace->last_height = -1;
++ deinterlace->last_pixfmt = AV_PIX_FMT_NONE;
++}
++
++static void delete_filter_graph(GstFFMpegDeinterlace *deinterlace) {
++ if (deinterlace->filter_graph) {
++ av_frame_free(&deinterlace->filter_frame);
++ avfilter_graph_free(&deinterlace->filter_graph);
++ }
++}
++
++static void gst_ffmpegdeinterlace_dispose (GObject *obj) {
++ GstFFMpegDeinterlace * deinterlace = GST_FFMPEGDEINTERLACE(obj);
++ delete_filter_graph(deinterlace);
++}
++
++static int init_filter_graph(GstFFMpegDeinterlace *deinterlace, enum AVPixelFormat pixfmt, int width, int height) {
++ AVFilterInOut *inputs = NULL, *outputs = NULL;
++ char args[512];
++ int res;
++
++ delete_filter_graph(deinterlace);
++ deinterlace->filter_graph = avfilter_graph_alloc();
++ snprintf(args, sizeof(args),
++ "buffer=video_size=%dx%d:pix_fmt=%d:time_base=1/1:pixel_aspect=0/1[in];"
++ "[in]yadif[out];"
++ "[out]buffersink",
++ width, height, pixfmt);
++ res = avfilter_graph_parse2(deinterlace->filter_graph, args, &inputs, &outputs);
++ if (res < 0)
++ return res;
++ if(inputs || outputs)
++ return -1;
++ res = avfilter_graph_config(deinterlace->filter_graph, NULL);
++ if (res < 0)
++ return res;
++
++ deinterlace->buffersrc_ctx = avfilter_graph_get_filter(deinterlace->filter_graph, "Parsed_buffer_0");
++ deinterlace->buffersink_ctx = avfilter_graph_get_filter(deinterlace->filter_graph, "Parsed_buffersink_2");
++ if (!deinterlace->buffersrc_ctx || !deinterlace->buffersink_ctx)
++ return -1;
++ deinterlace->filter_frame = av_frame_alloc();
++ deinterlace->last_width = width;
++ deinterlace->last_height = height;
++ deinterlace->last_pixfmt = pixfmt;
++
++ return 0;
+ }
+
++static int process_filter_graph(GstFFMpegDeinterlace *deinterlace, AVPicture *dst, const AVPicture *src,
++ enum AVPixelFormat pixfmt, int width, int height) {
++ int res;
++
++ if (!deinterlace->filter_graph || width != deinterlace->last_width ||
++ height != deinterlace->last_height || pixfmt != deinterlace->last_pixfmt) {
++ res = init_filter_graph(deinterlace, pixfmt, width, height);
++ if (res < 0)
++ return res;
++ }
++
++ memcpy(deinterlace->filter_frame->data, src->data, sizeof(src->data));
++ memcpy(deinterlace->filter_frame->linesize, src->linesize, sizeof(src->linesize));
++ deinterlace->filter_frame->width = width;
++ deinterlace->filter_frame->height = height;
++ deinterlace->filter_frame->format = pixfmt;
++ res = av_buffersrc_add_frame(deinterlace->buffersrc_ctx, deinterlace->filter_frame);
++ if (res < 0)
++ return res;
++ res = av_buffersink_get_frame(deinterlace->buffersink_ctx, deinterlace->filter_frame);
++ if (res < 0)
++ return res;
++ av_picture_copy(dst, (const AVPicture *) deinterlace->filter_frame, pixfmt, width, height);
++ av_frame_unref(deinterlace->filter_frame);
++
++ return 0;
++ }
++
+ static GstFlowReturn
+ gst_ffmpegdeinterlace_chain (GstPad * pad, GstObject * parent,
+ GstBuffer * inbuf)
+@@ -320,7 +411,7 @@ gst_ffmpegdeinterlace_chain (GstPad * pa
+ gst_ffmpeg_avpicture_fill (&deinterlace->to_frame, to_map.data,
+ deinterlace->pixfmt, deinterlace->width, deinterlace->height);
+
+- avpicture_deinterlace (&deinterlace->to_frame, &deinterlace->from_frame,
++ process_filter_graph (deinterlace, &deinterlace->to_frame, &deinterlace->from_frame,
+ deinterlace->pixfmt, deinterlace->width, deinterlace->height);
+ gst_buffer_unmap (outbuf, &to_map);
+ gst_buffer_unmap (inbuf, &from_map);
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavutils.c
++++ gst-libav1.0-1.6.1/ext/libav/gstavutils.c
+@@ -279,7 +279,7 @@ gst_ffmpeg_avpicture_get_size (int pix_f
+
+ int
+ gst_ffmpeg_avpicture_fill (AVPicture * picture,
+- uint8_t * ptr, enum PixelFormat pix_fmt, int width, int height)
++ uint8_t * ptr, enum AVPixelFormat pix_fmt, int width, int height)
+ {
+ int size, w2, h2, size2;
+ int stride, stride2;
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavutils.h
++++ gst-libav1.0-1.6.1/ext/libav/gstavutils.h
+@@ -42,7 +42,7 @@ gst_ffmpeg_avpicture_get_size (int pix_f
+ int
+ gst_ffmpeg_avpicture_fill (AVPicture * picture,
+ uint8_t * ptr,
+- enum PixelFormat pix_fmt,
++ enum AVPixelFormat pix_fmt,
+ int width,
+ int height);
+
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavviddec.c
++++ gst-libav1.0-1.6.1/ext/libav/gstavviddec.c
+@@ -461,9 +461,6 @@ gst_ffmpegviddec_set_format (GstVideoDec
+
+ /* set buffer functions */
+ ffmpegdec->context->get_buffer2 = gst_ffmpegviddec_get_buffer2;
+- ffmpegdec->context->get_buffer = NULL;
+- ffmpegdec->context->reget_buffer = NULL;
+- ffmpegdec->context->release_buffer = NULL;
+ ffmpegdec->context->draw_horiz_band = NULL;
+
+ /* reset coded_width/_height to prevent it being reused from last time when
+@@ -637,19 +634,10 @@ gst_ffmpegvideodec_prepare_dr_pool (GstF
+ avcodec_align_dimensions2 (ffmpegdec->context, &width, &height,
+ linesize_align);
+
+- if (ffmpegdec->context->flags & CODEC_FLAG_EMU_EDGE)
+- edge = 0;
+- else
+- edge = avcodec_get_edge_width ();
+-
+- /* increase the size for the padding */
+- width += edge << 1;
+- height += edge << 1;
+-
+- align.padding_top = edge;
+- align.padding_left = edge;
+- align.padding_right = width - GST_VIDEO_INFO_WIDTH (info) - edge;
+- align.padding_bottom = height - GST_VIDEO_INFO_HEIGHT (info) - edge;
++ align.padding_top = 0;
++ align.padding_left = 0;
++ align.padding_right = width - GST_VIDEO_INFO_WIDTH (info);
++ align.padding_bottom = height - GST_VIDEO_INFO_HEIGHT (info);
+
+ /* add extra padding to match libav buffer allocation sizes */
+ align.padding_bottom++;
+@@ -842,10 +830,6 @@ gst_ffmpegviddec_get_buffer2 (AVCodecCon
+
+ picture->buf[0] = av_buffer_create (NULL, 0, dummy_free_buffer, dframe, 0);
+
+- /* tell ffmpeg we own this buffer, transfer the ref we have on the buffer to
+- * the opaque data. */
+- picture->type = FF_BUFFER_TYPE_USER;
+-
+ GST_LOG_OBJECT (ffmpegdec, "returned frame %p", dframe->buffer);
+
+ return 0;
+@@ -1382,8 +1366,6 @@ gst_ffmpegviddec_video_frame (GstFFMpegV
+ (guint64) ffmpegdec->picture->pts);
+ GST_DEBUG_OBJECT (ffmpegdec, "picture: num %d",
+ ffmpegdec->picture->coded_picture_number);
+- GST_DEBUG_OBJECT (ffmpegdec, "picture: ref %d",
+- ffmpegdec->picture->reference);
+ GST_DEBUG_OBJECT (ffmpegdec, "picture: display %d",
+ ffmpegdec->picture->display_picture_number);
+ GST_DEBUG_OBJECT (ffmpegdec, "picture: opaque %p",
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavviddec.h
++++ gst-libav1.0-1.6.1/ext/libav/gstavviddec.h
+@@ -41,7 +41,7 @@ struct _GstFFMpegVidDec
+ gboolean opened;
+
+ /* current output pictures */
+- enum PixelFormat pic_pix_fmt;
++ enum AVPixelFormat pic_pix_fmt;
+ gint pic_width;
+ gint pic_height;
+ gint pic_par_n;
+@@ -72,7 +72,7 @@ struct _GstFFMpegVidDec
+ GstBufferPool *internal_pool;
+ gint pool_width;
+ gint pool_height;
+- enum PixelFormat pool_format;
++ enum AVPixelFormat pool_format;
+ GstVideoInfo pool_info;
+ };
+
+--- gst-libav1.0-1.6.1.orig/ext/libav/gstavvidenc.c
++++ gst-libav1.0-1.6.1/ext/libav/gstavvidenc.c
+@@ -290,7 +290,7 @@ gst_ffmpegvidenc_set_format (GstVideoEnc
+ GstCaps *allowed_caps;
+ GstCaps *icaps;
+ GstVideoCodecState *output_format;
+- enum PixelFormat pix_fmt;
++ enum AVPixelFormat pix_fmt;
+ GstFFMpegVidEnc *ffmpegenc = (GstFFMpegVidEnc *) encoder;
+ GstFFMpegVidEncClass *oclass =
+ (GstFFMpegVidEncClass *) G_OBJECT_GET_CLASS (ffmpegenc);
+--- gst-libav1.0-1.6.1.orig/ext/libswscale/gstffmpegscale.c
++++ gst-libav1.0-1.6.1/ext/libswscale/gstffmpegscale.c
+@@ -45,7 +45,7 @@ typedef struct _GstFFMpegScale
+ /* state */
+ GstVideoInfo in_info, out_info;
+
+- enum PixelFormat in_pixfmt, out_pixfmt;
++ enum AVPixelFormat in_pixfmt, out_pixfmt;
+ struct SwsContext *ctx;
+
+ /* property */
+@@ -214,8 +214,8 @@ gst_ffmpegscale_init (GstFFMpegScale * s
+ {
+ scale->method = DEFAULT_PROP_METHOD;
+ scale->ctx = NULL;
+- scale->in_pixfmt = PIX_FMT_NONE;
+- scale->out_pixfmt = PIX_FMT_NONE;
++ scale->in_pixfmt = AV_PIX_FMT_NONE;
++ scale->out_pixfmt = AV_PIX_FMT_NONE;
+ }
+
+ static void
+@@ -226,8 +226,8 @@ gst_ffmpegscale_reset (GstFFMpegScale *
+ scale->ctx = NULL;
+ }
+
+- scale->in_pixfmt = PIX_FMT_NONE;
+- scale->out_pixfmt = PIX_FMT_NONE;
++ scale->in_pixfmt = AV_PIX_FMT_NONE;
++ scale->out_pixfmt = AV_PIX_FMT_NONE;
+ }
+
+ static void
+@@ -442,11 +442,11 @@ gst_ffmpegscale_get_unit_size (GstBaseTr
+
+ /* Convert a GstCaps (video/raw) to a FFMPEG PixFmt
+ */
+-static enum PixelFormat
++static enum AVPixelFormat
+ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps)
+ {
+ GstVideoInfo info;
+- enum PixelFormat pix_fmt;
++ enum AVPixelFormat pix_fmt;
+
+ GST_DEBUG ("converting caps %" GST_PTR_FORMAT, caps);
+
+@@ -455,52 +455,52 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
+
+ switch (GST_VIDEO_INFO_FORMAT (&info)) {
+ case GST_VIDEO_FORMAT_YUY2:
+- pix_fmt = PIX_FMT_YUYV422;
++ pix_fmt = AV_PIX_FMT_YUYV422;
+ break;
+ case GST_VIDEO_FORMAT_UYVY:
+- pix_fmt = PIX_FMT_UYVY422;
++ pix_fmt = AV_PIX_FMT_UYVY422;
+ break;
+ case GST_VIDEO_FORMAT_I420:
+- pix_fmt = PIX_FMT_YUV420P;
++ pix_fmt = AV_PIX_FMT_YUV420P;
+ break;
+ case GST_VIDEO_FORMAT_Y41B:
+- pix_fmt = PIX_FMT_YUV411P;
++ pix_fmt = AV_PIX_FMT_YUV411P;
+ break;
+ case GST_VIDEO_FORMAT_Y42B:
+- pix_fmt = PIX_FMT_YUV422P;
++ pix_fmt = AV_PIX_FMT_YUV422P;
+ break;
+ case GST_VIDEO_FORMAT_YUV9:
+- pix_fmt = PIX_FMT_YUV410P;
++ pix_fmt = AV_PIX_FMT_YUV410P;
+ break;
+ case GST_VIDEO_FORMAT_ARGB:
+- pix_fmt = PIX_FMT_ARGB;
++ pix_fmt = AV_PIX_FMT_ARGB;
+ break;
+ case GST_VIDEO_FORMAT_RGBA:
+- pix_fmt = PIX_FMT_RGBA;
++ pix_fmt = AV_PIX_FMT_RGBA;
+ break;
+ case GST_VIDEO_FORMAT_BGRA:
+- pix_fmt = PIX_FMT_BGRA;
++ pix_fmt = AV_PIX_FMT_BGRA;
+ break;
+ case GST_VIDEO_FORMAT_ABGR:
+- pix_fmt = PIX_FMT_ABGR;
++ pix_fmt = AV_PIX_FMT_ABGR;
+ break;
+ case GST_VIDEO_FORMAT_BGR:
+- pix_fmt = PIX_FMT_BGR24;
++ pix_fmt = AV_PIX_FMT_BGR24;
+ break;
+ case GST_VIDEO_FORMAT_RGB:
+- pix_fmt = PIX_FMT_RGB24;
++ pix_fmt = AV_PIX_FMT_RGB24;
+ break;
+ case GST_VIDEO_FORMAT_RGB16:
+- pix_fmt = PIX_FMT_RGB565;
++ pix_fmt = AV_PIX_FMT_RGB565;
+ break;
+ case GST_VIDEO_FORMAT_RGB15:
+- pix_fmt = PIX_FMT_RGB555;
++ pix_fmt = AV_PIX_FMT_RGB555;
+ break;
+ case GST_VIDEO_FORMAT_RGB8P:
+- pix_fmt = PIX_FMT_PAL8;
++ pix_fmt = AV_PIX_FMT_PAL8;
+ break;
+ default:
+- pix_fmt = PIX_FMT_NONE;
++ pix_fmt = AV_PIX_FMT_NONE;
+ break;
+ }
+ return pix_fmt;
+@@ -508,7 +508,7 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps
+ /* ERROR */
+ invalid_caps:
+ {
+- return PIX_FMT_NONE;
++ return AV_PIX_FMT_NONE;
+ }
+ }
+
+@@ -537,8 +537,8 @@ gst_ffmpegscale_set_caps (GstBaseTransfo
+ scale->in_pixfmt = gst_ffmpeg_caps_to_pixfmt (incaps);
+ scale->out_pixfmt = gst_ffmpeg_caps_to_pixfmt (outcaps);
+
+- if (!ok || scale->in_pixfmt == PIX_FMT_NONE ||
+- scale->out_pixfmt == PIX_FMT_NONE ||
++ if (!ok || scale->in_pixfmt == AV_PIX_FMT_NONE ||
++ scale->out_pixfmt == AV_PIX_FMT_NONE ||
+ GST_VIDEO_INFO_FORMAT (&scale->in_info) == GST_VIDEO_FORMAT_UNKNOWN ||
+ GST_VIDEO_INFO_FORMAT (&scale->out_info) == GST_VIDEO_FORMAT_UNKNOWN)
+ goto refuse_caps;
diff --git a/debian/patches/series b/debian/patches/series
index e69de29..a827249 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -0,0 +1 @@
+ffmpeg_2.9.patch
_______________________________________________
pkg-gstreamer-maintainers mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-gstreamer-maintainers