Olaf Hering
50cd8ff04c
- Update to version 1.2.12 - Rebase xine-lib-libdvdread_udf.diff - Upstream changes: * Add string tree library (generic info parser). * Add OpenSL ES audio output plugin. * Add mpeg-dash input plugin. * Add crypto input plugin. * Add VAAPI support to opengl2 video output (requires using EGL). * Better hls support. * Improved DVB/live stream timing. * Improved BT.2020 support. * Fix compatibility with ffmpeg 5.0. * Fix RSS parser. * Fix output parameter setting (audio amplification, video hue etc.). * Fix AC3 demuxer. * Diverse small fixes and optimizations. * Update german translation. * Code cleanup. * Build fixes. - Use pkgconfig(smbclient) to refer to samba libaries - Update to version 1.2.11 - Remove xine-lib-dec_info_real.patch, fixed upstream - Upstream changes: * Add gopher input plugin. * Add user settings for IPv6. * Split a52 spdif output to separate decoder. * Code cleanup. * More engine optimization. * Small optimizations (opengl2, dvb subtitles, png, mpeg-ts). * Better A/V sync. * Fix a few crashes. * Fix bluray playback. * Fix VAAPI picture jitter and green flashes. * Fix Opus and EAC3 audio playback. * Fix text subtitles. * Fix mpeg-ts (hdmv mode, detection of cut TV recordings). * Fix mpeg layer 1-4 audio timing. * Fix some VDR issues. * Fix HLS VOD mode. * Many small fixes. * Build fixes. * BSD fixes. * Update german translation. * Update internal libdca to upstream 0.0.7. - Remove xineplug_decode_qt to fix i386 build - Fix build with xine-lib-dec_info_real.patch - Update to version 1.2.10 and remove incorporated patches: xine-lib-contrib.patch, xine-lib-alsa.patch, xine-lib-a52dec.patch and xine-lib-ImageMagick7.patch. - Upstream changes: *Add (xcb)xv yuy2 emulation. *Add libavcodec v58 compatibility. *Add avio seek support. *Add libdav1d, libaom and lavc AV1 video decoders. *Add libvpx multithreading. *Add libpng decoder. *Add a52 double and fixed point modes. *Add Opus audio support to ogg demuxer. *Add AV1 video support to matroska demuxer. *Add ivf demuxer. *Add mpeg-ts split payload support. *Add TLS support using gnutls or OpenSSL. *Add ftp input plugin (ftp://) with TLS support (ftpes://) *Add tls:// input plugin (raw TLS over TCP). *Add libnfs NFS input plugin. *Add ftp/http seek support. *Add scp forward seek support. *Add mp4 http streaming support (plain and fragment modes). *Add HLS streaming support. *Add HTTP 1.1 support. *Add OpenGL EGL and Wayland support. *Add side stream feature. *Optimize OSD. *Optimize output layers. *Optimize decoder threads. *Optimize event handling. *Optimize stream info. *Optimize TCP/TLS/HTTP network input. *Optimize network buffering control. *Alsa/oss startup optimization. *Optimize input_stdin_fifo. *Optimize internal liba52. *Optimize user seek. *Better support for audio out drivers that cannot resume after pause. *Better support for mpeg pts jumps. *Better bluray seek. *XML parser fixes. *Fix midstream audio mode switch. *Fix FLAC audio playback via ffmpeg. *Fix ffmpeg mpeg1/2 video. *Fix/optimize mpeg, mpeg-ts, qt, flv, matroska, real & asf demuxers. *Fix network seek. *Fix/optimize audio CD. *Fix DVD (occasional crashes, damaged video after a DVD had been played). *Fix opengl2 freeze after X server failure. *Fix tvtime deinterlacer crash. *Fix/optimize overlay. *Fix/optimize old VDR plugin. *Fix xine-ui freeze when opening a playlist while paused. *Security fixes. *More error handling instead of aborting. - Package xineplug_post_tvtime also on arm64 - Added xine-lib-contrib.patch - Remove disabled esd support - Remove disabled directfb support - Remove disabled aalib support - Remove disabled gnome_vfs support - Use gcc8 in SLE_12 - Use plain configure macro - Fix opensuse.org XINE URL - Use without instead of !with distributable/onlynondistributable/ffmpeg/sdl - Remove disabled code for sle10 - Remove conditional for ffmpeg because it always exists - Remove unused xine-lib-without-ffmpeg.patch - Remove unused xine-lib-nukefaadetc.patch, use sed instead - Adjust all patches for autosetup: xine-lib-libdvdread_udf.diff xine-lib-v4l-2.6.38.patch xine-lib-alsa.patch xine-lib-theora.patch xine-lib-ImageMagick7.patch xine-lib-a52dec.patch - Use alsa API properly with xine-lib-alsa.patch. Consumers are expected to use <alsa/asoundlib.h> instead of <asoundlib.h>. This is in preparation of an change to pkgconfig(alsa) to not pollute CFLAGS with -I/usr/include/alsa anymore (bsc#1130333) - Package xineplug_post_tvtime also on arm32 - fix-non-x86-build.diff: remove - Patched up crippled build with new perl, the perl scripts no longer work. - Added xine-lib-nukefaadetc.patch for the same reason. - Build with libmpeg2. - Set to bcond_without gnome_vfs to bcond_with, no longer build gnome-vfs support by default, gnome-vfs is deprecated upstream for a long time. - Rebase fix-non-x86-build.diff to fix arm build. - Update to release 1.2.9 and add xine-lib-a52dec.patch. - Moved xineplug_decode_mad and xineplug_decode_a52 into the main package as they are now unrestricted. - Enabled sdl and jack subpackages. - Upstream changes: * Add LIBXINE_VERBOSITY environment var override. * Add auto gapless switch. Play clips to their very end when that is likely what the user wants. * Add video single step feature. * Add generic keyframe index feature. * Add x32 (x86 32 on 64bit) support. * Add some more debug logging. * Join 4 network input plugins into a single file. * Matroska fixes. * Build fixes. * Directx2 audio fixes. * VAAPI fixes. * XCB video fixes and optimizations. * Return driver held video frames on shutdown properly. * FAAD audio compatibility fixes. * Fix VP9 playback. * Fix post filtering crash. * Make xml parser thread safe. * More user configuration safety. * Inline assembly fixes. * Failed memory allocation safety fixes. * Memory leak fixes. * Debug and LOG build fixes. * Again, lots of small fixes and optimizations. * Better multiengine client safety. * Hide yuv2rgb implementation details. * Use a single libyuv2rgb copy in both engine and plugins. * Minor ffmpeg optimization. * Lift a few video engine handbrakes. Less CPU load, fewer frame drops, faster seeking. * Optimize audio engine. * Optimize demux buffering system. * Optimize metronom clock. * Optimize port tickets. * Optimize sse/mmx2 memcpy. * Code simplification and cleanup. * Update german translation. - Cleanup buildrequires so neither Mesa-devel nor xorg-x11-devel meta/mega packages are required anymore. - Build unconditionally with modplug and pulseaudio - Remove dependency to gcc5 - Use simple bcond for ffmpeg - Update to release 1.2.8 - Remove patches fixed upstream: xine-lib-crippled-ffmpeg3.0.patch, xine-lib-ffmpeg3.0.patch and xine-lib-link-xcb.patch. - Removed precheckin_cripple_tarball.sh and integrated it into the spec file. - Upstream changes: * Add HEVC to QT demuxer. * Add libOpenHEVC decoder. * Add h.265/HEVC decoding to VAAPI. * Detach VAAPI video out from ffmpeg. * VAAPI fixes. * Improved Matroska compatibility (TrueHD and PCM sound, HDMV/Text subtitles). * Add faad LATM support. * Add faad preamp gain control and channel mixer. * Update/fix internal libfaad. * Integrate 6 basic plugins into libxine. * ffmpeg fixes and optimizations. * Use external libdvdnav by default. * Optimize video out. * AVFormat demuxer fixes. * (XCB)XV video out fixes. * Lots of small fixes and optimizations. * Build fixes (newer automake, xcb, libdvdcss, dxr3, make dist, 32+64bit dual install, gcc 4.x with GNU ld 2.26 ...). * Better C++ compatibility. * Add support for avi WAVE_FORMAT_EXTENSIBLE. * Add "Time Domain Audio Analyzer" Visualization Post Plugin. * Add support for compressed HDMV PGS subtitles in Matroska. * Add HW accelerated OSD for Raspberry Pi. * Add simple deep color (9/10bit) support via ffmpeg. * Join 15 video demuxers into a single multiplugin lib. * Join 5 vdpau decoders into a single multiplugin lib. * Join 3 raw video decoders into a single multiplugin lib. * Make ffmpeg/postproc optional. * Log individual items when loading multiplugin libs. * Improved qt/mp4 edit list handling. * Detect mp3 files with large id3v2 tags. * Auto recover from temporary DVB signal loss. * Fix demuxing low framerate mp4. * DVB AAC sound compatibility fix. * ffmpeg audio downmix level fix and optimization. * ffmpeg multithreading fixes. * ffmpeg compatibility fixes. * BluRay subtitle fixes. * Various small fixes. * OpenGL(2) video out fixes and optimizations. * Fix some issues with heavy stream seeking. * Build fixes, including missing vcd libs and much less warnings. * Code simplifications. - fix build with ImageMagick 7 + xine-lib-ImageMagick7.patch - Fixed build in Leap:42.2 by building with gcc5. - Removed conditinals for old openSUSE versions from spec file. - Modified pre checkin script to enable build with the ffmpeg libs that are in the distribution. - Added xine-lib-crippled-ffmpeg3.0.patch to enable leap and above to build with ffmpeg3. - Removed unused build flags. - Accept any ffmpeg version in BuildRequires - Add xine-lib-link-xcb.patch: fix linking of libxcb. As our code uses the functions, we must not rely on 3rd parties to hopefully bring the right libraries to link. https://bugs.xine-project.org/show_bug.cgi?id=573 - Drop libsmbclient BuildRequires: requiring a library to build is in any case wrong. It's the responsibility of a -devel package to pull in the real libraries. - Added xine-lib-ffmpeg3.0.patch to build against ffmpeg-3.0 libraries on PMBS. - Add pkgconfig(libva-glx) to BuildRequires because it's a separate package for openSUSE > 13.2. - Replace implicit Requires from old ffmpeg with BuildRequires to fix build in packman - update to 1.2.6 * Add libmmal video output plugin for Raspberry Pi. * Add libmmal HW video decoder plugin for Raspberry Pi. * Add overlay colormatrix support. * Add "sqare monitor pixels" config option. * Add VAAPI colormatrix and fullrange video support. * Add "radeonhd" XV colormatrix support. * Add Opus audio support. * Update german translation. * Optimize OpenGL2 video out. * Optimize raw RGB video decoder. * Fix multithread ffmpeg video decoding. * Fix/optimize DVB subtitles. * Fix external text subtitles. * BSD build fixes. * Clang build fixes. * Build optimization fixes (aliasing). * AVformat demux build fix. * More safety on memory allocation failure. * Fix detection of and compilation with libcaca 0.99 beta 19. - use the xz compressed tarball provided by upstream and change precheckin_cripple_tarball.sh accordingly - should fix boo#913588 - update to 1.2.5 * Update german translation. * Add bass downmix support to AC3 decoder. * Add experimental YCgCo colorspace support. * Add avformat demux plugin. - Support for new formats and protocols. - Proper rtsp support (with avformat+rtsp://, rtsp+tcp:// and rtsp+http:// mrls). - by default native xine demux plugins are probed first. This can be overridden in config, by selecting demuxer in mrl (#demux:avformat), or by using "avformat+" mrl prefix. * Add avio (libavformat) input plugin: - Support for new protocols (https://, ftp://, sftp://, ...). - Support for seekable http streams (with "avio+http://" mrl). - By default native xine input plugins are used. This can be overridden in config or by using "avio+" mrl prefix. * Recognise & use HEVC/H.265. (ffmpeg) * Add support for HEVC/H.265 to the mpeg-ts demuxer. * Add support for HEVC/H.265 and VP9 to the matroska demuxer. * Add VP8/VP9 decoder using libvpx. * Modernise Quicktime demuxer: - Multiple user selectable audio traks. - Support AC3, EAC3, vorbis, Purevoice audio. - Support ISO fragment media files. - More safety on broken files. - Slightly faster. * Recognise & use ADPCM G.726 and ATRAC3. (ffmpeg/libva) * Build fixes. * Fix HDMV subtitle channel. * FFmpeg compatibility fixes. * Some colour format conversion fixes. * Fix RealVideo re-ordered PTS: pass through, let the decoder re-order it. * Fix some problems with COOK audio. - from 1.2.4 * Some VAAPI plugin fixes (build, image size changes). * ffmpeg multi-channel playback fixes: - Handle channel configuration changes sooner. - Generic layout if none provided; follow user changes. - Defer opening output if nothing to play. - Don't re-open with identical settings. - Don't use the bits-per-sample value (may not match decoder output). * ffmpeg video fixes: - Default to square pixels, avoiding black bars & unnecessary scaling. - Avoid CODEC_FLAG_EMU_EDGE (and some possible segfaults). - Use MPEG2VIDEO. * OpenGL2 output: don't render into invalid drawable. * Fix a possible xine_play() hang related to display locking. * FLV demuxer rewrite: - Improved metadata parsing. - PTS/DTS fixes. - Large file support on 32-bit. - Much improved seeking. - Much optimisation. - More codecs supported. * audio_out speed control fixes. * Optimised RGB→YUY2 conversion. * Avoid a possible performance penalty where AVX-optimised memcpy is used. * Add BD-J (BluRay Java) support with ARGB overlay capable video drivers (opengl2, vaapi, vdpau) * Add support for theora 4:2:2 and 4:4:4 pixel formats - Removed xine-lib-missing-include-1.2.3.patch, the missing file is now included in the upstream tarball - detect smbclient - update to 1.2.3 * Add VAAPI HW decoding support * Add OpenGL 2.0 output plugin * Add crop support to XShm output plugins * Add color matrix and full range support to OpenGL/Xv/XShm output plugins * Add test image generator input plugin * Add fast libjpeg based JPEG decoder * Add max. Xv image size detection to Xv video output plugin * Fix crash when trying to display too large jpeg image with Xv output plugin * Fix possible crash when stopping playback with deinterlacing enabled * Support large PAT in MPEG TS * Handle EAC3 audio (via ffmpeg) - update license to new format - Added xine-lib-theora.patch to add fourcc code to xine - fix build for non-x86 architectures (disable deinterlace plugin) - don't include .la files in libxine-devel to avoid bogus libtool errors - provide and obsolete xine-devel and xine-lib for backward compat - update to 1.2.2 * Fix musepack decoder compilation if libmpcdec headers aren't available. * Configure tests for xinerama & VideoCD support now soft-fail properly. * The DVB plugin is working again. * OpenGL OSD fix. * YUV conversion MMX/SSE optimisations. * YUV420 H.264 is playable now; YUVJ444P is correctly handled. * Support FLAC in Matroska; support BMP. * Various build fixes for Windows. - updated crippled version, removed mad and a52dec - Remove dependency from libxine-devel to libffmpeg-devel - update to 1.2.1 * The "I'm at Tyneside LUG" release. * Enable PulseAudio, JACK and VDPAU on the Hurd. * Rewrite of VDPAU OSD handling. * sndio plugin is now buildable. * Various bug fixes. - first build of xine-lib-12 for packman OBS-URL: https://build.opensuse.org/request/show/961830 OBS-URL: https://build.opensuse.org/package/show/multimedia:xine/xine-lib?expand=0&rev=137
123 lines
3.3 KiB
Diff
123 lines
3.3 KiB
Diff
# HG changeset patch
|
|
# User Tobias Rautenkranz <mail@tobias.rautenkranz.ch>
|
|
# Date 1202208482 -3600
|
|
# Node ID 100241ff36f0730a15018a58456fb86eb590bf18
|
|
# Parent 07c29261ed98fdb710a241c6711dac0215b6074a
|
|
Fix playback of DVDs with a broken UDF file system (aka DVD-Movie-Protect).
|
|
|
|
--- a/src/input/libdvdnav/dvd_udf.c
|
|
+++ b/src/input/libdvdnav/dvd_udf.c
|
|
@@ -38,10 +38,16 @@
|
|
#include <sys/stat.h>
|
|
#include <unistd.h>
|
|
#include <inttypes.h>
|
|
+#ifndef __WIN32__
|
|
+#include <fnmatch.h>
|
|
+#endif
|
|
|
|
#include "dvd_reader.h"
|
|
#include "dvd_udf.h"
|
|
|
|
+#include "ifo_types.h"
|
|
+#include "ifo_read.h"
|
|
+
|
|
/* Private but located in/shared with dvd_reader.c */
|
|
extern int UDFReadBlocksRaw( dvd_reader_t *device, uint32_t lb_number,
|
|
size_t block_count, unsigned char *data,
|
|
@@ -779,7 +785,9 @@ static int UDFFindPartition( dvd_reader_
|
|
return part->valid;
|
|
}
|
|
|
|
-uint32_t UDFFindFile( dvd_reader_t *device, char *filename,
|
|
+
|
|
+
|
|
+static uint32_t UDFFindFileReal( dvd_reader_t *device, char *filename,
|
|
uint32_t *filesize )
|
|
{
|
|
uint8_t LogBlock_base[ DVD_VIDEO_LB_LEN + 2048 ];
|
|
@@ -861,6 +869,84 @@ uint32_t UDFFindFile( dvd_reader_t *devi
|
|
return partition.Start + File.Location;
|
|
}
|
|
|
|
+/**
|
|
+ * Get the offset from the ifo files to allow playback of DVDs
|
|
+ * with a deliberately broken UDF file system (aka DVD-Movie-Protect).
|
|
+ * When the file is not an IFO or VOB, it calls the real UDF routine.
|
|
+ */
|
|
+uint32_t UDFFindFile( dvd_reader_t *device, char *filename,
|
|
+ uint32_t *filesize )
|
|
+{
|
|
+#ifndef __WIN32__
|
|
+ if (!fnmatch("/VIDEO_TS/VTS_[0-9][0-9]_[0-9].???", filename, FNM_PATHNAME)) {
|
|
+#else
|
|
+ if (strlen("/VIDEO_TS/VTS_01_1.VOB") == strlen(filename)
|
|
+ && !strncmp(filename, "/VIDEO_TS/VTS_", strlen("/VIDEO_TS/VTS_")) ) {
|
|
+#endif
|
|
+ size_t len = strlen(filename);
|
|
+ char *extension = &filename[len-3];
|
|
+ if (!strcmp(extension, "IFO") || !strcmp(extension, "VOB")) {
|
|
+ int title = atoi(&filename[len-8]);
|
|
+ int part = atoi(&filename[len-5]);
|
|
+
|
|
+ ifo_handle_t *ifo_handle = ifoOpen(device, 0);
|
|
+ if (0 == ifo_handle)
|
|
+ return 0;
|
|
+
|
|
+ uint32_t tmp_filesize;
|
|
+ uint32_t offset = UDFFindFileReal(device, "/VIDEO_TS/VIDEO_TS.IFO", &tmp_filesize);
|
|
+
|
|
+ int i;
|
|
+ for (i=0; i<ifo_handle->tt_srpt->nr_of_srpts; i++)
|
|
+ if (title == ifo_handle->tt_srpt->title[i].title_set_nr)
|
|
+ break;
|
|
+
|
|
+ if (i == ifo_handle->tt_srpt->nr_of_srpts) {
|
|
+ /* not found */
|
|
+ ifoClose(ifo_handle);
|
|
+ return 0;
|
|
+ }
|
|
+ offset += ifo_handle->tt_srpt->title[i].title_set_sector;
|
|
+ ifoClose(ifo_handle);
|
|
+
|
|
+ if (!strcmp(extension, "VOB")) {
|
|
+ ifo_handle = ifoOpen(device, title);
|
|
+ if (0 == ifo_handle)
|
|
+ return 0;
|
|
+
|
|
+ switch(part) {
|
|
+ case 0:
|
|
+ if (0 == ifo_handle->vtsi_mat->vtsm_vobs) {
|
|
+ ifoClose(ifo_handle);
|
|
+ return 0;
|
|
+ }
|
|
+ offset += ifo_handle->vtsi_mat->vtsm_vobs;
|
|
+ break;
|
|
+ case 1:
|
|
+ if (0 == ifo_handle->vtsi_mat->vtstt_vobs) {
|
|
+ ifoClose(ifo_handle);
|
|
+ return 0;
|
|
+ }
|
|
+ offset += ifo_handle->vtsi_mat->vtstt_vobs;
|
|
+ break;
|
|
+ default: /* can't get other parts (also no need to) */
|
|
+ offset = 0;
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ ifoClose(ifo_handle);
|
|
+ }
|
|
+
|
|
+
|
|
+ *filesize = 1000000; /* File size unknown */
|
|
+ if (offset != 0)
|
|
+ return offset;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return UDFFindFileReal( device, filename, filesize);
|
|
+}
|
|
+
|
|
|
|
|
|
/**
|