debian/patches: add 0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch
authorAntonio Ospite <ospite@studenti.unina.it>
Mon, 18 Mar 2013 10:37:06 +0000 (11:37 +0100)
committerAntonio Ospite <ospite@studenti.unina.it>
Mon, 18 Mar 2013 10:49:07 +0000 (11:49 +0100)
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.

debian/control
debian/patches/0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch [new file with mode: 0644]
debian/patches/series

index e91eb72..394d27d 100644 (file)
@@ -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 (file)
index 0000000..c372a63
--- /dev/null
@@ -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
+
index b24a225..3beea98 100644 (file)
@@ -1 +1,2 @@
 0001-doc-add-a-man-page-for-am7xxx_mode_switch.patch
+0002-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch