From: Antonio Ospite <ospite@studenti.unina.it>
Date: Mon, 18 Mar 2013 10:37:06 +0000 (+0100)
Subject: debian/patches: add 0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch
X-Git-Tag: debian/0.1.3-1~3
X-Git-Url: https://git.ao2.it/libam7xxx.git/commitdiff_plain/80a9898103715f79c74ceb0e3f597bc6af9a3318

debian/patches: add 0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch

Make build succeed with the libavcodec version in Wheezy: for now we
depend on libavcodec-dev (<< 6:9) to be sure the old API is still there
and enabled.
---

diff --git a/debian/control b/debian/control
index e91eb72..394d27d 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,7 @@ Section: libdevel
 Priority: extra
 Maintainer: Antonio Ospite <ospite@studenti.unina.it>
 Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.16.1~), cmake, pkg-config,
- libusb-1.0-0-dev, libxcb1-dev, libavdevice-dev, libavformat-dev, libavcodec-dev, libswscale-dev
+ libusb-1.0-0-dev, libxcb1-dev, libavdevice-dev, libavformat-dev, libavcodec-dev (<< 6:9), libswscale-dev
 Build-Depends-Indep: doxygen, asciidoc (>> 8.0.0), xmlto, docbook-xsl (>> 1.72)
 Standards-Version: 3.9.3
 Homepage: http://git.ao2.it/libam7xxx.git
diff --git a/debian/patches/0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch b/debian/patches/0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch
new file mode 100644
index 0000000..c372a63
--- /dev/null
+++ b/debian/patches/0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch
@@ -0,0 +1,102 @@
+From 70d093e78087c821c2c944df062f4a8ba10e2625 Mon Sep 17 00:00:00 2001
+From: Antonio Ospite <ospite@studenti.unina.it>
+Date: Mon, 18 Mar 2013 11:06:57 +0100
+Subject: [PATCH] Revert "am7xxx-play: switch to avcodec_encode_video2()"
+X-Face: z*RaLf`X<@C75u6Ig9}{oW$H;1_\2t5)({*|jhM<pyWR#k60!#=#>/Vb;]yA5<GWI5`6u&+
+ ;6b'@y|8w"wB;4/e!7wYYrcqdJFY,~%Gk_4]cq$Ei/7<j&N3ah(m`ku?pX.&+~:_/wC~dwn^)MizBG
+ !pE^+iDQQ1yC6^,)YDKkxDd!T>\I~93>J<_`<4)A{':UrE
+
+This reverts commit b344c71f3e03f912d8b6ee7d96cdd67b31cdf8cc.
+
+avcodec_encode_video2() has been introduced in lavc 54.01.0 but Debian Wheezy
+ships with lavc 53, so for now we should revert this change for the Debian
+packages.
+
+When this patch will be dropped maybe the package should depend on
+libavcodec54 as the old API may be disabled in the Debian packages.
+
+---
+ examples/am7xxx-play.c |   29 +++++++++--------------------
+ 1 file changed, 9 insertions(+), 20 deletions(-)
+
+diff --git a/examples/am7xxx-play.c b/examples/am7xxx-play.c
+index 38812a4..0b1fa65 100644
+--- a/examples/am7xxx-play.c
++++ b/examples/am7xxx-play.c
+@@ -285,12 +285,9 @@ static int am7xxx_play(const char *input_format_string,
+ 	int out_buf_size;
+ 	uint8_t *out_buf;
+ 	int out_picture_size;
+-	uint8_t *out_picture;
+ 	struct SwsContext *sw_scale_ctx;
+ 	AVPacket in_packet;
+-	AVPacket out_packet;
+ 	int got_picture;
+-	int got_packet;
+ 	int ret = 0;
+ 
+ 	ret = video_input_init(&input_ctx, input_format_string, input_path, input_options);
+@@ -393,26 +390,20 @@ static int am7xxx_play(const char *input_format_string,
+ 				  picture_scaled->linesize);
+ 
+ 			if (output_ctx.raw_output) {
+-				out_picture = out_buf;
+ 				out_picture_size = out_buf_size;
+ 			} else {
+ 				picture_scaled->quality = (output_ctx.codec_ctx)->global_quality;
+-				av_init_packet(&out_packet);
+-				out_packet.data = NULL;
+-				out_packet.size = 0;
+-				got_packet = 0;
+-				ret = avcodec_encode_video2(output_ctx.codec_ctx,
+-							    &out_packet,
+-							    picture_scaled,
+-							    &got_packet);
+-				if (ret < 0 || !got_packet) {
++				/* TODO: switch to avcodec_encode_video2() eventually */
++				out_picture_size = avcodec_encode_video(output_ctx.codec_ctx,
++									out_buf,
++									out_buf_size,
++									picture_scaled);
++				if (out_picture_size < 0) {
+ 					fprintf(stderr, "cannot encode video\n");
++					ret = out_picture_size;
+ 					run = 0;
+ 					goto end_while;
+ 				}
+-
+-				out_picture = out_packet.data;
+-				out_picture_size = out_packet.size;
+ 			}
+ 
+ #ifdef DEBUG
+@@ -423,7 +414,7 @@ static int am7xxx_play(const char *input_format_string,
+ 			else
+ 				snprintf(filename, NAME_MAX, "out.raw");
+ 			file = fopen(filename, "wb");
+-			fwrite(out_picture, 1, out_picture_size, file);
++			fwrite(out_buf, 1, out_picture_size, file);
+ 			fclose(file);
+ #endif
+ 
+@@ -431,7 +422,7 @@ static int am7xxx_play(const char *input_format_string,
+ 						image_format,
+ 						(output_ctx.codec_ctx)->width,
+ 						(output_ctx.codec_ctx)->height,
+-						out_picture,
++						out_buf,
+ 						out_picture_size);
+ 			if (ret < 0) {
+ 				perror("am7xxx_send_image");
+@@ -440,8 +431,6 @@ static int am7xxx_play(const char *input_format_string,
+ 			}
+ 		}
+ end_while:
+-		if (!output_ctx.raw_output)
+-			av_free_packet(&out_packet);
+ 		av_free_packet(&in_packet);
+ 	}
+ 
+-- 
+1.7.10.4
+
diff --git a/debian/patches/series b/debian/patches/series
index b24a225..3beea98 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 0001-doc-add-a-man-page-for-am7xxx_mode_switch.patch
+0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch