Package: dvbcut Version: 0.5.4+svn146-2 Severity: wishlist Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu oneiric ubuntu-patch
Hi, libavcodec 0.7 is in experimental as well as in next release of Ubuntu, and as it deprecate several functions, dvbcut has to be patched to build and run correctly. This is the patch we applied in Ubuntu to fix dvbcut: *** /tmp/tmpd_3rwk The resulting package builds fine in sid Thanks for considering the patch. Fabrice -- 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/2 CPU cores) Locale: LANG=es_ES.UTF8, LC_CTYPE=es_ES.UTF8 (charmap=UTF-8) (ignored: LC_ALL set to es_ES.UTF8) Shell: /bin/sh linked to /bin/dash
diff -Nru dvbcut-0.5.4+svn146/debian/patches/fit-ftbfs-libav0.7.patch dvbcut-0.5.4+svn146/debian/patches/fit-ftbfs-libav0.7.patch --- dvbcut-0.5.4+svn146/debian/patches/fit-ftbfs-libav0.7.patch 1970-01-01 01:00:00.000000000 +0100 +++ dvbcut-0.5.4+svn146/debian/patches/fit-ftbfs-libav0.7.patch 2011-07-01 19:01:14.000000000 +0200 @@ -0,0 +1,110 @@ +Description: fix FTBFS with libav 0.7 by replacing deprecated functions with + their substitute. +Author: Fabrice Coutadeur <fabric...@ubuntu.com> + +--- dvbcut-0.5.4+svn146.orig/src/lavfmuxer.h ++++ dvbcut-0.5.4+svn146/src/lavfmuxer.h +@@ -73,7 +73,7 @@ public: + avp.dts=dts; + avp.stream_index=st[str].stream_index; + if (flags & MUXER_FLAG_KEY) +- avp.flags |= PKT_FLAG_KEY; ++ avp.flags |= AV_PKT_FLAG_KEY; + + int rv=av_interleaved_write_frame(avfc,&avp); + +--- dvbcut-0.5.4+svn146.orig/src/lavfmuxer.cpp ++++ dvbcut-0.5.4+svn146/src/lavfmuxer.cpp +@@ -34,12 +34,12 @@ extern "C" { + lavfmuxer::lavfmuxer(const char *format, uint32_t audiostreammask, mpgfile &mpg, const char *filename) + : muxer(), avfc(0), fileopened(false) + { +- fmt = guess_format(format, NULL, NULL); ++ fmt = av_guess_format(format, NULL, NULL); + if (!fmt) { + return; + } + +- avfc=av_alloc_format_context(); ++ avfc=avformat_alloc_context(); + if (!avfc) + return; + +@@ -73,7 +73,7 @@ lavfmuxer::lavfmuxer(const char *format, + av_free(s->codec); + s->codec = avcodec_alloc_context(); + avcodec_get_context_defaults(s->codec); +- s->codec->codec_type=CODEC_TYPE_AUDIO; ++ s->codec->codec_type=AVMEDIA_TYPE_AUDIO; + s->codec->codec_id = (mpg.getstreamtype(astr)==streamtype::ac3audio) ? + CODEC_ID_AC3 : CODEC_ID_MP2; + s->codec->rc_buffer_size = 224*1024*8; +@@ -92,6 +92,14 @@ lavfmuxer::lavfmuxer(const char *format, + int16_t samples[AVCODEC_MAX_AUDIO_FRAME_SIZE/sizeof(int16_t)]; + int frame_size=sizeof(samples); + //fprintf(stderr, "** decode audio size=%d\n", sd->inbytes()); ++#if LIBAVCODEC_VERSION_INT > ((52<<16)+(25<<8)+0) ++ AVPacket pkt; ++ av_init_packet( &pkt ); ++ pkt.data = (uint8_t*) sd->getdata(); ++ pkt.size = sd->inbytes(); ++ avcodec_decode_audio3 ++ (s->codec,samples,&frame_size, &pkt); ++#else + #if LIBAVCODEC_VERSION_INT >= ((52<<16)+(0<<8)+0) + avcodec_decode_audio2 + #else +@@ -100,6 +108,7 @@ lavfmuxer::lavfmuxer(const char *format, + (s->codec,samples,&frame_size, + (uint8_t*) sd->getdata(),sd->inbytes()); + avcodec_close(s->codec); ++#endif + } + break; + } +--- dvbcut-0.5.4+svn146.orig/src/mpgfile.cpp ++++ dvbcut-0.5.4+svn146/src/mpgfile.cpp +@@ -159,8 +159,17 @@ void mpgfile::decodegop(int start, int s + while (decodebytes>0) + { + frameFinished=0; ++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,23,0) ++ AVPacket pkt; ++ av_init_packet( &pkt ); ++ pkt.data = (uint8_t*) data; ++ pkt.size = decodebytes; ++ int bytesDecoded=avcodec_decode_video2( S->avcc, avf, ++ &frameFinished, &pkt ); ++#else + int bytesDecoded=avcodec_decode_video(S->avcc, avf, &frameFinished, + (uint8_t*) data, decodebytes); ++#endif + if (bytesDecoded<0) + { + fprintf(stderr,"libavcodec error while decoding frame #%d\n",pic); +@@ -199,7 +208,16 @@ void mpgfile::decodegop(int start, int s + if (pic < stop) + { + int frameFinished=0; ++#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,23,0) ++ AVPacket pkt; ++ av_init_packet( &pkt ); ++ pkt.data = NULL; ++ pkt.size = 0; ++ avcodec_decode_video2( S->avcc, avf, ++ &frameFinished, &pkt ); ++#else + avcodec_decode_video(S->avcc, avf, &frameFinished, NULL, 0); ++#endif + if (frameFinished) + { + if (last_cpn!=avf->coded_picture_number) +@@ -246,7 +264,7 @@ void mpgfile::initcodeccontexts(int vid) + stream *S=&s[VIDEOSTREAM]; + S->id=vid; + S->allocavcc(); +- S->avcc->codec_type=CODEC_TYPE_VIDEO; ++ S->avcc->codec_type=AVMEDIA_TYPE_VIDEO; + S->avcc->codec_id=CODEC_ID_MPEG2VIDEO; + S->dec=avcodec_find_decoder(CODEC_ID_MPEG2VIDEO); + S->enc=avcodec_find_encoder(CODEC_ID_MPEG2VIDEO); diff -Nru dvbcut-0.5.4+svn146/debian/patches/series dvbcut-0.5.4+svn146/debian/patches/series --- dvbcut-0.5.4+svn146/debian/patches/series 2011-05-05 14:22:48.000000000 +0200 +++ dvbcut-0.5.4+svn146/debian/patches/series 2011-07-01 18:59:17.000000000 +0200 @@ -2,3 +2,4 @@ fix-ftbfs-gcc4.4.patch fix-ftbfs-gcc4.5.patch fix-ftbfs-gcc4.6.patch +fit-ftbfs-libav0.7.patch
_______________________________________________ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers