Your message dated Sun, 17 Apr 2016 17:19:29 +0000
with message-id <[email protected]>
and subject line Bug#803867: fixed in vdr-plugin-softhddevice 
0.6.0+git20160108-1
has caused the Debian Bug report #803867,
regarding vdr-plugin-softhddevice: FTBFS with FFmpeg 2.9
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
803867: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803867
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: vdr-plugin-softhddevice
Version: 0.6.0+git20150324-2
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/patches/ffmpeg_2.9.patch b/debian/patches/ffmpeg_2.9.patch
new file mode 100644
index 0000000..0e56744
--- /dev/null
+++ b/debian/patches/ffmpeg_2.9.patch
@@ -0,0 +1,654 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <[email protected]>
+Last-Update: <2015-11-02>
+
+--- vdr-plugin-softhddevice-0.6.0+git20150324.orig/Todo
++++ vdr-plugin-softhddevice-0.6.0+git20150324/Todo
+@@ -43,7 +43,6 @@ video:
+     check start with 24Hz display rate
+     crash with ffmpeg without vaapi and vdpau.
+     still-picture of PES recordings should use VideoMpegEnqueue.
+-    convert PIX_FMT_... PixelFormat to new names AV_PIX_FMT_..., AVPixelFormat.
+     atmo service support 3D grab
+     no warnings during still picture
+ 
+--- vdr-plugin-softhddevice-0.6.0+git20150324.orig/codec.c
++++ vdr-plugin-softhddevice-0.6.0+git20150324/codec.c
+@@ -134,7 +134,7 @@ struct _video_decoder_
+ //----------------------------------------------------------------------------
+ 
+ /**
+-**	Callback to negotiate the PixelFormat.
++**	Callback to negotiate the AVPixelFormat.
+ **
+ **	@param video_ctx	codec context
+ **	@param fmt		is the list of formats which are supported by
+@@ -142,8 +142,8 @@ struct _video_decoder_
+ **				valid format, the formats are ordered by
+ **				quality.
+ */
+-static enum PixelFormat Codec_get_format(AVCodecContext * video_ctx,
+-    const enum PixelFormat *fmt)
++static enum AVPixelFormat Codec_get_format(AVCodecContext * video_ctx,
++    const enum AVPixelFormat *fmt)
+ {
+     VideoDecoder *decoder;
+ 
+@@ -170,6 +170,8 @@ static enum PixelFormat Codec_get_format
+     return Video_get_format(decoder->HwDecoder, video_ctx, fmt);
+ }
+ 
++static void Codec_free_buffer(void *opaque, uint8_t *data);
++
+ /**
+ **	Video buffer management, get buffer for frame.
+ **
+@@ -178,7 +180,7 @@ static enum PixelFormat Codec_get_format
+ **	@param video_ctx	Codec context
+ **	@param frame		Get buffer for this frame
+ */
+-static int Codec_get_buffer(AVCodecContext * video_ctx, AVFrame * frame)
++static int Codec_get_buffer2(AVCodecContext * video_ctx, AVFrame * frame, int flags)
+ {
+     VideoDecoder *decoder;
+ 
+@@ -188,19 +190,19 @@ static int Codec_get_buffer(AVCodecConte
+     // libav 0.8.5 53.35.0 still needs this
+ #endif
+     if (!decoder->GetFormatDone) {	// get_format missing
+-	enum PixelFormat fmts[2];
++	enum AVPixelFormat fmts[2];
+ 
+ 	fprintf(stderr, "codec: buggy libav, use ffmpeg\n");
+ 	Warning(_("codec: buggy libav, use ffmpeg\n"));
+ 	fmts[0] = video_ctx->pix_fmt;
+-	fmts[1] = PIX_FMT_NONE;
++	fmts[1] = AV_PIX_FMT_NONE;
+ 	Codec_get_format(video_ctx, fmts);
+     }
+ #ifdef USE_VDPAU
+-    // VDPAU: PIX_FMT_VDPAU_H264 .. PIX_FMT_VDPAU_VC1 PIX_FMT_VDPAU_MPEG4
+-    if ((PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
+-	    && video_ctx->pix_fmt <= PIX_FMT_VDPAU_VC1)
+-	|| video_ctx->pix_fmt == PIX_FMT_VDPAU_MPEG4) {
++    // VDPAU: AV_PIX_FMT_VDPAU_H264 .. AV_PIX_FMT_VDPAU_VC1 AV_PIX_FMT_VDPAU_MPEG4
++    if ((AV_PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
++	    && video_ctx->pix_fmt <= AV_PIX_FMT_VDPAU_VC1)
++	|| video_ctx->pix_fmt == AV_PIX_FMT_VDPAU_MPEG4) {
+ 	unsigned surface;
+ 	struct vdpau_render_state *vrs;
+ 
+@@ -217,7 +219,8 @@ static int Codec_get_buffer(AVCodecConte
+ 	frame->age = 256 * 256 * 256 * 64;
+ #endif
+ 	// render
+-	frame->data[0] = (void *)vrs;
++	frame->buf[0] = av_buffer_create((uint8_t*)vrs, 0, Codec_free_buffer, video_ctx, 0);
++	frame->data[0] = frame->buf[0]->data;
+ 	frame->data[1] = NULL;
+ 	frame->data[2] = NULL;
+ 	frame->data[3] = NULL;
+@@ -248,8 +251,9 @@ static int Codec_get_buffer(AVCodecConte
+ 	frame->age = 256 * 256 * 256 * 64;
+ #endif
+ 	// vaapi needs both fields set
+-	frame->data[0] = (void *)(size_t) surface;
+-	frame->data[3] = (void *)(size_t) surface;
++	frame->buf[0] = av_buffer_create((uint8_t*)(size_t)surface, 0, Codec_free_buffer, video_ctx, 0);
++	frame->data[0] = frame->buf[0]->data;
++	frame->data[3] = frame->data[0];
+ 
+ #if LIBAVUTIL_VERSION_INT < AV_VERSION_INT(52,66,100)
+ 	// reordered frames
+@@ -262,29 +266,30 @@ static int Codec_get_buffer(AVCodecConte
+ 	return 0;
+     }
+     //Debug(3, "codec: fallback to default get_buffer\n");
+-    return avcodec_default_get_buffer(video_ctx, frame);
++    return avcodec_default_get_buffer2(video_ctx, frame, flags);
+ }
+ 
+ /**
+ **	Video buffer management, release buffer for frame.
+ **	Called to release buffers which were allocated with get_buffer.
+ **
+-**	@param video_ctx	Codec context
+-**	@param frame		Release buffer for this frame
++**	@param opaque	opaque data
++**	@param data		buffer data
+ */
+-static void Codec_release_buffer(AVCodecContext * video_ctx, AVFrame * frame)
++static void Codec_free_buffer(void *opaque, uint8_t *data)
+ {
++    AVCodecContext *video_ctx = (AVCodecContext *)opaque;
+ #ifdef USE_VDPAU
+-    // VDPAU: PIX_FMT_VDPAU_H264 .. PIX_FMT_VDPAU_VC1 PIX_FMT_VDPAU_MPEG4
+-    if ((PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
+-	    && video_ctx->pix_fmt <= PIX_FMT_VDPAU_VC1)
+-	|| video_ctx->pix_fmt == PIX_FMT_VDPAU_MPEG4) {
++    // VDPAU: AV_PIX_FMT_VDPAU_H264 .. AV_PIX_FMT_VDPAU_VC1 AV_PIX_FMT_VDPAU_MPEG4
++    if ((AV_PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
++	    && video_ctx->pix_fmt <= AV_PIX_FMT_VDPAU_VC1)
++	|| video_ctx->pix_fmt == AV_PIX_FMT_VDPAU_MPEG4) {
+ 	VideoDecoder *decoder;
+ 	struct vdpau_render_state *vrs;
+ 	unsigned surface;
+ 
+ 	decoder = video_ctx->opaque;
+-	vrs = (struct vdpau_render_state *)frame->data[0];
++	vrs = (struct vdpau_render_state *)data;
+ 	surface = vrs->surface;
+ 
+ 	//Debug(3, "codec: release surface %#010x\n", surface);
+@@ -292,7 +297,7 @@ static void Codec_release_buffer(AVCodec
+ 
+ 	av_freep(&vrs->bitstream_buffers);
+ 	vrs->bitstream_buffers_allocated = 0;
+-	av_freep(&frame->data[0]);
++	av_freep(&data);
+ 
+ 	return;
+     }
+@@ -303,18 +308,13 @@ static void Codec_release_buffer(AVCodec
+ 	unsigned surface;
+ 
+ 	decoder = video_ctx->opaque;
+-	surface = (unsigned)(size_t) frame->data[3];
++	surface = (unsigned)(size_t) data;
+ 
+ 	//Debug(3, "codec: release surface %#010x\n", surface);
+ 	VideoReleaseSurface(decoder->HwDecoder, surface);
+ 
+-	frame->data[0] = NULL;
+-	frame->data[3] = NULL;
+-
+ 	return;
+     }
+-    //Debug(3, "codec: fallback to default release_buffer\n");
+-    return avcodec_default_release_buffer(video_ctx, frame);
+ }
+ 
+ /// libav: compatibility hack
+@@ -341,10 +341,10 @@ static void Codec_draw_horiz_band(AVCode
+     int height)
+ {
+ #ifdef USE_VDPAU
+-    // VDPAU: PIX_FMT_VDPAU_H264 .. PIX_FMT_VDPAU_VC1 PIX_FMT_VDPAU_MPEG4
+-    if ((PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
+-	    && video_ctx->pix_fmt <= PIX_FMT_VDPAU_VC1)
+-	|| video_ctx->pix_fmt == PIX_FMT_VDPAU_MPEG4) {
++    // VDPAU: AV_PIX_FMT_VDPAU_H264 .. AV_PIX_FMT_VDPAU_VC1 AV_PIX_FMT_VDPAU_MPEG4
++    if ((AV_PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
++	    && video_ctx->pix_fmt <= AV_PIX_FMT_VDPAU_VC1)
++	|| video_ctx->pix_fmt == AV_PIX_FMT_VDPAU_MPEG4) {
+ 	VideoDecoder *decoder;
+ 	struct vdpau_render_state *vrs;
+ 
+@@ -489,9 +489,7 @@ void CodecVideoOpen(VideoDecoder * decod
+     if (video_codec->capabilities & CODEC_CAP_HWACCEL_VDPAU) {
+ 	// FIXME: get_format never called.
+ 	decoder->VideoCtx->get_format = Codec_get_format;
+-	decoder->VideoCtx->get_buffer = Codec_get_buffer;
+-	decoder->VideoCtx->release_buffer = Codec_release_buffer;
+-	decoder->VideoCtx->reget_buffer = Codec_get_buffer;
++	decoder->VideoCtx->get_buffer2 = Codec_get_buffer2;
+ 	decoder->VideoCtx->draw_horiz_band = Codec_draw_horiz_band;
+ 	decoder->VideoCtx->slice_flags =
+ 	    SLICE_FLAG_CODED_ORDER | SLICE_FLAG_ALLOW_FIELD;
+@@ -506,9 +504,7 @@ void CodecVideoOpen(VideoDecoder * decod
+     // our pixel format video hardware decoder hook
+     if (decoder->VideoCtx->hwaccel_context) {
+ 	decoder->VideoCtx->get_format = Codec_get_format;
+-	decoder->VideoCtx->get_buffer = Codec_get_buffer;
+-	decoder->VideoCtx->release_buffer = Codec_release_buffer;
+-	decoder->VideoCtx->reget_buffer = Codec_get_buffer;
++	decoder->VideoCtx->get_buffer2 = Codec_get_buffer2;
+ #if 0
+ 	decoder->VideoCtx->thread_count = 1;
+ 	decoder->VideoCtx->draw_horiz_band = NULL;
+@@ -520,7 +516,7 @@ void CodecVideoOpen(VideoDecoder * decod
+     //
+     //	Prepare frame buffer for decoder
+     //
+-    if (!(decoder->Frame = avcodec_alloc_frame())) {
++    if (!(decoder->Frame = av_frame_alloc())) {
+ 	Fatal(_("codec: can't allocate decoder frame\n"));
+     }
+     // reset buggy ffmpeg/libav flag
+@@ -535,7 +531,7 @@ void CodecVideoOpen(VideoDecoder * decod
+ void CodecVideoClose(VideoDecoder * video_decoder)
+ {
+     // FIXME: play buffered data
+-    av_freep(&video_decoder->Frame);
++    av_frame_free(&video_decoder->Frame);
+     if (video_decoder->VideoCtx) {
+ 	pthread_mutex_lock(&CodecLockMutex);
+ 	avcodec_close(video_decoder->VideoCtx);
+@@ -681,7 +677,7 @@ struct _audio_decoder_
+     int HwSampleRate;			///< hw sample rate
+     int HwChannels;			///< hw channels
+ 
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(58,28,1)
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+     AVFrame *Frame;			///< decoded audio frame buffer
+ #endif
+ 
+@@ -761,7 +757,7 @@ AudioDecoder *CodecAudioNewDecoder(void)
+     if (!(audio_decoder = calloc(1, sizeof(*audio_decoder)))) {
+ 	Fatal(_("codec: can't allocate audio decoder\n"));
+     }
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(58,28,1)
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+     if (!(audio_decoder->Frame = av_frame_alloc())) {
+ 	Fatal(_("codec: can't allocate audio decoder frame buffer\n"));
+     }
+@@ -777,7 +773,7 @@ AudioDecoder *CodecAudioNewDecoder(void)
+ */
+ void CodecAudioDelDecoder(AudioDecoder * decoder)
+ {
+-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(58,28,1)
++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+     av_frame_free(&decoder->Frame);	// callee does checks
+ #endif
+     free(decoder);
+@@ -1803,7 +1799,7 @@ void CodecAudioDecode(AudioDecoder * aud
+ {
+     AVCodecContext *audio_ctx;
+ 
+-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,28,1)
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
+     AVFrame frame[1];
+ #else
+     AVFrame *frame;
+@@ -1816,12 +1812,12 @@ void CodecAudioDecode(AudioDecoder * aud
+     // FIXME: don't need to decode pass-through codecs
+ 
+     // new AVFrame API
+-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,28,1)
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
+     avcodec_get_frame_defaults(frame);
+ #else
+     frame = audio_decoder->Frame;
+-    av_frame_unref(frame);
+ #endif
++    av_frame_unref(frame);
+ 
+     got_frame = 0;
+     n = avcodec_decode_audio4(audio_ctx, frame, &got_frame,
+--- vdr-plugin-softhddevice-0.6.0+git20150324.orig/video.c
++++ vdr-plugin-softhddevice-0.6.0+git20150324/video.c
+@@ -259,8 +259,8 @@ typedef struct _video_module_
+     void (*const DelHwDecoder) (VideoHwDecoder *);
+     unsigned (*const GetSurface) (VideoHwDecoder *, const AVCodecContext *);
+     void (*const ReleaseSurface) (VideoHwDecoder *, unsigned);
+-    enum PixelFormat (*const get_format) (VideoHwDecoder *, AVCodecContext *,
+-	const enum PixelFormat *);
++    enum AVPixelFormat (*const get_format) (VideoHwDecoder *, AVCodecContext *,
++	const enum AVPixelFormat *);
+     void (*const RenderFrame) (VideoHwDecoder *, const AVCodecContext *,
+ 	const AVFrame *);
+     void *(*const GetHwAccelContext)(VideoHwDecoder *);
+@@ -1522,7 +1522,7 @@ struct _vaapi_decoder_
+     /// flags for put surface for different resolutions groups
+     unsigned SurfaceFlagsTable[VideoResolutionMax];
+ 
+-    enum PixelFormat PixFmt;		///< ffmpeg frame pixfmt
++    enum AVPixelFormat PixFmt;		///< ffmpeg frame pixfmt
+     int WrongInterlacedWarned;		///< warning about interlace flag issued
+     int Interlaced;			///< ffmpeg interlaced flag
+     int TopFieldFirst;			///< ffmpeg top field displayed first
+@@ -2026,7 +2026,7 @@ static VaapiDecoder *VaapiNewHwDecoder(V
+     decoder->OutputWidth = VideoWindowWidth;
+     decoder->OutputHeight = VideoWindowHeight;
+ 
+-    decoder->PixFmt = PIX_FMT_NONE;
++    decoder->PixFmt = AV_PIX_FMT_NONE;
+ 
+     decoder->Stream = stream;
+     if (!VaapiDecoderN) {		// FIXME: hack sync on audio
+@@ -2517,7 +2517,7 @@ static void VaapiUpdateOutput(VaapiDecod
+ ///	FIXME: must check if put/get with this format is supported (see intel)
+ ///
+ static int VaapiFindImageFormat(VaapiDecoder * decoder,
+-    enum PixelFormat pix_fmt, VAImageFormat * format)
++    enum AVPixelFormat pix_fmt, VAImageFormat * format)
+ {
+     VAImageFormat *imgfrmts;
+     int imgfrmt_n;
+@@ -2528,12 +2528,12 @@ static int VaapiFindImageFormat(VaapiDec
+ 	    // NV12, YV12, I420, BGRA
+ 	    // intel: I420 is native format for MPEG-2 decoded surfaces
+ 	    // intel: NV12 is native format for H.264 decoded surfaces
+-	case PIX_FMT_YUV420P:
+-	case PIX_FMT_YUVJ420P:
++	case AV_PIX_FMT_YUV420P:
++	case AV_PIX_FMT_YUVJ420P:
+ 	    // fourcc = VA_FOURCC_YV12; // YVU
+ 	    fourcc = VA_FOURCC('I', '4', '2', '0');	// YUV
+ 	    break;
+-	case PIX_FMT_NV12:
++	case AV_PIX_FMT_NV12:
+ 	    fourcc = VA_FOURCC_NV12;
+ 	    break;
+ 	default:
+@@ -2602,7 +2602,7 @@ static void VaapiSetup(VaapiDecoder * de
+ #endif
+     // FIXME: PixFmt not set!
+     //VaapiFindImageFormat(decoder, decoder->PixFmt, format);
+-    VaapiFindImageFormat(decoder, PIX_FMT_NV12, format);
++    VaapiFindImageFormat(decoder, AV_PIX_FMT_NV12, format);
+ 
+     // FIXME: this image is only needed for software decoder and auto-crop
+     if (decoder->GetPutImage
+@@ -2872,7 +2872,7 @@ static VAEntrypoint VaapiFindEntrypoint(
+ }
+ 
+ ///
+-///	Callback to negotiate the PixelFormat.
++///	Callback to negotiate the AVPixelFormat.
+ ///
+ ///	@param fmt	is the list of formats which are supported by the codec,
+ ///			it is terminated by -1 as 0 is a valid format, the
+@@ -2880,10 +2880,10 @@ static VAEntrypoint VaapiFindEntrypoint(
+ ///
+ ///	@note + 2 surface for software deinterlace
+ ///
+-static enum PixelFormat Vaapi_get_format(VaapiDecoder * decoder,
+-    AVCodecContext * video_ctx, const enum PixelFormat *fmt)
++static enum AVPixelFormat Vaapi_get_format(VaapiDecoder * decoder,
++    AVCodecContext * video_ctx, const enum AVPixelFormat *fmt)
+ {
+-    const enum PixelFormat *fmt_idx;
++    const enum AVPixelFormat *fmt_idx;
+     VAProfile profiles[vaMaxNumProfiles(VaDisplay)];
+     int profile_n;
+     VAEntrypoint entrypoints[vaMaxNumEntrypoints(VaDisplay)];
+@@ -2967,16 +2967,16 @@ static enum PixelFormat Vaapi_get_format
+     }
+     Debug(3, "codec: %d entrypoints\n", entrypoint_n);
+     //	look through formats
+-    for (fmt_idx = fmt; *fmt_idx != PIX_FMT_NONE; fmt_idx++) {
+-	Debug(3, "\t%#010x %s\n", *fmt_idx, av_get_pix_fmt_name(*fmt_idx));
++    for (fmt_idx = fmt; *fmt_idx != AV_PIX_FMT_NONE; fmt_idx++) {
++	Debug(3, "\t%#010x %s\n", *fmt_idx, av_get_AV_PIX_FMT_name(*fmt_idx));
+ 	// check supported pixel format with entry point
+ 	switch (*fmt_idx) {
+-	    case PIX_FMT_VAAPI_VLD:
++	    case AV_PIX_FMT_VAAPI_VLD:
+ 		e = VaapiFindEntrypoint(entrypoints, entrypoint_n,
+ 		    VAEntrypointVLD);
+ 		break;
+-	    case PIX_FMT_VAAPI_MOCO:
+-	    case PIX_FMT_VAAPI_IDCT:
++	    case AV_PIX_FMT_VAAPI_MOCO:
++	    case AV_PIX_FMT_VAAPI_IDCT:
+ 		Debug(3, "codec: this VA-API pixel format is not supported\n");
+ 	    default:
+ 		continue;
+@@ -3052,7 +3052,7 @@ static enum PixelFormat Vaapi_get_format
+     }
+ #endif
+ 
+-    Debug(3, "\t%#010x %s\n", fmt_idx[0], av_get_pix_fmt_name(fmt_idx[0]));
++    Debug(3, "\t%#010x %s\n", fmt_idx[0], av_get_AV_PIX_FMT_name(fmt_idx[0]));
+     return *fmt_idx;
+ 
+   slow_path:
+@@ -3061,7 +3061,7 @@ static enum PixelFormat Vaapi_get_format
+     decoder->Entrypoint = VA_INVALID_ID;
+     decoder->VaapiContext->config_id = VA_INVALID_ID;
+     decoder->SurfacesNeeded = VIDEO_SURFACES_MAX + 2;
+-    decoder->PixFmt = PIX_FMT_NONE;
++    decoder->PixFmt = AV_PIX_FMT_NONE;
+ 
+     decoder->InputWidth = 0;
+     decoder->InputHeight = 0;
+@@ -3262,8 +3262,8 @@ static void VaapiAutoCrop(VaapiDecoder *
+ 
+ 	// FIXME: PixFmt not set!
+ 	//VaapiFindImageFormat(decoder, decoder->PixFmt, format);
+-	VaapiFindImageFormat(decoder, PIX_FMT_NV12, format);
+-	//VaapiFindImageFormat(decoder, PIX_FMT_YUV420P, format);
++	VaapiFindImageFormat(decoder, AV_PIX_FMT_NV12, format);
++	//VaapiFindImageFormat(decoder, AV_PIX_FMT_YUV420P, format);
+ 	if (vaCreateImage(VaDisplay, format, width, height,
+ 		decoder->Image) != VA_STATUS_SUCCESS) {
+ 	    Error(_("video/vaapi: can't create image!\n"));
+@@ -3618,7 +3618,7 @@ static void VaapiBlackSurface(VaapiDecod
+ 	if (decoder->Image->image_id == VA_INVALID_ID) {
+ 	    VAImageFormat format[1];
+ 
+-	    VaapiFindImageFormat(decoder, PIX_FMT_NV12, format);
++	    VaapiFindImageFormat(decoder, AV_PIX_FMT_NV12, format);
+ 	    status =
+ 		vaCreateImage(VaDisplay, format, VideoWindowWidth,
+ 		VideoWindowHeight, decoder->Image);
+@@ -4263,8 +4263,8 @@ static void VaapiCreateDeinterlaceImages
+     // I420 Y U V 2x2
+ 
+     // Intel needs NV12
+-    VaapiFindImageFormat(decoder, PIX_FMT_NV12, format);
+-    //VaapiFindImageFormat(decoder, PIX_FMT_YUV420P, format);
++    VaapiFindImageFormat(decoder, AV_PIX_FMT_NV12, format);
++    //VaapiFindImageFormat(decoder, AV_PIX_FMT_YUV420P, format);
+     for (i = 0; i < 5; ++i) {
+ 	if (vaCreateImage(decoder->VaDisplay, format, decoder->InputWidth,
+ 		decoder->InputHeight,
+@@ -4336,7 +4336,7 @@ static void VaapiCpuDerive(VaapiDecoder
+     if (decoder->Image->image_id == VA_INVALID_ID) {
+ 	VAImageFormat format[1];
+ 
+-	VaapiFindImageFormat(decoder, PIX_FMT_NV12, format);
++	VaapiFindImageFormat(decoder, AV_PIX_FMT_NV12, format);
+ 	if (vaCreateImage(VaDisplay, format, decoder->InputWidth,
+ 		decoder->InputHeight, decoder->Image) != VA_STATUS_SUCCESS) {
+ 	    Error(_("video/vaapi: can't create image!\n"));
+@@ -5628,8 +5628,8 @@ static const VideoModule VaapiModule = {
+ 	    const AVCodecContext *))VaapiGetSurface,
+     .ReleaseSurface =
+ 	(void (*const) (VideoHwDecoder *, unsigned))VaapiReleaseSurface,
+-    .get_format = (enum PixelFormat(*const) (VideoHwDecoder *,
+-	    AVCodecContext *, const enum PixelFormat *))Vaapi_get_format,
++    .get_format = (enum AVPixelFormat(*const) (VideoHwDecoder *,
++	    AVCodecContext *, const enum AVPixelFormat *))Vaapi_get_format,
+     .RenderFrame = (void (*const) (VideoHwDecoder *,
+ 	    const AVCodecContext *, const AVFrame *))VaapiSyncRenderFrame,
+     .GetHwAccelContext = (void *(*const)(VideoHwDecoder *))
+@@ -5670,8 +5670,8 @@ static const VideoModule VaapiGlxModule
+ 	    const AVCodecContext *))VaapiGetSurface,
+     .ReleaseSurface =
+ 	(void (*const) (VideoHwDecoder *, unsigned))VaapiReleaseSurface,
+-    .get_format = (enum PixelFormat(*const) (VideoHwDecoder *,
+-	    AVCodecContext *, const enum PixelFormat *))Vaapi_get_format,
++    .get_format = (enum AVPixelFormat(*const) (VideoHwDecoder *,
++	    AVCodecContext *, const enum AVPixelFormat *))Vaapi_get_format,
+     .RenderFrame = (void (*const) (VideoHwDecoder *,
+ 	    const AVCodecContext *, const AVFrame *))VaapiSyncRenderFrame,
+     .GetHwAccelContext = (void *(*const)(VideoHwDecoder *))
+@@ -5726,7 +5726,7 @@ typedef struct _vdpau_decoder_
+     int OutputWidth;			///< real video output width
+     int OutputHeight;			///< real video output height
+ 
+-    enum PixelFormat PixFmt;		///< ffmpeg frame pixfmt
++    enum AVPixelFormat PixFmt;		///< ffmpeg frame pixfmt
+     int WrongInterlacedWarned;		///< warning about interlace flag issued
+     int Interlaced;			///< ffmpeg interlaced flag
+     int TopFieldFirst;			///< ffmpeg top field displayed first
+@@ -6455,7 +6455,7 @@ static VdpauDecoder *VdpauNewHwDecoder(V
+     decoder->OutputWidth = VideoWindowWidth;
+     decoder->OutputHeight = VideoWindowHeight;
+ 
+-    decoder->PixFmt = PIX_FMT_NONE;
++    decoder->PixFmt = AV_PIX_FMT_NONE;
+ 
+ #ifdef USE_AUTOCROP
+     //decoder->AutoCropBuffer = NULL;	// done by calloc
+@@ -7300,16 +7300,16 @@ static VdpDecoderProfile VdpauCheckProfi
+ }
+ 
+ ///
+-///	Callback to negotiate the PixelFormat.
++///	Callback to negotiate the AVPixelFormat.
+ ///
+ ///	@param fmt	is the list of formats which are supported by the codec,
+ ///			it is terminated by -1 as 0 is a valid format, the
+ ///			formats are ordered by quality.
+ ///
+-static enum PixelFormat Vdpau_get_format(VdpauDecoder * decoder,
+-    AVCodecContext * video_ctx, const enum PixelFormat *fmt)
++static enum AVPixelFormat Vdpau_get_format(VdpauDecoder * decoder,
++    AVCodecContext * video_ctx, const enum AVPixelFormat *fmt)
+ {
+-    const enum PixelFormat *fmt_idx;
++    const enum AVPixelFormat *fmt_idx;
+     VdpDecoderProfile profile;
+     int max_refs;
+ 
+@@ -7323,16 +7323,16 @@ static enum PixelFormat Vdpau_get_format
+     //	look through formats
+     //
+     Debug(3, "%s: codec %d fmts:\n", __FUNCTION__, video_ctx->codec_id);
+-    for (fmt_idx = fmt; *fmt_idx != PIX_FMT_NONE; fmt_idx++) {
+-	Debug(3, "\t%#010x %s\n", *fmt_idx, av_get_pix_fmt_name(*fmt_idx));
++    for (fmt_idx = fmt; *fmt_idx != AV_PIX_FMT_NONE; fmt_idx++) {
++	Debug(3, "\t%#010x %s\n", *fmt_idx, av_get_AV_PIX_FMT_name(*fmt_idx));
+ 	// check supported pixel format with entry point
+ 	switch (*fmt_idx) {
+-	    case PIX_FMT_VDPAU_H264:
+-	    case PIX_FMT_VDPAU_MPEG1:
+-	    case PIX_FMT_VDPAU_MPEG2:
+-	    case PIX_FMT_VDPAU_WMV3:
+-	    case PIX_FMT_VDPAU_VC1:
+-	    case PIX_FMT_VDPAU_MPEG4:
++	    case AV_PIX_FMT_VDPAU_H264:
++	    case AV_PIX_FMT_VDPAU_MPEG1:
++	    case AV_PIX_FMT_VDPAU_MPEG2:
++	    case AV_PIX_FMT_VDPAU_WMV3:
++	    case AV_PIX_FMT_VDPAU_VC1:
++	    case AV_PIX_FMT_VDPAU_MPEG4:
+ 		break;
+ 	    default:
+ 		continue;
+@@ -7340,7 +7340,7 @@ static enum PixelFormat Vdpau_get_format
+ 	break;
+     }
+ 
+-    if (*fmt_idx == PIX_FMT_NONE) {
++    if (*fmt_idx == AV_PIX_FMT_NONE) {
+ 	Error(_("video/vdpau: no valid vdpau pixfmt found\n"));
+ 	goto slow_path;
+     }
+@@ -7447,14 +7447,14 @@ static enum PixelFormat Vdpau_get_format
+     }
+ #endif
+ 
+-    Debug(3, "\t%#010x %s\n", fmt_idx[0], av_get_pix_fmt_name(fmt_idx[0]));
++    Debug(3, "\t%#010x %s\n", fmt_idx[0], av_get_AV_PIX_FMT_name(fmt_idx[0]));
+     return *fmt_idx;
+ 
+   slow_path:
+     // no accelerated format found
+     decoder->Profile = VDP_INVALID_HANDLE;
+     decoder->SurfacesNeeded = VIDEO_SURFACES_MAX + 2;
+-    decoder->PixFmt = PIX_FMT_NONE;
++    decoder->PixFmt = AV_PIX_FMT_NONE;
+ 
+     decoder->InputWidth = 0;
+     decoder->InputHeight = 0;
+@@ -8040,10 +8040,10 @@ static void VdpauRenderFrame(VdpauDecode
+     //
+     // Hardware render
+     //
+-    // VDPAU: PIX_FMT_VDPAU_H264 .. PIX_FMT_VDPAU_VC1 PIX_FMT_VDPAU_MPEG4
+-    if ((PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
+-	    && video_ctx->pix_fmt <= PIX_FMT_VDPAU_VC1)
+-	|| video_ctx->pix_fmt == PIX_FMT_VDPAU_MPEG4) {
++    // VDPAU: AV_PIX_FMT_VDPAU_H264 .. AV_PIX_FMT_VDPAU_VC1 AV_PIX_FMT_VDPAU_MPEG4
++    if ((AV_PIX_FMT_VDPAU_H264 <= video_ctx->pix_fmt
++	    && video_ctx->pix_fmt <= AV_PIX_FMT_VDPAU_VC1)
++	|| video_ctx->pix_fmt == AV_PIX_FMT_VDPAU_MPEG4) {
+ 	struct vdpau_render_state *vrs;
+ 
+ 	vrs = (struct vdpau_render_state *)frame->data[0];
+@@ -8086,11 +8086,11 @@ static void VdpauRenderFrame(VdpauDecode
+ 	//	Copy data from frame to image
+ 	//
+ 	switch (video_ctx->pix_fmt) {
+-	    case PIX_FMT_YUV420P:
+-	    case PIX_FMT_YUVJ420P:	// some streams produce this
++	    case AV_PIX_FMT_YUV420P:
++	    case AV_PIX_FMT_YUVJ420P:	// some streams produce this
+ 		break;
+-	    case PIX_FMT_YUV422P:
+-	    case PIX_FMT_YUV444P:
++	    case AV_PIX_FMT_YUV422P:
++	    case AV_PIX_FMT_YUV444P:
+ 	    default:
+ 		Fatal(_("video/vdpau: pixel format %d not supported\n"),
+ 		    video_ctx->pix_fmt);
+@@ -9415,8 +9415,8 @@ static const VideoModule VdpauModule = {
+ 	    const AVCodecContext *))VdpauGetSurface,
+     .ReleaseSurface =
+ 	(void (*const) (VideoHwDecoder *, unsigned))VdpauReleaseSurface,
+-    .get_format = (enum PixelFormat(*const) (VideoHwDecoder *,
+-	    AVCodecContext *, const enum PixelFormat *))Vdpau_get_format,
++    .get_format = (enum AVPixelFormat(*const) (VideoHwDecoder *,
++	    AVCodecContext *, const enum AVPixelFormat *))Vdpau_get_format,
+     .RenderFrame = (void (*const) (VideoHwDecoder *,
+ 	    const AVCodecContext *, const AVFrame *))VdpauSyncRenderFrame,
+     .GetHwAccelContext = (void *(*const)(VideoHwDecoder *))
+@@ -9576,8 +9576,8 @@ static const VideoModule NoopModule = {
+ #endif
+     .ReleaseSurface = NoopReleaseSurface,
+ #if 0
+-    .get_format = (enum PixelFormat(*const) (VideoHwDecoder *,
+-	    AVCodecContext *, const enum PixelFormat *))Noop_get_format,
++    .get_format = (enum AVPixelFormat(*const) (VideoHwDecoder *,
++	    AVCodecContext *, const enum AVPixelFormat *))Noop_get_format,
+     .RenderFrame = (void (*const) (VideoHwDecoder *,
+ 	    const AVCodecContext *, const AVFrame *))NoopSyncRenderFrame,
+     .GetHwAccelContext = (void *(*const)(VideoHwDecoder *))
+@@ -9811,7 +9811,7 @@ static void VideoEvent(void)
+ 
+ 	case MapNotify:
+ 	    Debug(3, "video/event: MapNotify\n");
+-	    // µwm workaround
++	    // \B5wm workaround
+ 	    VideoThreadLock();
+ 	    xcb_change_window_attributes(Connection, VideoWindow,
+ 		XCB_CW_CURSOR, &VideoBlankCursor);
+@@ -10143,7 +10143,7 @@ void VideoReleaseSurface(VideoHwDecoder
+ }
+ 
+ ///
+-///	Callback to negotiate the PixelFormat.
++///	Callback to negotiate the AVPixelFormat.
+ ///
+ ///	@param hw_decoder	video hardware decoder
+ ///	@param video_ctx	ffmpeg video codec context
+@@ -10152,8 +10152,8 @@ void VideoReleaseSurface(VideoHwDecoder
+ ///				valid format, the formats are ordered by
+ ///				quality.
+ ///
+-enum PixelFormat Video_get_format(VideoHwDecoder * hw_decoder,
+-    AVCodecContext * video_ctx, const enum PixelFormat *fmt)
++enum AVPixelFormat Video_get_format(VideoHwDecoder * hw_decoder,
++    AVCodecContext * video_ctx, const enum AVPixelFormat *fmt)
+ {
+ #ifdef DEBUG
+     int ms_delay;
+--- vdr-plugin-softhddevice-0.6.0+git20150324.orig/video.h
++++ vdr-plugin-softhddevice-0.6.0+git20150324/video.h
+@@ -59,9 +59,9 @@ extern unsigned VideoGetSurface(VideoHwD
+     /// Release a video hardware surface
+ extern void VideoReleaseSurface(VideoHwDecoder *, unsigned);
+ 
+-    /// Callback to negotiate the PixelFormat.
+-extern enum PixelFormat Video_get_format(VideoHwDecoder *, AVCodecContext *,
+-    const enum PixelFormat *);
++    /// Callback to negotiate the AVPixelFormat.
++extern enum AVPixelFormat Video_get_format(VideoHwDecoder *, AVCodecContext *,
++    const enum AVPixelFormat *);
+ 
+     /// Render a ffmpeg frame.
+ extern void VideoRenderFrame(VideoHwDecoder *, const AVCodecContext *,
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a827249
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+ffmpeg_2.9.patch

--- End Message ---
--- Begin Message ---
Source: vdr-plugin-softhddevice
Source-Version: 0.6.0+git20160108-1

We believe that the bug you reported is fixed in the latest version of
vdr-plugin-softhddevice, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Tobias Grimm <[email protected]> (supplier of updated vdr-plugin-softhddevice 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Sun, 17 Apr 2016 17:09:39 +0200
Source: vdr-plugin-softhddevice
Binary: vdr-plugin-softhddevice
Architecture: source amd64
Version: 0.6.0+git20160108-1
Distribution: unstable
Urgency: medium
Maintainer: Debian VDR Team <[email protected]>
Changed-By: Tobias Grimm <[email protected]>
Description:
 vdr-plugin-softhddevice - HD output device plugin for VDR
Closes: 803867
Changes:
 vdr-plugin-softhddevice (0.6.0+git20160108-1) unstable; urgency=medium
 .
   * New Upstream Snapshot (commit 6dfa88a)
   * Added ffmpeg 3 compatibility patch from Andreas Cadhalpun
     (Closes: #803867)
   * Standards version 3.9.7
Checksums-Sha1:
 2534316f6d7c88a63b4711975285e9447d06cf53 2570 
vdr-plugin-softhddevice_0.6.0+git20160108-1.dsc
 20d3635e6459c5c0451ebf6b4dba96904b5b0493 185672 
vdr-plugin-softhddevice_0.6.0+git20160108.orig.tar.gz
 8bd77ae6284a513ffd32eb423fd01effd9369d96 17892 
vdr-plugin-softhddevice_0.6.0+git20160108-1.debian.tar.xz
 afd61bd6ea4767a6cd7d1d4e2826c6ee6f2d7d6d 227864 
vdr-plugin-softhddevice-dbgsym_0.6.0+git20160108-1_amd64.deb
 41a8b39b8ca05ad6030c1c7b037c6b883bd09594 122114 
vdr-plugin-softhddevice_0.6.0+git20160108-1_amd64.deb
Checksums-Sha256:
 f3da3f80723835250ebe6e41e782bccd8f747121f5ee8a54959fdae072a5ce41 2570 
vdr-plugin-softhddevice_0.6.0+git20160108-1.dsc
 64d041da2ee6fed944fc61a42a7c187b1ea30b3a4756bf88fefece83985718c1 185672 
vdr-plugin-softhddevice_0.6.0+git20160108.orig.tar.gz
 81cbd3a85f0fc5ca27d8596e36ac6e353c5c8880a09af786fc89c39bb91e030c 17892 
vdr-plugin-softhddevice_0.6.0+git20160108-1.debian.tar.xz
 74876eb605e4e3d0f5ea4edea970f7c18ca806f931ff7a1f5dd38f80dbf87cf4 227864 
vdr-plugin-softhddevice-dbgsym_0.6.0+git20160108-1_amd64.deb
 6a1de9147291aba218973f85dbcfa34013b834561d59cd97bebc8d826039b662 122114 
vdr-plugin-softhddevice_0.6.0+git20160108-1_amd64.deb
Files:
 9032b4019e518e19f82818d7dbad45e8 2570 video extra 
vdr-plugin-softhddevice_0.6.0+git20160108-1.dsc
 d7411bfbf84c90fb810aea4b66231c78 185672 video extra 
vdr-plugin-softhddevice_0.6.0+git20160108.orig.tar.gz
 1b818917ee259b7c3a1b281349f6fef1 17892 video extra 
vdr-plugin-softhddevice_0.6.0+git20160108-1.debian.tar.xz
 4eb0df716003e94ef8698d225f743121 227864 debug extra 
vdr-plugin-softhddevice-dbgsym_0.6.0+git20160108-1_amd64.deb
 b8ff28131cd3f3e356cf50308c8409c2 122114 video extra 
vdr-plugin-softhddevice_0.6.0+git20160108-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJXE635AAoJENYuT1sEE5C8Z9oP/iPeC+7WBEWTE9gOINCexyZ6
C2h0SuiGA/mTVGN2liRrzRzxxIqQ+f89EqibyXNo3u0YVspaExTK9TpMQ3Weo2sG
VnbeDJLLcIZdjOQvaaIiR51fMW0bBesmpXkyxnHbGHVJ+7xMu/JJgYQVpA3Elc+6
i3zWChtYix+ykHeXcWPeij4LLzDy8h3dvgqWMNpZ9xLuDN7doPUHmBHHXjmks+pQ
sVxl8ByxwF45FfFBOo2rU7B+QD6izlfSL+wYD86F1lFTPsEMjMrlVOFv5NZ3O0/H
4ek2Ef5OCLbR9oxTZTs++Ba5FwL2seESH3yH4HS0778iD9Tru6bCm7MHVlyDQHRg
vVl648wItfoEAghTWXJj69R6QOVPplgQJZcJsOJWVbUm3lye8VcFDrt1tv3Pgj6B
LId6HC5TTllmaSm/644qjulCODmFaUlc3/6pS1irGYA41bHxWA6TJYqJqqH/3Qcv
wXEnQSQ++YufKF9Qc50hrYV1tRkNCw7Q4Wur29/eJLaY+o6H90UIkguOvaMRA5ZD
pn5i14JcZ7hR53K5XOHnOaKEjasLMn4a3V8a/Xn7zAIhWrhYtRfBoeeA370spe4o
+0bvvBCxZFYkhXb4HLqpgNNo/vjf+VFoDWG9f/fUHarSJ+Mc3IlF+78hgzlZOYuo
BL3/boHYkclegAAf38gm
=EmDg
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to