Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Changed BDReader to use libbluray as GIT submodule

  • Loading branch information...
commit e6c8c3aea42b958dbe5fe4a62bf0b6748242e429 1 parent 1e53109
@tourettes tourettes authored
View
3  .gitmodules
@@ -0,0 +1,3 @@
+[submodule "libbluray"]
+ path = libbluray
+ url = git://git.1f0.de/libbluray.git
View
8 DirectShowFilters/.gitignore
@@ -0,0 +1,8 @@
+Debug/
+Release/
+bin_Win32/
+bin_Win32d/
+ipch/
+*.sdf
+*.opensdf
+*.lib
View
8 DirectShowFilters/BDReader/BDReader.vcxproj
@@ -72,7 +72,7 @@
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>false</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
- <AdditionalIncludeDirectories>$(SolutionDir)baseclasses;$(WINDOWS_SDK)Include\;$(DXSDK_DIR)Include;..\shared;.\libbluray;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)\..\libbluray\includes;$(SolutionDir)\..\libbluray\src\libbluray\decoders;$(SolutionDir)\..\libbluray\src\libbluray;$(SolutionDir)baseclasses;$(WINDOWS_SDK)Include\;$(DXSDK_DIR)Include;..\shared;.\libbluray;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32; _WIN32; NDEBUG; _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>false</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -131,7 +131,7 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>$(SolutionDir)baseclasses;$(WINDOWS_SDK)Include\;$(DXSDK_DIR)Include;..\shared;.\libbluray;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)\..\libbluray\includes;$(SolutionDir)\..\libbluray\src\libbluray\decoders;$(SolutionDir)\..\libbluray\src\libbluray;$(SolutionDir)baseclasses;$(WINDOWS_SDK)Include\;$(DXSDK_DIR)Include;..\shared;.\libbluray;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>DBG=1;DEBUG;_DEBUG;INC_OLE2;STRICT;_MT;_DLL;_X86_=1;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -215,10 +215,6 @@
<ClInclude Include="source\SubtitlePin.h" />
<ClInclude Include="source\VideoPin.h" />
<ClInclude Include="..\shared\DebugSettings.h" />
- <ClInclude Include="libbluray\bluray.h" />
- <ClInclude Include="libbluray\keys.h" />
- <ClInclude Include="libbluray\overlay.h" />
- <ClInclude Include="libbluray\stdint.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DvbCoreUtils\DvbCoreUtils.vcxproj">
View
BIN  DirectShowFilters/BDReader/libbluray/bluray.dll
Binary file not shown
View
716 DirectShowFilters/BDReader/libbluray/bluray.h
@@ -1,716 +0,0 @@
-/*
- * This file is part of libbluray
- * Copyright (C) 2009-2010 Obliter0n
- * Copyright (C) 2009-2010 John Stebbins
- * Copyright (C) 2010 hpi1
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- */
-
-#ifndef BLURAY_H_
-#define BLURAY_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @file libbluray/bluray.h
- * external API header
- */
-
-#include <stdint.h>
-
-#define TITLES_ALL 0 /**< all titles. */
-#define TITLES_FILTER_DUP_TITLE 0x01 /**< remove duplicate titles. */
-#define TITLES_FILTER_DUP_CLIP 0x02 /**< remove titles that have duplicate
- clips. */
-#define TITLES_RELEVANT \
- (TITLES_FILTER_DUP_TITLE | TITLES_FILTER_DUP_CLIP) /**< remove duplicate
- titles and clips */
-
-typedef struct bluray BLURAY;
-
-typedef enum {
- BLURAY_STREAM_TYPE_VIDEO_MPEG1 = 0x01,
- BLURAY_STREAM_TYPE_VIDEO_MPEG2 = 0x02,
- BLURAY_STREAM_TYPE_AUDIO_MPEG1 = 0x03,
- BLURAY_STREAM_TYPE_AUDIO_MPEG2 = 0x04,
- BLURAY_STREAM_TYPE_AUDIO_LPCM = 0x80,
- BLURAY_STREAM_TYPE_AUDIO_AC3 = 0x81,
- BLURAY_STREAM_TYPE_AUDIO_DTS = 0x82,
- BLURAY_STREAM_TYPE_AUDIO_TRUHD = 0x83,
- BLURAY_STREAM_TYPE_AUDIO_AC3PLUS = 0x84,
- BLURAY_STREAM_TYPE_AUDIO_DTSHD = 0x85,
- BLURAY_STREAM_TYPE_AUDIO_DTSHD_MASTER = 0x86,
- BLURAY_STREAM_TYPE_VIDEO_VC1 = 0xea,
- BLURAY_STREAM_TYPE_VIDEO_H264 = 0x1b,
- BLURAY_STREAM_TYPE_SUB_PG = 0x90,
- BLURAY_STREAM_TYPE_SUB_IG = 0x91,
- BLURAY_STREAM_TYPE_SUB_TEXT = 0x92,
- BLURAY_STREAM_TYPE_AUDIO_AC3PLUS_SECONDARY = 0xa1,
- BLURAY_STREAM_TYPE_AUDIO_DTSHD_SECONDARY = 0xa2
-} bd_stream_type_e;
-
-typedef enum {
- BLURAY_VIDEO_FORMAT_480I = 1, // ITU-R BT.601-5
- BLURAY_VIDEO_FORMAT_576I = 2, // ITU-R BT.601-4
- BLURAY_VIDEO_FORMAT_480P = 3, // SMPTE 293M
- BLURAY_VIDEO_FORMAT_1080I = 4, // SMPTE 274M
- BLURAY_VIDEO_FORMAT_720P = 5, // SMPTE 296M
- BLURAY_VIDEO_FORMAT_1080P = 6, // SMPTE 274M
- BLURAY_VIDEO_FORMAT_576P = 7 // ITU-R BT.1358
-} bd_video_format_e;
-
-typedef enum {
- BLURAY_VIDEO_RATE_24000_1001 = 1, // 23.976
- BLURAY_VIDEO_RATE_24 = 2,
- BLURAY_VIDEO_RATE_25 = 3,
- BLURAY_VIDEO_RATE_30000_1001 = 4, // 29.97
- BLURAY_VIDEO_RATE_50 = 6,
- BLURAY_VIDEO_RATE_60000_1001 = 7 // 59.94
-} bd_video_rate_e;
-
-typedef enum {
- BLURAY_ASPECT_RATIO_4_3 = 2,
- BLURAY_ASPECT_RATIO_16_9 = 3
-} bd_video_aspect_e;
-
-typedef enum {
- BLURAY_AUDIO_FORMAT_MONO = 1,
- BLURAY_AUDIO_FORMAT_STEREO = 3,
- BLURAY_AUDIO_FORMAT_MULTI_CHAN = 6,
- BLURAY_AUDIO_FORMAT_COMBO = 12 // Stereo ac3/dts,
-} bd_audio_format_e;
- // multi mlp/dts-hd
-
-typedef enum {
- BLURAY_AUDIO_RATE_48 = 1,
- BLURAY_AUDIO_RATE_96 = 4,
- BLURAY_AUDIO_RATE_192 = 5,
- BLURAY_AUDIO_RATE_192_COMBO = 12, // 48 or 96 ac3/dts
- // 192 mpl/dts-hd
- BLURAY_AUDIO_RATE_96_COMBO = 14 // 48 ac3/dts
- // 96 mpl/dts-hd
-} bd_audio_rate_e;
-
-typedef enum {
- BLURAY_TEXT_CHAR_CODE_UTF8 = 0x01,
- BLURAY_TEXT_CHAR_CODE_UTF16BE = 0x02,
- BLURAY_TEXT_CHAR_CODE_SHIFT_JIS = 0x03,
- BLURAY_TEXT_CHAR_CODE_EUC_KR = 0x04,
- BLURAY_TEXT_CHAR_CODE_GB18030_20001 = 0x05,
- BLURAY_TEXT_CHAR_CODE_CN_GB = 0x06,
- BLURAY_TEXT_CHAR_CODE_BIG5 = 0x07
-} bd_char_code_e;
-
-typedef enum {
- BLURAY_STILL_NONE = 0x00,
- BLURAY_STILL_TIME = 0x01,
- BLURAY_STILL_INFINITE = 0x02,
-} bd_still_mode_e;
-
-typedef struct bd_stream_info {
- uint8_t coding_type;
- uint8_t format;
- uint8_t rate;
- uint8_t char_code;
- uint8_t lang[4];
- uint16_t pid;
- uint8_t aspect;
-} BLURAY_STREAM_INFO;
-
-typedef struct bd_clip {
- uint32_t pkt_count;
- uint8_t still_mode;
- uint16_t still_time; /* seconds */
- uint8_t video_stream_count;
- uint8_t audio_stream_count;
- uint8_t pg_stream_count;
- uint8_t ig_stream_count;
- uint8_t sec_audio_stream_count;
- uint8_t sec_video_stream_count;
- uint8_t raw_stream_count;
- BLURAY_STREAM_INFO *video_streams;
- BLURAY_STREAM_INFO *audio_streams;
- BLURAY_STREAM_INFO *pg_streams;
- BLURAY_STREAM_INFO *ig_streams;
- BLURAY_STREAM_INFO *sec_audio_streams;
- BLURAY_STREAM_INFO *sec_video_streams;
- BLURAY_STREAM_INFO *raw_streams; /* custom extension */
-} BLURAY_CLIP_INFO;
-
-typedef struct bd_chapter {
- uint32_t idx;
- uint64_t start;
- uint64_t duration;
- uint64_t offset;
-} BLURAY_TITLE_CHAPTER;
-
-typedef struct bd_title_info {
- uint32_t idx;
- uint32_t playlist;
- uint64_t duration;
- uint32_t clip_count;
- uint8_t angle_count;
- uint32_t chapter_count;
- BLURAY_CLIP_INFO *clips;
- BLURAY_TITLE_CHAPTER *chapters;
-} BLURAY_TITLE_INFO;
-
-typedef struct bd_sound_effect {
- uint8_t num_channels; /* 1 - mono, 2 - stereo */
- uint32_t num_frames;
- const int16_t *samples; /* 48000 Hz, 16 bit LPCM. interleaved if stereo */
-} BLURAY_SOUND_EFFECT;
-
-/**
- * Get library version
- *
- */
-void bd_get_version(int *major, int *minor, int *micro);
-
-/**
- *
- * This must be called after bd_open() and before bd_select_title().
- * Populates the title list in BLURAY.
- * Filtering of the returned list is controled through title flags
- *
- * @param bd BLURAY object
- * @param flags title flags
- * @param min_title_length filter out titles shorter than min_title_length seconds
- * @return number of titles found
- */
-uint32_t bd_get_titles(BLURAY *bd, uint8_t flags, uint32_t min_title_length);
-
-/**
- *
- * Get information about a title
- *
- * @param bd BLURAY object
- * @param title_idx title index number
- * @param angle angle number (chapter offsets and clip size depend on selected angle)
- * @return allocated BLURAY_TITLE_INFO object, NULL on error
- */
-BLURAY_TITLE_INFO* bd_get_title_info(BLURAY *bd, uint32_t title_idx, unsigned angle);
-
-/**
- *
- * Get information about a playlist
- *
- * @param bd BLURAY object
- * @param playlist playlist number
- * @param angle angle number (chapter offsets and clip size depend on selected angle)
- * @return allocated BLURAY_TITLE_INFO object, NULL on error
- */
-BLURAY_TITLE_INFO* bd_get_playlist_info(BLURAY *bd, uint32_t playlist, unsigned angle);
-
-/**
- *
- * Free BLURAY_TITLE_INFO object
- *
- * @param title_info BLURAY_TITLE_INFO object
- */
-void bd_free_title_info(BLURAY_TITLE_INFO *title_info);
-
-/**
- * Initializes libbluray objects
- *
- * @param device_path path to mounted Blu-ray disc
- * @param keyfile_path path to KEYDB.cfg (may be NULL)
- * @return allocated BLURAY object, NULL if error
- */
-BLURAY *bd_open(const char* device_path, const char* keyfile_path);
-
-/**
- * Free libbluray objects
- *
- * @param bd BLURAY object
- */
-void bd_close(BLURAY *bd);
-
-/**
- * Seek to pos in corrently selected title
- *
- * @param bd BLURAY object
- * @param pos position to seek to
- * @return current seek position
- */
-int64_t bd_seek(BLURAY *bd, uint64_t pos);
-
-/**
- *
- * Seek to specific time in 90Khz ticks
- *
- * @param bd BLURAY ojbect
- * @param tick tick count
- * @return current seek position
- */
-int64_t bd_seek_time(BLURAY *bd, uint64_t tick);
-
-/**
- *
- * Find the byte position to specific time in 90Khz ticks
- *
- * @param bd BLURAY ojbect
- * @param tick tick count
- * @return byte position
- */
-int64_t bd_find_seek_point(BLURAY *bd, uint64_t tick);
-
-/**
- *
- * Read from currently selected title file, decrypt if possible
- *
- * @param bd BLURAY object
- * @param buf buffer to read data into
- * @param len size of data to be read
- * @return size of data read, -1 if error, 0 if EOF
- */
-int bd_read(BLURAY *bd, unsigned char *buf, int len);
-
-/**
- *
- * Continue reading after still mode clip
- *
- * @param bd BLURAY object
- * @return 0 on error
- */
-int bd_read_skip_still(BLURAY *bd);
-
-/**
- *
- * Seek to a chapter. First chapter is 0
- *
- * @param bd BLURAY object
- * @param chapter chapter to seek to
- * @return current seek position
- */
-int64_t bd_seek_chapter(BLURAY *bd, unsigned chapter);
-
-/**
- *
- * Find the byte position of a chapter
- *
- * @param bd BLURAY object
- * @param chapter chapter to find position of
- * @return seek position of chapter start
- */
-int64_t bd_chapter_pos(BLURAY *bd, unsigned chapter);
-
-/**
- *
- * Get the current chapter
- *
- * @param bd BLURAY object
- * @return current chapter
- */
-uint32_t bd_get_current_chapter(BLURAY *bd);
-
-/**
- *
- * Seek to a playmark. First mark is 0
- *
- * @param bd BLURAY object
- * @param mark playmark to seek to
- * @return current seek position
- */
-int64_t bd_seek_mark(BLURAY *bd, unsigned mark);
-
-/**
- *
- * Select a playlist
- *
- * @param bd BLURAY object
- * @param playlist playlist to select
- * @return 1 on success, 0 if error
- */
-int bd_select_playlist(BLURAY *bd, uint32_t playlist);
-
-/**
- *
- * Select the title from the list created by bd_get_titles()
- *
- * @param bd BLURAY object
- * @param title title to select
- * @return 1 on success, 0 if error
- */
-int bd_select_title(BLURAY *bd, uint32_t title);
-
-/**
- *
- * Set the angle to play
- *
- * @param bd BLURAY object
- * @param angle angle to play
- * @return 1 on success, 0 if error
- */
-int bd_select_angle(BLURAY *bd, unsigned angle);
-
-/**
- *
- * Initiate seamless angle change
- *
- * @param bd BLURAY object
- * @param angle angle to change to
- */
-void bd_seamless_angle_change(BLURAY *bd, unsigned angle);
-
-/**
- *
- * Returns file size in bytes of currently selected title, 0 in no title
- * selected
- *
- * @param bd BLURAY object
- * @return file size in bytes of currently selected title, 0 if no title
- * selected
- */
-uint64_t bd_get_title_size(BLURAY *bd);
-
-/**
- *
- * Returns the current title index
- *
- * @param bd BLURAY object
- * @return current title index
- */
-uint32_t bd_get_current_title(BLURAY *bd);
-
-/**
- *
- * Return the current angle
- *
- * @param bd BLURAY object
- * @return current angle
- */
-unsigned bd_get_current_angle(BLURAY *bd);
-
-/**
- *
- * Return current pos
- *
- * @param bd BLURAY object
- * @return current seek position
- */
-uint64_t bd_tell(BLURAY *bd);
-
-/**
- *
- * Return current time
- *
- * @param bd BLURAY object
- * @return current time
- */
-uint64_t bd_tell_time(BLURAY *bd);
-
-/*
- * Disc info
- */
-
-typedef struct {
- uint8_t bluray_detected;
-
- uint8_t first_play_supported;
- uint8_t top_menu_supported;
-
- uint32_t num_hdmv_titles;
- uint32_t num_bdj_titles;
- uint32_t num_unsupported_titles;
-
- uint8_t aacs_detected;
- uint8_t libaacs_detected;
- uint8_t aacs_handled;
-
- uint8_t bdplus_detected;
- uint8_t libbdplus_detected;
- uint8_t bdplus_handled;
-
-} BLURAY_DISC_INFO;
-
-/**
- *
- * Get information about current BluRay disc
- *
- * @param bd BLURAY object
- * @return pointer to BLURAY_DISC_INFO object, NULL on error
- */
-const BLURAY_DISC_INFO *bd_get_disc_info(BLURAY*);
-
-/*
- * player settings
- */
-
-typedef enum {
- BLURAY_PLAYER_SETTING_PARENTAL = 13, /* Age for parental control (years) */
- BLURAY_PLAYER_SETTING_AUDIO_CAP = 15, /* Player capability for audio (bit mask) */
- BLURAY_PLAYER_SETTING_AUDIO_LANG = 16, /* Initial audio language: ISO 639-2 string, ex. "eng" */
- BLURAY_PLAYER_SETTING_PG_LANG = 17, /* Initial PG/SPU language: ISO 639-2 string, ex. "eng" */
- BLURAY_PLAYER_SETTING_MENU_LANG = 18, /* Initial menu language: ISO 639-2 string, ex. "eng" */
- BLURAY_PLAYER_SETTING_COUNTRY_CODE = 19, /* Player country code: ISO 3166-1 string, ex. "de" */
- BLURAY_PLAYER_SETTING_REGION_CODE = 20, /* Player region code: 1 - region A, 2 - B, 4 - C */
- BLURAY_PLAYER_SETTING_VIDEO_CAP = 29, /* Player capability for video (bit mask) */
- BLURAY_PLAYER_SETTING_TEXT_CAP = 30, /* Player capability for text subtitle (bit mask) */
- BLURAY_PLAYER_SETTING_PLAYER_PROFILE = 31, /* Profile1: 0, Profile1+: 1, Profile2: 3, Profile3: 8 */
-} bd_player_setting;
-
-/**
- *
- * Update player setting registers
- *
- * @param bd BLURAY object
- * @param idx Player setting register
- * @param value New value for player setting register
- * @return 1 on success, 0 on error (invalid setting)
- */
-
-int bd_set_player_setting(BLURAY *bd, uint32_t idx, uint32_t value);
-int bd_set_player_setting_str(BLURAY *bd, uint32_t idx, const char *s);
-
-/*
- * Java
- */
-int bd_start_bdj(BLURAY *bd, const char* start_object); // start BD-J from the specified BD-J object (should be a 5 character string)
-void bd_stop_bdj(BLURAY *bd); // shutdown BD-J and clean up resources
-
-/*
- * events
- */
-
-typedef enum {
- BD_EVENT_NONE = 0,
- BD_EVENT_ERROR, /* Fatal error. Playback can't be continued. */
- BD_EVENT_READ_ERROR, /* Reading of .m2ts aligned unit failed. Next call to read will try next block. */
- BD_EVENT_ENCRYPTED, /* .m2ts file is encrypted and can't be played */
-
- /* current playback position */
- BD_EVENT_ANGLE, /* current angle, 1...N */
- BD_EVENT_TITLE, /* current title, 1...N (0 = top menu) */
- BD_EVENT_PLAYLIST, /* current playlist (xxxxx.mpls) */
- BD_EVENT_PLAYITEM, /* current play item, 0...N-1 */
- BD_EVENT_CHAPTER, /* current chapter, 1...N */
- BD_EVENT_END_OF_TITLE,
-
- /* stream selection */
- BD_EVENT_AUDIO_STREAM, /* 1..32, 0xff = none */
- BD_EVENT_IG_STREAM, /* 1..32 */
- BD_EVENT_PG_TEXTST_STREAM, /* 1..255, 0xfff = none */
- BD_EVENT_PIP_PG_TEXTST_STREAM, /* 1..255, 0xfff = none */
- BD_EVENT_SECONDARY_AUDIO_STREAM, /* 1..32, 0xff = none */
- BD_EVENT_SECONDARY_VIDEO_STREAM, /* 1..32, 0xff = none */
-
- BD_EVENT_PG_TEXTST, /* 0 - disable, 1 - enable */
- BD_EVENT_PIP_PG_TEXTST, /* 0 - disable, 1 - enable */
- BD_EVENT_SECONDARY_AUDIO, /* 0 - disable, 1 - enable */
- BD_EVENT_SECONDARY_VIDEO, /* 0 - disable, 1 - enable */
- BD_EVENT_SECONDARY_VIDEO_SIZE, /* 0 - PIP, 0xf - fullscreen */
-
- /* HDMV VM or JVM seeked the stream. Next read() will return data from new position. */
- BD_EVENT_SEEK,
-
- /* still playback (pause) */
- BD_EVENT_STILL, /* 0 - off, 1 - on */
-
- /* Still playback for n seconds (reached end of still mode play item) */
- BD_EVENT_STILL_TIME, /* 0 = infinite ; 1...300 = seconds */
-
- /* Play sound effect */
- BD_EVENT_SOUND_EFFECT, /* effect ID */
-
- /* Pop-Up menu available */
- BD_EVENT_POPUP, /* 0 - no, 1 - yes */
-
- /* Interactive menu visible */
- BD_EVENT_MENU, /* 0 - no, 1 - yes */
-} bd_event_e;
-
-typedef struct {
- uint32_t event; /* bd_event_e */
- uint32_t param;
-} BD_EVENT;
-
-#define BLURAY_TITLE_CURRENT 0xffffffff // custom
-#define BLURAY_TITLE_FIRST_PLAY 0xffff
-#define BLURAY_TITLE_TOP_MENU 0
-/**
- *
- * Get event from libbluray event queue.
- *
- * @param bd BLURAY object
- * @param event next BD_EVENT from event queue, NULL to initialize event queue
- * @return 1 on success, 0 if no events
- */
-int bd_get_event(BLURAY *bd, BD_EVENT *event);
-
-/*
- * navigaton mode
- */
-
-/**
- *
- * Start playing disc in navigation mode (using on-disc menus).
- *
- * Playback is started from "First Play" title.
- *
- * @param bd BLURAY object
- * @return 1 on success, 0 if error
- */
-int bd_play(BLURAY *bd);
-
-/**
- *
- * Read from currently playing title.
- *
- * When playing disc in navigation mode this function must be used instead of bd_read().
- *
- * @param bd BLURAY object
- * @param buf buffer to read data into
- * @param len size of data to be read
- * @param event next BD_EVENT from event queue (BD_EVENT_NONE if no events)
- * @return size of data read, -1 if error, 0 if event needs to be handled first, 0 if end of title was reached
- */
-int bd_read_ext(BLURAY *bd, unsigned char *buf, int len, BD_EVENT *event);
-
-/**
- *
- * Play a title (from disc index).
- *
- * Title 0 = Top Menu
- * Title 0xffff = First Play title
- * Number of titles can be found from BLURAY_DISC_INFO.
- *
- * @param bd BLURAY object
- * @param title title number from disc index
- * @return 1 on success, 0 if error
- */
-int bd_play_title(BLURAY *bd, unsigned title);
-
-/**
- *
- * Open BluRay disc Top Menu.
- *
- * Current pts is needed for resuming playback when menu is closed.
- *
- * @param bd BLURAY object
- * @param pts current playback position (1/90000s) or -1
- * @return 1 on success, 0 if error
- */
-int bd_menu_call(BLURAY *bd, int64_t pts);
-
-/*
- * User interaction and On-screen display controller
- */
-
-struct bd_overlay_s; /* defined in overlay.h */
-typedef void (*bd_overlay_proc_f)(void *, const struct bd_overlay_s * const);
-
-/**
- *
- * Register overlay graphics handler function.
- *
- * @param bd BLURAY object
- * @param handle application-specific handle that will be passed to handler function
- * @param func handler function pointer
- * @return 1 on success, 0 if error
- */
-void bd_register_overlay_proc(BLURAY *bd, void *handle, bd_overlay_proc_f func);
-
-/**
- *
- * Pass user input to graphics controller.
- * Keys are defined in libbluray/keys.h.
- * Current pts can be updated by using BD_VK_NONE key. This is required for animated menus.
- *
- * @param bd BLURAY object
- * @param pts current playback position (1/90000s) or -1
- * @param key input key
- * @return <0 on error, 0 on success, >0 if selection/activation changed
- */
-int bd_user_input(BLURAY *bd, int64_t pts, uint32_t key);
-
-/**
- *
- * Select menu button at location (x,y).
- *
- * @param bd BLURAY object
- * @param pts current playback position (1/90000s) or -1
- * @param x mouse pointer x-position
- * @param y mouse pointer y-position
- * @return <0 on error, 0 when mouse is outside of buttons, 1 when mouse is inside button
- */
-int bd_mouse_select(BLURAY *bd, int64_t pts, uint16_t x, uint16_t y);
-
-/**
- *
- * Get sound effect
- *
- * @param bd BLURAY object
- * @param effect_id sound effect id (0...N)
- * @param effect sound effect data
- * @return <0 when no effects, 0 when id out of range, 1 on success
- */
-int bd_get_sound_effect(BLURAY *bd, unsigned sound_id, struct bd_sound_effect *effect);
-
-/*
- *
- */
-
-struct meta_dl;
-/**
- *
- * Get meta information about the bluray disc.
- *
- * @param bd BLURAY object
- * @return allocated META_DL (disclib) object, NULL on error
- */
-struct meta_dl *bd_get_meta(BLURAY *bd);
-
-
-struct clpi_cl;
-/**
- *
- * Get copy of clip information for requested playitem.
- *
- * @param bd BLURAY objects
- * @param clip_ref requested playitem number
- * @return pointer to allocated CLPI_CL object on success, NULL on error
- */
-struct clpi_cl *bd_get_clpi(BLURAY *bd, unsigned clip_ref);
-
-/**
- *
- * Free CLPI_CL object
- *
- * @param cl CLPI_CL objects
- */
-void bd_free_clpi(struct clpi_cl *cl);
-
-/**
- *
- * Get information about the clip
- *
- * @param bd BLURAY object
- * @param clip clip index
- * @param clip_start_time start of the clip (in the total title) (in 90khz)
- * @param stream_start_time first pts in the clip (in 90khz)
- * @param byte position of the clip (absolute)
- * @param duration duration of the clip (in 90khz)
- */
-int bd_get_clip_infos(BLURAY *bd, int clip, uint64_t *clip_start_time, uint64_t *stream_start_time, uint64_t *pos, uint64_t *duration);
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif /* BLURAY_H_ */
View
59 DirectShowFilters/BDReader/libbluray/keys.h
@@ -1,59 +0,0 @@
-/*
- * This file is part of libbluray
- * Copyright (C) 2010 hpi1
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- */
-
-#if !defined(_BD_KEYS_H_)
-#define _BD_KEYS_H_
-
-/*
- * User input
- */
-
-typedef enum {
- BD_VK_NONE = 0xffff,
-
- /* numeric key events */
- BD_VK_0 = 0,
- BD_VK_1 = 1,
- BD_VK_2 = 2,
- BD_VK_3 = 3,
- BD_VK_4 = 4,
- BD_VK_5 = 5,
- BD_VK_6 = 6,
- BD_VK_7 = 7,
- BD_VK_8 = 8,
- BD_VK_9 = 9,
-
- /* */
- BD_VK_ROOT_MENU = 10, /* open root menu */
- BD_VK_POPUP = 11, /* toggle popup menu */
-
- /* interactive key events */
- BD_VK_UP = 12,
- BD_VK_DOWN = 13,
- BD_VK_LEFT = 14,
- BD_VK_RIGHT = 15,
- BD_VK_ENTER = 16,
-
- /* Mouse click */
- /* Translated to BD_VK_ENTER if mouse is over valid button */
- BD_VK_MOUSE_ACTIVATE = 17,
-
-} bd_vk_key_e;
-
-#endif // _BD_KEYS_H_
View
1  DirectShowFilters/BDReader/libbluray/license.txt
@@ -1 +0,0 @@
-bluray.dll is based on libbluray (GPL) component. It has been build without any modifications from the LAV filter fork of libbluray (git://git.1f0.de/libbluray.git).
View
69 DirectShowFilters/BDReader/libbluray/overlay.h
@@ -1,69 +0,0 @@
-/*
- * This file is part of libbluray
- * Copyright (C) 2010 hpi1
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- */
-
-#ifndef BD_OVERLAY_H_
-#define BD_OVERLAY_H_
-
-#include <stdint.h>
-
-#define BD_OVERLAY_INTERFACE_VERSION 2
-
-typedef enum {
- BD_OVERLAY_PG = 0, /* Presentation Graphics plane */
- BD_OVERLAY_IG = 1, /* Interactive Graphics plane (on top of PG plane) */
-} bd_overlay_plane_e;
-
-typedef enum {
- BD_OVERLAY_INIT, /* init overlay plane. Size of full plane in x,y,w,h */
- BD_OVERLAY_CLEAR, /* clear plane */
- BD_OVERLAY_DRAW, /* draw bitmap (x,y,w,h,img,palette) */
- BD_OVERLAY_WIPE, /* clear area (x,y,w,h) */
- BD_OVERLAY_FLUSH, /* all changes have been done, flush overlay to display at given pts */
- BD_OVERLAY_CLOSE, /* close overlay */
-} bd_overlay_cmd_e;
-
-typedef struct bd_pg_palette_entry_s {
- uint8_t Y;
- uint8_t Cr;
- uint8_t Cb;
- uint8_t T;
-} BD_PG_PALETTE_ENTRY;
-
-typedef struct bd_pg_rle_elem_s {
- uint16_t len;
- uint16_t color;
-} BD_PG_RLE_ELEM;
-
-typedef struct bd_overlay_s {
- int64_t pts;
- uint8_t plane; /* bd_overlay_plane_e */
- uint8_t cmd; /* bd_overlay_cmd_e */
-
- uint16_t x;
- uint16_t y;
- uint16_t w;
- uint16_t h;
-
- const BD_PG_PALETTE_ENTRY * palette;
- const BD_PG_RLE_ELEM * img;
-
-} BD_OVERLAY;
-
-
-#endif // BD_OVERLAY_H_
View
247 DirectShowFilters/BDReader/libbluray/stdint.h
@@ -1,247 +0,0 @@
-// ISO C9x compliant stdint.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
-// Copyright (c) 2006-2008 Alexander Chemeris
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. The name of the author may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _MSC_VER // [
-#error "Use this header only with Microsoft Visual C++ compilers!"
-#endif // _MSC_VER ]
-
-#ifndef _MSC_STDINT_H_ // [
-#define _MSC_STDINT_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif
-
-#include <limits.h>
-
-// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
-// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
-// or compiler give many errors like this:
-// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
-#ifdef __cplusplus
-extern "C" {
-#endif
-# include <wchar.h>
-#ifdef __cplusplus
-}
-#endif
-
-// Define _W64 macros to mark types changing their size, like intptr_t.
-#ifndef _W64
-# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
-# define _W64 __w64
-# else
-# define _W64
-# endif
-#endif
-
-
-// 7.18.1 Integer types
-
-// 7.18.1.1 Exact-width integer types
-
-// Visual Studio 6 and Embedded Visual C++ 4 doesn't
-// realize that, e.g. char has the same size as __int8
-// so we give up on __intX for them.
-#if (_MSC_VER < 1300)
- typedef signed char int8_t;
- typedef signed short int16_t;
- typedef signed int int32_t;
- typedef unsigned char uint8_t;
- typedef unsigned short uint16_t;
- typedef unsigned int uint32_t;
-#else
- typedef signed __int8 int8_t;
- typedef signed __int16 int16_t;
- typedef signed __int32 int32_t;
- typedef unsigned __int8 uint8_t;
- typedef unsigned __int16 uint16_t;
- typedef unsigned __int32 uint32_t;
-#endif
-typedef signed __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-
-
-// 7.18.1.2 Minimum-width integer types
-typedef int8_t int_least8_t;
-typedef int16_t int_least16_t;
-typedef int32_t int_least32_t;
-typedef int64_t int_least64_t;
-typedef uint8_t uint_least8_t;
-typedef uint16_t uint_least16_t;
-typedef uint32_t uint_least32_t;
-typedef uint64_t uint_least64_t;
-
-// 7.18.1.3 Fastest minimum-width integer types
-typedef int8_t int_fast8_t;
-typedef int16_t int_fast16_t;
-typedef int32_t int_fast32_t;
-typedef int64_t int_fast64_t;
-typedef uint8_t uint_fast8_t;
-typedef uint16_t uint_fast16_t;
-typedef uint32_t uint_fast32_t;
-typedef uint64_t uint_fast64_t;
-
-// 7.18.1.4 Integer types capable of holding object pointers
-#ifdef _WIN64 // [
- typedef signed __int64 intptr_t;
- typedef unsigned __int64 uintptr_t;
-#else // _WIN64 ][
- typedef _W64 signed int intptr_t;
- typedef _W64 unsigned int uintptr_t;
-#endif // _WIN64 ]
-
-// 7.18.1.5 Greatest-width integer types
-typedef int64_t intmax_t;
-typedef uint64_t uintmax_t;
-
-
-// 7.18.2 Limits of specified-width integer types
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
-
-// 7.18.2.1 Limits of exact-width integer types
-#define INT8_MIN ((int8_t)_I8_MIN)
-#define INT8_MAX _I8_MAX
-#define INT16_MIN ((int16_t)_I16_MIN)
-#define INT16_MAX _I16_MAX
-#define INT32_MIN ((int32_t)_I32_MIN)
-#define INT32_MAX _I32_MAX
-#define INT64_MIN ((int64_t)_I64_MIN)
-#define INT64_MAX _I64_MAX
-#define UINT8_MAX _UI8_MAX
-#define UINT16_MAX _UI16_MAX
-#define UINT32_MAX _UI32_MAX
-#define UINT64_MAX _UI64_MAX
-
-// 7.18.2.2 Limits of minimum-width integer types
-#define INT_LEAST8_MIN INT8_MIN
-#define INT_LEAST8_MAX INT8_MAX
-#define INT_LEAST16_MIN INT16_MIN
-#define INT_LEAST16_MAX INT16_MAX
-#define INT_LEAST32_MIN INT32_MIN
-#define INT_LEAST32_MAX INT32_MAX
-#define INT_LEAST64_MIN INT64_MIN
-#define INT_LEAST64_MAX INT64_MAX
-#define UINT_LEAST8_MAX UINT8_MAX
-#define UINT_LEAST16_MAX UINT16_MAX
-#define UINT_LEAST32_MAX UINT32_MAX
-#define UINT_LEAST64_MAX UINT64_MAX
-
-// 7.18.2.3 Limits of fastest minimum-width integer types
-#define INT_FAST8_MIN INT8_MIN
-#define INT_FAST8_MAX INT8_MAX
-#define INT_FAST16_MIN INT16_MIN
-#define INT_FAST16_MAX INT16_MAX
-#define INT_FAST32_MIN INT32_MIN
-#define INT_FAST32_MAX INT32_MAX
-#define INT_FAST64_MIN INT64_MIN
-#define INT_FAST64_MAX INT64_MAX
-#define UINT_FAST8_MAX UINT8_MAX
-#define UINT_FAST16_MAX UINT16_MAX
-#define UINT_FAST32_MAX UINT32_MAX
-#define UINT_FAST64_MAX UINT64_MAX
-
-// 7.18.2.4 Limits of integer types capable of holding object pointers
-#ifdef _WIN64 // [
-# define INTPTR_MIN INT64_MIN
-# define INTPTR_MAX INT64_MAX
-# define UINTPTR_MAX UINT64_MAX
-#else // _WIN64 ][
-# define INTPTR_MIN INT32_MIN
-# define INTPTR_MAX INT32_MAX
-# define UINTPTR_MAX UINT32_MAX
-#endif // _WIN64 ]
-
-// 7.18.2.5 Limits of greatest-width integer types
-#define INTMAX_MIN INT64_MIN
-#define INTMAX_MAX INT64_MAX
-#define UINTMAX_MAX UINT64_MAX
-
-// 7.18.3 Limits of other integer types
-
-#ifdef _WIN64 // [
-# define PTRDIFF_MIN _I64_MIN
-# define PTRDIFF_MAX _I64_MAX
-#else // _WIN64 ][
-# define PTRDIFF_MIN _I32_MIN
-# define PTRDIFF_MAX _I32_MAX
-#endif // _WIN64 ]
-
-#define SIG_ATOMIC_MIN INT_MIN
-#define SIG_ATOMIC_MAX INT_MAX
-
-#ifndef SIZE_MAX // [
-# ifdef _WIN64 // [
-# define SIZE_MAX _UI64_MAX
-# else // _WIN64 ][
-# define SIZE_MAX _UI32_MAX
-# endif // _WIN64 ]
-#endif // SIZE_MAX ]
-
-// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
-#ifndef WCHAR_MIN // [
-# define WCHAR_MIN 0
-#endif // WCHAR_MIN ]
-#ifndef WCHAR_MAX // [
-# define WCHAR_MAX _UI16_MAX
-#endif // WCHAR_MAX ]
-
-#define WINT_MIN 0
-#define WINT_MAX _UI16_MAX
-
-#endif // __STDC_LIMIT_MACROS ]
-
-
-// 7.18.4 Limits of other integer types
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
-
-// 7.18.4.1 Macros for minimum-width integer constants
-
-#define INT8_C(val) val##i8
-#define INT16_C(val) val##i16
-#define INT32_C(val) val##i32
-#define INT64_C(val) val##i64
-
-#define UINT8_C(val) val##ui8
-#define UINT16_C(val) val##ui16
-#define UINT32_C(val) val##ui32
-#define UINT64_C(val) val##ui64
-
-// 7.18.4.2 Macros for greatest-width integer constants
-#define INTMAX_C INT64_C
-#define UINTMAX_C UINT64_C
-
-#endif // __STDC_CONSTANT_MACROS ]
-
-
-#endif // _MSC_STDINT_H_ ]
View
5 DirectShowFilters/BDReader/source/DeMultiplexer.cpp
@@ -774,9 +774,10 @@ bool CDeMultiplexer::AudioStreamsAvailable(BLURAY_CLIP_INFO* pClip)
{
bool hasAudio = false;
- for (int i = 0; i < pClip->raw_stream_count; i++)
+ // TODO check if we can always rely on the audio_stream_count > 0
+ for (int i = 0; i < pClip->audio_stream_count; i++)
{
- switch (pClip->raw_streams[i].coding_type)
+ switch (pClip->audio_streams[i].coding_type)
{
case BLURAY_STREAM_TYPE_AUDIO_MPEG1:
case BLURAY_STREAM_TYPE_AUDIO_MPEG2:
View
2  DirectShowFilters/BDReader/source/LibBlurayWrapper.h
@@ -31,6 +31,8 @@
using namespace std;
+#define BLURAY_TITLE_CURRENT 0xffffffff // custom addition to the title
+
enum PLAYBACK_MODE
{
Navigation = 0,
View
9 DirectShowFilters/Filters.sln
@@ -110,6 +110,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpcSubs", "mpc-hc_subs\src\
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "system", "mpc-hc_subs\src\thirdparty\VirtualDub\system\system.vcxproj", "{C2082189-3ECB-4079-91FA-89D3C8A305C0}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbluray", "..\libbluray\libbluray.vcxproj", "{E1DA1B95-71F1-4C21-A271-121176925062}"
+ ProjectSection(ProjectDependencies) = postProject
+ {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA} = {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -216,6 +221,10 @@ Global
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Debug|Win32.Build.0 = Debug|Win32
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.ActiveCfg = Release|Win32
{C2082189-3ECB-4079-91FA-89D3C8A305C0}.Release|Win32.Build.0 = Release|Win32
+ {E1DA1B95-71F1-4C21-A271-121176925062}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1DA1B95-71F1-4C21-A271-121176925062}.Debug|Win32.Build.0 = Debug|Win32
+ {E1DA1B95-71F1-4C21-A271-121176925062}.Release|Win32.ActiveCfg = Release|Win32
+ {E1DA1B95-71F1-4C21-A271-121176925062}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
View
6 DirectShowFilters/baseclasses/BaseClasses.vcxproj
@@ -65,6 +65,12 @@
<OutputFile>$(OutDir)strmbasd.lib</OutputFile>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
+ <PreBuildEvent>
+ <Command>REM a workaround for the libbluray build failure - this needs to be removed after libbluray's build is not failing on post build step when the folder doesn't exist
+
+md $(SolutionDir)bin_Win32d\lib
+exit 0</Command>
+ </PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
1  libbluray
@@ -0,0 +1 @@
+Subproject commit b2c17d9b26ff688d1ec4b87593ef5197bbc5052f
View
11 mediaportal/MediaPortal.Application/PostBuild.bat
@@ -89,6 +89,17 @@ xcopy %1\..\DirectShowFilters\fontEngine\bin\%2\fontEngine.pdb . /Y /D
xcopy %1\..\DirectShowFilters\mpc-hc_subs\bin\%2\mpcSubs.pdb . /Y /D
)
+REM bluray.dll - odd source folder is
+if /I "%2" EQU "RELEASE" (
+xcopy %1\..\DirectShowFilters\bin_Win32\libbluray.dll . /Y /D
+)
+
+if /I "%2" EQU "DEBUG" (
+xcopy %1\..\DirectShowFilters\bin_Win32d\libbluray.dll . /Y /D
+)
+
+ren libbluray.dll bluray.dll
+
REM Copy one dll from DirectShowFilters folder
xcopy %1\..\DirectShowFilters\DXErr9\bin\%2\dxerr9.dll . /Y /D
View
2  mediaportal/Setup/setup.nsi
@@ -478,7 +478,7 @@ Section "MediaPortal core files (required)" SecCore
File "${git_MP}\Docs\MediaPortal License.rtf"
; libbluray
SetOutPath "$MPdir.Base"
- File "${git_DirectShowFilters}\BDReader\libbluray\bluray.dll"
+ File /oname=bluray.dll "${git_DirectShowFilters}\bin_Win32\libbluray\libbluray.dll"
; TvLibrary for Genre
File "${git_TVServer}\TvLibrary.Interfaces\bin\${BUILD_TYPE}\TvLibrary.Interfaces.dll"
; MediaPortal.exe
Please sign in to comment.
Something went wrong with that request. Please try again.