From subversion at mplayerhq.hu Sat Dec 15 17:38:24 2018 From: subversion at mplayerhq.hu (reimar) Date: Sat, 15 Dec 2018 17:38:24 +0200 (EET) Subject: [MPlayer-cvslog] r38118 - trunk/configure Message-ID: <20181215153824.C07DB68AAAB@ffbox0-bg.mplayerhq.hu> Author: reimar Date: Sat Dec 15 17:38:24 2018 New Revision: 38118 Log: configure: detect struct pollfd. Fixes trac issue #2350. Modified: trunk/configure Modified: trunk/configure ============================================================================== --- trunk/configure Sat Oct 13 16:48:44 2018 (r38117) +++ trunk/configure Sat Dec 15 17:38:24 2018 (r38118) @@ -785,6 +785,7 @@ _tv_dshow=auto _pvr=auto networking=yes _winsock2_h=auto +_struct_pollfd=auto _struct_addrinfo=auto _getaddrinfo=auto _struct_sockaddr_storage=auto @@ -3562,6 +3563,26 @@ else cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0' fi +echocheck "struct pollfd" +if test "$_struct_pollfd" = auto; then + _struct_pollfd=no + cat > $TMPC << EOF +#if HAVE_WINSOCK2_H +#include +#else +#include +#endif +int main(void) { struct pollfd p; return 0; } +EOF + cc_check $cc_check_winsock2_h && _struct_pollfd=yes +fi +echores "$_struct_pollfd" + +if test "$_struct_pollfd" = yes; then + def_struct_pollfd="#define HAVE_STRUCT_POLLFD 1" +else + def_struct_pollfd="#define HAVE_STRUCT_POLLFD 0" +fi echocheck "netdb.h, struct addrinfo" if test "$_struct_addrinfo" = auto; then @@ -9330,7 +9351,7 @@ $def_simd_align_32 #define HAVE_SIMD_ALIGN_64 0 #define HAVE_STRERROR_R 0 #define HAVE_STRPTIME 0 -#define HAVE_STRUCT_POLLFD 0 +$def_struct_pollfd #define HAVE_SYMVER_ASM_LABEL 0 #define HAVE_SYMVER_GNU_ASM 0 #define HAVE_SYNC_SYNCHRONIZE 1 From subversion at mplayerhq.hu Sat Dec 15 17:38:25 2018 From: subversion at mplayerhq.hu (reimar) Date: Sat, 15 Dec 2018 17:38:25 +0200 (EET) Subject: [MPlayer-cvslog] r38119 - trunk/stream/stream_bd.c Message-ID: <20181215153825.C8D2268AABA@ffbox0-bg.mplayerhq.hu> Author: reimar Date: Sat Dec 15 17:38:25 2018 New Revision: 38119 Log: stream_bd: support new VUK storage locations of libaacs. This allows stream_bd to decrypt files previously played with stream_br and current libaacs for example. Modified: trunk/stream/stream_bd.c Modified: trunk/stream/stream_bd.c ============================================================================== --- trunk/stream/stream_bd.c Sat Dec 15 17:38:24 2018 (r38118) +++ trunk/stream/stream_bd.c Sat Dec 15 17:38:25 2018 (r38119) @@ -142,7 +142,7 @@ static void id2str(const uint8_t *id, in int i; idlen = FFMIN(idlen, 20); for (i = 0; i < idlen; i++) - snprintf(dst + 2*i, 3, "%02"PRIX8, id[i]); + snprintf(dst + 2*i, 3, "%02"PRIx8, id[i]); } static int find_vuk(struct bd_priv *bd, const uint8_t discid[20]) @@ -153,17 +153,35 @@ static int find_vuk(struct bd_priv *bd, int vukfound = 0; stream_t *file; char idstr[ID_STR_LEN]; + id2str(discid, 20, idstr); // look up discid in KEYDB.cfg to get VUK home = getenv("HOME"); - snprintf(filename, sizeof(filename), "%s/.dvdcss/KEYDB.cfg", home); + snprintf(filename, sizeof(filename), "%s/.cache/aacs/vuk/%s", home, idstr); + file = open_stream(filename, NULL, NULL); + if (file) { + vukfound = 1; + memset(line, 0, sizeof(line)); + vukfound &= stream_read(file, line, 32) == 32; + vukfound &= sscanf(line, "%16"SCNx64, &bd->vuk.u64[0]) == 1; + vukfound &= sscanf(line + 16, "%16"SCNx64, &bd->vuk.u64[1]) == 1; + bd->vuk.u64[0] = av_be2ne64(bd->vuk.u64[0]); + bd->vuk.u64[1] = av_be2ne64(bd->vuk.u64[1]); + free_stream(file); + if (vukfound) + return 1; + } + snprintf(filename, sizeof(filename), "%s/.config/aacs/KEYDB.cfg", home); file = open_stream(filename, NULL, NULL); if (!file) { + snprintf(filename, sizeof(filename), "%s/.dvdcss/KEYDB.cfg", home); + file = open_stream(filename, NULL, NULL); + } + if (!file) { mp_msg(MSGT_OPEN,MSGL_ERR, "Cannot open VUK database file %s\n", filename); return 0; } - id2str(discid, 20, idstr); while (stream_read_line(file, line, sizeof(line), 0)) { char *vst; @@ -356,6 +374,7 @@ static int is_audio_type(int type) case 4: case 0x0f: case 0x11: + case 0x80: case 0x81: case 0x8A: case 0x82: