Package: mpd
Version: 0.16.1-1
Severity: important

Hi,

your package uses deprecated API from libavcodec that have been removed
in the upcoming Libav 0.7 release. The attached (untested) patch should
unbreak it, please upstream it. Moreover, it should also work with Libav
0.6 as found in current wheezy.

Libav 0.7 is currently in debian/experimental and waits for the release
team's 'go' to be uploaded to unstable.


-- System Information:
Debian Release: squeeze/sid
  APT prefers natty-updates
  APT policy: (500, 'natty-updates'), (500, 'natty-security'), (500, 'natty')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-8-generic (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Index: mpd-0.16.1/src/decoder/ffmpeg_decoder_plugin.c
===================================================================
--- mpd-0.16.1.orig/src/decoder/ffmpeg_decoder_plugin.c	2011-05-29 21:34:56.640894325 +0200
+++ mpd-0.16.1/src/decoder/ffmpeg_decoder_plugin.c	2011-05-29 21:45:22.260895153 +0200
@@ -156,7 +156,7 @@
 {
 	for (unsigned i = 0; i < format_context->nb_streams; ++i)
 		if (format_context->streams[i]->codec->codec_type ==
-		    CODEC_TYPE_AUDIO)
+		    AVMEDIA_TYPE_AUDIO)
 			return i;
 
 	return -1;
@@ -190,6 +190,7 @@
 	int len, audio_size;
 	uint8_t *packet_data;
 	int packet_size;
+	AVPacket avpkt;
 
 	if (packet->pts != (int64_t)AV_NOPTS_VALUE)
 		decoder_timestamp(decoder,
@@ -203,10 +204,14 @@
 	aligned_buffer = align16(audio_buf, &buffer_size);
 
 	while ((packet_size > 0) && (cmd == DECODE_COMMAND_NONE)) {
+		av_init_packet (&avpkt);
+		avpkt.data = packet_data;
+		avpkt.size = packet_size;
+		avpkt.flags = AV_PKT_FLAG_KEY;
 		audio_size = buffer_size;
-		len = avcodec_decode_audio2(codec_context,
-					    aligned_buffer, &audio_size,
-					    packet_data, packet_size);
+
+		len = avcodec_decode_audio3 (codec_context, aligned_buffer,
+					     &audio_size, &avpkt);
 
 		if (len < 0) {
 			/* if error, we skip the frame */

Reply via email to