package init
This commit is contained in:
parent
a42081a1ec
commit
b76e559c00
114
7180713BE58D1ADC.asc
Normal file
114
7180713BE58D1ADC.asc
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
2qzgB8M76g==
|
||||||
|
=Kv5J
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
162
A01-UDFReadBlocks-errors.patch
Normal file
162
A01-UDFReadBlocks-errors.patch
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
diff --git a/src/dvd_reader.c b/src/dvd_reader.c
|
||||||
|
index 4e112d3..e8d50f3 100644
|
||||||
|
--- a/src/dvd_reader.c
|
||||||
|
+++ b/src/dvd_reader.c
|
||||||
|
@@ -1156,13 +1156,13 @@ int InternalUDFReadBlocksRaw( const dvd_reader_t *device, uint32_t lb_number,
|
||||||
|
|
||||||
|
if( !device->dev ) {
|
||||||
|
fprintf( stderr, "libdvdread: Fatal error in block read.\n" );
|
||||||
|
- return 0;
|
||||||
|
+ return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = dvdinput_seek( device->dev, (int) lb_number );
|
||||||
|
if( ret != (int) lb_number ) {
|
||||||
|
fprintf( stderr, "libdvdread: Can't seek to block %u\n", lb_number );
|
||||||
|
- return 0;
|
||||||
|
+ return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = dvdinput_read( device->dev, (char *) data,
|
||||||
|
diff --git a/src/dvd_udf.c b/src/dvd_udf.c
|
||||||
|
index 5eb3d2b..68c3a9a 100644
|
||||||
|
--- a/src/dvd_udf.c
|
||||||
|
+++ b/src/dvd_udf.c
|
||||||
|
@@ -516,6 +516,7 @@ static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType,
|
||||||
|
uint32_t lbnum;
|
||||||
|
uint16_t TagID;
|
||||||
|
struct icbmap tmpmap;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
lbnum = partition->Start + ICB.Location;
|
||||||
|
tmpmap.lbn = lbnum;
|
||||||
|
@@ -526,10 +527,16 @@ static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType,
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
|
||||||
|
+ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 );
|
||||||
|
+ if( ret < 0 ) {
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+ else if( ret == 0 ) {
|
||||||
|
TagID = 0;
|
||||||
|
- else
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
UDFDescriptor( LogBlock, &TagID );
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if( TagID == FileEntry ) {
|
||||||
|
UDFFileEntry( LogBlock, FileType, partition, File );
|
||||||
|
@@ -677,6 +688,7 @@ static int UDFGetAVDP( dvd_reader_t *device,
|
||||||
|
uint32_t lastsector;
|
||||||
|
int terminate;
|
||||||
|
struct avdp_t;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
if(GetUDFCache(device, AVDPCache, 0, avdp))
|
||||||
|
return 1;
|
||||||
|
@@ -687,11 +699,16 @@ static int UDFGetAVDP( dvd_reader_t *device,
|
||||||
|
terminate = 0;
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
- if( DVDReadLBUDF( device, lbnum, 1, Anchor, 0 ) > 0 ) {
|
||||||
|
- UDFDescriptor( Anchor, &TagID );
|
||||||
|
- } else {
|
||||||
|
+ ret = DVDReadLBUDF( device, lbnum, 1, Anchor, 0 );
|
||||||
|
+ if( ret < 0 ) {
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+ else if( ret == 0 ) {
|
||||||
|
TagID = 0;
|
||||||
|
}
|
||||||
|
+ else {
|
||||||
|
+ UDFDescriptor( Anchor, &TagID );
|
||||||
|
+ }
|
||||||
|
if (TagID != AnchorVolumeDescriptorPointer) {
|
||||||
|
/* Not an anchor */
|
||||||
|
if( terminate ) return 0; /* Final try failed */
|
||||||
|
@@ -742,7 +759,7 @@ static int UDFFindPartition( dvd_reader_t *device, int partnum,
|
||||||
|
uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
|
||||||
|
uint32_t lbnum, MVDS_location, MVDS_length;
|
||||||
|
uint16_t TagID;
|
||||||
|
- int i, volvalid;
|
||||||
|
+ int i, volvalid, ret;
|
||||||
|
struct avdp_t avdp;
|
||||||
|
|
||||||
|
if(!UDFGetAVDP(device, &avdp))
|
||||||
|
@@ -761,10 +778,16 @@ static int UDFFindPartition( dvd_reader_t *device, int partnum,
|
||||||
|
lbnum = MVDS_location;
|
||||||
|
do {
|
||||||
|
|
||||||
|
- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
|
||||||
|
+ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 );
|
||||||
|
+ if( ret < 0 ) {
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+ else if( ret == 0 ) {
|
||||||
|
TagID = 0;
|
||||||
|
- else
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
UDFDescriptor( LogBlock, &TagID );
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if( ( TagID == PartitionDescriptor ) && ( !part->valid ) ) {
|
||||||
|
/* Partition Descriptor */
|
||||||
|
@@ -805,6 +828,7 @@ uint32_t UDFFindFile( dvd_reader_t *device, const char *filename,
|
||||||
|
struct AD RootICB, File, ICB;
|
||||||
|
char tokenline[ MAX_UDF_FILE_NAME_LEN ];
|
||||||
|
uint8_t filetype;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
*filesize = 0;
|
||||||
|
tokenline[0] = '\0';
|
||||||
|
@@ -820,10 +844,16 @@ uint32_t UDFFindFile( dvd_reader_t *device, const char *filename,
|
||||||
|
/* Find root dir ICB */
|
||||||
|
lbnum = partition.Start;
|
||||||
|
do {
|
||||||
|
- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
|
||||||
|
+ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 );
|
||||||
|
+ if( ret < 0 ) {
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+ else if( ret == 0 ) {
|
||||||
|
TagID = 0;
|
||||||
|
- else
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
UDFDescriptor( LogBlock, &TagID );
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* File Set Descriptor */
|
||||||
|
if( TagID == FileSetDescriptor ) /* File Set Descriptor */
|
||||||
|
@@ -886,7 +916,7 @@ static int UDFGetDescriptor( dvd_reader_t *device, int id,
|
||||||
|
uint32_t lbnum, MVDS_location, MVDS_length;
|
||||||
|
struct avdp_t avdp;
|
||||||
|
uint16_t TagID;
|
||||||
|
- int i, desc_found = 0;
|
||||||
|
+ int i, desc_found = 0, ret;
|
||||||
|
/* Find Anchor */
|
||||||
|
lbnum = 256; /* Try #1, prime anchor */
|
||||||
|
if(bufsize < DVD_VIDEO_LB_LEN)
|
||||||
|
@@ -904,10 +934,16 @@ static int UDFGetDescriptor( dvd_reader_t *device, int id,
|
||||||
|
/* Find Descriptor */
|
||||||
|
lbnum = MVDS_location;
|
||||||
|
do {
|
||||||
|
- if( DVDReadLBUDF( device, lbnum++, 1, descriptor, 0 ) <= 0 )
|
||||||
|
+ ret = DVDReadLBUDF( device, lbnum++, 1, descriptor, 0 );
|
||||||
|
+ if( ret < 0 ) {
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+ else if( ret == 0 ) {
|
||||||
|
TagID = 0;
|
||||||
|
- else
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
UDFDescriptor( descriptor, &TagID );
|
||||||
|
+ }
|
||||||
|
if( (TagID == id) && ( !desc_found ) )
|
||||||
|
/* Descriptor */
|
||||||
|
desc_found = 1;
|
||||||
BIN
libdvdread-6.0.0.tar.bz2
Normal file
BIN
libdvdread-6.0.0.tar.bz2
Normal file
Binary file not shown.
6
libdvdread-6.0.0.tar.bz2.asc
Normal file
6
libdvdread-6.0.0.tar.bz2.asc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iF0EABECAB0WIQRl98a0IGvQV6frc3hxgHE75Y0a3AUCWl/CXgAKCRBxgHE75Y0a
|
||||||
|
3F/3AJ9QnMbfr7cWIN64gW2SfuzHrFZpiACgl970rnPZtoEEN0CfUOuw2vMMz70=
|
||||||
|
=9mCd
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
55
libdvdread.spec
Normal file
55
libdvdread.spec
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
Name: libdvdread
|
||||||
|
Version: 6.0.0
|
||||||
|
Release: 3
|
||||||
|
Summary: Library to access DVD disks
|
||||||
|
License: GPLv2+
|
||||||
|
URL: http://dvdnav.mplayerhq.hu/
|
||||||
|
Source0: https://download.videolan.org/pub/videolan/libdvdread/%{version}/libdvdread-%{version}.tar.bz2
|
||||||
|
Source1: https://download.videolan.org/pub/videolan/libdvdread/%{version}/libdvdread-%{version}.tar.bz2.asc
|
||||||
|
Source2: https://download.videolan.org/pub/keys/7180713BE58D1ADC.asc
|
||||||
|
Patch0001: A01-UDFReadBlocks-errors.patch
|
||||||
|
BuildRequires: gcc gnupg2
|
||||||
|
Provides: bundled(md5-gcc)
|
||||||
|
|
||||||
|
%description
|
||||||
|
Libdvdread provides a simple foundation for reading DVD-Video images.
|
||||||
|
It offers several DVD applications and allows application designers
|
||||||
|
to access some of the more advanced features of the DVD format.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files for libdvdread
|
||||||
|
Requires: %{name} = %{version}-%{release} pkgconfig
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Libdvdread-devel contains development files for libdvdread.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
gpg2 --import --import-options import-export,import-minimal %{S:2} > ./gpg-keyring.gpg
|
||||||
|
gpgv2 --keyring ./gpg-keyring.gpg %{S:1} %{S:0}
|
||||||
|
%autosetup -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
%configure --disable-static
|
||||||
|
%make_build V=1
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
%delete_la
|
||||||
|
|
||||||
|
%post -p /sbin/ldconfig
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license COPYING
|
||||||
|
%doc AUTHORS NEWS README ChangeLog TODO
|
||||||
|
%{_libdir}/libdvdread.so.*
|
||||||
|
%exclude %{_pkgdocdir}/COPYING
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/dvdread
|
||||||
|
%{_libdir}/libdvdread.so
|
||||||
|
%{_libdir}/pkgconfig/dvdread.pc
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Feb 18 2020 zhusongbao <zhusongbao@huawei.com> 6.0.0-3
|
||||||
|
- Package init
|
||||||
Loading…
x
Reference in New Issue
Block a user