Changes of Revision 19
[-] | Changed | xine-lib.spec |
x 1
2 BuildRequires: Mesa-devel libsmbclient-devel libtheora-devel libvorbis-devel 3 BuildRequires: readline-devel update-desktop-files vcdimager-devel 4 BuildRequires: libspeex-devel 5 +%if 0%{suse_version} >= 1210 6 +BuildRequires: libv4l-devel >= 0.8.4 7 +%else 8 %if 0%{suse_version} >= 1110 9 BuildRequires: libv4l-devel 10 %endif 11 +%endif 12 %if 0%{suse_version} >= 1030 13 BuildRequires: lirc-devel 14 %else 15
16 Patch72: xine-lib-%{version}-install-plugins-helper.diff 17 Patch73: xine-lib-%{version}-assert.patch 18 Patch74: xine-configure.diff 19 +Patch75: xine-lib-v4l-2.6.38.patch 20 # *** Only working for noncrippled source 21 Patch80: xine-lib-various-noncrippled.diff 22 +Patch81: xine-lib-%{version}-ffmpeg_abi_change.diff 23 24 %description 25 xine is a free multimedia player. It plays back CDs, DVDs, and VCDs. It 26
27 %else 28 # Only apply to uncrippled source 29 %patch80 30 +%patch81 -p1 31 %endif 32 %patch72 -p1 33 %patch73 -p1 34 %patch74 -p1 35 +%if 0%{suse_version} >= 1210 36 +%patch75 37 +%endif 38 + 39 rm -f m4/libtool15.m4 40 41 %build 42
43 %endif 44 45 %changelog 46 -* Tue Aug 3 2010 lnussel@suse.de 47 -- remove unneeded libcdio-mini-devel buildignore again 48 -* Mon Jul 26 2010 Manfred.Tremmel@iiv.de 49 -- update to 1.1.19 50 - * Handle odd widths properly (for ffmpeg-decoded video). 51 - * Make buildable with current (external) libdvdnav & libdvdread. 52 - * Fix V4L2 check. 53 - * Add support for Ogg tag 'DISCNUMBER' and ID3 tag 'TPOS'. 54 - * Add support for EAC3. 55 - * Recognise video/mp2t and video/mp2p. 56 - * TTA fixes. 57 - * Add support for Xv gamma adjustment. 58 - * Better recovery from ALSA-reported errors. 59 - * Report stream buffer stats to the application. 60 - * Recognise and handle the WebM container format. 61 - (VP8 video is not yet supported.) 62 - * Recognise ScreamTracker 2 & 3 files. 63 - * Fix playback of the first file handled by the modplug demuxer. 64 - * Refuse to build with known-broken libmodplug (0.8.8). 65 - http://bugs.debian.org/588465 66 - * Fix a potential freeing of unallocated memory. 67 -* Mon Apr 26 2010 ro@suse.de 68 -- buildignore libcdio-mini-devel 69 -* Sun Mar 7 2010 Manfred.Tremmel@iiv.de 70 -- update to 1.1.18.1 71 - * Oops. compat.c (for DXR3 support) was omitted. 72 - * Fix up V4L/V4L2 compilation. Some non-Linux have V4L2 but not V4L. 73 - * Fix a size check (wrong variable, causing int/ptr comparison) in rmff.c. 74 - * Fix build with the old, outdated and deprecated internal ffmpeg. 75 -* Wed Feb 24 2010 Manfred.Tremmel@iiv.de 76 -- update to 1.1.18 77 - * Bump the FLAC decoder's priority above ffmpegaudio. This should fix 78 - various problems with FLAC playback. 79 - * Build fix (undefined symbol) for when using older ffmpeg. 80 - * TTA demuxer fixes; allow seeking. 81 - * More meta-information tags. 82 - Only the Ogg demuxer knows about these at present. 83 - * Added basic support for .qtl (Quicktime media link). 84 - * "Fixed" playback of 24-bit FLAC. 85 - * Fixed playback of 24-bit LPCM. 86 - * Work around an ffmpeg bug concerning Sorenson Video 3. 87 - * Flash audio bug fixes, mostly concerning AAC. 88 - * Fix DXR3 support for newer versions of the em8300 driver. 89 - * Added support for WMA Pro. 90 -* Wed Feb 3 2010 Manfred.Tremmel@iiv.de 91 -- patches can't be build to work with crippled and non crippled tarball 92 - with fuzz=0, added "-F2" for patch 50 and 61 to fix this 93 -* Mon Feb 1 2010 jengelh@medozas.de 94 -- package baselibs.conf 95 -* Fri Jan 8 2010 ro@suse.de 96 -- rediffed again 97 -* Wed Dec 16 2009 meissner@suse.de 98 -- rediffed for fuzz=0 99 -* Tue Dec 1 2009 Manfred.Tremmel@iiv.de 100 -- update to 1.1.17 101 - * Add support for Matroska SIMPLEBLOCK. 102 - * Add support for sndio (OpenBSD sound API). 103 - * Correct invalid MIME info in the MOD demuxer. 104 - * Fix a resource leak in libdvdnav. 105 - * Properly NUL-terminate when reading ID3v2.2 tag content. 106 - * Fix handling of the length of UTF-16 content sourced from, e.g., ID3 tags. 107 - * Make ~/.xine/catalog.cache writing safer: write a new file & atomically 108 - replace the old one. 109 - * Initial parsing of Xing header LAME extension. 110 - * Fixes for gapless playback. 111 - * Added padding delay to the first and last frames (MPEG audio). 112 - * Fixed buggy discontinuity handling when playing short streams and using the gapless switch. The current time should not be used here. 113 - * Added audio padding handling. (New buffer flag for this.) 114 - * Fix seeking in large raw DV files. 115 - * Ported to new libmpcdec API (retaining build compat. with the old API). 116 - * Cope with CDDB return code 211 (multiple entries). 117 - * Allow reading of non-block-sized chunks from audio CDs. 118 - * Add a user agent & protocol hack ("qthttp://...") to allow direct 119 - viewing of Apple film trailers. 120 - * Fixed int-to-float conversion in the JACK output plugin. 121 - * Work around MOD files with reported length == 0. 122 - * Reworked Matroska demuxer. Now reads files created by mkvmerge 2.7.0. 123 - * Support BluRay/HDMV streams & subtitles. 124 - * The XML parser & lexer code now has re-entrancy. 125 - * Fixed a bug which prevented "dvb://" (no channel specified) working with 126 - the default configuration. 127 - * Handle VC1 extradata requirement (should fix playback). 128 -* Wed Nov 18 2009 lnussel@suse.de 129 -- enable libmodplug on >= 11.2 130 -* Sat Nov 14 2009 Manfred.Tremmel@iiv.de 131 -- merged packman and openSUSE package 132 -- update to 1.1.16.3 133 - * Security fixes: 134 - - Fix another possible int overflow in the 4XM demuxer. 135 - (ref. TKADV2009-004, CVE-2009-0385) 136 - - Fix an integer overflow in the Quicktime demuxer. 137 - * Enable libmpeg2new (if configured with --enable-libmpeg2new). 138 - This is not yet production code; the old mpeg2 decoder remains the default. 139 - * Add support for OpenBSD. 140 - * Fix a build failure on *BSD due to some rather useful GNUisms. 141 - * Protect audio loop so it cannot write to a paused device (fix 142 - pause/resume freeze with pulseaudio). 143 - * Fix build with libavutil >= 50.0.0. 144 - * Fix segfaults when playing VCDs. 145 - * Fix calculation of frame duration for ffmpeg-decoded formats. 146 - * Don't assume that ID3v2 tags with no content mean "end of ID3 data". 147 -- changes from 1.1.16.1 to 1.1.16.2: 148 - * Build fixes related to ImageMagick 6.4 & later. 149 - * Fix an error in Matroska PTS calculation. 150 - * Some front ends hang due to the hang fixes in 1.1.16. Fix this by 151 - removing a break statement. 152 - * Fix broken size checks in various input plugins (ref. CVE-2008-5239). 153 - * More malloc checking (ref. CVE-2008-5240). 154 - * Fix race conditions in gapless_switch (ref. kde bug #180339) 155 - * Fix a possible integer overflow in the 4XM demuxer. 156 - (TKADV2009-004, CVE-2009-0385) 157 -* Tue Sep 29 2009 meissner@suse.de 158 -- trying to fix timing issue in MJPEG plugin. bnc#327569 159 -* Fri Sep 25 2009 meissner@suse.de 160 -- Made my xine MJPEG plugin more stable. bnc#327569 161 - (still crashes in XShm mode, but this might be due to XShm) 162 -* Fri Mar 6 2009 mhopf@suse.de 163 -- Updated security fix for 4xm demuxer (TKADV2009-004, bnc#473825) 164 -* Tue Feb 17 2009 lnussel@suse.de 165 -- fix libtool breakage on older distributions with hack 166 -* Tue Feb 10 2009 mhopf@suse.de 167 -- Security fix for 4xm demuxer (TKADV2009-004, bnc#473825) 168 -* Tue Jan 27 2009 mhopf@suse.de 169 -- Update to 1.1.16.1: 170 - * Security fixes: 171 - - Heap overflow in Quicktime atom parsing. (CVE-2008-5234) 172 - - Multiple buffer overflows. (CVE-2008-5236) 173 - - Multiple integer overflows. (CVE-2008-5237) 174 - - Unchecked or incompletely-checked read function results. (CVE-2008-5239) 175 - - Unchecked malloc using untrusted values. (CVE-2008-5240, CVE-2008-5242) 176 - - Integer underflow in qt compressed atom handling. (CVE-2008-5241) 177 - - Buffer indexing using untrusted or unchecked values. (CVE-2008-5243) 178 - - Integer overflows in the ffmpeg audio decoder and the CDDA server. 179 - - Heap buffer overflow in the ffmpeg video decoder. 180 - - Avoid segfault on invalid track type in Matroska files. 181 - - Avoid underflow (compressed atoms) in the Qt demuxer. 182 - * Fix reported compilation failures (with C++ programs). 183 - * Fix CDDB access in 64-bit builds. 184 - * Fix seeking FLV clips that don't specify the movie length in the headers. 185 - * Support H.264 and AAC streams within FLV. 186 - * Fix timing issues (broken audio) on mingw. 187 - * Add ID3 tag TDRC to replace/complement the deprecated tag TYER. 188 - * Add a new meta-tag, "Composer", and use it in the FLAC demuxer. 189 - * Correct AAC channel ordering for multi-channel audio, at least for FLAC 190 - when using ALSA or PulseAudio. (Needs a proper fix.) 191 - * Add position-based seeking independent from seekpoints. 192 - * Fix some XCB Xv attribute configuration breakage. 193 - * Add a configuration option for Xv bicubic filtering, implemented in 194 - xf86-video-ati 6.9.1. 195 - * Recognise Xv "blitter" adaptors for port selection purposes. 196 - NOTE: you will need to remove ~/.xine/catalog.cache when upgrading from 197 - xine-lib 1.1.15 or older if you wish to use this extra option. 198 - * Fix MMS media requests where the URI contains %%-encoded characters. 199 - * Fix two hangs related to stopping playback of broken audio streams where 200 - no audio data is sent to the output thread. 201 |
||
[+] | Added | xine-lib-1.1.19-ffmpeg_abi_change.diff ^ |
@@ -0,0 +1,241 @@ +diff -ur xine-lib-1.1.19.orig/src/combined/ffmpeg/ff_audio_decoder.c xine-lib-1.1.19/src/combined/ffmpeg/ff_audio_decoder.c +--- xine-lib-1.1.19.orig/src/combined/ffmpeg/ff_audio_decoder.c 2010-03-23 16:41:49.000000000 +0100 ++++ xine-lib-1.1.19/src/combined/ffmpeg/ff_audio_decoder.c 2011-05-17 20:23:15.000000000 +0200 +@@ -46,6 +46,12 @@ + + #define AUDIOBUFSIZE (64 * 1024) + ++#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32) ++# define AVAUDIO 3 ++#else ++# define AVAUDIO 2 ++#endif ++ + typedef struct { + audio_decoder_class_t decoder_class; + } ff_audio_class_t; +@@ -255,6 +261,9 @@ + buf->decoder_info[2]); + + } else if (!(buf->decoder_flags & BUF_FLAG_SPECIAL)) { ++#if AVAUDIO > 2 ++ AVPacket avpkt; ++#endif + + if( !this->decoder_ok ) { + if ( ! this->context || ! this->codec ) { +@@ -286,11 +295,21 @@ + if (!this->output_open) { + if (!this->audio_bits || !this->audio_sample_rate || !this->audio_channels) { + decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE; ++#if AVAUDIO > 2 ++ av_init_packet (&avpkt); ++ avpkt.data = (uint8_t *)&this->buf[0]; ++ avpkt.size = this->size; ++ avpkt.flags = AV_PKT_FLAG_KEY; ++ avcodec_decode_audio3 (this->context, ++ (int16_t *)this->decode_buffer, ++ &decode_buffer_size, &avpkt); ++#else + avcodec_decode_audio2 (this->context, + (int16_t *)this->decode_buffer, + &decode_buffer_size, + &this->buf[0], + this->size); ++#endif + this->audio_bits = this->context->bits_per_sample; + this->audio_sample_rate = this->context->sample_rate; + this->audio_channels = this->context->channels; +@@ -311,12 +330,21 @@ + offset = 0; + while (this->size>0) { + decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE; ++#if AVAUDIO > 2 ++ av_init_packet (&avpkt); ++ avpkt.data = (uint8_t *)&this->buf[offset]; ++ avpkt.size = this->size; ++ avpkt.flags = AV_PKT_FLAG_KEY; ++ bytes_consumed = avcodec_decode_audio3 (this->context, ++ (int16_t *)this->decode_buffer, ++ &decode_buffer_size, &avpkt); ++#else + bytes_consumed = avcodec_decode_audio2 (this->context, + (int16_t *)this->decode_buffer, + &decode_buffer_size, + &this->buf[offset], + this->size); +- ++#endif + if (bytes_consumed<0) { + xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG, + "ffmpeg_audio_dec: error decompressing audio frame\n"); +diff -ur xine-lib-1.1.19.orig/src/combined/ffmpeg/ff_video_decoder.c xine-lib-1.1.19/src/combined/ffmpeg/ff_video_decoder.c +--- xine-lib-1.1.19.orig/src/combined/ffmpeg/ff_video_decoder.c 2010-03-10 20:07:15.000000000 +0100 ++++ xine-lib-1.1.19/src/combined/ffmpeg/ff_video_decoder.c 2011-05-17 20:23:15.000000000 +0200 +@@ -58,6 +58,14 @@ + + #define ENABLE_DIRECT_RENDERING + ++#if LIBAVCODEC_VERSION_MAJOR >= 53 || (LIBAVCODEC_VERSION_MAJOR == 52 && LIBAVCODEC_VERSION_MINOR >= 32) ++# define AVVIDEO 2 ++#else ++# define AVVIDEO 1 ++# define pp_context pp_context_t ++# define pp_mode pp_mode_t ++#endif ++ + /* reordered_opaque appeared in libavcodec 51.68.0 */ + #define AVCODEC_HAS_REORDERED_OPAQUE + #if LIBAVCODEC_VERSION_INT < 0x334400 +@@ -116,8 +124,8 @@ + + int pp_quality; + int pp_flags; +- pp_context_t *pp_context; +- pp_mode_t *pp_mode; ++ pp_context *our_context; ++ pp_mode *our_mode; + + /* mpeg-es parsing */ + mpeg_parser_t *mpeg_parser; +@@ -444,23 +452,23 @@ + this->pp_quality = this->class->pp_quality; + + if(this->pp_available && this->pp_quality) { +- if(!this->pp_context && this->context) +- this->pp_context = pp_get_context(this->context->width, this->context->height, ++ if(!this->our_context && this->context) ++ this->our_context = pp_get_context(this->context->width, this->context->height, + this->pp_flags); +- if(this->pp_mode) +- pp_free_mode(this->pp_mode); ++ if(this->our_mode) ++ pp_free_mode(this->our_mode); + +- this->pp_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a", ++ this->our_mode = pp_get_mode_by_name_and_quality("hb:a,vb:a,dr:a", + this->pp_quality); + } else { +- if(this->pp_mode) { +- pp_free_mode(this->pp_mode); +- this->pp_mode = NULL; ++ if(this->our_mode) { ++ pp_free_mode(this->our_mode); ++ this->our_mode = NULL; + } + +- if(this->pp_context) { +- pp_free_context(this->pp_context); +- this->pp_context = NULL; ++ if(this->our_context) { ++ pp_free_context(this->our_context); ++ this->our_context = NULL; + } + } + } +@@ -1055,12 +1063,26 @@ + } + + /* skip decoding b frames if too late */ ++#if AVVIDEO > 1 ++ this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT; ++#else + this->context->hurry_up = (this->skipframes > 0); ++#endif + + lprintf("avcodec_decode_video: size=%d\n", this->mpeg_parser->buffer_size); ++#if AVVIDEO > 1 ++ AVPacket avpkt; ++ av_init_packet(&avpkt); ++ avpkt.data = (uint8_t *)this->mpeg_parser->chunk_buffer; ++ avpkt.size = this->mpeg_parser->buffer_size; ++ avpkt.flags = AV_PKT_FLAG_KEY; ++ len = avcodec_decode_video2 (this->context, this->av_frame, ++ &got_picture, &avpkt); ++#else + len = avcodec_decode_video (this->context, this->av_frame, + &got_picture, this->mpeg_parser->chunk_buffer, + this->mpeg_parser->buffer_size); ++#endif + lprintf("avcodec_decode_video: decoded_size=%d, got_picture=%d\n", + len, got_picture); + len = current - buf->content - offset; +@@ -1112,7 +1134,13 @@ + + } else { + +- if (this->context->hurry_up) { ++ if ( ++#if AVVIDEO > 1 ++ this->context->skip_frame != AVDISCARD_DEFAULT ++#else ++ this->context->hurry_up ++#endif ++ ) { + /* skipped frame, output a bad frame */ + img = this->stream->video_out->get_frame (this->stream->video_out, + this->bih.biWidth, +@@ -1304,13 +1332,25 @@ + got_picture = 0; + } else { + /* skip decoding b frames if too late */ ++#if AVVIDEO > 1 ++ this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT; ++#else + this->context->hurry_up = (this->skipframes > 0); +- ++#endif + lprintf("buffer size: %d\n", this->size); ++#if AVVIDEO > 1 ++ AVPacket avpkt; ++ av_init_packet(&avpkt); ++ avpkt.data = (uint8_t *)&chunk_buf[offset]; ++ avpkt.size = this->size; ++ avpkt.flags = AV_PKT_FLAG_KEY; ++ len = avcodec_decode_video2 (this->context, this->av_frame, ++ &got_picture, &avpkt); ++#else + len = avcodec_decode_video (this->context, this->av_frame, + &got_picture, &chunk_buf[offset], | ||
[+] | Added | xine-lib-v4l-2.6.38.patch ^ |
@@ -0,0 +1,22 @@ +--- configure.ac.orig 2011-07-07 10:45:26.462089794 +0200 ++++ configure.ac 2011-07-07 10:46:04.415089790 +0200 +@@ -682,7 +682,7 @@ + have_v4l=no + have_v4l2=no + if test "x$enable_v4l" != "xno"; then +- AC_CHECK_HEADERS([linux/videodev.h], [have_v4l=yes], []) ++ AC_CHECK_HEADERS([libv4l1-videodev.h], [have_v4l=yes], []) + AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h sys/videodev2.h], [have_v4l2=yes], []) + AC_CHECK_HEADERS([asm/types.h]) + if test "x$enable_v4l" = "xyes" && test "x$have_v4l$have_v4l2" = "xnono"; then +--- src/input/input_v4l.c 2010-03-09 23:17:05.000000000 +0100 ++++ src/input/input_v4l.c 2011-07-07 10:46:27.694089788 +0200 +@@ -47,7 +47,7 @@ + */ + #define _LINUX_TIME_H + +-#include <linux/videodev.h> ++#include <libv4l1-videodev.h> + #include <sys/ioctl.h> + #include <sys/mman.h> + #include <errno.h> | ||
[+] | Changed | xine-lib.spec.pm ^ |
@@ -54,9 +54,13 @@ BuildRequires: Mesa-devel libsmbclient-devel libtheora-devel libvorbis-devel BuildRequires: readline-devel update-desktop-files vcdimager-devel BuildRequires: speex-devel +%if 0%{suse_version} >= 1210 +BuildRequires: libv4l-devel >= 0.8.4 +%else %if 0%{suse_version} >= 1110 BuildRequires: libv4l-devel %endif +%endif %if 0%{suse_version} >= 1030 BuildRequires: lirc-devel %else @@ -101,7 +105,7 @@ BuildRequires: libmodplug-devel %endif Version: 1.1.19 -Release: 45 +Release: 2.pm.47.1 # bug437293 %ifarch ppc64 Obsoletes: xine-lib-64bit @@ -136,8 +140,10 @@ Patch72: xine-lib-%{version}-install-plugins-helper.diff Patch73: xine-lib-%{version}-assert.patch Patch74: xine-configure.diff +Patch75: xine-lib-v4l-2.6.38.patch # *** Only working for noncrippled source Patch80: xine-lib-various-noncrippled.diff +Patch81: xine-lib-%{version}-ffmpeg_abi_change.diff %description xine is a free multimedia player. It plays back CDs, DVDs, and VCDs. It @@ -656,10 +662,15 @@ %else # Only apply to uncrippled source %patch80 +%patch81 -p1 %endif %patch72 -p1 %patch73 -p1 %patch74 -p1 +%if 0%{suse_version} >= 1210 +%patch75 +%endif + rm -f m4/libtool15.m4 %build @@ -1005,6 +1016,10 @@ %endif %changelog +* Thu Jul 7 2011 idonmez@novell.com +- Add xine-lib-v4l-2.6.38.patch: use the new v4l interface +* Sat May 28 2011 Manfred.Tremmel@iiv.de +- included a patch to build against new ffmpeg abi * Thu Nov 18 2010 coolo@novell.com - add patch from arch linux to fix build with newer xorg * Tue Aug 3 2010 lnussel@suse.de |