mirror of
https://github.com/Retropex/dolphin.git
synced 2025-05-13 03:40:44 +02:00
Updated to Updated to 5.0-16380
This commit is contained in:
commit
5f9a37566a
10
.gitmodules
vendored
10
.gitmodules
vendored
@ -8,3 +8,13 @@
|
|||||||
url = https://github.com/mgba-emu/mgba.git
|
url = https://github.com/mgba-emu/mgba.git
|
||||||
branch = master
|
branch = master
|
||||||
shallow = true
|
shallow = true
|
||||||
|
[submodule "Externals/FFmpeg-bin"]
|
||||||
|
path = Externals/FFmpeg-bin
|
||||||
|
url = https://github.com/dolphin-emu/ext-win-ffmpeg.git
|
||||||
|
branch = master
|
||||||
|
shallow = true
|
||||||
|
[submodule "libusb"]
|
||||||
|
path = Externals/libusb/libusb
|
||||||
|
url = https://github.com/libusb/libusb.git
|
||||||
|
branch = master
|
||||||
|
shallow = true
|
||||||
|
@ -337,7 +337,7 @@ def build(config):
|
|||||||
if not os.path.exists(arch):
|
if not os.path.exists(arch):
|
||||||
os.mkdir(arch)
|
os.mkdir(arch)
|
||||||
|
|
||||||
print("Building and running unit tests for: {arch}")
|
print(f"Building and running unit tests for: {arch}")
|
||||||
unit_test_results[arch] = \
|
unit_test_results[arch] = \
|
||||||
subprocess.call(["cmake", "--build", ".",
|
subprocess.call(["cmake", "--build", ".",
|
||||||
"--config", config["build_type"],
|
"--config", config["build_type"],
|
||||||
|
@ -10,7 +10,7 @@ set(MBEDTLS_LIBRARIES ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRAR
|
|||||||
set(CMAKE_REQUIRED_INCLUDES ${MBEDTLS_INCLUDE_DIRS})
|
set(CMAKE_REQUIRED_INCLUDES ${MBEDTLS_INCLUDE_DIRS})
|
||||||
check_cxx_source_compiles("
|
check_cxx_source_compiles("
|
||||||
#include <mbedtls/version.h>
|
#include <mbedtls/version.h>
|
||||||
#if MBEDTLS_VERSION_NUMBER < 0x02040000
|
#if MBEDTLS_VERSION_NUMBER < 0x021C0000
|
||||||
#error \"Your mbed TLS version is too old.\"
|
#error \"Your mbed TLS version is too old.\"
|
||||||
#endif
|
#endif
|
||||||
int main() {}"
|
int main() {}"
|
||||||
|
@ -50,6 +50,7 @@ option(ENABLE_TESTS "Enables building the unit tests" ON)
|
|||||||
option(ENABLE_VULKAN "Enables vulkan video backend" ON)
|
option(ENABLE_VULKAN "Enables vulkan video backend" ON)
|
||||||
option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence, show the current game on Discord" ON)
|
option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence, show the current game on Discord" ON)
|
||||||
option(USE_MGBA "Enables GBA controllers emulation using libmgba" ON)
|
option(USE_MGBA "Enables GBA controllers emulation using libmgba" ON)
|
||||||
|
option(ENABLE_AUTOUPDATE "Enables support for automatic updates" ON)
|
||||||
|
|
||||||
# Maintainers: if you consider blanket disabling this for your users, please
|
# Maintainers: if you consider blanket disabling this for your users, please
|
||||||
# consider the following points:
|
# consider the following points:
|
||||||
@ -264,7 +265,7 @@ if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|||||||
# Fix non-conformant lambda behavior (constexpr variables shouldn't need capturing)
|
# Fix non-conformant lambda behavior (constexpr variables shouldn't need capturing)
|
||||||
add_compile_options(/experimental:newLambdaProcessor)
|
add_compile_options(/experimental:newLambdaProcessor)
|
||||||
# Fix various other non-conformant behaviors
|
# Fix various other non-conformant behaviors
|
||||||
add_compile_options(/Zc:externConstexpr,lambda,preprocessor)
|
add_compile_options(/Zc:__cplusplus,externConstexpr,lambda,preprocessor)
|
||||||
|
|
||||||
# Temporarily disable warnings to enable /Zc:preprocessor compatibility with WinSDK headers.
|
# Temporarily disable warnings to enable /Zc:preprocessor compatibility with WinSDK headers.
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
@ -484,8 +485,12 @@ if(ENABLE_EGL)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENCODE_FRAMEDUMPS)
|
if(ENCODE_FRAMEDUMPS)
|
||||||
if(WIN32 AND _M_X86_64)
|
if(WIN32)
|
||||||
set(FFMPEG_DIR Externals/ffmpeg)
|
if(_M_X86_64)
|
||||||
|
set(FFMPEG_DIR Externals/FFmpeg-bin/x64)
|
||||||
|
elseif(_M_ARM_64)
|
||||||
|
set(FFMPEG_DIR Externals/FFmpeg-bin/ARM64)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
find_package(FFmpeg COMPONENTS avcodec avformat avutil swresample swscale)
|
find_package(FFmpeg COMPONENTS avcodec avformat avutil swresample swscale)
|
||||||
if(FFmpeg_FOUND)
|
if(FFmpeg_FOUND)
|
||||||
@ -536,6 +541,11 @@ if(ENABLE_ANALYTICS)
|
|||||||
add_definitions(-DUSE_ANALYTICS=1)
|
add_definitions(-DUSE_ANALYTICS=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_AUTOUPDATE)
|
||||||
|
message(STATUS "Enabling automatic update support")
|
||||||
|
add_definitions(-DAUTOUPDATE=1)
|
||||||
|
endif()
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Setup include directories (and make sure they are preferred over the Externals)
|
# Setup include directories (and make sure they are preferred over the Externals)
|
||||||
#
|
#
|
||||||
|
@ -23,7 +23,7 @@ $Infinite Hover When Moving
|
|||||||
02CA2AB2 0000000F
|
02CA2AB2 0000000F
|
||||||
$Infinite Rupees
|
$Infinite Rupees
|
||||||
02BE181C 000003E7
|
02BE181C 000003E7
|
||||||
$Swords/Shields/boots/tunics
|
$Swords/Shields/Boots/Tunics
|
||||||
02BE1884 00007777
|
02BE1884 00007777
|
||||||
$Have Quiver (Adult)
|
$Have Quiver (Adult)
|
||||||
00BE1889 00000001
|
00BE1889 00000001
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
# This game does not work properly with large memorycards, use a 251 block card
|
# This game does not work properly with large memory cards, use a 251 block card
|
||||||
# see https://www.nintendo.com/consumer/memorycard1019.jsp
|
# see https://www.nintendo.com/consumer/memorycard1019.jsp
|
||||||
MemoryCardSize = 2
|
MemoryCardSize = 2
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
# This game does not work properly with large memorycards, use a 251 block card
|
# This game does not work properly with large memory cards, use a 251 block card
|
||||||
# see https://www.nintendo.com/consumer/memorycard1019.jsp
|
# see https://www.nintendo.com/consumer/memorycard1019.jsp
|
||||||
MemoryCardSize = 2
|
MemoryCardSize = 2
|
||||||
|
|
||||||
|
@ -123,6 +123,11 @@ $QOL - Automatically Advance Text Boxes [gamemasterplc]
|
|||||||
04044A90 60000000
|
04044A90 60000000
|
||||||
*Automatically scrolls the text boxes without pushing A
|
*Automatically scrolls the text boxes without pushing A
|
||||||
|
|
||||||
|
$QOL - Disable Advance on Results [gamemasterplc]
|
||||||
|
20446468 4182FF60
|
||||||
|
04446468 4BFFFF60
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
$QOL - Faster Boot Time [Ralf]
|
$QOL - Faster Boot Time [Ralf]
|
||||||
04056168 38607FFF
|
04056168 38607FFF
|
||||||
*Automatically advance through the initial cutscences.
|
*Automatically advance through the initial cutscences.
|
||||||
@ -261,6 +266,9 @@ $Extra - Disable Music
|
|||||||
041d3d1c 00000001
|
041d3d1c 00000001
|
||||||
*Disables all in-game music.
|
*Disables all in-game music.
|
||||||
|
|
||||||
|
$Mechanics - Battle Games Always Worth 20 Coins [Nora]
|
||||||
|
001D5DE0 00040032
|
||||||
|
|
||||||
$Mechanics - Double the Amount of Turns [Airsola]
|
$Mechanics - Double the Amount of Turns [Airsola]
|
||||||
C205BEF8 00000004
|
C205BEF8 00000004
|
||||||
2C000032 4182000C
|
2C000032 4182000C
|
||||||
@ -295,12 +303,6 @@ e2000001 80008000
|
|||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*Access all board events regardless of Mega / Mini Mushrooms.
|
*Access all board events regardless of Mega / Mini Mushrooms.
|
||||||
|
|
||||||
$Mechanics - Free Lottery Game [Celerizer]
|
|
||||||
0407b28c 38600005
|
|
||||||
0407bd04 38800000
|
|
||||||
*Makes the lottery cost nothing instead of the usual 5 coins.
|
|
||||||
*You need to have 5 coins but you do not lose them.
|
|
||||||
|
|
||||||
$Mechanics - Free Stars [gamemasterplc]
|
$Mechanics - Free Stars [gamemasterplc]
|
||||||
040843cc 2c030000
|
040843cc 2c030000
|
||||||
04084590 2c030000
|
04084590 2c030000
|
||||||
@ -347,6 +349,28 @@ c208a07c 0000001f
|
|||||||
*Item Deletion is now a thing.
|
*Item Deletion is now a thing.
|
||||||
*Press B to view your items, then delete the item with R.
|
*Press B to view your items, then delete the item with R.
|
||||||
|
|
||||||
|
$Mechanics - Lose 0 Coins On Red Spaces [Nora]
|
||||||
|
0407FD74 60000000
|
||||||
|
0407FD78 3BC00000
|
||||||
|
|
||||||
|
$Mechanics - Lose 20 Coins On Red Spaces [Nora]
|
||||||
|
0407FD74 60000000
|
||||||
|
0407FD78 3BC00014
|
||||||
|
|
||||||
|
$Mechanics - Lottery 3rd Place Prize is Gaddlight or Warp Pipe [Nora]
|
||||||
|
021D5678 00000805
|
||||||
|
|
||||||
|
$Mechanics - Lottery 3rd Place Prize is Magic Lamp or Boo's Crystal Ball [Nora]
|
||||||
|
021D5678 00000BOC
|
||||||
|
|
||||||
|
$Mechanics - Lottery Costs 0 Coins [Nora]
|
||||||
|
0407BD20 2C1E0000
|
||||||
|
*Makes the lottery cost nothing instead of the usual 5 coins.
|
||||||
|
|
||||||
|
$Mechanics - Lottery Costs 10 Coins [Nora]
|
||||||
|
0407BD20 2C1E000A
|
||||||
|
*Makes the lottery cost nothing instead of the usual 5 coins.
|
||||||
|
|
||||||
$Mechanics - Mega Status No Longer Steals Coins [gamemasterplc]
|
$Mechanics - Mega Status No Longer Steals Coins [gamemasterplc]
|
||||||
0406be70 38600000
|
0406be70 38600000
|
||||||
0406beac 38600000
|
0406beac 38600000
|
||||||
@ -410,3 +434,18 @@ $Minigame: Take a Breather - Mash Only L [gamemasterplc]
|
|||||||
044207f0 38600000
|
044207f0 38600000
|
||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*Mash just L in the minigame Take a Breather.
|
*Mash just L in the minigame Take a Breather.
|
||||||
|
|
||||||
|
$Minigame Replacement - Bowser's Bigger Blast ➜ Chain Chomp Fever [Nora]
|
||||||
|
2818fd2c 00000027
|
||||||
|
0218fd2c 00000025
|
||||||
|
e2000001 80008000
|
||||||
|
|
||||||
|
$Minigame Replacement - Dungeon Duos ➜ The Great Deflate [Nora]
|
||||||
|
2818fd2c 0000001F
|
||||||
|
0218fd2c 00000018
|
||||||
|
e2000001 80008000
|
||||||
|
|
||||||
|
$Minigame Replacement - Three Throw ➜ Mr. Blizzard's Brigade [Nora]
|
||||||
|
2818fd2c 00000009
|
||||||
|
0218fd2c 0000000B
|
||||||
|
e2000001 80008000
|
||||||
|
@ -466,6 +466,7 @@ $Press L+X: Player Stops Moving [Datel]
|
|||||||
|
|
||||||
[Gecko]
|
[Gecko]
|
||||||
# Add gecko cheats here.
|
# Add gecko cheats here.
|
||||||
|
|
||||||
$QOL - Automatically Advance Text Boxes [gamemasterplc]
|
$QOL - Automatically Advance Text Boxes [gamemasterplc]
|
||||||
F6000001 80008180
|
F6000001 80008180
|
||||||
A81F019C 7C001838
|
A81F019C 7C001838
|
||||||
@ -473,6 +474,11 @@ A81F019C 7C001838
|
|||||||
E0000000 80008000
|
E0000000 80008000
|
||||||
*Automatically scrolls the text boxes without pushing A
|
*Automatically scrolls the text boxes without pushing A
|
||||||
|
|
||||||
|
$QOL - Disable Advance on Results [gamemasterplc]
|
||||||
|
20478F28 4182F754
|
||||||
|
04478F1C 48000010
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
$QOL - Faster Boot Time [gamemasterplc]
|
$QOL - Faster Boot Time [gamemasterplc]
|
||||||
F6000001 80008180
|
F6000001 80008180
|
||||||
38610030 38800002
|
38610030 38800002
|
||||||
@ -538,6 +544,12 @@ $QOL - Unlock Everything
|
|||||||
04472838 3880FFFF
|
04472838 3880FFFF
|
||||||
0446BFCC 38C0FFFF
|
0446BFCC 38C0FFFF
|
||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
|
F6000002 80008180
|
||||||
|
5460D808 54640FFE
|
||||||
|
7C040050 5400283E
|
||||||
|
14000020 3C80FFFF
|
||||||
|
14000024 6084FFFF
|
||||||
|
E0000000 80008000
|
||||||
*Unlocks Everything in the game.
|
*Unlocks Everything in the game.
|
||||||
|
|
||||||
$Board: Bowser Nightmare - Bowser does not Steal Coins [gamemasterplc]
|
$Board: Bowser Nightmare - Bowser does not Steal Coins [gamemasterplc]
|
||||||
@ -561,10 +573,15 @@ $Board: Future Dream - Free Taxi Ride [gamemasterplc]
|
|||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
*Taxi does not charge you 10 coins in the board Future Dream.
|
*Taxi does not charge you 10 coins in the board Future Dream.
|
||||||
|
|
||||||
$Board: Pirate Dream - Free Thwomps [gamemasterplc]
|
$Board: Pirate Dream - Free Thwomps & Whomps [gamemasterplc]
|
||||||
0412811C 4800002C
|
0412811C 4800002C
|
||||||
04128210 38800000
|
04128210 38800000
|
||||||
*Thwomp is now free to pass in the board Pirate Dream.
|
F6000001 80008180
|
||||||
|
4080002C 386003A0
|
||||||
|
14000000 4800002C
|
||||||
|
140000C0 38800000
|
||||||
|
E0000000 80008000
|
||||||
|
*Thwomp and Whomp are now free to pass in the board Pirate Dream.
|
||||||
|
|
||||||
$Board: Rainbow Dream - Free Bridge Crossings [gamemasterplc]
|
$Board: Rainbow Dream - Free Bridge Crossings [gamemasterplc]
|
||||||
2046A0B0 2C030005
|
2046A0B0 2C030005
|
||||||
@ -594,13 +611,6 @@ $Mechanics - Battle Minigames Don't Affect Mini-Game Star [gamemasterplc]
|
|||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*Battle Minigames do not count towards the Mini-Game Star.
|
*Battle Minigames do not count towards the Mini-Game Star.
|
||||||
|
|
||||||
$Mechanics - Disable Bonus Stars [gamemasterplc]
|
|
||||||
20484E0C 40820020
|
|
||||||
04484E0C 48000020
|
|
||||||
04484E44 4800001C
|
|
||||||
E2000001 80008000
|
|
||||||
*Disables the Bonus Stars
|
|
||||||
|
|
||||||
$Mechanics - Disable Capsules [gamemasterplc]
|
$Mechanics - Disable Capsules [gamemasterplc]
|
||||||
F6000001 80008180
|
F6000001 80008180
|
||||||
3BC50005 887E0000
|
3BC50005 887E0000
|
||||||
@ -675,7 +685,7 @@ E2100000 80008000
|
|||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
*Last 5 Turns Event is always x3 Coins on Spaces.
|
*Last 5 Turns Event is always x3 Coins on Spaces.
|
||||||
|
|
||||||
$Mechanics- Last 5 Turns is 5 Star Spaces [gamemasterplc]
|
$Mechanics - Last 5 Turns is 5 Star Spaces [gamemasterplc]
|
||||||
20288860 00000076
|
20288860 00000076
|
||||||
045152BC 00000003
|
045152BC 00000003
|
||||||
E2100000 80008000
|
E2100000 80008000
|
||||||
@ -710,11 +720,25 @@ E2100000 80008000
|
|||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
*Last 5 Turns Event forces Red Spaces to turn into Bowser Spaces.
|
*Last 5 Turns Event forces Red Spaces to turn into Bowser Spaces.
|
||||||
|
|
||||||
$Mechanics - Same Space Duels Don't Happen [gamemasterplc]
|
$Mechanics - Lose 0 Coins On Red Spaces [Nora]
|
||||||
F6000001 80008180
|
040AA160 38800000
|
||||||
7C1D0000 40820048
|
|
||||||
14000004 48000048
|
$Mechanics - Lose 20 Coins On Red Spaces [Nora]
|
||||||
|
040AA160 3880FFEC
|
||||||
|
|
||||||
|
$Mechanics – Obtain Capsules on Final Turn [gamemasterplc]
|
||||||
|
F6000001 80008180
|
||||||
|
7C040040 40820024
|
||||||
|
14000004 48000024
|
||||||
E0000000 80008000
|
E0000000 80008000
|
||||||
|
*Miracles can really happen
|
||||||
|
|
||||||
|
$Mechanics - Same Space Duels Always Happen [Nora]
|
||||||
|
04094740 60000000
|
||||||
|
*Duels never happen if you are on the same space.
|
||||||
|
|
||||||
|
$Mechanics - Same Space Duels Don't Happen [Nora]
|
||||||
|
04094740 48000030
|
||||||
*Duels never happen if you are on the same space.
|
*Duels never happen if you are on the same space.
|
||||||
|
|
||||||
$Mechanics - Use Capsules on Yourself For Free [gamemasterplc]
|
$Mechanics - Use Capsules on Yourself For Free [gamemasterplc]
|
||||||
@ -743,6 +767,19 @@ $Minigame: Curvy Curves - 1 Player is Slower [Airsola]
|
|||||||
e2000001 00000000
|
e2000001 00000000
|
||||||
*1 Player is slower in Curvy Curves.
|
*1 Player is slower in Curvy Curves.
|
||||||
|
|
||||||
|
$Minigame: Coney Island - No Slow Down
|
||||||
|
204763E4 3C608048
|
||||||
|
044763E0 38000000
|
||||||
|
0447663C 38000000
|
||||||
|
E2000001 80008000
|
||||||
|
*You do not slow down when gathering ice cream.
|
||||||
|
|
||||||
|
$Minigame: Flower Shower - All Flowers are worth 3 Points [gamemasterplc]
|
||||||
|
20459BEC 801F003C
|
||||||
|
04459BEC 38000003
|
||||||
|
E2000001 80008000
|
||||||
|
*This makes the golden flowers the same value as the normal flowers.
|
||||||
|
|
||||||
$Minigame: Ground Pound Down - No Rocks Until End [gamemasterplc]
|
$Minigame: Ground Pound Down - No Rocks Until End [gamemasterplc]
|
||||||
2046FCC4 4180FF6C
|
2046FCC4 4180FF6C
|
||||||
0446FCC4 60000000
|
0446FCC4 60000000
|
||||||
@ -755,15 +792,15 @@ $Minigame: Later Skater - Only 1 Lap [gamemasterplc]
|
|||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
*Only one lap around in the minigame Later Skater.
|
*Only one lap around in the minigame Later Skater.
|
||||||
|
|
||||||
$Minigame: Mathletes - Always Multiplication [gamemasterplc]
|
$Minigame: Leaf Leap - Allow score to go above 180 [gamemasterplc]
|
||||||
2045D2AC 38030001
|
20474848 408000FC
|
||||||
C245D2AC 00000004
|
04474848 60000000
|
||||||
3DC08047 81CE815C
|
E2000001 80008000
|
||||||
7C0EF800 40820008
|
|
||||||
38600000 38030001
|
$Minigame: Leaf Leap - Leaves Display Quicker [gamemasterplc]
|
||||||
60000000 00000000
|
20474A04 38030001
|
||||||
|
04474A04 3800003C
|
||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
*Multiplication is only present in the minigame Mathletes.
|
|
||||||
|
|
||||||
$Minigame: Pop Star Piranhas - Halved Time to Pick [Airsola]
|
$Minigame: Pop Star Piranhas - Halved Time to Pick [Airsola]
|
||||||
20288860 00000016
|
20288860 00000016
|
||||||
@ -826,6 +863,11 @@ $Minigame Replacement - Scaldin' Cauldron ➜ Rain of Fire [gamemasterplc]
|
|||||||
0222A4C4 0000003A
|
0222A4C4 0000003A
|
||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
|
|
||||||
|
$Minigame Replacement - Submarathon ➜ Defuse or Lose
|
||||||
|
2822a4c4 0000002F
|
||||||
|
0222a4c4 00000028
|
||||||
|
e2000001 80008000
|
||||||
|
|
||||||
$Minigame Replacement - Vicious Vending ➜ Coin Cache [gamemasterplc]
|
$Minigame Replacement - Vicious Vending ➜ Coin Cache [gamemasterplc]
|
||||||
2822a4c4 00000017
|
2822a4c4 00000017
|
||||||
0222a4c4 0000000f
|
0222a4c4 0000000f
|
||||||
|
@ -441,7 +441,6 @@ $Game - Orb Expansion [Airsola]
|
|||||||
042bd36c 00000000
|
042bd36c 00000000
|
||||||
042bd37c 00000000
|
042bd37c 00000000
|
||||||
00000000 40000000
|
00000000 40000000
|
||||||
# Almost all Orbs become obtainable on each board. Orb prices are rebalanced.
|
|
||||||
|
|
||||||
[Gecko]
|
[Gecko]
|
||||||
# Add gecko cheats here.
|
# Add gecko cheats here.
|
||||||
@ -467,6 +466,11 @@ e2000001 80008000
|
|||||||
E2000001 80008000
|
E2000001 80008000
|
||||||
*Automatically advance through the initial cutscences.
|
*Automatically advance through the initial cutscences.
|
||||||
|
|
||||||
|
$QOL - Disable Advance on Results [gamemasterplc]
|
||||||
|
20503FB0 41820054
|
||||||
|
04503FB0 48000054
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
$QOL - Increased Board Speed [Celerizer]
|
$QOL - Increased Board Speed [Celerizer]
|
||||||
041556d4 7d170e70
|
041556d4 7d170e70
|
||||||
042c31b4 41f00000
|
042c31b4 41f00000
|
||||||
@ -534,6 +538,14 @@ F6000001 80008180
|
|||||||
E0000000 80008000
|
E0000000 80008000
|
||||||
*Unlocks Everything in the game.
|
*Unlocks Everything in the game.
|
||||||
|
|
||||||
|
$Board - Faire Square: Free Whomps [gamemasterplc]
|
||||||
|
F6000001 80008180
|
||||||
|
4080002C 386003A0
|
||||||
|
14000000 4800002C
|
||||||
|
140000C0 38800000
|
||||||
|
E0000000 80008000
|
||||||
|
*Use Whomp paths without paying 10 coins
|
||||||
|
|
||||||
$Board - Snowflake Lake: Chomps Roll 7 during daytime, and 3 per dice during nighttime [gamemasterplc]
|
$Board - Snowflake Lake: Chomps Roll 7 during daytime, and 3 per dice during nighttime [gamemasterplc]
|
||||||
204cc818 4bcbbacd
|
204cc818 4bcbbacd
|
||||||
c24cc810 00000005
|
c24cc810 00000005
|
||||||
@ -702,13 +714,6 @@ C214C75C 00000004
|
|||||||
60000000 00000000
|
60000000 00000000
|
||||||
*50 becomes 99 due to integer cap.
|
*50 becomes 99 due to integer cap.
|
||||||
|
|
||||||
$Mechanics - Get Items on Last Turn [gamemasterplc]
|
|
||||||
F6000001 80008180
|
|
||||||
7C040040 4080041C
|
|
||||||
14000004 60000000
|
|
||||||
E0000000 80008000
|
|
||||||
*Items are obtainable on the final turn
|
|
||||||
|
|
||||||
$Mechanics - Faster Day and Night Cycles [Airsola]
|
$Mechanics - Faster Day and Night Cycles [Airsola]
|
||||||
20265b80 00000300
|
20265b80 00000300
|
||||||
04265b80 00000100
|
04265b80 00000100
|
||||||
@ -716,6 +721,20 @@ $Mechanics - Faster Day and Night Cycles [Airsola]
|
|||||||
04265b80 C0000100
|
04265b80 C0000100
|
||||||
*Day and Night Cycles take 1 turn instead of 3.
|
*Day and Night Cycles take 1 turn instead of 3.
|
||||||
|
|
||||||
|
$Mechanics - Free Capsules from Shops [gamemasterplc]
|
||||||
|
F6000001 80008180
|
||||||
|
2C17FFFE 41820198
|
||||||
|
14000018 38000000
|
||||||
|
14000800 38000000
|
||||||
|
14000994 38000000
|
||||||
|
E0000000 80008000
|
||||||
|
F6000002 80008180
|
||||||
|
809D0004 7C041800
|
||||||
|
40810044 38600000
|
||||||
|
14000000 38800000
|
||||||
|
14000244 60000000
|
||||||
|
E0000000 80008000
|
||||||
|
|
||||||
$Mechanics - Free Stars [gamemasterplc]
|
$Mechanics - Free Stars [gamemasterplc]
|
||||||
0418333C 2C030000
|
0418333C 2C030000
|
||||||
0418342C 2C030000
|
0418342C 2C030000
|
||||||
@ -748,6 +767,19 @@ $Mechanics - Last 5 Turns is Bowser Revolution [gamemasterplc]
|
|||||||
*Last 5 Turns Event is always a Bowser Revolution.
|
*Last 5 Turns Event is always a Bowser Revolution.
|
||||||
*This makes everyones coins equal.
|
*This makes everyones coins equal.
|
||||||
|
|
||||||
|
$Mechanics - Lose 0 Coins On Red Spaces [Ralf]
|
||||||
|
0415F278 38800000
|
||||||
|
|
||||||
|
$Mechanics - Lose 20 Coins On Red Spaces [Ralf]
|
||||||
|
0415F278 3880FFEC
|
||||||
|
|
||||||
|
$Mechanics - Obtain Orbs on Last Turn [gamemasterplc]
|
||||||
|
F6000001 80008180
|
||||||
|
7C040040 4080041C
|
||||||
|
14000004 60000000
|
||||||
|
E0000000 80008000
|
||||||
|
*Items are obtainable on the final turn
|
||||||
|
|
||||||
$Mechanics - Pink Boo Steals 15 Coins Minimum [Airsola]
|
$Mechanics - Pink Boo Steals 15 Coins Minimum [Airsola]
|
||||||
c21b3498 00000002
|
c21b3498 00000002
|
||||||
3884000d 9081002c
|
3884000d 9081002c
|
||||||
@ -772,6 +804,14 @@ $Mechanics - Sluggish Shroom Rolls 1-5 [Celerizer]
|
|||||||
04186b80 4bfffff8
|
04186b80 4bfffff8
|
||||||
*Sluggish Shroom rolls 1-5 instead of a 1-10.
|
*Sluggish Shroom rolls 1-5 instead of a 1-10.
|
||||||
|
|
||||||
|
$Mechanics - Stars Cost 40 Coins [Ralf]
|
||||||
|
0418333c 2c030028
|
||||||
|
0418342c 2c030028
|
||||||
|
041834c4 2c030028
|
||||||
|
c2183590 00000002
|
||||||
|
38800029 7c8400d0
|
||||||
|
60000000 00000000
|
||||||
|
|
||||||
$Minigame: Body Builder - Faster Wheel [Airsola]
|
$Minigame: Body Builder - Faster Wheel [Airsola]
|
||||||
202c0254 0000002d
|
202c0254 0000002d
|
||||||
204d4d28 3fe66666
|
204d4d28 3fe66666
|
||||||
@ -791,6 +831,12 @@ e2000002 80008000
|
|||||||
e2000002 80008000
|
e2000002 80008000
|
||||||
*Harder to time the wheel in the minigame Body Builder.
|
*Harder to time the wheel in the minigame Body Builder.
|
||||||
|
|
||||||
|
$Minigame: Catch You Letter - All Letters Give 3 Points
|
||||||
|
204CBD6C 80010028
|
||||||
|
044CBD6C 38000003
|
||||||
|
E2000001 80008000
|
||||||
|
*This essentially nullifies love letters.
|
||||||
|
|
||||||
$Minigame: Crate & Peril - 3 Players can Jump [Airsola, gamemasterplc]
|
$Minigame: Crate & Peril - 3 Players can Jump [Airsola, gamemasterplc]
|
||||||
202c0254 00000025
|
202c0254 00000025
|
||||||
0408074c 60fb0003
|
0408074c 60fb0003
|
||||||
@ -849,6 +895,21 @@ $Minigame: Memory Lane - No Trail [Airsola]
|
|||||||
e2000002 80008000
|
e2000002 80008000
|
||||||
*Shy Guy will no longer leave a trail durning the demo in the minigame Memory Lane.
|
*Shy Guy will no longer leave a trail durning the demo in the minigame Memory Lane.
|
||||||
|
|
||||||
|
$Minigame: Mole It – All Moles are Worth 3 Points [gamemasterplc]
|
||||||
|
204D57F0 A8A10008
|
||||||
|
044D57F0 38A00003
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
|
$Minigame: Snow Whirled – Just Mash A [gamemasterplc]
|
||||||
|
204CB568 38650001
|
||||||
|
044CB568 38650004
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
|
$Minigame: Snow Whirled – Displayed Score Equals Rotations [gamemasterplc]
|
||||||
|
204CB66C 1C84005A
|
||||||
|
044CB66C 1C840001
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
$Minigame: Odd Card Out - Spam Prevention [Airsola]
|
$Minigame: Odd Card Out - Spam Prevention [Airsola]
|
||||||
202c0254 00000007
|
202c0254 00000007
|
||||||
204d0530 b0a30052
|
204d0530 b0a30052
|
||||||
|
@ -568,17 +568,17 @@ $Mechanics - Orb Expansion [Airsola]
|
|||||||
042ef744 00000000
|
042ef744 00000000
|
||||||
00000000 40000000
|
00000000 40000000
|
||||||
|
|
||||||
# Use with the Allow All Character Orbs cheat below.
|
|
||||||
# (Almost) all Orbs become obtainable on each board. Orb prices are rebalanced.
|
|
||||||
# CPUs cannot use character orbs that are not their own.
|
|
||||||
# Triple Shroom is removed, as this code is meant to be used in conjunction with the Orb balancing codes.
|
|
||||||
|
|
||||||
[Gecko]
|
[Gecko]
|
||||||
# Add gecko cheats here.
|
# Add gecko cheats here.
|
||||||
|
|
||||||
$QOL - Auto Advance Text Boxes [gamemasterplc]
|
$QOL - Auto Advance Text Boxes [gamemasterplc]
|
||||||
04050ddc 60000000
|
04050ddc 60000000
|
||||||
*Automatically scrolls the text boxes without pushing A
|
*Automatically scrolls the text boxes without pushing A
|
||||||
|
|
||||||
|
$QOL - Controller Options Always Acesssible [Ralf]
|
||||||
|
0422D890 4800000C
|
||||||
|
*Controller options are always accessible in the pause menu
|
||||||
|
|
||||||
$QOL - Faster Boot Time [gamemasterplc]
|
$QOL - Faster Boot Time [gamemasterplc]
|
||||||
204dd974 2c030000
|
204dd974 2c030000
|
||||||
044dd978 60000000
|
044dd978 60000000
|
||||||
@ -597,6 +597,11 @@ e2000001 80008000
|
|||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*Automatically advance through the initial cutscences.
|
*Automatically advance through the initial cutscences.
|
||||||
|
|
||||||
|
$QOL - Disable Advance on Results [gamemasterplc]
|
||||||
|
204DF310 41820050
|
||||||
|
044DF310 48000050
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
$QOL - Increased Board Speed [gamemasterplc]
|
$QOL - Increased Board Speed [gamemasterplc]
|
||||||
04160ad8 38030002
|
04160ad8 38030002
|
||||||
041604b0 38c0000a
|
041604b0 38c0000a
|
||||||
@ -681,17 +686,18 @@ E2000001 80008000
|
|||||||
*Unlocks everything in the game.
|
*Unlocks everything in the game.
|
||||||
*Permanent once saved!
|
*Permanent once saved!
|
||||||
|
|
||||||
$Board - Neon Heights: Balance Changes [gamemasterplc]
|
$Board - Neon Heights: Acting Minigame Only Awards if All Are Hit
|
||||||
202f2f3c 0000007d
|
202f2f3c 0000007d
|
||||||
c24ec2b0 00000003
|
|
||||||
a87e02e8 2803000f
|
|
||||||
41a20008 38600000
|
|
||||||
60000000 00000000
|
|
||||||
c24ec414 00000004
|
c24ec414 00000004
|
||||||
7c9e82ae 2804000f
|
7c9e82ae 2804000f
|
||||||
41a2000c 38800000
|
41a2000c 38800000
|
||||||
48000008 3880000a
|
48000008 3880000a
|
||||||
60000000 00000000
|
60000000 00000000
|
||||||
|
e2000001 8000800
|
||||||
|
*The shooting board event now awards 10 coins, but only if the player hits all the targets.
|
||||||
|
|
||||||
|
$Board - Neon Heights: Bombs Now Give 20 Coins [Airsola]
|
||||||
|
202f2f3c 0000007d
|
||||||
044e0574 38000014
|
044e0574 38000014
|
||||||
044e0bac 38a00014
|
044e0bac 38a00014
|
||||||
044e08d8 38000014
|
044e08d8 38000014
|
||||||
@ -701,11 +707,7 @@ c24ec414 00000004
|
|||||||
044e2564 3b200014
|
044e2564 3b200014
|
||||||
044e269c 3b000014
|
044e269c 3b000014
|
||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
202f2f3c 0000007d
|
*All chests cost 20 coins, and the non-star chests both contain 20 coins.
|
||||||
28527bfa 00000256
|
|
||||||
04527c78 4039999a
|
|
||||||
e2000002 80008000
|
|
||||||
*All chests cost 20 coins, and the non-star chests both contain 20 coins. The shooting board event now awards 10 coins, but only if the player hits all the targets. It is now possible for 1 player to reach the star in the rocket happening event in the board Neon Heights.
|
|
||||||
|
|
||||||
$Board - Neon Heights: Bowser Path for Free [gamemasterplc]
|
$Board - Neon Heights: Bowser Path for Free [gamemasterplc]
|
||||||
204fdef4 2c03000a
|
204fdef4 2c03000a
|
||||||
@ -714,6 +716,19 @@ $Board - Neon Heights: Bowser Path for Free [gamemasterplc]
|
|||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*Use Koopa Kid's path for free instead of paying 10 coins in the board Neon Heights.
|
*Use Koopa Kid's path for free instead of paying 10 coins in the board Neon Heights.
|
||||||
|
|
||||||
|
$Board - Neon Heights: Rocket Minigame is Possible with 1 Player [Airsola]
|
||||||
|
202f2f3c 0000007d
|
||||||
|
28527bfa 00000256
|
||||||
|
04527c78 4039999
|
||||||
|
e2000002 80008000
|
||||||
|
202f2f3c 0000007d
|
||||||
|
c24ec2b0 00000003
|
||||||
|
a87e02e8 2803000f
|
||||||
|
41a20008 38600000
|
||||||
|
60000000 00000000
|
||||||
|
e2000001 80008000
|
||||||
|
*It is now possible for 1 player to reach the star in the rocket happening event in the board Neon Heights.
|
||||||
|
|
||||||
$Board - Pagoda Peak: Bottle Rocket Launch Always Succeeds [gamemasterplc]
|
$Board - Pagoda Peak: Bottle Rocket Launch Always Succeeds [gamemasterplc]
|
||||||
204df8a0 2803004b
|
204df8a0 2803004b
|
||||||
044df8a4 60000000
|
044df8a4 60000000
|
||||||
@ -896,6 +911,10 @@ c24e6288 00000006
|
|||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*Battle Minigames do not count towards the Mini-Game Star.
|
*Battle Minigames do not count towards the Mini-Game Star.
|
||||||
|
|
||||||
|
$Mechanics - Character Spaces Give 10 coins [Ralf]
|
||||||
|
041685BC 60000000
|
||||||
|
041685C0 38800005
|
||||||
|
|
||||||
$Mechanics - Disable Bonus Stars [gamemasterplc]
|
$Mechanics - Disable Bonus Stars [gamemasterplc]
|
||||||
204DD870 88650004
|
204DD870 88650004
|
||||||
044DD870 38600000
|
044DD870 38600000
|
||||||
@ -973,6 +992,21 @@ e2000001 80008000
|
|||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*Stars cost nothing instead of the usual 20 coins.
|
*Stars cost nothing instead of the usual 20 coins.
|
||||||
|
|
||||||
|
$Mechanics - Gain 5 Coins On Flower Orb Spaces [Ralf]
|
||||||
|
041C4F30 38A00005
|
||||||
|
|
||||||
|
$Mechanics - Koopa Kid Orb Is Found in Shops [Ralf]
|
||||||
|
0419EB0C 48000024
|
||||||
|
04274ADC 00000001
|
||||||
|
06004860 0000002C
|
||||||
|
88030000 28000028
|
||||||
|
4082001C 3C80802E
|
||||||
|
6084F598 38A00010
|
||||||
|
4BFFECC9 38000028
|
||||||
|
98030000 3B9C0001
|
||||||
|
481E5098 00000000
|
||||||
|
041E991C 4BE1AF44
|
||||||
|
|
||||||
$Mechanics - Hammer Bro Orb Steals 20 Coins [Ralf]
|
$Mechanics - Hammer Bro Orb Steals 20 Coins [Ralf]
|
||||||
041A902C 3AC00014
|
041A902C 3AC00014
|
||||||
041A9A28 38A0FFEC
|
041A9A28 38A0FFEC
|
||||||
@ -1004,25 +1038,40 @@ c21d8ed0 00000007
|
|||||||
041d8f68 3aa00028
|
041d8f68 3aa00028
|
||||||
*(X) -> 40 Coins, 10 Coins -> 40 Coins, Half Coins -> 40 Coins, 2 Stars -> 1 Star
|
*(X) -> 40 Coins, 10 Coins -> 40 Coins, Half Coins -> 40 Coins, 2 Stars -> 1 Star
|
||||||
|
|
||||||
$Mechanics - Last 5 Turns Event Is Always x3 Coins on Spaces
|
$Mechanics - Improved Duel Results #2 [Airsola
|
||||||
|
C21D8ED0 00000003
|
||||||
|
2C030003 40820008
|
||||||
|
38600001 7C711B78
|
||||||
|
60000000 00000000
|
||||||
|
*(X) -> 1/2 Coins
|
||||||
|
|
||||||
|
$Mechanics - Last 5 Turns Event Is Always x3 Coins on Spaces [gamemasterplc]
|
||||||
042311A8 38000000
|
042311A8 38000000
|
||||||
|
|
||||||
$Mechanics - Last 5 Turns Event Is Always 10 More Koopa Kid Spaces
|
$Mechanics - Last 5 Turns Event Is Always 10 More Koopa Kid Spaces [gamemasterplc]
|
||||||
042311A8 38000001
|
042311A8 38000001
|
||||||
|
|
||||||
$Mechanics - Last 5 Turns Event Is Always 40 Coin Bonus
|
$Mechanics - Last 5 Turns Event Is Always 40 Coin Bonus [gamemasterplc]
|
||||||
042311A8 38000002
|
042311A8 38000002
|
||||||
|
|
||||||
$Mechanics - Last 5 Turns Event Is Always Stars are 10 Coins
|
$Mechanics - Last 5 Turns Event Is Always Stars are 10 Coins [gamemasterplc]
|
||||||
042311A8 38000003
|
042311A8 38000003
|
||||||
|
|
||||||
$Mechanics - Last 5 Turns Event Is Always Red Spaces are Bowser Spaces
|
$Mechanics - Last 5 Turns Event Is Always Red Spaces are Bowser Spaces [gamemasterplc]
|
||||||
042311A8 38000004
|
042311A8 38000004
|
||||||
|
|
||||||
$Mechanics - Last 5 Turns Event Is Always Chain Chomp Ride for 5 Coins (Pyramid Park)
|
$Mechanics - Last 5 Turns Event Is Always Chain Chomp Ride for 5 Coins (Pyramid Park) [gamemasterplc]
|
||||||
042311A8 38000005
|
042311A8 38000005
|
||||||
*Only use on Pyramid Park
|
*Only use on Pyramid Park
|
||||||
|
|
||||||
|
$Mechanics - Lose 0 Coins On Red Spaces [Ralf]
|
||||||
|
04168600 60000000
|
||||||
|
04168604 38800000
|
||||||
|
|
||||||
|
$Mechanics - Lose 20 Coins On Red Spaces [Ralf]
|
||||||
|
04168600 60000000
|
||||||
|
04168604 3880FFEC
|
||||||
|
|
||||||
$Mechanics - Mic Minigames Have A 10% Chance Of Appearing Instead Of 20% [gamemasterplc]
|
$Mechanics - Mic Minigames Have A 10% Chance Of Appearing Instead Of 20% [gamemasterplc]
|
||||||
042f7a04 41200000
|
042f7a04 41200000
|
||||||
*Less Mic Minigames and see more standard minigames.
|
*Less Mic Minigames and see more standard minigames.
|
||||||
@ -1035,14 +1084,23 @@ $Mechanics - Microphone Always Off [gamemasterplc]
|
|||||||
|
|
||||||
$Mechanics - Orbs Can Only Be Placed On Your Current Space [gamemasterplc]
|
$Mechanics - Orbs Can Only Be Placed On Your Current Space [gamemasterplc]
|
||||||
041e7128 60000000
|
041e7128 60000000
|
||||||
*Orb is more aggressively balanced.
|
*Orbs are more aggressively balanced.
|
||||||
|
|
||||||
|
$Mechanics - Piranha Plant Takes ALL Coins [gamemasterplc]
|
||||||
|
041AC0DC 38030000
|
||||||
|
041AC0E8 7C771B78
|
||||||
|
|
||||||
$Mechanics - Slow Shroom Orb Rolls 1-5 [gamemasterplc]
|
$Mechanics - Slow Shroom Orb Rolls 1-5 [gamemasterplc]
|
||||||
0418ccc8 38000005
|
0418ccc8 38000005
|
||||||
0418d1ac 40820020
|
0418d1ac 40820020
|
||||||
*Orb is more balanced.
|
*Orb is more balanced.
|
||||||
|
|
||||||
$Mechanics - Use Multiple Orbs in the Same Turn [Nora]
|
$Mechanics - Stars Cost 40 coins [Ralf]
|
||||||
|
0418876c 3b800014
|
||||||
|
04188774 3b800028
|
||||||
|
*Only works in Grand Canal and Bowser's Enchanted Inferno
|
||||||
|
|
||||||
|
$Mechanics - Use Multiple Orbs in the Same Turn [Ralf]
|
||||||
041E3764 3860FFFF
|
041E3764 3860FFFF
|
||||||
*Does not work with CPUs
|
*Does not work with CPUs
|
||||||
|
|
||||||
@ -1084,6 +1142,11 @@ e2000002 80008000
|
|||||||
e2000002 80008000
|
e2000002 80008000
|
||||||
*Does not work with CPUs
|
*Does not work with CPUs
|
||||||
|
|
||||||
|
$Minigame: Kart Wheeled - Only 1 Lap [gamemasterplc]
|
||||||
|
204DE978 28050005
|
||||||
|
044DE978 28050001
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
$Minigame: La Bomba - Always 4 Bombs [Airsola, Rain]
|
$Minigame: La Bomba - Always 4 Bombs [Airsola, Rain]
|
||||||
202f2f3c 0000001a
|
202f2f3c 0000001a
|
||||||
044e8cec 00000004
|
044e8cec 00000004
|
||||||
@ -1098,12 +1161,22 @@ $Minigame: Pogo-a-Go-Go - Spin Faster/Less Airtime [Airsola]
|
|||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
*The 1P can spin the platform faster. The 3P have less airtime on their hops
|
*The 1P can spin the platform faster. The 3P have less airtime on their hops
|
||||||
|
|
||||||
$Mingiame: Spinner Cell - Faster Machines [Airsola, Rain]
|
$Minigame: Picture This - Only 1 Round [gamemasterplc]
|
||||||
|
204FF970 7C00F214
|
||||||
|
044FF970 38000003
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
|
$Minigame: Spinner Cell - Faster Machines [Airsola, Rain]
|
||||||
202f2f3c 0000001d
|
202f2f3c 0000001d
|
||||||
044ef5d0 40c00000
|
044ef5d0 40c00000
|
||||||
044ef5d4 41100000
|
044ef5d4 41100000
|
||||||
e2000001 80008000
|
e2000001 80008000
|
||||||
|
|
||||||
|
$Minigame: Target Tag - All Targets Worth 50 Points [gamemasterplc]
|
||||||
|
204EAC28 80840000
|
||||||
|
044EAC28 38800032
|
||||||
|
E2000001 80008000
|
||||||
|
|
||||||
$Minigame: Spray Anything - Faster Bubbles/Less Cooldown [Airsola, gamemasterplc]
|
$Minigame: Spray Anything - Faster Bubbles/Less Cooldown [Airsola, gamemasterplc]
|
||||||
202f2f3c 0000001b
|
202f2f3c 0000001b
|
||||||
0450bc40 c10a872b
|
0450bc40 c10a872b
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# GRYE41 - RAYMAN ARENA
|
# GRYE41 - Rayman Arena
|
||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
|
14
Data/Sys/GameSettings/GRYE41.ini
Normal file
14
Data/Sys/GameSettings/GRYE41.ini
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# GRYE41 - Rayman Arena
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
$Disable Culling to Fix Rise and Shrine Hang
|
||||||
|
0x8005EE90:dword:0x38600001
|
||||||
|
0x8005EE94:dword:0x4E800020
|
||||||
|
0x8005EF08:dword:0x38600001
|
||||||
|
0x8005EF0C:dword:0x4E800020
|
||||||
|
|
||||||
|
# This extremely minor patch that disables culling
|
||||||
|
# in this game. For some reason, this culling function
|
||||||
|
# causes the "Rise and Shrine" hang in Dolphin.
|
||||||
|
# There is no noticeable side-effects unless Dolphin's
|
||||||
|
# built-in Widescreen Hack is enabled.
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
# This game does not work properly with large memorycards, use a 251 block card
|
# This game does not work properly with large memory cards, use a 251 block card
|
||||||
# see https://www.nintendo.com/consumer/memorycard1019.jsp
|
# see https://www.nintendo.com/consumer/memorycard1019.jsp
|
||||||
MemoryCardSize = 2
|
MemoryCardSize = 2
|
||||||
CPUThread = False
|
CPUThread = False
|
||||||
|
16
Data/Sys/GameSettings/REX.ini
Normal file
16
Data/Sys/GameSettings/REX.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# REXE01, REXP01, REXJ01 - Excite Truck
|
||||||
|
|
||||||
|
[Core]
|
||||||
|
# Values set here will override the main Dolphin settings.
|
||||||
|
|
||||||
|
[OnLoad]
|
||||||
|
# Add memory patches to be loaded once on boot here.
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
# Add memory patches to be applied every frame here.
|
||||||
|
|
||||||
|
[ActionReplay]
|
||||||
|
# Add action replay cheats here.
|
||||||
|
|
||||||
|
[Video_Hacks]
|
||||||
|
EFBToTextureEnable = False
|
@ -205,6 +205,10 @@ $QOL - Increased Text Display [Nora]
|
|||||||
0405DED4 60000000
|
0405DED4 60000000
|
||||||
*Text is displayed instantly.
|
*Text is displayed instantly.
|
||||||
|
|
||||||
|
$QOL - Invert IR Stick for GameCube Mod [gamemasterplc]
|
||||||
|
04106A24 83DE6404
|
||||||
|
04106A28 60000000
|
||||||
|
|
||||||
$QOL - Remove Explanations [Rain]
|
$QOL - Remove Explanations [Rain]
|
||||||
82200001 80228760
|
82200001 80228760
|
||||||
86300001 ffffbfff
|
86300001 ffffbfff
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
MMU = 1
|
|
||||||
LowDCBZHack = 1
|
LowDCBZHack = 1
|
||||||
|
|
||||||
[OnLoad]
|
[OnLoad]
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
MMU = 1
|
|
||||||
LowDCBZHack = 1
|
LowDCBZHack = 1
|
||||||
|
|
||||||
[OnLoad]
|
[OnLoad]
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
MMU = 1
|
|
||||||
|
|
||||||
[OnLoad]
|
[OnLoad]
|
||||||
# Add memory patches to be loaded once on boot here.
|
# Add memory patches to be loaded once on boot here.
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
.text
|
|
||||||
80003488 000000b8 80003488 0 __fill_mem
|
|
||||||
80003540 00000050 80003540 0 memcpy
|
|
||||||
8006cff8 0000004c 8006cff8 0 .LoadQuantizers
|
|
||||||
8006d044 0000002c 8006d044 0 .kill_infinites_helper
|
|
||||||
8006d070 00000018 8006d070 0 .kill_infinites
|
|
||||||
8006d088 0000002c 8006d088 0 .rsqrt
|
|
||||||
8006d0b4 00000034 8006d0b4 0 .sqrt_internal_fz
|
|
||||||
8006d0e8 00000030 8006d0e8 0 .rsqrt_internal_fz
|
|
||||||
8006d118 00000070 8006d118 0 .sqrt_fz
|
|
||||||
8006d188 00000030 8006d188 0 .wrapping_once_fp_lookup
|
|
||||||
8006d1b8 00000064 8006d1b8 0 .weird2
|
|
||||||
8006d1c4 00000058 8006d1c4 0 .into_weird2
|
|
||||||
8006d21c 00000030 8006d21c 0 .lookup_some_float_in_table_with_neg_wrap
|
|
||||||
8006d24c 00000184 8006d24c 0 .atan2
|
|
||||||
8006d3d0 0000009c 8006d3d0 0 .asin_fz
|
|
||||||
8006d46c 000000c8 8006d46c 0 .acos_fz
|
|
||||||
8006d534 00000070 8006d534 0 .evil_vec_cosine
|
|
||||||
8006d5f0 00000078 8006d5f0 0 .evil_vec_setlength
|
|
||||||
8006d668 00000094 8006d668 0 .evil_vec_something
|
|
||||||
8006d6fc 0000005c 8006d6fc 0 .func
|
|
||||||
8006d784 0000002c 8006d784 0 .load_strange_matrix1
|
|
||||||
8006d7b0 0000002c 8006d7b0 0 .load_strange_matrix2
|
|
||||||
8006d7f4 0000003c 8006d7f4 0 .some_strange_destination
|
|
||||||
8006db30 00000044 8006db30 0 .push_matrix_3x3?
|
|
||||||
8006db74 00000038 8006db74 0 .write_top_3x3_matrix
|
|
||||||
8006dbe4 0000003c 8006dbe4 0 .read_current_3x3_matrix
|
|
||||||
8006dc20 00000014 8006dc20 0 .pop_matrix_stack
|
|
||||||
8006e424 00000074 8006e424 0 .weird_param_in_p1_p2
|
|
||||||
8006e978 000001d4 8006e978 0 zz_006e978_
|
|
||||||
8006eb4c 000001c0 8006eb4c 0 zz_006eb4c_
|
|
||||||
8006f6a8 000000cc 8006f6a8 0 .z_last_skum_function
|
|
||||||
800798f0 000000ec 800798f0 0 __div2u
|
|
||||||
800799dc 00000138 800799dc 0 __div2i
|
|
||||||
80079b14 000000e0 80079b14 0 __mod2u
|
|
||||||
80079bf8 0000010c 80079bf8 0 __mod2i
|
|
||||||
80079d04 00000024 80079d04 0 __shl2i
|
|
||||||
80079d28 00000024 80079d28 0 __shr2u
|
|
||||||
80079d4c 00000028 80079d4c 0 __shr2i
|
|
||||||
8008596c 00000310 8008596c 0 big_matrix_trickery
|
|
||||||
80088538 00000020 80088538 0 zz_0088538_
|
|
@ -1,34 +0,0 @@
|
|||||||
.text
|
|
||||||
800031f0 0000001c 800031f0 0 load_sp_rtoc
|
|
||||||
80007034 0000004c 80007034 0 .LoadQuantizers
|
|
||||||
80007080 00000030 80007080 0 .LoadInfinitiesEtc
|
|
||||||
800070b0 00000038 800070b0 0 .rsqrt
|
|
||||||
800070ec 00000040 800070ec 0 .sqrt_internal_needs_cr1
|
|
||||||
8000712c 00000040 8000712c 0 .rsqrt_internal_needs_cr1
|
|
||||||
800071e0 00000030 800071e0 0 .wrapping_once_fp_lookup
|
|
||||||
80007210 00000064 80007210 0 .weird2
|
|
||||||
80007274 00000030 80007274 0 .lookup_some_float_in_table_with_neg_wrap
|
|
||||||
800072a4 00000180 800072a4 0 .atan2
|
|
||||||
80007424 000000b8 80007424 0 .calls_sqrt
|
|
||||||
800074dc 0000005c 800074dc 0 .func
|
|
||||||
80007538 0000002c 80007538 0 .load_strange_matrix1
|
|
||||||
80007564 0000002c 80007564 0 .load_strange_matrix3
|
|
||||||
80007590 0000002c 80007590 0 .load_strange_matrix2
|
|
||||||
80007834 00000044 80007834 0 .push_matrix_3x3?
|
|
||||||
80007878 00000038 80007878 0 .read_top_3x3matrix
|
|
||||||
800078b0 00000038 800078b0 0 .write_top_3x3_matrix
|
|
||||||
800078e8 0000003c 800078e8 0 .read_current_3x3_matrix
|
|
||||||
80007924 00000014 80007924 0 .pop_matrix_stack
|
|
||||||
80007a50 00000170 80007a50 0 .mult_matrix?
|
|
||||||
80007ecc 000000bc 80007ecc 0 .weird_vector_op_status_in_cr2
|
|
||||||
80007f88 00000074 80007f88 0 .weird_param_in_p1_p2
|
|
||||||
800080fc 00000078 800080fc 0 .evil_normalize
|
|
||||||
80008174 00000078 80008174 0 .evil_vec_setlength
|
|
||||||
800081ec 00000070 800081ec 0 .evil_vec_cosine
|
|
||||||
80008538 000000f0 80008538 0 .calls_evil1
|
|
||||||
8000875c 00000088 8000875c 0 .another_caller
|
|
||||||
800087e4 0000008c 800087e4 0 .another_caller2
|
|
||||||
80008d30 000001b4 80008d30 0 .another_caller3
|
|
||||||
80036544 000001b4 80036544 0 .fctiwi_weird2
|
|
||||||
8003dd1c 00000110 8003dd1c 0 .fctwi_weird
|
|
||||||
80043b48 000005bc 80043b48 0 .fctwi_weird3
|
|
2
Externals/Bochs_disasm/Bochs_disasm.vcxproj
vendored
2
Externals/Bochs_disasm/Bochs_disasm.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
5
Externals/ExternalsReferenceAll.props
vendored
5
Externals/ExternalsReferenceAll.props
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="$(CoreDir)DolphinLib.vcxproj">
|
<ProjectReference Include="$(CoreDir)DolphinLib.vcxproj">
|
||||||
<Project>{D79392F7-06D6-4B4B-A39F-4D587C215D3A}</Project>
|
<Project>{D79392F7-06D6-4B4B-A39F-4D587C215D3A}</Project>
|
||||||
@ -34,6 +34,9 @@
|
|||||||
<ProjectReference Include="$(ExternalsDir)enet\enet.vcxproj">
|
<ProjectReference Include="$(ExternalsDir)enet\enet.vcxproj">
|
||||||
<Project>{cbc76802-c128-4b17-bf6c-23b08c313e5e}</Project>
|
<Project>{cbc76802-c128-4b17-bf6c-23b08c313e5e}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="$(ExternalsDir)fmt\fmt.vcxproj">
|
||||||
|
<Project>{4BC5A148-0AB3-440F-A980-A29B4B999190}</Project>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="$(ExternalsDir)FreeSurround\FreeSurround.vcxproj">
|
<ProjectReference Include="$(ExternalsDir)FreeSurround\FreeSurround.vcxproj">
|
||||||
<Project>{8498f2fa-5ca6-4169-9971-de5b1fe6132c}</Project>
|
<Project>{8498f2fa-5ca6-4169-9971-de5b1fe6132c}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
1
Externals/FFmpeg-bin
vendored
Submodule
1
Externals/FFmpeg-bin
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 9bc087fbca36ce5a85eb4fd73f0c73813593e5a2
|
2
Externals/FreeSurround/FreeSurround.vcxproj
vendored
2
Externals/FreeSurround/FreeSurround.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="source\ChannelMaps.cpp">
|
<ClCompile Include="source\ChannelMaps.cpp">
|
||||||
<Filter>source</Filter>
|
<Filter>source</Filter>
|
||||||
|
2
Externals/LZO/LZO.vcxproj
vendored
2
Externals/LZO/LZO.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
2
Externals/MoltenVK/CMakeLists.txt
vendored
2
Externals/MoltenVK/CMakeLists.txt
vendored
@ -1,6 +1,6 @@
|
|||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
|
|
||||||
set(MOLTENVK_VERSION "v1.1.6")
|
set(MOLTENVK_VERSION "v1.1.9")
|
||||||
|
|
||||||
ExternalProject_Add(MoltenVK
|
ExternalProject_Add(MoltenVK
|
||||||
GIT_REPOSITORY https://github.com/KhronosGroup/MoltenVK.git
|
GIT_REPOSITORY https://github.com/KhronosGroup/MoltenVK.git
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\..\src\SFML\Network\Http.cpp" />
|
<ClCompile Include="..\..\src\SFML\Network\Http.cpp" />
|
||||||
<ClCompile Include="..\..\src\SFML\Network\IPAddress.cpp" />
|
<ClCompile Include="..\..\src\SFML\Network\IPAddress.cpp" />
|
||||||
|
78
Externals/Vulkan/Include/vulkan/vk_icd.h
vendored
78
Externals/Vulkan/Include/vulkan/vk_icd.h
vendored
@ -33,7 +33,7 @@
|
|||||||
// Version 2 - Add Loader/ICD Interface version negotiation
|
// Version 2 - Add Loader/ICD Interface version negotiation
|
||||||
// via vk_icdNegotiateLoaderICDInterfaceVersion.
|
// via vk_icdNegotiateLoaderICDInterfaceVersion.
|
||||||
// Version 3 - Add ICD creation/destruction of KHR_surface objects.
|
// Version 3 - Add ICD creation/destruction of KHR_surface objects.
|
||||||
// Version 4 - Add unknown physical device extension qyering via
|
// Version 4 - Add unknown physical device extension querying via
|
||||||
// vk_icdGetPhysicalDeviceProcAddr.
|
// vk_icdGetPhysicalDeviceProcAddr.
|
||||||
// Version 5 - Tells ICDs that the loader is now paying attention to the
|
// Version 5 - Tells ICDs that the loader is now paying attention to the
|
||||||
// application version of Vulkan passed into the ApplicationInfo
|
// application version of Vulkan passed into the ApplicationInfo
|
||||||
@ -41,17 +41,45 @@
|
|||||||
// that if the loader is older, it should automatically fail a
|
// that if the loader is older, it should automatically fail a
|
||||||
// call for any API version > 1.0. Otherwise, the loader will
|
// call for any API version > 1.0. Otherwise, the loader will
|
||||||
// manually determine if it can support the expected version.
|
// manually determine if it can support the expected version.
|
||||||
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 5
|
// Version 6 - Add support for vk_icdEnumerateAdapterPhysicalDevices.
|
||||||
|
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 6
|
||||||
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
||||||
#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
|
#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
|
||||||
typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
|
|
||||||
|
|
||||||
|
// Old typedefs that don't follow a proper naming convention but are preserved for compatibility
|
||||||
|
typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
|
||||||
// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this
|
// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this
|
||||||
// file directly, it won't be found.
|
// file directly, it won't be found.
|
||||||
#ifndef PFN_GetPhysicalDeviceProcAddr
|
#ifndef PFN_GetPhysicalDeviceProcAddr
|
||||||
typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName);
|
typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Typedefs for loader/ICD interface
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vk_icdNegotiateLoaderICDInterfaceVersion)(uint32_t* pVersion);
|
||||||
|
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetInstanceProcAddr)(VkInstance instance, const char* pName);
|
||||||
|
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName);
|
||||||
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vk_icdEnumerateAdapterPhysicalDevices)(VkInstance instance, LUID adapterLUID,
|
||||||
|
uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Prototypes for loader/ICD interface
|
||||||
|
#if !defined(VK_NO_PROTOTYPES)
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion);
|
||||||
|
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName);
|
||||||
|
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance isntance, const char* pName);
|
||||||
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID,
|
||||||
|
uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
|
||||||
|
#endif
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The ICD must reserve space for a pointer for the loader's dispatch
|
* The ICD must reserve space for a pointer for the loader's dispatch
|
||||||
* table, at the start of <each object>.
|
* table, at the start of <each object>.
|
||||||
@ -89,7 +117,12 @@ typedef enum {
|
|||||||
VK_ICD_WSI_PLATFORM_MACOS,
|
VK_ICD_WSI_PLATFORM_MACOS,
|
||||||
VK_ICD_WSI_PLATFORM_IOS,
|
VK_ICD_WSI_PLATFORM_IOS,
|
||||||
VK_ICD_WSI_PLATFORM_DISPLAY,
|
VK_ICD_WSI_PLATFORM_DISPLAY,
|
||||||
VK_ICD_WSI_PLATFORM_HEADLESS
|
VK_ICD_WSI_PLATFORM_HEADLESS,
|
||||||
|
VK_ICD_WSI_PLATFORM_METAL,
|
||||||
|
VK_ICD_WSI_PLATFORM_DIRECTFB,
|
||||||
|
VK_ICD_WSI_PLATFORM_VI,
|
||||||
|
VK_ICD_WSI_PLATFORM_GGP,
|
||||||
|
VK_ICD_WSI_PLATFORM_SCREEN,
|
||||||
} VkIcdWsiPlatform;
|
} VkIcdWsiPlatform;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -136,6 +169,14 @@ typedef struct {
|
|||||||
} VkIcdSurfaceXlib;
|
} VkIcdSurfaceXlib;
|
||||||
#endif // VK_USE_PLATFORM_XLIB_KHR
|
#endif // VK_USE_PLATFORM_XLIB_KHR
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_DIRECTFB_EXT
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
IDirectFB *dfb;
|
||||||
|
IDirectFBSurface *surface;
|
||||||
|
} VkIcdSurfaceDirectFB;
|
||||||
|
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||||
typedef struct {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
@ -157,6 +198,13 @@ typedef struct {
|
|||||||
} VkIcdSurfaceIOS;
|
} VkIcdSurfaceIOS;
|
||||||
#endif // VK_USE_PLATFORM_IOS_MVK
|
#endif // VK_USE_PLATFORM_IOS_MVK
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_GGP
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
GgpStreamDescriptor streamDescriptor;
|
||||||
|
} VkIcdSurfaceGgp;
|
||||||
|
#endif // VK_USE_PLATFORM_GGP
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
VkDisplayModeKHR displayMode;
|
VkDisplayModeKHR displayMode;
|
||||||
@ -172,4 +220,26 @@ typedef struct {
|
|||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
} VkIcdSurfaceHeadless;
|
} VkIcdSurfaceHeadless;
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_METAL_EXT
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
const CAMetalLayer *pLayer;
|
||||||
|
} VkIcdSurfaceMetal;
|
||||||
|
#endif // VK_USE_PLATFORM_METAL_EXT
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_VI_NN
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
void *window;
|
||||||
|
} VkIcdSurfaceVi;
|
||||||
|
#endif // VK_USE_PLATFORM_VI_NN
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_SCREEN_QNX
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
struct _screen_context *context;
|
||||||
|
struct _screen_window *window;
|
||||||
|
} VkIcdSurfaceScreen;
|
||||||
|
#endif // VK_USE_PLATFORM_SCREEN_QNX
|
||||||
|
|
||||||
#endif // VKICD_H
|
#endif // VKICD_H
|
||||||
|
16
Externals/Vulkan/Include/vulkan/vk_layer.h
vendored
16
Externals/Vulkan/Include/vulkan/vk_layer.h
vendored
@ -83,7 +83,8 @@ typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device);
|
|||||||
typedef enum VkLayerFunction_ {
|
typedef enum VkLayerFunction_ {
|
||||||
VK_LAYER_LINK_INFO = 0,
|
VK_LAYER_LINK_INFO = 0,
|
||||||
VK_LOADER_DATA_CALLBACK = 1,
|
VK_LOADER_DATA_CALLBACK = 1,
|
||||||
VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2
|
VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2,
|
||||||
|
VK_LOADER_FEATURES = 3,
|
||||||
} VkLayerFunction;
|
} VkLayerFunction;
|
||||||
|
|
||||||
typedef struct VkLayerInstanceLink_ {
|
typedef struct VkLayerInstanceLink_ {
|
||||||
@ -111,6 +112,12 @@ typedef VkResult (VKAPI_PTR *PFN_vkSetDeviceLoaderData)(VkDevice device,
|
|||||||
typedef VkResult (VKAPI_PTR *PFN_vkLayerCreateDevice)(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
|
typedef VkResult (VKAPI_PTR *PFN_vkLayerCreateDevice)(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo,
|
||||||
const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA);
|
const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA);
|
||||||
typedef void (VKAPI_PTR *PFN_vkLayerDestroyDevice)(VkDevice physicalDevice, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction);
|
typedef void (VKAPI_PTR *PFN_vkLayerDestroyDevice)(VkDevice physicalDevice, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction);
|
||||||
|
|
||||||
|
typedef enum VkLoaderFeastureFlagBits {
|
||||||
|
VK_LOADER_FEATURE_PHYSICAL_DEVICE_SORTING = 0x00000001,
|
||||||
|
} VkLoaderFlagBits;
|
||||||
|
typedef VkFlags VkLoaderFeatureFlags;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
|
VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
|
||||||
const void *pNext;
|
const void *pNext;
|
||||||
@ -119,9 +126,10 @@ typedef struct {
|
|||||||
VkLayerInstanceLink *pLayerInfo;
|
VkLayerInstanceLink *pLayerInfo;
|
||||||
PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData;
|
PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData;
|
||||||
struct {
|
struct {
|
||||||
PFN_vkLayerCreateDevice pfnLayerCreateDevice;
|
PFN_vkLayerCreateDevice pfnLayerCreateDevice;
|
||||||
PFN_vkLayerDestroyDevice pfnLayerDestroyDevice;
|
PFN_vkLayerDestroyDevice pfnLayerDestroyDevice;
|
||||||
} layerDevice;
|
} layerDevice;
|
||||||
|
VkLoaderFeatureFlags loaderFeatures;
|
||||||
} u;
|
} u;
|
||||||
} VkLayerInstanceCreateInfo;
|
} VkLayerInstanceCreateInfo;
|
||||||
|
|
||||||
|
20
Externals/Vulkan/Include/vulkan/vk_platform.h
vendored
20
Externals/Vulkan/Include/vulkan/vk_platform.h
vendored
@ -2,19 +2,9 @@
|
|||||||
// File: vk_platform.h
|
// File: vk_platform.h
|
||||||
//
|
//
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2014-2017 The Khronos Group Inc.
|
** Copyright 2014-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -52,7 +42,7 @@ extern "C"
|
|||||||
#define VKAPI_CALL __stdcall
|
#define VKAPI_CALL __stdcall
|
||||||
#define VKAPI_PTR VKAPI_CALL
|
#define VKAPI_PTR VKAPI_CALL
|
||||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
|
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
|
||||||
#error "Vulkan isn't supported for the 'armeabi' NDK ABI"
|
#error "Vulkan is not supported for the 'armeabi' NDK ABI"
|
||||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
|
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
|
||||||
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
|
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
|
||||||
// calling convention, i.e. float parameters are passed in registers. This
|
// calling convention, i.e. float parameters are passed in registers. This
|
||||||
@ -68,7 +58,9 @@ extern "C"
|
|||||||
#define VKAPI_PTR
|
#define VKAPI_PTR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stddef.h>
|
#if !defined(VK_NO_STDDEF_H)
|
||||||
|
#include <stddef.h>
|
||||||
|
#endif // !defined(VK_NO_STDDEF_H)
|
||||||
|
|
||||||
#if !defined(VK_NO_STDINT_H)
|
#if !defined(VK_NO_STDINT_H)
|
||||||
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
||||||
|
30
Externals/Vulkan/Include/vulkan/vulkan.h
vendored
30
Externals/Vulkan/Include/vulkan/vulkan.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_H_ 1
|
#define VULKAN_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "vk_platform.h"
|
#include "vk_platform.h"
|
||||||
@ -71,6 +61,12 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_DIRECTFB_EXT
|
||||||
|
#include <directfb.h>
|
||||||
|
#include "vulkan_directfb.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <X11/extensions/Xrandr.h>
|
#include <X11/extensions/Xrandr.h>
|
||||||
@ -83,4 +79,14 @@
|
|||||||
#include "vulkan_ggp.h"
|
#include "vulkan_ggp.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_SCREEN_QNX
|
||||||
|
#include <screen/screen.h>
|
||||||
|
#include "vulkan_screen.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||||
|
#include "vulkan_beta.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // VULKAN_H_
|
#endif // VULKAN_H_
|
||||||
|
84126
Externals/Vulkan/Include/vulkan/vulkan.hpp
vendored
84126
Externals/Vulkan/Include/vulkan/vulkan.hpp
vendored
File diff suppressed because it is too large
Load Diff
29
Externals/Vulkan/Include/vulkan/vulkan_android.h
vendored
29
Externals/Vulkan/Include/vulkan/vulkan_android.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_ANDROID_H_ 1
|
#define VULKAN_ANDROID_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -54,7 +44,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
|
|||||||
|
|
||||||
#define VK_ANDROID_external_memory_android_hardware_buffer 1
|
#define VK_ANDROID_external_memory_android_hardware_buffer 1
|
||||||
struct AHardwareBuffer;
|
struct AHardwareBuffer;
|
||||||
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
|
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 4
|
||||||
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
|
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
|
||||||
typedef struct VkAndroidHardwareBufferUsageANDROID {
|
typedef struct VkAndroidHardwareBufferUsageANDROID {
|
||||||
VkStructureType sType;
|
VkStructureType sType;
|
||||||
@ -100,6 +90,19 @@ typedef struct VkExternalFormatANDROID {
|
|||||||
uint64_t externalFormat;
|
uint64_t externalFormat;
|
||||||
} VkExternalFormatANDROID;
|
} VkExternalFormatANDROID;
|
||||||
|
|
||||||
|
typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkFormat format;
|
||||||
|
uint64_t externalFormat;
|
||||||
|
VkFormatFeatureFlags2 formatFeatures;
|
||||||
|
VkComponentMapping samplerYcbcrConversionComponents;
|
||||||
|
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
|
||||||
|
VkSamplerYcbcrRange suggestedYcbcrRange;
|
||||||
|
VkChromaLocation suggestedXChromaOffset;
|
||||||
|
VkChromaLocation suggestedYChromaOffset;
|
||||||
|
} VkAndroidHardwareBufferFormatProperties2ANDROID;
|
||||||
|
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
|
typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
|
||||||
|
|
||||||
|
933
Externals/Vulkan/Include/vulkan/vulkan_beta.h
vendored
Normal file
933
Externals/Vulkan/Include/vulkan/vulkan_beta.h
vendored
Normal file
@ -0,0 +1,933 @@
|
|||||||
|
#ifndef VULKAN_BETA_H_
|
||||||
|
#define VULKAN_BETA_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_KHR_video_queue 1
|
||||||
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
|
||||||
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
|
||||||
|
#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 2
|
||||||
|
#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
|
||||||
|
|
||||||
|
typedef enum VkQueryResultStatusKHR {
|
||||||
|
VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
|
||||||
|
VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
|
||||||
|
VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
|
||||||
|
VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkQueryResultStatusKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoCodecOperationFlagBitsKHR {
|
||||||
|
VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR = 0,
|
||||||
|
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||||
|
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000,
|
||||||
|
#endif
|
||||||
|
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||||
|
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0x00020000,
|
||||||
|
#endif
|
||||||
|
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||||
|
VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT = 0x00000001,
|
||||||
|
#endif
|
||||||
|
#ifdef VK_ENABLE_BETA_EXTENSIONS
|
||||||
|
VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT = 0x00000002,
|
||||||
|
#endif
|
||||||
|
VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoCodecOperationFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoCodecOperationFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
|
||||||
|
VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR = 0,
|
||||||
|
VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
|
||||||
|
VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
|
||||||
|
VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
|
||||||
|
VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoChromaSubsamplingFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoComponentBitDepthFlagBitsKHR {
|
||||||
|
VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
|
||||||
|
VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
|
||||||
|
VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
|
||||||
|
VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoComponentBitDepthFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoCapabilityFlagBitsKHR {
|
||||||
|
VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
|
||||||
|
VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoCapabilityFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoCapabilityFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoSessionCreateFlagBitsKHR {
|
||||||
|
VK_VIDEO_SESSION_CREATE_DEFAULT_KHR = 0,
|
||||||
|
VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoSessionCreateFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoSessionCreateFlagsKHR;
|
||||||
|
typedef VkFlags VkVideoBeginCodingFlagsKHR;
|
||||||
|
typedef VkFlags VkVideoEndCodingFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoCodingControlFlagBitsKHR {
|
||||||
|
VK_VIDEO_CODING_CONTROL_DEFAULT_KHR = 0,
|
||||||
|
VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoCodingControlFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoCodingControlFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoCodingQualityPresetFlagBitsKHR {
|
||||||
|
VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR = 0x00000002,
|
||||||
|
VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR = 0x00000004,
|
||||||
|
VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoCodingQualityPresetFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoCodingQualityPresetFlagsKHR;
|
||||||
|
typedef struct VkQueueFamilyQueryResultStatusProperties2KHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkBool32 supported;
|
||||||
|
} VkQueueFamilyQueryResultStatusProperties2KHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoQueueFamilyProperties2KHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkVideoCodecOperationFlagsKHR videoCodecOperations;
|
||||||
|
} VkVideoQueueFamilyProperties2KHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoProfileKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
|
||||||
|
VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
|
||||||
|
VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
|
||||||
|
VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
|
||||||
|
} VkVideoProfileKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoProfilesKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
uint32_t profileCount;
|
||||||
|
const VkVideoProfileKHR* pProfiles;
|
||||||
|
} VkVideoProfilesKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoCapabilitiesKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkVideoCapabilityFlagsKHR capabilityFlags;
|
||||||
|
VkDeviceSize minBitstreamBufferOffsetAlignment;
|
||||||
|
VkDeviceSize minBitstreamBufferSizeAlignment;
|
||||||
|
VkExtent2D videoPictureExtentGranularity;
|
||||||
|
VkExtent2D minExtent;
|
||||||
|
VkExtent2D maxExtent;
|
||||||
|
uint32_t maxReferencePicturesSlotsCount;
|
||||||
|
uint32_t maxReferencePicturesActiveCount;
|
||||||
|
} VkVideoCapabilitiesKHR;
|
||||||
|
|
||||||
|
typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkImageUsageFlags imageUsage;
|
||||||
|
const VkVideoProfilesKHR* pVideoProfiles;
|
||||||
|
} VkPhysicalDeviceVideoFormatInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoFormatPropertiesKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkFormat format;
|
||||||
|
} VkVideoFormatPropertiesKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoPictureResourceKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkOffset2D codedOffset;
|
||||||
|
VkExtent2D codedExtent;
|
||||||
|
uint32_t baseArrayLayer;
|
||||||
|
VkImageView imageViewBinding;
|
||||||
|
} VkVideoPictureResourceKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoReferenceSlotKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
int8_t slotIndex;
|
||||||
|
const VkVideoPictureResourceKHR* pPictureResource;
|
||||||
|
} VkVideoReferenceSlotKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoGetMemoryPropertiesKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t memoryBindIndex;
|
||||||
|
VkMemoryRequirements2* pMemoryRequirements;
|
||||||
|
} VkVideoGetMemoryPropertiesKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoBindMemoryKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t memoryBindIndex;
|
||||||
|
VkDeviceMemory memory;
|
||||||
|
VkDeviceSize memoryOffset;
|
||||||
|
VkDeviceSize memorySize;
|
||||||
|
} VkVideoBindMemoryKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoSessionCreateInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t queueFamilyIndex;
|
||||||
|
VkVideoSessionCreateFlagsKHR flags;
|
||||||
|
const VkVideoProfileKHR* pVideoProfile;
|
||||||
|
VkFormat pictureFormat;
|
||||||
|
VkExtent2D maxCodedExtent;
|
||||||
|
VkFormat referencePicturesFormat;
|
||||||
|
uint32_t maxReferencePicturesSlotsCount;
|
||||||
|
uint32_t maxReferencePicturesActiveCount;
|
||||||
|
} VkVideoSessionCreateInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoSessionParametersCreateInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoSessionParametersKHR videoSessionParametersTemplate;
|
||||||
|
VkVideoSessionKHR videoSession;
|
||||||
|
} VkVideoSessionParametersCreateInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoSessionParametersUpdateInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t updateSequenceCount;
|
||||||
|
} VkVideoSessionParametersUpdateInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoBeginCodingInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoBeginCodingFlagsKHR flags;
|
||||||
|
VkVideoCodingQualityPresetFlagsKHR codecQualityPreset;
|
||||||
|
VkVideoSessionKHR videoSession;
|
||||||
|
VkVideoSessionParametersKHR videoSessionParameters;
|
||||||
|
uint32_t referenceSlotCount;
|
||||||
|
const VkVideoReferenceSlotKHR* pReferenceSlots;
|
||||||
|
} VkVideoBeginCodingInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoEndCodingInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoEndCodingFlagsKHR flags;
|
||||||
|
} VkVideoEndCodingInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoCodingControlInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoCodingControlFlagsKHR flags;
|
||||||
|
} VkVideoCodingControlInfoKHR;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
const VkVideoProfileKHR* pVideoProfile,
|
||||||
|
VkVideoCapabilitiesKHR* pCapabilities);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
|
||||||
|
uint32_t* pVideoFormatPropertyCount,
|
||||||
|
VkVideoFormatPropertiesKHR* pVideoFormatProperties);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
|
||||||
|
VkDevice device,
|
||||||
|
const VkVideoSessionCreateInfoKHR* pCreateInfo,
|
||||||
|
const VkAllocationCallbacks* pAllocator,
|
||||||
|
VkVideoSessionKHR* pVideoSession);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
|
||||||
|
VkDevice device,
|
||||||
|
VkVideoSessionKHR videoSession,
|
||||||
|
const VkAllocationCallbacks* pAllocator);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
|
||||||
|
VkDevice device,
|
||||||
|
VkVideoSessionKHR videoSession,
|
||||||
|
uint32_t* pVideoSessionMemoryRequirementsCount,
|
||||||
|
VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
|
||||||
|
VkDevice device,
|
||||||
|
VkVideoSessionKHR videoSession,
|
||||||
|
uint32_t videoSessionBindMemoryCount,
|
||||||
|
const VkVideoBindMemoryKHR* pVideoSessionBindMemories);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
|
||||||
|
VkDevice device,
|
||||||
|
const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
|
||||||
|
const VkAllocationCallbacks* pAllocator,
|
||||||
|
VkVideoSessionParametersKHR* pVideoSessionParameters);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
|
||||||
|
VkDevice device,
|
||||||
|
VkVideoSessionParametersKHR videoSessionParameters,
|
||||||
|
const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
|
||||||
|
VkDevice device,
|
||||||
|
VkVideoSessionParametersKHR videoSessionParameters,
|
||||||
|
const VkAllocationCallbacks* pAllocator);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
const VkVideoBeginCodingInfoKHR* pBeginInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
const VkVideoEndCodingInfoKHR* pEndCodingInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
const VkVideoCodingControlInfoKHR* pCodingControlInfo);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_KHR_video_decode_queue 1
|
||||||
|
#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 2
|
||||||
|
#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
|
||||||
|
|
||||||
|
typedef enum VkVideoDecodeFlagBitsKHR {
|
||||||
|
VK_VIDEO_DECODE_DEFAULT_KHR = 0,
|
||||||
|
VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoDecodeFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoDecodeFlagsKHR;
|
||||||
|
typedef struct VkVideoDecodeInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoDecodeFlagsKHR flags;
|
||||||
|
VkOffset2D codedOffset;
|
||||||
|
VkExtent2D codedExtent;
|
||||||
|
VkBuffer srcBuffer;
|
||||||
|
VkDeviceSize srcBufferOffset;
|
||||||
|
VkDeviceSize srcBufferRange;
|
||||||
|
VkVideoPictureResourceKHR dstPictureResource;
|
||||||
|
const VkVideoReferenceSlotKHR* pSetupReferenceSlot;
|
||||||
|
uint32_t referenceSlotCount;
|
||||||
|
const VkVideoReferenceSlotKHR* pReferenceSlots;
|
||||||
|
} VkVideoDecodeInfoKHR;
|
||||||
|
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
const VkVideoDecodeInfoKHR* pFrameInfo);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_KHR_portability_subset 1
|
||||||
|
#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1
|
||||||
|
#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
|
||||||
|
typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkBool32 constantAlphaColorBlendFactors;
|
||||||
|
VkBool32 events;
|
||||||
|
VkBool32 imageViewFormatReinterpretation;
|
||||||
|
VkBool32 imageViewFormatSwizzle;
|
||||||
|
VkBool32 imageView2DOn3DImage;
|
||||||
|
VkBool32 multisampleArrayImage;
|
||||||
|
VkBool32 mutableComparisonSamplers;
|
||||||
|
VkBool32 pointPolygons;
|
||||||
|
VkBool32 samplerMipLodBias;
|
||||||
|
VkBool32 separateStencilMaskRef;
|
||||||
|
VkBool32 shaderSampleRateInterpolationFunctions;
|
||||||
|
VkBool32 tessellationIsolines;
|
||||||
|
VkBool32 tessellationPointMode;
|
||||||
|
VkBool32 triangleFans;
|
||||||
|
VkBool32 vertexAttributeAccessBeyondStride;
|
||||||
|
} VkPhysicalDevicePortabilitySubsetFeaturesKHR;
|
||||||
|
|
||||||
|
typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
uint32_t minVertexInputBindingStrideAlignment;
|
||||||
|
} VkPhysicalDevicePortabilitySubsetPropertiesKHR;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_KHR_video_encode_queue 1
|
||||||
|
#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 3
|
||||||
|
#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeFlagBitsKHR {
|
||||||
|
VK_VIDEO_ENCODE_DEFAULT_KHR = 0,
|
||||||
|
VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoEncodeFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeRateControlFlagBitsKHR {
|
||||||
|
VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0,
|
||||||
|
VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeRateControlFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
|
||||||
|
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0,
|
||||||
|
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1,
|
||||||
|
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2,
|
||||||
|
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeRateControlModeFlagBitsKHR;
|
||||||
|
typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
|
||||||
|
typedef struct VkVideoEncodeInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoEncodeFlagsKHR flags;
|
||||||
|
uint32_t qualityLevel;
|
||||||
|
VkExtent2D codedExtent;
|
||||||
|
VkBuffer dstBitstreamBuffer;
|
||||||
|
VkDeviceSize dstBitstreamBufferOffset;
|
||||||
|
VkDeviceSize dstBitstreamBufferMaxRange;
|
||||||
|
VkVideoPictureResourceKHR srcPictureResource;
|
||||||
|
const VkVideoReferenceSlotKHR* pSetupReferenceSlot;
|
||||||
|
uint32_t referenceSlotCount;
|
||||||
|
const VkVideoReferenceSlotKHR* pReferenceSlots;
|
||||||
|
uint32_t precedingExternallyEncodedBytes;
|
||||||
|
} VkVideoEncodeInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeRateControlLayerInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t averageBitrate;
|
||||||
|
uint32_t maxBitrate;
|
||||||
|
uint32_t frameRateNumerator;
|
||||||
|
uint32_t frameRateDenominator;
|
||||||
|
uint32_t virtualBufferSizeInMs;
|
||||||
|
uint32_t initialVirtualBufferSizeInMs;
|
||||||
|
} VkVideoEncodeRateControlLayerInfoKHR;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeRateControlInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoEncodeRateControlFlagsKHR flags;
|
||||||
|
VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
|
||||||
|
uint8_t layerCount;
|
||||||
|
const VkVideoEncodeRateControlLayerInfoKHR* pLayerConfigs;
|
||||||
|
} VkVideoEncodeRateControlInfoKHR;
|
||||||
|
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
|
||||||
|
VkCommandBuffer commandBuffer,
|
||||||
|
const VkVideoEncodeInfoKHR* pEncodeInfo);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_EXT_video_encode_h264 1
|
||||||
|
#include "vk_video/vulkan_video_codec_h264std.h"
|
||||||
|
#include "vk_video/vulkan_video_codec_h264std_encode.h"
|
||||||
|
#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 3
|
||||||
|
#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x00000004,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00000008,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000010,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00000040,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00000080,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000100,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000200,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000400,
|
||||||
|
VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH264CapabilityFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH264InputModeFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
||||||
|
VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH264InputModeFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
||||||
|
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH264OutputModeFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH264CreateFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT = 0,
|
||||||
|
VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH264CreateFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH264CreateFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH264RateControlStructureFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
|
||||||
|
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH264RateControlStructureFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT;
|
||||||
|
typedef struct VkVideoEncodeH264CapabilitiesEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoEncodeH264CapabilityFlagsEXT flags;
|
||||||
|
VkVideoEncodeH264InputModeFlagsEXT inputModeFlags;
|
||||||
|
VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags;
|
||||||
|
VkExtent2D minPictureSizeInMbs;
|
||||||
|
VkExtent2D maxPictureSizeInMbs;
|
||||||
|
VkExtent2D inputImageDataAlignment;
|
||||||
|
uint8_t maxNumL0ReferenceForP;
|
||||||
|
uint8_t maxNumL0ReferenceForB;
|
||||||
|
uint8_t maxNumL1Reference;
|
||||||
|
uint8_t qualityLevelCount;
|
||||||
|
VkExtensionProperties stdExtensionVersion;
|
||||||
|
} VkVideoEncodeH264CapabilitiesEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264SessionCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoEncodeH264CreateFlagsEXT flags;
|
||||||
|
VkExtent2D maxPictureSizeInMbs;
|
||||||
|
const VkExtensionProperties* pStdExtensionVersion;
|
||||||
|
} VkVideoEncodeH264SessionCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t spsStdCount;
|
||||||
|
const StdVideoH264SequenceParameterSet* pSpsStd;
|
||||||
|
uint32_t ppsStdCount;
|
||||||
|
const StdVideoH264PictureParameterSet* pPpsStd;
|
||||||
|
} VkVideoEncodeH264SessionParametersAddInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t maxSpsStdCount;
|
||||||
|
uint32_t maxPpsStdCount;
|
||||||
|
const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo;
|
||||||
|
} VkVideoEncodeH264SessionParametersCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264DpbSlotInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
int8_t slotIndex;
|
||||||
|
const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
|
||||||
|
} VkVideoEncodeH264DpbSlotInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264NaluSliceEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const StdVideoEncodeH264SliceHeader* pSliceHeaderStd;
|
||||||
|
uint32_t mbCount;
|
||||||
|
uint8_t refFinalList0EntryCount;
|
||||||
|
const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries;
|
||||||
|
uint8_t refFinalList1EntryCount;
|
||||||
|
const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries;
|
||||||
|
} VkVideoEncodeH264NaluSliceEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264VclFrameInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint8_t refDefaultFinalList0EntryCount;
|
||||||
|
const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList0Entries;
|
||||||
|
uint8_t refDefaultFinalList1EntryCount;
|
||||||
|
const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList1Entries;
|
||||||
|
uint32_t naluSliceEntryCount;
|
||||||
|
const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries;
|
||||||
|
const VkVideoEncodeH264DpbSlotInfoEXT* pCurrentPictureInfo;
|
||||||
|
} VkVideoEncodeH264VclFrameInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264EmitPictureParametersEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint8_t spsId;
|
||||||
|
VkBool32 emitSpsEnable;
|
||||||
|
uint32_t ppsIdEntryCount;
|
||||||
|
const uint8_t* ppsIdEntries;
|
||||||
|
} VkVideoEncodeH264EmitPictureParametersEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264ProfileEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
StdVideoH264ProfileIdc stdProfileIdc;
|
||||||
|
} VkVideoEncodeH264ProfileEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264RateControlInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t gopFrameCount;
|
||||||
|
uint32_t idrPeriod;
|
||||||
|
uint32_t consecutiveBFrameCount;
|
||||||
|
VkVideoEncodeH264RateControlStructureFlagBitsEXT rateControlStructure;
|
||||||
|
uint8_t temporalLayerCount;
|
||||||
|
} VkVideoEncodeH264RateControlInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264QpEXT {
|
||||||
|
int32_t qpI;
|
||||||
|
int32_t qpP;
|
||||||
|
int32_t qpB;
|
||||||
|
} VkVideoEncodeH264QpEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264FrameSizeEXT {
|
||||||
|
uint32_t frameISize;
|
||||||
|
uint32_t framePSize;
|
||||||
|
uint32_t frameBSize;
|
||||||
|
} VkVideoEncodeH264FrameSizeEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint8_t temporalLayerId;
|
||||||
|
VkBool32 useInitialRcQp;
|
||||||
|
VkVideoEncodeH264QpEXT initialRcQp;
|
||||||
|
VkBool32 useMinQp;
|
||||||
|
VkVideoEncodeH264QpEXT minQp;
|
||||||
|
VkBool32 useMaxQp;
|
||||||
|
VkVideoEncodeH264QpEXT maxQp;
|
||||||
|
VkBool32 useMaxFrameSize;
|
||||||
|
VkVideoEncodeH264FrameSizeEXT maxFrameSize;
|
||||||
|
} VkVideoEncodeH264RateControlLayerInfoEXT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_EXT_video_encode_h265 1
|
||||||
|
#include "vk_video/vulkan_video_codec_h265std.h"
|
||||||
|
#include "vk_video/vulkan_video_codec_h265std_encode.h"
|
||||||
|
#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 3
|
||||||
|
#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
|
||||||
|
typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH265InputModeFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
||||||
|
VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH265InputModeFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH265OutputModeFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
||||||
|
VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH265OutputModeFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH265CreateFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH265CtbSizeFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H265_CTB_SIZE_8_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000004,
|
||||||
|
VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x00000008,
|
||||||
|
VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH265CtbSizeFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
|
||||||
|
|
||||||
|
typedef enum VkVideoEncodeH265RateControlStructureFlagBitsEXT {
|
||||||
|
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
|
||||||
|
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoEncodeH265RateControlStructureFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT;
|
||||||
|
typedef struct VkVideoEncodeH265CapabilitiesEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoEncodeH265CapabilityFlagsEXT flags;
|
||||||
|
VkVideoEncodeH265InputModeFlagsEXT inputModeFlags;
|
||||||
|
VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags;
|
||||||
|
VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes;
|
||||||
|
VkExtent2D inputImageDataAlignment;
|
||||||
|
uint8_t maxNumL0ReferenceForP;
|
||||||
|
uint8_t maxNumL0ReferenceForB;
|
||||||
|
uint8_t maxNumL1Reference;
|
||||||
|
uint8_t maxNumSubLayers;
|
||||||
|
uint8_t qualityLevelCount;
|
||||||
|
VkExtensionProperties stdExtensionVersion;
|
||||||
|
} VkVideoEncodeH265CapabilitiesEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265SessionCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoEncodeH265CreateFlagsEXT flags;
|
||||||
|
const VkExtensionProperties* pStdExtensionVersion;
|
||||||
|
} VkVideoEncodeH265SessionCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t vpsStdCount;
|
||||||
|
const StdVideoH265VideoParameterSet* pVpsStd;
|
||||||
|
uint32_t spsStdCount;
|
||||||
|
const StdVideoH265SequenceParameterSet* pSpsStd;
|
||||||
|
uint32_t ppsStdCount;
|
||||||
|
const StdVideoH265PictureParameterSet* pPpsStd;
|
||||||
|
} VkVideoEncodeH265SessionParametersAddInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t maxVpsStdCount;
|
||||||
|
uint32_t maxSpsStdCount;
|
||||||
|
uint32_t maxPpsStdCount;
|
||||||
|
const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo;
|
||||||
|
} VkVideoEncodeH265SessionParametersCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265DpbSlotInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
int8_t slotIndex;
|
||||||
|
const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
|
||||||
|
} VkVideoEncodeH265DpbSlotInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265ReferenceListsEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint8_t referenceList0EntryCount;
|
||||||
|
const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList0Entries;
|
||||||
|
uint8_t referenceList1EntryCount;
|
||||||
|
const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries;
|
||||||
|
const StdVideoEncodeH265ReferenceModifications* pReferenceModifications;
|
||||||
|
} VkVideoEncodeH265ReferenceListsEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265NaluSliceEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t ctbCount;
|
||||||
|
const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists;
|
||||||
|
const StdVideoEncodeH265SliceHeader* pSliceHeaderStd;
|
||||||
|
} VkVideoEncodeH265NaluSliceEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265VclFrameInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists;
|
||||||
|
uint32_t naluSliceEntryCount;
|
||||||
|
const VkVideoEncodeH265NaluSliceEXT* pNaluSliceEntries;
|
||||||
|
const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo;
|
||||||
|
} VkVideoEncodeH265VclFrameInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265EmitPictureParametersEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint8_t vpsId;
|
||||||
|
uint8_t spsId;
|
||||||
|
VkBool32 emitVpsEnable;
|
||||||
|
VkBool32 emitSpsEnable;
|
||||||
|
uint32_t ppsIdEntryCount;
|
||||||
|
const uint8_t* ppsIdEntries;
|
||||||
|
} VkVideoEncodeH265EmitPictureParametersEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265ProfileEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
StdVideoH265ProfileIdc stdProfileIdc;
|
||||||
|
} VkVideoEncodeH265ProfileEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265RateControlInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t gopFrameCount;
|
||||||
|
uint32_t idrPeriod;
|
||||||
|
uint32_t consecutiveBFrameCount;
|
||||||
|
VkVideoEncodeH265RateControlStructureFlagBitsEXT rateControlStructure;
|
||||||
|
uint8_t subLayerCount;
|
||||||
|
} VkVideoEncodeH265RateControlInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265QpEXT {
|
||||||
|
int32_t qpI;
|
||||||
|
int32_t qpP;
|
||||||
|
int32_t qpB;
|
||||||
|
} VkVideoEncodeH265QpEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265FrameSizeEXT {
|
||||||
|
uint32_t frameISize;
|
||||||
|
uint32_t framePSize;
|
||||||
|
uint32_t frameBSize;
|
||||||
|
} VkVideoEncodeH265FrameSizeEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoEncodeH265RateControlLayerInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint8_t temporalId;
|
||||||
|
VkBool32 useInitialRcQp;
|
||||||
|
VkVideoEncodeH265QpEXT initialRcQp;
|
||||||
|
VkBool32 useMinQp;
|
||||||
|
VkVideoEncodeH265QpEXT minQp;
|
||||||
|
VkBool32 useMaxQp;
|
||||||
|
VkVideoEncodeH265QpEXT maxQp;
|
||||||
|
VkBool32 useMaxFrameSize;
|
||||||
|
VkVideoEncodeH265FrameSizeEXT maxFrameSize;
|
||||||
|
} VkVideoEncodeH265RateControlLayerInfoEXT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_EXT_video_decode_h264 1
|
||||||
|
#include "vk_video/vulkan_video_codec_h264std_decode.h"
|
||||||
|
#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 3
|
||||||
|
#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264"
|
||||||
|
|
||||||
|
typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT {
|
||||||
|
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT = 0,
|
||||||
|
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT = 0x00000001,
|
||||||
|
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT = 0x00000002,
|
||||||
|
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
|
} VkVideoDecodeH264PictureLayoutFlagBitsEXT;
|
||||||
|
typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT;
|
||||||
|
typedef VkFlags VkVideoDecodeH264CreateFlagsEXT;
|
||||||
|
typedef struct VkVideoDecodeH264ProfileEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
StdVideoH264ProfileIdc stdProfileIdc;
|
||||||
|
VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout;
|
||||||
|
} VkVideoDecodeH264ProfileEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH264CapabilitiesEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
uint32_t maxLevel;
|
||||||
|
VkOffset2D fieldOffsetGranularity;
|
||||||
|
VkExtensionProperties stdExtensionVersion;
|
||||||
|
} VkVideoDecodeH264CapabilitiesEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH264SessionCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoDecodeH264CreateFlagsEXT flags;
|
||||||
|
const VkExtensionProperties* pStdExtensionVersion;
|
||||||
|
} VkVideoDecodeH264SessionCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t spsStdCount;
|
||||||
|
const StdVideoH264SequenceParameterSet* pSpsStd;
|
||||||
|
uint32_t ppsStdCount;
|
||||||
|
const StdVideoH264PictureParameterSet* pPpsStd;
|
||||||
|
} VkVideoDecodeH264SessionParametersAddInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t maxSpsStdCount;
|
||||||
|
uint32_t maxPpsStdCount;
|
||||||
|
const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo;
|
||||||
|
} VkVideoDecodeH264SessionParametersCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH264PictureInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
|
||||||
|
uint32_t slicesCount;
|
||||||
|
const uint32_t* pSlicesDataOffsets;
|
||||||
|
} VkVideoDecodeH264PictureInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH264MvcEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const StdVideoDecodeH264Mvc* pStdMvc;
|
||||||
|
} VkVideoDecodeH264MvcEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH264DpbSlotInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
|
||||||
|
} VkVideoDecodeH264DpbSlotInfoEXT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_EXT_video_decode_h265 1
|
||||||
|
#include "vk_video/vulkan_video_codec_h265std_decode.h"
|
||||||
|
#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 1
|
||||||
|
#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265"
|
||||||
|
typedef VkFlags VkVideoDecodeH265CreateFlagsEXT;
|
||||||
|
typedef struct VkVideoDecodeH265ProfileEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
StdVideoH265ProfileIdc stdProfileIdc;
|
||||||
|
} VkVideoDecodeH265ProfileEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH265CapabilitiesEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
uint32_t maxLevel;
|
||||||
|
VkExtensionProperties stdExtensionVersion;
|
||||||
|
} VkVideoDecodeH265CapabilitiesEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH265SessionCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkVideoDecodeH265CreateFlagsEXT flags;
|
||||||
|
const VkExtensionProperties* pStdExtensionVersion;
|
||||||
|
} VkVideoDecodeH265SessionCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t spsStdCount;
|
||||||
|
const StdVideoH265SequenceParameterSet* pSpsStd;
|
||||||
|
uint32_t ppsStdCount;
|
||||||
|
const StdVideoH265PictureParameterSet* pPpsStd;
|
||||||
|
} VkVideoDecodeH265SessionParametersAddInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t maxSpsStdCount;
|
||||||
|
uint32_t maxPpsStdCount;
|
||||||
|
const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo;
|
||||||
|
} VkVideoDecodeH265SessionParametersCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH265PictureInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
StdVideoDecodeH265PictureInfo* pStdPictureInfo;
|
||||||
|
uint32_t slicesCount;
|
||||||
|
const uint32_t* pSlicesDataOffsets;
|
||||||
|
} VkVideoDecodeH265PictureInfoEXT;
|
||||||
|
|
||||||
|
typedef struct VkVideoDecodeH265DpbSlotInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
|
||||||
|
} VkVideoDecodeH265DpbSlotInfoEXT;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
7968
Externals/Vulkan/Include/vulkan/vulkan_core.h
vendored
7968
Externals/Vulkan/Include/vulkan/vulkan_core.h
vendored
File diff suppressed because it is too large
Load Diff
54
Externals/Vulkan/Include/vulkan/vulkan_directfb.h
vendored
Normal file
54
Externals/Vulkan/Include/vulkan/vulkan_directfb.h
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#ifndef VULKAN_DIRECTFB_H_
|
||||||
|
#define VULKAN_DIRECTFB_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_EXT_directfb_surface 1
|
||||||
|
#define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1
|
||||||
|
#define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface"
|
||||||
|
typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT;
|
||||||
|
typedef struct VkDirectFBSurfaceCreateInfoEXT {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkDirectFBSurfaceCreateFlagsEXT flags;
|
||||||
|
IDirectFB* dfb;
|
||||||
|
IDirectFBSurface* surface;
|
||||||
|
} VkDirectFBSurfaceCreateInfoEXT;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateDirectFBSurfaceEXT)(VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||||
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDirectFBSurfaceEXT(
|
||||||
|
VkInstance instance,
|
||||||
|
const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo,
|
||||||
|
const VkAllocationCallbacks* pAllocator,
|
||||||
|
VkSurfaceKHR* pSurface);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
uint32_t queueFamilyIndex,
|
||||||
|
IDirectFB* dfb);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
18755
Externals/Vulkan/Include/vulkan/vulkan_enums.hpp
vendored
Normal file
18755
Externals/Vulkan/Include/vulkan/vulkan_enums.hpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
225
Externals/Vulkan/Include/vulkan/vulkan_fuchsia.h
vendored
225
Externals/Vulkan/Include/vulkan/vulkan_fuchsia.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_FUCHSIA_H_ 1
|
#define VULKAN_FUCHSIA_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -50,6 +40,217 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA(
|
|||||||
VkSurfaceKHR* pSurface);
|
VkSurfaceKHR* pSurface);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_FUCHSIA_external_memory 1
|
||||||
|
#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1
|
||||||
|
#define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory"
|
||||||
|
typedef struct VkImportMemoryZirconHandleInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkExternalMemoryHandleTypeFlagBits handleType;
|
||||||
|
zx_handle_t handle;
|
||||||
|
} VkImportMemoryZirconHandleInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkMemoryZirconHandlePropertiesFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
uint32_t memoryTypeBits;
|
||||||
|
} VkMemoryZirconHandlePropertiesFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkMemoryGetZirconHandleInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkDeviceMemory memory;
|
||||||
|
VkExternalMemoryHandleTypeFlagBits handleType;
|
||||||
|
} VkMemoryGetZirconHandleInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
|
||||||
|
zx_handle_t* pZirconHandle);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
VkExternalMemoryHandleTypeFlagBits handleType,
|
||||||
|
zx_handle_t zirconHandle,
|
||||||
|
VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_FUCHSIA_external_semaphore 1
|
||||||
|
#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
|
||||||
|
#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore"
|
||||||
|
typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkSemaphore semaphore;
|
||||||
|
VkSemaphoreImportFlags flags;
|
||||||
|
VkExternalSemaphoreHandleTypeFlagBits handleType;
|
||||||
|
zx_handle_t zirconHandle;
|
||||||
|
} VkImportSemaphoreZirconHandleInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkSemaphore semaphore;
|
||||||
|
VkExternalSemaphoreHandleTypeFlagBits handleType;
|
||||||
|
} VkSemaphoreGetZirconHandleInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
|
||||||
|
zx_handle_t* pZirconHandle);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_FUCHSIA_buffer_collection 1
|
||||||
|
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA)
|
||||||
|
#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2
|
||||||
|
#define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection"
|
||||||
|
typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA;
|
||||||
|
|
||||||
|
typedef enum VkImageConstraintsInfoFlagBitsFUCHSIA {
|
||||||
|
VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001,
|
||||||
|
VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002,
|
||||||
|
VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004,
|
||||||
|
VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008,
|
||||||
|
VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010,
|
||||||
|
VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF
|
||||||
|
} VkImageConstraintsInfoFlagBitsFUCHSIA;
|
||||||
|
typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA;
|
||||||
|
typedef struct VkBufferCollectionCreateInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
zx_handle_t collectionToken;
|
||||||
|
} VkBufferCollectionCreateInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkImportMemoryBufferCollectionFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkBufferCollectionFUCHSIA collection;
|
||||||
|
uint32_t index;
|
||||||
|
} VkImportMemoryBufferCollectionFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkBufferCollectionImageCreateInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkBufferCollectionFUCHSIA collection;
|
||||||
|
uint32_t index;
|
||||||
|
} VkBufferCollectionImageCreateInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkBufferCollectionConstraintsInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t minBufferCount;
|
||||||
|
uint32_t maxBufferCount;
|
||||||
|
uint32_t minBufferCountForCamping;
|
||||||
|
uint32_t minBufferCountForDedicatedSlack;
|
||||||
|
uint32_t minBufferCountForSharedSlack;
|
||||||
|
} VkBufferCollectionConstraintsInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkBufferConstraintsInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkBufferCreateInfo createInfo;
|
||||||
|
VkFormatFeatureFlags requiredFormatFeatures;
|
||||||
|
VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints;
|
||||||
|
} VkBufferConstraintsInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkBufferCollectionBufferCreateInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkBufferCollectionFUCHSIA collection;
|
||||||
|
uint32_t index;
|
||||||
|
} VkBufferCollectionBufferCreateInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkSysmemColorSpaceFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t colorSpace;
|
||||||
|
} VkSysmemColorSpaceFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkBufferCollectionPropertiesFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
uint32_t memoryTypeBits;
|
||||||
|
uint32_t bufferCount;
|
||||||
|
uint32_t createInfoIndex;
|
||||||
|
uint64_t sysmemPixelFormat;
|
||||||
|
VkFormatFeatureFlags formatFeatures;
|
||||||
|
VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex;
|
||||||
|
VkComponentMapping samplerYcbcrConversionComponents;
|
||||||
|
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
|
||||||
|
VkSamplerYcbcrRange suggestedYcbcrRange;
|
||||||
|
VkChromaLocation suggestedXChromaOffset;
|
||||||
|
VkChromaLocation suggestedYChromaOffset;
|
||||||
|
} VkBufferCollectionPropertiesFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkImageFormatConstraintsInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkImageCreateInfo imageCreateInfo;
|
||||||
|
VkFormatFeatureFlags requiredFormatFeatures;
|
||||||
|
VkImageFormatConstraintsFlagsFUCHSIA flags;
|
||||||
|
uint64_t sysmemPixelFormat;
|
||||||
|
uint32_t colorSpaceCount;
|
||||||
|
const VkSysmemColorSpaceFUCHSIA* pColorSpaces;
|
||||||
|
} VkImageFormatConstraintsInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef struct VkImageConstraintsInfoFUCHSIA {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
uint32_t formatConstraintsCount;
|
||||||
|
const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints;
|
||||||
|
VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints;
|
||||||
|
VkImageConstraintsInfoFlagsFUCHSIA flags;
|
||||||
|
} VkImageConstraintsInfoFUCHSIA;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo);
|
||||||
|
typedef void (VKAPI_PTR *PFN_vkDestroyBufferCollectionFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator);
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionPropertiesFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
|
||||||
|
const VkAllocationCallbacks* pAllocator,
|
||||||
|
VkBufferCollectionFUCHSIA* pCollection);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
VkBufferCollectionFUCHSIA collection,
|
||||||
|
const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
VkBufferCollectionFUCHSIA collection,
|
||||||
|
const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo);
|
||||||
|
|
||||||
|
VKAPI_ATTR void VKAPI_CALL vkDestroyBufferCollectionFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
VkBufferCollectionFUCHSIA collection,
|
||||||
|
const VkAllocationCallbacks* pAllocator);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionPropertiesFUCHSIA(
|
||||||
|
VkDevice device,
|
||||||
|
VkBufferCollectionFUCHSIA collection,
|
||||||
|
VkBufferCollectionPropertiesFUCHSIA* pProperties);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
20957
Externals/Vulkan/Include/vulkan/vulkan_funcs.hpp
vendored
Normal file
20957
Externals/Vulkan/Include/vulkan/vulkan_funcs.hpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
14
Externals/Vulkan/Include/vulkan/vulkan_ggp.h
vendored
14
Externals/Vulkan/Include/vulkan/vulkan_ggp.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_GGP_H_ 1
|
#define VULKAN_GGP_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
14971
Externals/Vulkan/Include/vulkan/vulkan_handles.hpp
vendored
Normal file
14971
Externals/Vulkan/Include/vulkan/vulkan_handles.hpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
13191
Externals/Vulkan/Include/vulkan/vulkan_hash.hpp
vendored
Normal file
13191
Externals/Vulkan/Include/vulkan/vulkan_hash.hpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
16
Externals/Vulkan/Include/vulkan/vulkan_ios.h
vendored
16
Externals/Vulkan/Include/vulkan/vulkan_ios.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_IOS_H_ 1
|
#define VULKAN_IOS_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -30,7 +20,7 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
#define VK_MVK_ios_surface 1
|
#define VK_MVK_ios_surface 1
|
||||||
#define VK_MVK_IOS_SURFACE_SPEC_VERSION 2
|
#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3
|
||||||
#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
|
#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
|
||||||
typedef VkFlags VkIOSSurfaceCreateFlagsMVK;
|
typedef VkFlags VkIOSSurfaceCreateFlagsMVK;
|
||||||
typedef struct VkIOSSurfaceCreateInfoMVK {
|
typedef struct VkIOSSurfaceCreateInfoMVK {
|
||||||
|
16
Externals/Vulkan/Include/vulkan/vulkan_macos.h
vendored
16
Externals/Vulkan/Include/vulkan/vulkan_macos.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_MACOS_H_ 1
|
#define VULKAN_MACOS_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -30,7 +20,7 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
#define VK_MVK_macos_surface 1
|
#define VK_MVK_macos_surface 1
|
||||||
#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2
|
#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3
|
||||||
#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
|
#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
|
||||||
typedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
|
typedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
|
||||||
typedef struct VkMacOSSurfaceCreateInfoMVK {
|
typedef struct VkMacOSSurfaceCreateInfoMVK {
|
||||||
|
14
Externals/Vulkan/Include/vulkan/vulkan_metal.h
vendored
14
Externals/Vulkan/Include/vulkan/vulkan_metal.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_METAL_H_ 1
|
#define VULKAN_METAL_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
18669
Externals/Vulkan/Include/vulkan/vulkan_raii.hpp
vendored
Normal file
18669
Externals/Vulkan/Include/vulkan/vulkan_raii.hpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
54
Externals/Vulkan/Include/vulkan/vulkan_screen.h
vendored
Normal file
54
Externals/Vulkan/Include/vulkan/vulkan_screen.h
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#ifndef VULKAN_SCREEN_H_
|
||||||
|
#define VULKAN_SCREEN_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VK_QNX_screen_surface 1
|
||||||
|
#define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1
|
||||||
|
#define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface"
|
||||||
|
typedef VkFlags VkScreenSurfaceCreateFlagsQNX;
|
||||||
|
typedef struct VkScreenSurfaceCreateInfoQNX {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkScreenSurfaceCreateFlagsQNX flags;
|
||||||
|
struct _screen_context* context;
|
||||||
|
struct _screen_window* window;
|
||||||
|
} VkScreenSurfaceCreateInfoQNX;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateScreenSurfaceQNX)(VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||||
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateScreenSurfaceQNX(
|
||||||
|
VkInstance instance,
|
||||||
|
const VkScreenSurfaceCreateInfoQNX* pCreateInfo,
|
||||||
|
const VkAllocationCallbacks* pAllocator,
|
||||||
|
VkSurfaceKHR* pSurface);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
uint32_t queueFamilyIndex,
|
||||||
|
struct _screen_window* window);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
102190
Externals/Vulkan/Include/vulkan/vulkan_structs.hpp
vendored
Normal file
102190
Externals/Vulkan/Include/vulkan/vulkan_structs.hpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
14
Externals/Vulkan/Include/vulkan/vulkan_vi.h
vendored
14
Externals/Vulkan/Include/vulkan/vulkan_vi.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_VI_H_ 1
|
#define VULKAN_VI_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
14
Externals/Vulkan/Include/vulkan/vulkan_wayland.h
vendored
14
Externals/Vulkan/Include/vulkan/vulkan_wayland.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_WAYLAND_H_ 1
|
#define VULKAN_WAYLAND_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
17
Externals/Vulkan/Include/vulkan/vulkan_win32.h
vendored
17
Externals/Vulkan/Include/vulkan/vulkan_win32.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_WIN32_H_ 1
|
#define VULKAN_WIN32_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -272,9 +262,6 @@ typedef enum VkFullScreenExclusiveEXT {
|
|||||||
VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1,
|
VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1,
|
||||||
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2,
|
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2,
|
||||||
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3,
|
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3,
|
||||||
VK_FULL_SCREEN_EXCLUSIVE_BEGIN_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
|
|
||||||
VK_FULL_SCREEN_EXCLUSIVE_END_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT,
|
|
||||||
VK_FULL_SCREEN_EXCLUSIVE_RANGE_SIZE_EXT = (VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT + 1),
|
|
||||||
VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF
|
VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||||
} VkFullScreenExclusiveEXT;
|
} VkFullScreenExclusiveEXT;
|
||||||
typedef struct VkSurfaceFullScreenExclusiveInfoEXT {
|
typedef struct VkSurfaceFullScreenExclusiveInfoEXT {
|
||||||
|
14
Externals/Vulkan/Include/vulkan/vulkan_xcb.h
vendored
14
Externals/Vulkan/Include/vulkan/vulkan_xcb.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_XCB_H_ 1
|
#define VULKAN_XCB_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
14
Externals/Vulkan/Include/vulkan/vulkan_xlib.h
vendored
14
Externals/Vulkan/Include/vulkan/vulkan_xlib.h
vendored
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_XLIB_H_ 1
|
#define VULKAN_XLIB_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2,19 +2,9 @@
|
|||||||
#define VULKAN_XLIB_XRANDR_H_ 1
|
#define VULKAN_XLIB_XRANDR_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
** Copyright 2015-2022 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
** you may not use this file except in compliance with the License.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
2
Externals/bzip2/bzip2.vcxproj
vendored
2
Externals/bzip2/bzip2.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
2
Externals/bzip2/bzip2.vcxproj.filters
vendored
2
Externals/bzip2/bzip2.vcxproj.filters
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="blocksort.c" />
|
<ClCompile Include="blocksort.c" />
|
||||||
<ClCompile Include="bzlib.c" />
|
<ClCompile Include="bzlib.c" />
|
||||||
|
2
Externals/cpp-optparse/cpp-optparse.vcxproj
vendored
2
Externals/cpp-optparse/cpp-optparse.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
2
Externals/cubeb/msvc/cubeb.vcxproj
vendored
2
Externals/cubeb/msvc/cubeb.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
2
Externals/cubeb/msvc/cubeb.vcxproj.filters
vendored
2
Externals/cubeb/msvc/cubeb.vcxproj.filters
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\include\cubeb\cubeb.h" />
|
<ClInclude Include="..\include\cubeb\cubeb.h" />
|
||||||
<ClInclude Include="..\src\cubeb_array_queue.h" />
|
<ClInclude Include="..\src\cubeb_array_queue.h" />
|
||||||
|
2
Externals/curl/curl.vcxproj
vendored
2
Externals/curl/curl.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
2
Externals/ed25519/ed25519.vcxproj
vendored
2
Externals/ed25519/ed25519.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
2
Externals/ed25519/ed25519.vcxproj.filters
vendored
2
Externals/ed25519/ed25519.vcxproj.filters
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="add_scalar.c" />
|
<ClCompile Include="add_scalar.c" />
|
||||||
<ClCompile Include="fe.c" />
|
<ClCompile Include="fe.c" />
|
||||||
|
2
Externals/enet/enet.vcxproj
vendored
2
Externals/enet/enet.vcxproj
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
<Import Project="..\..\Source\VSProps\Base.Macros.props" />
|
||||||
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
<Import Project="$(VSPropsDir)Base.Targets.props" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
|
2
Externals/enet/enet.vcxproj.filters
vendored
2
Externals/enet/enet.vcxproj.filters
vendored
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Filter Include="include">
|
<Filter Include="include">
|
||||||
<UniqueIdentifier>{a5756b80-36f2-45f6-b1f1-b67082477376}</UniqueIdentifier>
|
<UniqueIdentifier>{a5756b80-36f2-45f6-b1f1-b67082477376}</UniqueIdentifier>
|
||||||
|
6241
Externals/ffmpeg/include/libavcodec/avcodec.h
vendored
6241
Externals/ffmpeg/include/libavcodec/avcodec.h
vendored
File diff suppressed because it is too large
Load Diff
84
Externals/ffmpeg/include/libavcodec/avdct.h
vendored
84
Externals/ffmpeg/include/libavcodec/avdct.h
vendored
@ -1,84 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_AVDCT_H
|
|
||||||
#define AVCODEC_AVDCT_H
|
|
||||||
|
|
||||||
#include "libavutil/opt.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* AVDCT context.
|
|
||||||
* @note function pointers can be NULL if the specific features have been
|
|
||||||
* disabled at build time.
|
|
||||||
*/
|
|
||||||
typedef struct AVDCT {
|
|
||||||
const AVClass *av_class;
|
|
||||||
|
|
||||||
void (*idct)(int16_t *block /* align 16 */);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* IDCT input permutation.
|
|
||||||
* Several optimized IDCTs need a permutated input (relative to the
|
|
||||||
* normal order of the reference IDCT).
|
|
||||||
* This permutation must be performed before the idct_put/add.
|
|
||||||
* Note, normally this can be merged with the zigzag/alternate scan<br>
|
|
||||||
* An example to avoid confusion:
|
|
||||||
* - (->decode coeffs -> zigzag reorder -> dequant -> reference IDCT -> ...)
|
|
||||||
* - (x -> reference DCT -> reference IDCT -> x)
|
|
||||||
* - (x -> reference DCT -> simple_mmx_perm = idct_permutation
|
|
||||||
* -> simple_idct_mmx -> x)
|
|
||||||
* - (-> decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant
|
|
||||||
* -> simple_idct_mmx -> ...)
|
|
||||||
*/
|
|
||||||
uint8_t idct_permutation[64];
|
|
||||||
|
|
||||||
void (*fdct)(int16_t *block /* align 16 */);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DCT algorithm.
|
|
||||||
* must use AVOptions to set this field.
|
|
||||||
*/
|
|
||||||
int dct_algo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* IDCT algorithm.
|
|
||||||
* must use AVOptions to set this field.
|
|
||||||
*/
|
|
||||||
int idct_algo;
|
|
||||||
|
|
||||||
void (*get_pixels)(int16_t *block /* align 16 */,
|
|
||||||
const uint8_t *pixels /* align 8 */,
|
|
||||||
ptrdiff_t line_size);
|
|
||||||
|
|
||||||
int bits_per_sample;
|
|
||||||
} AVDCT;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocates a AVDCT context.
|
|
||||||
* This needs to be initialized with avcodec_dct_init() after optionally
|
|
||||||
* configuring it with AVOptions.
|
|
||||||
*
|
|
||||||
* To free it use av_free()
|
|
||||||
*/
|
|
||||||
AVDCT *avcodec_dct_alloc(void);
|
|
||||||
int avcodec_dct_init(AVDCT *);
|
|
||||||
|
|
||||||
const AVClass *avcodec_dct_get_class(void);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_AVDCT_H */
|
|
118
Externals/ffmpeg/include/libavcodec/avfft.h
vendored
118
Externals/ffmpeg/include/libavcodec/avfft.h
vendored
@ -1,118 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_AVFFT_H
|
|
||||||
#define AVCODEC_AVFFT_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_fft
|
|
||||||
* FFT functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavc_fft FFT functions
|
|
||||||
* @ingroup lavc_misc
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef float FFTSample;
|
|
||||||
|
|
||||||
typedef struct FFTComplex {
|
|
||||||
FFTSample re, im;
|
|
||||||
} FFTComplex;
|
|
||||||
|
|
||||||
typedef struct FFTContext FFTContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set up a complex FFT.
|
|
||||||
* @param nbits log2 of the length of the input array
|
|
||||||
* @param inverse if 0 perform the forward transform, if 1 perform the inverse
|
|
||||||
*/
|
|
||||||
FFTContext *av_fft_init(int nbits, int inverse);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Do the permutation needed BEFORE calling ff_fft_calc().
|
|
||||||
*/
|
|
||||||
void av_fft_permute(FFTContext *s, FFTComplex *z);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Do a complex FFT with the parameters defined in av_fft_init(). The
|
|
||||||
* input data must be permuted before. No 1.0/sqrt(n) normalization is done.
|
|
||||||
*/
|
|
||||||
void av_fft_calc(FFTContext *s, FFTComplex *z);
|
|
||||||
|
|
||||||
void av_fft_end(FFTContext *s);
|
|
||||||
|
|
||||||
FFTContext *av_mdct_init(int nbits, int inverse, double scale);
|
|
||||||
void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
|
|
||||||
void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input);
|
|
||||||
void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input);
|
|
||||||
void av_mdct_end(FFTContext *s);
|
|
||||||
|
|
||||||
/* Real Discrete Fourier Transform */
|
|
||||||
|
|
||||||
enum RDFTransformType {
|
|
||||||
DFT_R2C,
|
|
||||||
IDFT_C2R,
|
|
||||||
IDFT_R2C,
|
|
||||||
DFT_C2R,
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct RDFTContext RDFTContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set up a real FFT.
|
|
||||||
* @param nbits log2 of the length of the input array
|
|
||||||
* @param trans the type of transform
|
|
||||||
*/
|
|
||||||
RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans);
|
|
||||||
void av_rdft_calc(RDFTContext *s, FFTSample *data);
|
|
||||||
void av_rdft_end(RDFTContext *s);
|
|
||||||
|
|
||||||
/* Discrete Cosine Transform */
|
|
||||||
|
|
||||||
typedef struct DCTContext DCTContext;
|
|
||||||
|
|
||||||
enum DCTTransformType {
|
|
||||||
DCT_II = 0,
|
|
||||||
DCT_III,
|
|
||||||
DCT_I,
|
|
||||||
DST_I,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set up DCT.
|
|
||||||
*
|
|
||||||
* @param nbits size of the input array:
|
|
||||||
* (1 << nbits) for DCT-II, DCT-III and DST-I
|
|
||||||
* (1 << nbits) + 1 for DCT-I
|
|
||||||
* @param type the type of transform
|
|
||||||
*
|
|
||||||
* @note the first element of the input of DST-I is ignored
|
|
||||||
*/
|
|
||||||
DCTContext *av_dct_init(int nbits, enum DCTTransformType type);
|
|
||||||
void av_dct_calc(DCTContext *s, FFTSample *data);
|
|
||||||
void av_dct_end (DCTContext *s);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVCODEC_AVFFT_H */
|
|
112
Externals/ffmpeg/include/libavcodec/d3d11va.h
vendored
112
Externals/ffmpeg/include/libavcodec/d3d11va.h
vendored
@ -1,112 +0,0 @@
|
|||||||
/*
|
|
||||||
* Direct3D11 HW acceleration
|
|
||||||
*
|
|
||||||
* copyright (c) 2009 Laurent Aimar
|
|
||||||
* copyright (c) 2015 Steve Lhomme
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_D3D11VA_H
|
|
||||||
#define AVCODEC_D3D11VA_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_codec_hwaccel_d3d11va
|
|
||||||
* Public libavcodec D3D11VA header.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602
|
|
||||||
#undef _WIN32_WINNT
|
|
||||||
#define _WIN32_WINNT 0x0602
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <d3d11.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavc_codec_hwaccel_d3d11va Direct3D11
|
|
||||||
* @ingroup lavc_codec_hwaccel
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for Direct3D11 and old UVD/UVD+ ATI video cards
|
|
||||||
#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for Direct3D11 and old Intel GPUs with ClearVideo interface
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This structure is used to provides the necessary configurations and data
|
|
||||||
* to the Direct3D11 FFmpeg HWAccel implementation.
|
|
||||||
*
|
|
||||||
* The application must make it available as AVCodecContext.hwaccel_context.
|
|
||||||
*
|
|
||||||
* Use av_d3d11va_alloc_context() exclusively to allocate an AVD3D11VAContext.
|
|
||||||
*/
|
|
||||||
typedef struct AVD3D11VAContext {
|
|
||||||
/**
|
|
||||||
* D3D11 decoder object
|
|
||||||
*/
|
|
||||||
ID3D11VideoDecoder *decoder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* D3D11 VideoContext
|
|
||||||
*/
|
|
||||||
ID3D11VideoContext *video_context;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* D3D11 configuration used to create the decoder
|
|
||||||
*/
|
|
||||||
D3D11_VIDEO_DECODER_CONFIG *cfg;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The number of surface in the surface array
|
|
||||||
*/
|
|
||||||
unsigned surface_count;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The array of Direct3D surfaces used to create the decoder
|
|
||||||
*/
|
|
||||||
ID3D11VideoDecoderOutputView **surface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A bit field configuring the workarounds needed for using the decoder
|
|
||||||
*/
|
|
||||||
uint64_t workaround;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Private to the FFmpeg AVHWAccel implementation
|
|
||||||
*/
|
|
||||||
unsigned report_id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mutex to access video_context
|
|
||||||
*/
|
|
||||||
HANDLE context_mutex;
|
|
||||||
} AVD3D11VAContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate an AVD3D11VAContext.
|
|
||||||
*
|
|
||||||
* @return Newly-allocated AVD3D11VAContext or NULL on failure.
|
|
||||||
*/
|
|
||||||
AVD3D11VAContext *av_d3d11va_alloc_context(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVCODEC_D3D11VA_H */
|
|
131
Externals/ffmpeg/include/libavcodec/dirac.h
vendored
131
Externals/ffmpeg/include/libavcodec/dirac.h
vendored
@ -1,131 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2007 Marco Gerards <marco@gnu.org>
|
|
||||||
* Copyright (C) 2009 David Conrad
|
|
||||||
* Copyright (C) 2011 Jordi Ortiz
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_DIRAC_H
|
|
||||||
#define AVCODEC_DIRAC_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* Interface to Dirac Decoder/Encoder
|
|
||||||
* @author Marco Gerards <marco@gnu.org>
|
|
||||||
* @author David Conrad
|
|
||||||
* @author Jordi Ortiz
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "avcodec.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The spec limits the number of wavelet decompositions to 4 for both
|
|
||||||
* level 1 (VC-2) and 128 (long-gop default).
|
|
||||||
* 5 decompositions is the maximum before >16-bit buffers are needed.
|
|
||||||
* Schroedinger allows this for DD 9,7 and 13,7 wavelets only, limiting
|
|
||||||
* the others to 4 decompositions (or 3 for the fidelity filter).
|
|
||||||
*
|
|
||||||
* We use this instead of MAX_DECOMPOSITIONS to save some memory.
|
|
||||||
*/
|
|
||||||
#define MAX_DWT_LEVELS 5
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse code values:
|
|
||||||
*
|
|
||||||
* Dirac Specification ->
|
|
||||||
* 9.6.1 Table 9.1
|
|
||||||
*
|
|
||||||
* VC-2 Specification ->
|
|
||||||
* 10.4.1 Table 10.1
|
|
||||||
*/
|
|
||||||
|
|
||||||
enum DiracParseCodes {
|
|
||||||
DIRAC_PCODE_SEQ_HEADER = 0x00,
|
|
||||||
DIRAC_PCODE_END_SEQ = 0x10,
|
|
||||||
DIRAC_PCODE_AUX = 0x20,
|
|
||||||
DIRAC_PCODE_PAD = 0x30,
|
|
||||||
DIRAC_PCODE_PICTURE_CODED = 0x08,
|
|
||||||
DIRAC_PCODE_PICTURE_RAW = 0x48,
|
|
||||||
DIRAC_PCODE_PICTURE_LOW_DEL = 0xC8,
|
|
||||||
DIRAC_PCODE_PICTURE_HQ = 0xE8,
|
|
||||||
DIRAC_PCODE_INTER_NOREF_CO1 = 0x0A,
|
|
||||||
DIRAC_PCODE_INTER_NOREF_CO2 = 0x09,
|
|
||||||
DIRAC_PCODE_INTER_REF_CO1 = 0x0D,
|
|
||||||
DIRAC_PCODE_INTER_REF_CO2 = 0x0E,
|
|
||||||
DIRAC_PCODE_INTRA_REF_CO = 0x0C,
|
|
||||||
DIRAC_PCODE_INTRA_REF_RAW = 0x4C,
|
|
||||||
DIRAC_PCODE_INTRA_REF_PICT = 0xCC,
|
|
||||||
DIRAC_PCODE_MAGIC = 0x42424344,
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct DiracVersionInfo {
|
|
||||||
int major;
|
|
||||||
int minor;
|
|
||||||
} DiracVersionInfo;
|
|
||||||
|
|
||||||
typedef struct AVDiracSeqHeader {
|
|
||||||
unsigned width;
|
|
||||||
unsigned height;
|
|
||||||
uint8_t chroma_format; ///< 0: 444 1: 422 2: 420
|
|
||||||
|
|
||||||
uint8_t interlaced;
|
|
||||||
uint8_t top_field_first;
|
|
||||||
|
|
||||||
uint8_t frame_rate_index; ///< index into dirac_frame_rate[]
|
|
||||||
uint8_t aspect_ratio_index; ///< index into dirac_aspect_ratio[]
|
|
||||||
|
|
||||||
uint16_t clean_width;
|
|
||||||
uint16_t clean_height;
|
|
||||||
uint16_t clean_left_offset;
|
|
||||||
uint16_t clean_right_offset;
|
|
||||||
|
|
||||||
uint8_t pixel_range_index; ///< index into dirac_pixel_range_presets[]
|
|
||||||
uint8_t color_spec_index; ///< index into dirac_color_spec_presets[]
|
|
||||||
|
|
||||||
int profile;
|
|
||||||
int level;
|
|
||||||
|
|
||||||
AVRational framerate;
|
|
||||||
AVRational sample_aspect_ratio;
|
|
||||||
|
|
||||||
enum AVPixelFormat pix_fmt;
|
|
||||||
enum AVColorRange color_range;
|
|
||||||
enum AVColorPrimaries color_primaries;
|
|
||||||
enum AVColorTransferCharacteristic color_trc;
|
|
||||||
enum AVColorSpace colorspace;
|
|
||||||
|
|
||||||
DiracVersionInfo version;
|
|
||||||
int bit_depth;
|
|
||||||
} AVDiracSeqHeader;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse a Dirac sequence header.
|
|
||||||
*
|
|
||||||
* @param dsh this function will allocate and fill an AVDiracSeqHeader struct
|
|
||||||
* and write it into this pointer. The caller must free it with
|
|
||||||
* av_free().
|
|
||||||
* @param buf the data buffer
|
|
||||||
* @param buf_size the size of the data buffer in bytes
|
|
||||||
* @param log_ctx if non-NULL, this function will log errors here
|
|
||||||
* @return 0 on success, a negative AVERROR code on failure
|
|
||||||
*/
|
|
||||||
int av_dirac_parse_sequence_header(AVDiracSeqHeader **dsh,
|
|
||||||
const uint8_t *buf, size_t buf_size,
|
|
||||||
void *log_ctx);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_DIRAC_H */
|
|
83
Externals/ffmpeg/include/libavcodec/dv_profile.h
vendored
83
Externals/ffmpeg/include/libavcodec/dv_profile.h
vendored
@ -1,83 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_DV_PROFILE_H
|
|
||||||
#define AVCODEC_DV_PROFILE_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include "libavutil/pixfmt.h"
|
|
||||||
#include "libavutil/rational.h"
|
|
||||||
#include "avcodec.h"
|
|
||||||
|
|
||||||
/* minimum number of bytes to read from a DV stream in order to
|
|
||||||
* determine the profile */
|
|
||||||
#define DV_PROFILE_BYTES (6 * 80) /* 6 DIF blocks */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* AVDVProfile is used to express the differences between various
|
|
||||||
* DV flavors. For now it's primarily used for differentiating
|
|
||||||
* 525/60 and 625/50, but the plans are to use it for various
|
|
||||||
* DV specs as well (e.g. SMPTE314M vs. IEC 61834).
|
|
||||||
*/
|
|
||||||
typedef struct AVDVProfile {
|
|
||||||
int dsf; /* value of the dsf in the DV header */
|
|
||||||
int video_stype; /* stype for VAUX source pack */
|
|
||||||
int frame_size; /* total size of one frame in bytes */
|
|
||||||
int difseg_size; /* number of DIF segments per DIF channel */
|
|
||||||
int n_difchan; /* number of DIF channels per frame */
|
|
||||||
AVRational time_base; /* 1/framerate */
|
|
||||||
int ltc_divisor; /* FPS from the LTS standpoint */
|
|
||||||
int height; /* picture height in pixels */
|
|
||||||
int width; /* picture width in pixels */
|
|
||||||
AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */
|
|
||||||
enum AVPixelFormat pix_fmt; /* picture pixel format */
|
|
||||||
int bpm; /* blocks per macroblock */
|
|
||||||
const uint8_t *block_sizes; /* AC block sizes, in bits */
|
|
||||||
int audio_stride; /* size of audio_shuffle table */
|
|
||||||
int audio_min_samples[3]; /* min amount of audio samples */
|
|
||||||
/* for 48kHz, 44.1kHz and 32kHz */
|
|
||||||
int audio_samples_dist[5]; /* how many samples are supposed to be */
|
|
||||||
/* in each frame in a 5 frames window */
|
|
||||||
const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */
|
|
||||||
} AVDVProfile;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a DV profile for the provided compressed frame.
|
|
||||||
*
|
|
||||||
* @param sys the profile used for the previous frame, may be NULL
|
|
||||||
* @param frame the compressed data buffer
|
|
||||||
* @param buf_size size of the buffer in bytes
|
|
||||||
* @return the DV profile for the supplied data or NULL on failure
|
|
||||||
*/
|
|
||||||
const AVDVProfile *av_dv_frame_profile(const AVDVProfile *sys,
|
|
||||||
const uint8_t *frame, unsigned buf_size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a DV profile for the provided stream parameters.
|
|
||||||
*/
|
|
||||||
const AVDVProfile *av_dv_codec_profile(int width, int height, enum AVPixelFormat pix_fmt);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a DV profile for the provided stream parameters.
|
|
||||||
* The frame rate is used as a best-effort parameter.
|
|
||||||
*/
|
|
||||||
const AVDVProfile *av_dv_codec_profile2(int width, int height, enum AVPixelFormat pix_fmt, AVRational frame_rate);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_DV_PROFILE_H */
|
|
93
Externals/ffmpeg/include/libavcodec/dxva2.h
vendored
93
Externals/ffmpeg/include/libavcodec/dxva2.h
vendored
@ -1,93 +0,0 @@
|
|||||||
/*
|
|
||||||
* DXVA2 HW acceleration
|
|
||||||
*
|
|
||||||
* copyright (c) 2009 Laurent Aimar
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_DXVA2_H
|
|
||||||
#define AVCODEC_DXVA2_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_codec_hwaccel_dxva2
|
|
||||||
* Public libavcodec DXVA2 header.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602
|
|
||||||
#undef _WIN32_WINNT
|
|
||||||
#define _WIN32_WINNT 0x0602
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <d3d9.h>
|
|
||||||
#include <dxva2api.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavc_codec_hwaccel_dxva2 DXVA2
|
|
||||||
* @ingroup lavc_codec_hwaccel
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards
|
|
||||||
#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for DXVA2 and old Intel GPUs with ClearVideo interface
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This structure is used to provides the necessary configurations and data
|
|
||||||
* to the DXVA2 FFmpeg HWAccel implementation.
|
|
||||||
*
|
|
||||||
* The application must make it available as AVCodecContext.hwaccel_context.
|
|
||||||
*/
|
|
||||||
struct dxva_context {
|
|
||||||
/**
|
|
||||||
* DXVA2 decoder object
|
|
||||||
*/
|
|
||||||
IDirectXVideoDecoder *decoder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DXVA2 configuration used to create the decoder
|
|
||||||
*/
|
|
||||||
const DXVA2_ConfigPictureDecode *cfg;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The number of surface in the surface array
|
|
||||||
*/
|
|
||||||
unsigned surface_count;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The array of Direct3D surfaces used to create the decoder
|
|
||||||
*/
|
|
||||||
LPDIRECT3DSURFACE9 *surface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A bit field configuring the workarounds needed for using the decoder
|
|
||||||
*/
|
|
||||||
uint64_t workaround;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Private to the FFmpeg AVHWAccel implementation
|
|
||||||
*/
|
|
||||||
unsigned report_id;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVCODEC_DXVA2_H */
|
|
46
Externals/ffmpeg/include/libavcodec/jni.h
vendored
46
Externals/ffmpeg/include/libavcodec/jni.h
vendored
@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* JNI public API functions
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015-2016 Matthieu Bouron <matthieu.bouron stupeflix.com>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_JNI_H
|
|
||||||
#define AVCODEC_JNI_H
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Manually set a Java virtual machine which will be used to retrieve the JNI
|
|
||||||
* environment. Once a Java VM is set it cannot be changed afterwards, meaning
|
|
||||||
* you can call multiple times av_jni_set_java_vm with the same Java VM pointer
|
|
||||||
* however it will error out if you try to set a different Java VM.
|
|
||||||
*
|
|
||||||
* @param vm Java virtual machine
|
|
||||||
* @param log_ctx context used for logging, can be NULL
|
|
||||||
* @return 0 on success, < 0 otherwise
|
|
||||||
*/
|
|
||||||
int av_jni_set_java_vm(void *vm, void *log_ctx);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get the Java virtual machine which has been set with av_jni_set_java_vm.
|
|
||||||
*
|
|
||||||
* @param vm Java virtual machine
|
|
||||||
* @return a pointer to the Java virtual machine
|
|
||||||
*/
|
|
||||||
void *av_jni_get_java_vm(void *log_ctx);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_JNI_H */
|
|
88
Externals/ffmpeg/include/libavcodec/mediacodec.h
vendored
88
Externals/ffmpeg/include/libavcodec/mediacodec.h
vendored
@ -1,88 +0,0 @@
|
|||||||
/*
|
|
||||||
* Android MediaCodec public API
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Matthieu Bouron <matthieu.bouron stupeflix.com>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_MEDIACODEC_H
|
|
||||||
#define AVCODEC_MEDIACODEC_H
|
|
||||||
|
|
||||||
#include "libavcodec/avcodec.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This structure holds a reference to a android/view/Surface object that will
|
|
||||||
* be used as output by the decoder.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
typedef struct AVMediaCodecContext {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* android/view/Surface object reference.
|
|
||||||
*/
|
|
||||||
void *surface;
|
|
||||||
|
|
||||||
} AVMediaCodecContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate and initialize a MediaCodec context.
|
|
||||||
*
|
|
||||||
* When decoding with MediaCodec is finished, the caller must free the
|
|
||||||
* MediaCodec context with av_mediacodec_default_free.
|
|
||||||
*
|
|
||||||
* @return a pointer to a newly allocated AVMediaCodecContext on success, NULL otherwise
|
|
||||||
*/
|
|
||||||
AVMediaCodecContext *av_mediacodec_alloc_context(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convenience function that sets up the MediaCodec context.
|
|
||||||
*
|
|
||||||
* @param avctx codec context
|
|
||||||
* @param ctx MediaCodec context to initialize
|
|
||||||
* @param surface reference to an android/view/Surface
|
|
||||||
* @return 0 on success, < 0 otherwise
|
|
||||||
*/
|
|
||||||
int av_mediacodec_default_init(AVCodecContext *avctx, AVMediaCodecContext *ctx, void *surface);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function must be called to free the MediaCodec context initialized with
|
|
||||||
* av_mediacodec_default_init().
|
|
||||||
*
|
|
||||||
* @param avctx codec context
|
|
||||||
*/
|
|
||||||
void av_mediacodec_default_free(AVCodecContext *avctx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Opaque structure representing a MediaCodec buffer to render.
|
|
||||||
*/
|
|
||||||
typedef struct MediaCodecBuffer AVMediaCodecBuffer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Release a MediaCodec buffer and render it to the surface that is associated
|
|
||||||
* with the decoder. This function should only be called once on a given
|
|
||||||
* buffer, once released the underlying buffer returns to the codec, thus
|
|
||||||
* subsequent calls to this function will have no effect.
|
|
||||||
*
|
|
||||||
* @param buffer the buffer to render
|
|
||||||
* @param render 1 to release and render the buffer to the surface or 0 to
|
|
||||||
* discard the buffer
|
|
||||||
* @return 0 on success, < 0 otherwise
|
|
||||||
*/
|
|
||||||
int av_mediacodec_release_buffer(AVMediaCodecBuffer *buffer, int render);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_MEDIACODEC_H */
|
|
107
Externals/ffmpeg/include/libavcodec/qsv.h
vendored
107
Externals/ffmpeg/include/libavcodec/qsv.h
vendored
@ -1,107 +0,0 @@
|
|||||||
/*
|
|
||||||
* Intel MediaSDK QSV public API
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_QSV_H
|
|
||||||
#define AVCODEC_QSV_H
|
|
||||||
|
|
||||||
#include <mfx/mfxvideo.h>
|
|
||||||
|
|
||||||
#include "libavutil/buffer.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This struct is used for communicating QSV parameters between libavcodec and
|
|
||||||
* the caller. It is managed by the caller and must be assigned to
|
|
||||||
* AVCodecContext.hwaccel_context.
|
|
||||||
* - decoding: hwaccel_context must be set on return from the get_format()
|
|
||||||
* callback
|
|
||||||
* - encoding: hwaccel_context must be set before avcodec_open2()
|
|
||||||
*/
|
|
||||||
typedef struct AVQSVContext {
|
|
||||||
/**
|
|
||||||
* If non-NULL, the session to use for encoding or decoding.
|
|
||||||
* Otherwise, libavcodec will try to create an internal session.
|
|
||||||
*/
|
|
||||||
mfxSession session;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The IO pattern to use.
|
|
||||||
*/
|
|
||||||
int iopattern;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extra buffers to pass to encoder or decoder initialization.
|
|
||||||
*/
|
|
||||||
mfxExtBuffer **ext_buffers;
|
|
||||||
int nb_ext_buffers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encoding only. If this field is set to non-zero by the caller, libavcodec
|
|
||||||
* will create an mfxExtOpaqueSurfaceAlloc extended buffer and pass it to
|
|
||||||
* the encoder initialization. This only makes sense if iopattern is also
|
|
||||||
* set to MFX_IOPATTERN_IN_OPAQUE_MEMORY.
|
|
||||||
*
|
|
||||||
* The number of allocated opaque surfaces will be the sum of the number
|
|
||||||
* required by the encoder and the user-provided value nb_opaque_surfaces.
|
|
||||||
* The array of the opaque surfaces will be exported to the caller through
|
|
||||||
* the opaque_surfaces field.
|
|
||||||
*/
|
|
||||||
int opaque_alloc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encoding only, and only if opaque_alloc is set to non-zero. Before
|
|
||||||
* calling avcodec_open2(), the caller should set this field to the number
|
|
||||||
* of extra opaque surfaces to allocate beyond what is required by the
|
|
||||||
* encoder.
|
|
||||||
*
|
|
||||||
* On return from avcodec_open2(), this field will be set by libavcodec to
|
|
||||||
* the total number of allocated opaque surfaces.
|
|
||||||
*/
|
|
||||||
int nb_opaque_surfaces;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encoding only, and only if opaque_alloc is set to non-zero. On return
|
|
||||||
* from avcodec_open2(), this field will be used by libavcodec to export the
|
|
||||||
* array of the allocated opaque surfaces to the caller, so they can be
|
|
||||||
* passed to other parts of the pipeline.
|
|
||||||
*
|
|
||||||
* The buffer reference exported here is owned and managed by libavcodec,
|
|
||||||
* the callers should make their own reference with av_buffer_ref() and free
|
|
||||||
* it with av_buffer_unref() when it is no longer needed.
|
|
||||||
*
|
|
||||||
* The buffer data is an nb_opaque_surfaces-sized array of mfxFrameSurface1.
|
|
||||||
*/
|
|
||||||
AVBufferRef *opaque_surfaces;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encoding only, and only if opaque_alloc is set to non-zero. On return
|
|
||||||
* from avcodec_open2(), this field will be set to the surface type used in
|
|
||||||
* the opaque allocation request.
|
|
||||||
*/
|
|
||||||
int opaque_alloc_type;
|
|
||||||
} AVQSVContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate a new context.
|
|
||||||
*
|
|
||||||
* It must be freed by the caller with av_free().
|
|
||||||
*/
|
|
||||||
AVQSVContext *av_qsv_alloc_context(void);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_QSV_H */
|
|
189
Externals/ffmpeg/include/libavcodec/vaapi.h
vendored
189
Externals/ffmpeg/include/libavcodec/vaapi.h
vendored
@ -1,189 +0,0 @@
|
|||||||
/*
|
|
||||||
* Video Acceleration API (shared data between FFmpeg and the video player)
|
|
||||||
* HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1
|
|
||||||
*
|
|
||||||
* Copyright (C) 2008-2009 Splitted-Desktop Systems
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_VAAPI_H
|
|
||||||
#define AVCODEC_VAAPI_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_codec_hwaccel_vaapi
|
|
||||||
* Public libavcodec VA API header.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include "libavutil/attributes.h"
|
|
||||||
#include "version.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavc_codec_hwaccel_vaapi VA API Decoding
|
|
||||||
* @ingroup lavc_codec_hwaccel
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This structure is used to share data between the FFmpeg library and
|
|
||||||
* the client video application.
|
|
||||||
* This shall be zero-allocated and available as
|
|
||||||
* AVCodecContext.hwaccel_context. All user members can be set once
|
|
||||||
* during initialization or through each AVCodecContext.get_buffer()
|
|
||||||
* function call. In any case, they must be valid prior to calling
|
|
||||||
* decoding functions.
|
|
||||||
*/
|
|
||||||
struct vaapi_context {
|
|
||||||
/**
|
|
||||||
* Window system dependent data
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by user
|
|
||||||
*/
|
|
||||||
void *display;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Configuration ID
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by user
|
|
||||||
*/
|
|
||||||
uint32_t config_id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Context ID (video decode pipeline)
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by user
|
|
||||||
*/
|
|
||||||
uint32_t context_id;
|
|
||||||
|
|
||||||
#if FF_API_VAAPI_CONTEXT
|
|
||||||
/**
|
|
||||||
* VAPictureParameterBuffer ID
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
uint32_t pic_param_buf_id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* VAIQMatrixBuffer ID
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
uint32_t iq_matrix_buf_id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* VABitPlaneBuffer ID (for VC-1 decoding)
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
uint32_t bitplane_buf_id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Slice parameter/data buffer IDs
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
uint32_t *slice_buf_ids;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Number of effective slice buffer IDs to send to the HW
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
unsigned int n_slice_buf_ids;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Size of pre-allocated slice_buf_ids
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
unsigned int slice_buf_ids_alloc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Pointer to VASliceParameterBuffers
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
void *slice_params;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Size of a VASliceParameterBuffer element
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
unsigned int slice_param_size;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Size of pre-allocated slice_params
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
unsigned int slice_params_alloc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Number of slices currently filled in
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
unsigned int slice_count;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Pointer to slice data buffer base
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
const uint8_t *slice_data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Current size of slice data
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set by libavcodec
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
uint32_t slice_data_size;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
/* @} */
|
|
||||||
|
|
||||||
#endif /* AVCODEC_VAAPI_H */
|
|
230
Externals/ffmpeg/include/libavcodec/vda.h
vendored
230
Externals/ffmpeg/include/libavcodec/vda.h
vendored
@ -1,230 +0,0 @@
|
|||||||
/*
|
|
||||||
* VDA HW acceleration
|
|
||||||
*
|
|
||||||
* copyright (c) 2011 Sebastien Zwickert
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_VDA_H
|
|
||||||
#define AVCODEC_VDA_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_codec_hwaccel_vda
|
|
||||||
* Public libavcodec VDA header.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "libavcodec/avcodec.h"
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
// emmintrin.h is unable to compile with -std=c99 -Werror=missing-prototypes
|
|
||||||
// http://openradar.appspot.com/8026390
|
|
||||||
#undef __GNUC_STDC_INLINE__
|
|
||||||
|
|
||||||
#define Picture QuickdrawPicture
|
|
||||||
#include <VideoDecodeAcceleration/VDADecoder.h>
|
|
||||||
#undef Picture
|
|
||||||
|
|
||||||
#include "libavcodec/version.h"
|
|
||||||
|
|
||||||
// extra flags not defined in VDADecoder.h
|
|
||||||
enum {
|
|
||||||
kVDADecodeInfo_Asynchronous = 1UL << 0,
|
|
||||||
kVDADecodeInfo_FrameDropped = 1UL << 1
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavc_codec_hwaccel_vda VDA
|
|
||||||
* @ingroup lavc_codec_hwaccel
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This structure is used to provide the necessary configurations and data
|
|
||||||
* to the VDA FFmpeg HWAccel implementation.
|
|
||||||
*
|
|
||||||
* The application must make it available as AVCodecContext.hwaccel_context.
|
|
||||||
*/
|
|
||||||
struct vda_context {
|
|
||||||
/**
|
|
||||||
* VDA decoder object.
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set/Unset by libavcodec.
|
|
||||||
*/
|
|
||||||
VDADecoder decoder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The Core Video pixel buffer that contains the current image data.
|
|
||||||
*
|
|
||||||
* encoding: unused
|
|
||||||
* decoding: Set by libavcodec. Unset by user.
|
|
||||||
*/
|
|
||||||
CVPixelBufferRef cv_buffer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use the hardware decoder in synchronous mode.
|
|
||||||
*
|
|
||||||
* encoding: unused
|
|
||||||
* decoding: Set by user.
|
|
||||||
*/
|
|
||||||
int use_sync_decoding;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The frame width.
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set/Unset by user.
|
|
||||||
*/
|
|
||||||
int width;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The frame height.
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set/Unset by user.
|
|
||||||
*/
|
|
||||||
int height;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The frame format.
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set/Unset by user.
|
|
||||||
*/
|
|
||||||
int format;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The pixel format for output image buffers.
|
|
||||||
*
|
|
||||||
* - encoding: unused
|
|
||||||
* - decoding: Set/Unset by user.
|
|
||||||
*/
|
|
||||||
OSType cv_pix_fmt_type;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* unused
|
|
||||||
*/
|
|
||||||
uint8_t *priv_bitstream;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* unused
|
|
||||||
*/
|
|
||||||
int priv_bitstream_size;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* unused
|
|
||||||
*/
|
|
||||||
int priv_allocated_size;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use av_buffer to manage buffer.
|
|
||||||
* When the flag is set, the CVPixelBuffers returned by the decoder will
|
|
||||||
* be released automatically, so you have to retain them if necessary.
|
|
||||||
* Not setting this flag may cause memory leak.
|
|
||||||
*
|
|
||||||
* encoding: unused
|
|
||||||
* decoding: Set by user.
|
|
||||||
*/
|
|
||||||
int use_ref_buffer;
|
|
||||||
};
|
|
||||||
|
|
||||||
/** Create the video decoder. */
|
|
||||||
int ff_vda_create_decoder(struct vda_context *vda_ctx,
|
|
||||||
uint8_t *extradata,
|
|
||||||
int extradata_size);
|
|
||||||
|
|
||||||
/** Destroy the video decoder. */
|
|
||||||
int ff_vda_destroy_decoder(struct vda_context *vda_ctx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This struct holds all the information that needs to be passed
|
|
||||||
* between the caller and libavcodec for initializing VDA decoding.
|
|
||||||
* Its size is not a part of the public ABI, it must be allocated with
|
|
||||||
* av_vda_alloc_context() and freed with av_free().
|
|
||||||
*/
|
|
||||||
typedef struct AVVDAContext {
|
|
||||||
/**
|
|
||||||
* VDA decoder object. Created and freed by the caller.
|
|
||||||
*/
|
|
||||||
VDADecoder decoder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The output callback that must be passed to VDADecoderCreate.
|
|
||||||
* Set by av_vda_alloc_context().
|
|
||||||
*/
|
|
||||||
VDADecoderOutputCallback output_callback;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CVPixelBuffer Format Type that VDA will use for decoded frames; set by
|
|
||||||
* the caller.
|
|
||||||
*/
|
|
||||||
OSType cv_pix_fmt_type;
|
|
||||||
} AVVDAContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate and initialize a VDA context.
|
|
||||||
*
|
|
||||||
* This function should be called from the get_format() callback when the caller
|
|
||||||
* selects the AV_PIX_FMT_VDA format. The caller must then create the decoder
|
|
||||||
* object (using the output callback provided by libavcodec) that will be used
|
|
||||||
* for VDA-accelerated decoding.
|
|
||||||
*
|
|
||||||
* When decoding with VDA is finished, the caller must destroy the decoder
|
|
||||||
* object and free the VDA context using av_free().
|
|
||||||
*
|
|
||||||
* @return the newly allocated context or NULL on failure
|
|
||||||
*/
|
|
||||||
AVVDAContext *av_vda_alloc_context(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a convenience function that creates and sets up the VDA context using
|
|
||||||
* an internal implementation.
|
|
||||||
*
|
|
||||||
* @param avctx the corresponding codec context
|
|
||||||
*
|
|
||||||
* @return >= 0 on success, a negative AVERROR code on failure
|
|
||||||
*/
|
|
||||||
int av_vda_default_init(AVCodecContext *avctx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a convenience function that creates and sets up the VDA context using
|
|
||||||
* an internal implementation.
|
|
||||||
*
|
|
||||||
* @param avctx the corresponding codec context
|
|
||||||
* @param vdactx the VDA context to use
|
|
||||||
*
|
|
||||||
* @return >= 0 on success, a negative AVERROR code on failure
|
|
||||||
*/
|
|
||||||
int av_vda_default_init2(AVCodecContext *avctx, AVVDAContext *vdactx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function must be called to free the VDA context initialized with
|
|
||||||
* av_vda_default_init().
|
|
||||||
*
|
|
||||||
* @param avctx the corresponding codec context
|
|
||||||
*/
|
|
||||||
void av_vda_default_free(AVCodecContext *avctx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVCODEC_VDA_H */
|
|
253
Externals/ffmpeg/include/libavcodec/vdpau.h
vendored
253
Externals/ffmpeg/include/libavcodec/vdpau.h
vendored
@ -1,253 +0,0 @@
|
|||||||
/*
|
|
||||||
* The Video Decode and Presentation API for UNIX (VDPAU) is used for
|
|
||||||
* hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2008 NVIDIA
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_VDPAU_H
|
|
||||||
#define AVCODEC_VDPAU_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_codec_hwaccel_vdpau
|
|
||||||
* Public libavcodec VDPAU header.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavc_codec_hwaccel_vdpau VDPAU Decoder and Renderer
|
|
||||||
* @ingroup lavc_codec_hwaccel
|
|
||||||
*
|
|
||||||
* VDPAU hardware acceleration has two modules
|
|
||||||
* - VDPAU decoding
|
|
||||||
* - VDPAU presentation
|
|
||||||
*
|
|
||||||
* The VDPAU decoding module parses all headers using FFmpeg
|
|
||||||
* parsing mechanisms and uses VDPAU for the actual decoding.
|
|
||||||
*
|
|
||||||
* As per the current implementation, the actual decoding
|
|
||||||
* and rendering (API calls) are done as part of the VDPAU
|
|
||||||
* presentation (vo_vdpau.c) module.
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <vdpau/vdpau.h>
|
|
||||||
#include <vdpau/vdpau_x11.h>
|
|
||||||
#include "libavutil/avconfig.h"
|
|
||||||
#include "libavutil/attributes.h"
|
|
||||||
|
|
||||||
#include "avcodec.h"
|
|
||||||
#include "version.h"
|
|
||||||
|
|
||||||
#if FF_API_BUFS_VDPAU
|
|
||||||
union AVVDPAUPictureInfo {
|
|
||||||
VdpPictureInfoH264 h264;
|
|
||||||
VdpPictureInfoMPEG1Or2 mpeg;
|
|
||||||
VdpPictureInfoVC1 vc1;
|
|
||||||
VdpPictureInfoMPEG4Part2 mpeg4;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct AVCodecContext;
|
|
||||||
struct AVFrame;
|
|
||||||
|
|
||||||
typedef int (*AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *,
|
|
||||||
const VdpPictureInfo *, uint32_t,
|
|
||||||
const VdpBitstreamBuffer *);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This structure is used to share data between the libavcodec library and
|
|
||||||
* the client video application.
|
|
||||||
* The user shall allocate the structure via the av_alloc_vdpau_hwaccel
|
|
||||||
* function and make it available as
|
|
||||||
* AVCodecContext.hwaccel_context. Members can be set by the user once
|
|
||||||
* during initialization or through each AVCodecContext.get_buffer()
|
|
||||||
* function call. In any case, they must be valid prior to calling
|
|
||||||
* decoding functions.
|
|
||||||
*
|
|
||||||
* The size of this structure is not a part of the public ABI and must not
|
|
||||||
* be used outside of libavcodec. Use av_vdpau_alloc_context() to allocate an
|
|
||||||
* AVVDPAUContext.
|
|
||||||
*/
|
|
||||||
typedef struct AVVDPAUContext {
|
|
||||||
/**
|
|
||||||
* VDPAU decoder handle
|
|
||||||
*
|
|
||||||
* Set by user.
|
|
||||||
*/
|
|
||||||
VdpDecoder decoder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* VDPAU decoder render callback
|
|
||||||
*
|
|
||||||
* Set by the user.
|
|
||||||
*/
|
|
||||||
VdpDecoderRender *render;
|
|
||||||
|
|
||||||
#if FF_API_BUFS_VDPAU
|
|
||||||
/**
|
|
||||||
* VDPAU picture information
|
|
||||||
*
|
|
||||||
* Set by libavcodec.
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
union AVVDPAUPictureInfo info;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocated size of the bitstream_buffers table.
|
|
||||||
*
|
|
||||||
* Set by libavcodec.
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
int bitstream_buffers_allocated;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Useful bitstream buffers in the bitstream buffers table.
|
|
||||||
*
|
|
||||||
* Set by libavcodec.
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
int bitstream_buffers_used;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Table of bitstream buffers.
|
|
||||||
* The user is responsible for freeing this buffer using av_freep().
|
|
||||||
*
|
|
||||||
* Set by libavcodec.
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
VdpBitstreamBuffer *bitstream_buffers;
|
|
||||||
#endif
|
|
||||||
AVVDPAU_Render2 render2;
|
|
||||||
} AVVDPAUContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief allocation function for AVVDPAUContext
|
|
||||||
*
|
|
||||||
* Allows extending the struct without breaking API/ABI
|
|
||||||
*/
|
|
||||||
AVVDPAUContext *av_alloc_vdpaucontext(void);
|
|
||||||
|
|
||||||
AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *);
|
|
||||||
void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Associate a VDPAU device with a codec context for hardware acceleration.
|
|
||||||
* This function is meant to be called from the get_format() codec callback,
|
|
||||||
* or earlier. It can also be called after avcodec_flush_buffers() to change
|
|
||||||
* the underlying VDPAU device mid-stream (e.g. to recover from non-transparent
|
|
||||||
* display preemption).
|
|
||||||
*
|
|
||||||
* @note get_format() must return AV_PIX_FMT_VDPAU if this function completes
|
|
||||||
* successfully.
|
|
||||||
*
|
|
||||||
* @param avctx decoding context whose get_format() callback is invoked
|
|
||||||
* @param device VDPAU device handle to use for hardware acceleration
|
|
||||||
* @param get_proc_address VDPAU device driver
|
|
||||||
* @param flags zero of more OR'd AV_HWACCEL_FLAG_* flags
|
|
||||||
*
|
|
||||||
* @return 0 on success, an AVERROR code on failure.
|
|
||||||
*/
|
|
||||||
int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
|
|
||||||
VdpGetProcAddress *get_proc_address, unsigned flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the parameters to create an adequate VDPAU video surface for the codec
|
|
||||||
* context using VDPAU hardware decoding acceleration.
|
|
||||||
*
|
|
||||||
* @note Behavior is undefined if the context was not successfully bound to a
|
|
||||||
* VDPAU device using av_vdpau_bind_context().
|
|
||||||
*
|
|
||||||
* @param avctx the codec context being used for decoding the stream
|
|
||||||
* @param type storage space for the VDPAU video surface chroma type
|
|
||||||
* (or NULL to ignore)
|
|
||||||
* @param width storage space for the VDPAU video surface pixel width
|
|
||||||
* (or NULL to ignore)
|
|
||||||
* @param height storage space for the VDPAU video surface pixel height
|
|
||||||
* (or NULL to ignore)
|
|
||||||
*
|
|
||||||
* @return 0 on success, a negative AVERROR code on failure.
|
|
||||||
*/
|
|
||||||
int av_vdpau_get_surface_parameters(AVCodecContext *avctx, VdpChromaType *type,
|
|
||||||
uint32_t *width, uint32_t *height);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate an AVVDPAUContext.
|
|
||||||
*
|
|
||||||
* @return Newly-allocated AVVDPAUContext or NULL on failure.
|
|
||||||
*/
|
|
||||||
AVVDPAUContext *av_vdpau_alloc_context(void);
|
|
||||||
|
|
||||||
#if FF_API_VDPAU_PROFILE
|
|
||||||
/**
|
|
||||||
* Get a decoder profile that should be used for initializing a VDPAU decoder.
|
|
||||||
* Should be called from the AVCodecContext.get_format() callback.
|
|
||||||
*
|
|
||||||
* @deprecated Use av_vdpau_bind_context() instead.
|
|
||||||
*
|
|
||||||
* @param avctx the codec context being used for decoding the stream
|
|
||||||
* @param profile a pointer into which the result will be written on success.
|
|
||||||
* The contents of profile are undefined if this function returns
|
|
||||||
* an error.
|
|
||||||
*
|
|
||||||
* @return 0 on success (non-negative), a negative AVERROR on failure.
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if FF_API_CAP_VDPAU
|
|
||||||
/** @brief The videoSurface is used for rendering. */
|
|
||||||
#define FF_VDPAU_STATE_USED_FOR_RENDER 1
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief The videoSurface is needed for reference/prediction.
|
|
||||||
* The codec manipulates this.
|
|
||||||
*/
|
|
||||||
#define FF_VDPAU_STATE_USED_FOR_REFERENCE 2
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief This structure is used as a callback between the FFmpeg
|
|
||||||
* decoder (vd_) and presentation (vo_) module.
|
|
||||||
* This is used for defining a video frame containing surface,
|
|
||||||
* picture parameter, bitstream information etc which are passed
|
|
||||||
* between the FFmpeg decoder and its clients.
|
|
||||||
*/
|
|
||||||
struct vdpau_render_state {
|
|
||||||
VdpVideoSurface surface; ///< Used as rendered surface, never changed.
|
|
||||||
|
|
||||||
int state; ///< Holds FF_VDPAU_STATE_* values.
|
|
||||||
|
|
||||||
/** picture parameter information for all supported codecs */
|
|
||||||
union AVVDPAUPictureInfo info;
|
|
||||||
|
|
||||||
/** Describe size/location of the compressed video data.
|
|
||||||
Set to 0 when freeing bitstream_buffers. */
|
|
||||||
int bitstream_buffers_allocated;
|
|
||||||
int bitstream_buffers_used;
|
|
||||||
/** The user is responsible for freeing this buffer using av_freep(). */
|
|
||||||
VdpBitstreamBuffer *bitstream_buffers;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* @}*/
|
|
||||||
|
|
||||||
#endif /* AVCODEC_VDPAU_H */
|
|
230
Externals/ffmpeg/include/libavcodec/version.h
vendored
230
Externals/ffmpeg/include/libavcodec/version.h
vendored
@ -1,230 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_VERSION_H
|
|
||||||
#define AVCODEC_VERSION_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup libavc
|
|
||||||
* Libavcodec version macros.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "libavutil/version.h"
|
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 57
|
|
||||||
#define LIBAVCODEC_VERSION_MINOR 64
|
|
||||||
#define LIBAVCODEC_VERSION_MICRO 101
|
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
|
||||||
LIBAVCODEC_VERSION_MINOR, \
|
|
||||||
LIBAVCODEC_VERSION_MICRO)
|
|
||||||
#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \
|
|
||||||
LIBAVCODEC_VERSION_MINOR, \
|
|
||||||
LIBAVCODEC_VERSION_MICRO)
|
|
||||||
#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
|
|
||||||
|
|
||||||
#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FF_API_* defines may be placed below to indicate public API that will be
|
|
||||||
* dropped at a future version bump. The defines themselves are not part of
|
|
||||||
* the public API and may change, break or disappear at any time.
|
|
||||||
*
|
|
||||||
* @note, when bumping the major version it is recommended to manually
|
|
||||||
* disable each FF_API_* in its own commit instead of disabling them all
|
|
||||||
* at once through the bump. This improves the git bisect-ability of the change.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef FF_API_VIMA_DECODER
|
|
||||||
#define FF_API_VIMA_DECODER (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AUDIO_CONVERT
|
|
||||||
#define FF_API_AUDIO_CONVERT (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AVCODEC_RESAMPLE
|
|
||||||
#define FF_API_AVCODEC_RESAMPLE FF_API_AUDIO_CONVERT
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_GETCHROMA
|
|
||||||
#define FF_API_GETCHROMA (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_MISSING_SAMPLE
|
|
||||||
#define FF_API_MISSING_SAMPLE (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_LOWRES
|
|
||||||
#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_CAP_VDPAU
|
|
||||||
#define FF_API_CAP_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_BUFS_VDPAU
|
|
||||||
#define FF_API_BUFS_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_VOXWARE
|
|
||||||
#define FF_API_VOXWARE (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_SET_DIMENSIONS
|
|
||||||
#define FF_API_SET_DIMENSIONS (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_DEBUG_MV
|
|
||||||
#define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AC_VLC
|
|
||||||
#define FF_API_AC_VLC (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_OLD_MSMPEG4
|
|
||||||
#define FF_API_OLD_MSMPEG4 (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_ASPECT_EXTENDED
|
|
||||||
#define FF_API_ASPECT_EXTENDED (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_ARCH_ALPHA
|
|
||||||
#define FF_API_ARCH_ALPHA (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_XVMC
|
|
||||||
#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_ERROR_RATE
|
|
||||||
#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_QSCALE_TYPE
|
|
||||||
#define FF_API_QSCALE_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_MB_TYPE
|
|
||||||
#define FF_API_MB_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_MAX_BFRAMES
|
|
||||||
#define FF_API_MAX_BFRAMES (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_NEG_LINESIZES
|
|
||||||
#define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_EMU_EDGE
|
|
||||||
#define FF_API_EMU_EDGE (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_ARCH_SH4
|
|
||||||
#define FF_API_ARCH_SH4 (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_ARCH_SPARC
|
|
||||||
#define FF_API_ARCH_SPARC (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_UNUSED_MEMBERS
|
|
||||||
#define FF_API_UNUSED_MEMBERS (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_IDCT_XVIDMMX
|
|
||||||
#define FF_API_IDCT_XVIDMMX (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_INPUT_PRESERVED
|
|
||||||
#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_NORMALIZE_AQP
|
|
||||||
#define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_GMC
|
|
||||||
#define FF_API_GMC (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_MV0
|
|
||||||
#define FF_API_MV0 (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_CODEC_NAME
|
|
||||||
#define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AFD
|
|
||||||
#define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_VISMV
|
|
||||||
/* XXX: don't forget to drop the -vismv documentation */
|
|
||||||
#define FF_API_VISMV (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AUDIOENC_DELAY
|
|
||||||
#define FF_API_AUDIOENC_DELAY (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_VAAPI_CONTEXT
|
|
||||||
#define FF_API_VAAPI_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AVCTX_TIMEBASE
|
|
||||||
#define FF_API_AVCTX_TIMEBASE (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_MPV_OPT
|
|
||||||
#define FF_API_MPV_OPT (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_STREAM_CODEC_TAG
|
|
||||||
#define FF_API_STREAM_CODEC_TAG (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_QUANT_BIAS
|
|
||||||
#define FF_API_QUANT_BIAS (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_RC_STRATEGY
|
|
||||||
#define FF_API_RC_STRATEGY (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_CODED_FRAME
|
|
||||||
#define FF_API_CODED_FRAME (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_MOTION_EST
|
|
||||||
#define FF_API_MOTION_EST (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_WITHOUT_PREFIX
|
|
||||||
#define FF_API_WITHOUT_PREFIX (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_SIDEDATA_ONLY_PKT
|
|
||||||
#define FF_API_SIDEDATA_ONLY_PKT (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_VDPAU_PROFILE
|
|
||||||
#define FF_API_VDPAU_PROFILE (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_CONVERGENCE_DURATION
|
|
||||||
#define FF_API_CONVERGENCE_DURATION (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AVPICTURE
|
|
||||||
#define FF_API_AVPICTURE (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_AVPACKET_OLD_API
|
|
||||||
#define FF_API_AVPACKET_OLD_API (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_RTP_CALLBACK
|
|
||||||
#define FF_API_RTP_CALLBACK (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_VBV_DELAY
|
|
||||||
#define FF_API_VBV_DELAY (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_CODER_TYPE
|
|
||||||
#define FF_API_CODER_TYPE (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_STAT_BITS
|
|
||||||
#define FF_API_STAT_BITS (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_PRIVATE_OPT
|
|
||||||
#define FF_API_PRIVATE_OPT (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_ASS_TIMING
|
|
||||||
#define FF_API_ASS_TIMING (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_OLD_BSF
|
|
||||||
#define FF_API_OLD_BSF (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_COPY_CONTEXT
|
|
||||||
#define FF_API_COPY_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_GET_CONTEXT_DEFAULTS
|
|
||||||
#define FF_API_GET_CONTEXT_DEFAULTS (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_NVENC_OLD_NAME
|
|
||||||
#define FF_API_NVENC_OLD_NAME (LIBAVCODEC_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* AVCODEC_VERSION_H */
|
|
126
Externals/ffmpeg/include/libavcodec/videotoolbox.h
vendored
126
Externals/ffmpeg/include/libavcodec/videotoolbox.h
vendored
@ -1,126 +0,0 @@
|
|||||||
/*
|
|
||||||
* Videotoolbox hardware acceleration
|
|
||||||
*
|
|
||||||
* copyright (c) 2012 Sebastien Zwickert
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_VIDEOTOOLBOX_H
|
|
||||||
#define AVCODEC_VIDEOTOOLBOX_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_codec_hwaccel_videotoolbox
|
|
||||||
* Public libavcodec Videotoolbox header.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#define Picture QuickdrawPicture
|
|
||||||
#include <VideoToolbox/VideoToolbox.h>
|
|
||||||
#undef Picture
|
|
||||||
|
|
||||||
#include "libavcodec/avcodec.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This struct holds all the information that needs to be passed
|
|
||||||
* between the caller and libavcodec for initializing Videotoolbox decoding.
|
|
||||||
* Its size is not a part of the public ABI, it must be allocated with
|
|
||||||
* av_videotoolbox_alloc_context() and freed with av_free().
|
|
||||||
*/
|
|
||||||
typedef struct AVVideotoolboxContext {
|
|
||||||
/**
|
|
||||||
* Videotoolbox decompression session object.
|
|
||||||
* Created and freed the caller.
|
|
||||||
*/
|
|
||||||
VTDecompressionSessionRef session;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The output callback that must be passed to the session.
|
|
||||||
* Set by av_videottoolbox_default_init()
|
|
||||||
*/
|
|
||||||
VTDecompressionOutputCallback output_callback;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CVPixelBuffer Format Type that Videotoolbox will use for decoded frames.
|
|
||||||
* set by the caller.
|
|
||||||
*/
|
|
||||||
OSType cv_pix_fmt_type;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CoreMedia Format Description that Videotoolbox will use to create the decompression session.
|
|
||||||
* Set by the caller.
|
|
||||||
*/
|
|
||||||
CMVideoFormatDescriptionRef cm_fmt_desc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CoreMedia codec type that Videotoolbox will use to create the decompression session.
|
|
||||||
* Set by the caller.
|
|
||||||
*/
|
|
||||||
int cm_codec_type;
|
|
||||||
} AVVideotoolboxContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate and initialize a Videotoolbox context.
|
|
||||||
*
|
|
||||||
* This function should be called from the get_format() callback when the caller
|
|
||||||
* selects the AV_PIX_FMT_VIDETOOLBOX format. The caller must then create
|
|
||||||
* the decoder object (using the output callback provided by libavcodec) that
|
|
||||||
* will be used for Videotoolbox-accelerated decoding.
|
|
||||||
*
|
|
||||||
* When decoding with Videotoolbox is finished, the caller must destroy the decoder
|
|
||||||
* object and free the Videotoolbox context using av_free().
|
|
||||||
*
|
|
||||||
* @return the newly allocated context or NULL on failure
|
|
||||||
*/
|
|
||||||
AVVideotoolboxContext *av_videotoolbox_alloc_context(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a convenience function that creates and sets up the Videotoolbox context using
|
|
||||||
* an internal implementation.
|
|
||||||
*
|
|
||||||
* @param avctx the corresponding codec context
|
|
||||||
*
|
|
||||||
* @return >= 0 on success, a negative AVERROR code on failure
|
|
||||||
*/
|
|
||||||
int av_videotoolbox_default_init(AVCodecContext *avctx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a convenience function that creates and sets up the Videotoolbox context using
|
|
||||||
* an internal implementation.
|
|
||||||
*
|
|
||||||
* @param avctx the corresponding codec context
|
|
||||||
* @param vtctx the Videotoolbox context to use
|
|
||||||
*
|
|
||||||
* @return >= 0 on success, a negative AVERROR code on failure
|
|
||||||
*/
|
|
||||||
int av_videotoolbox_default_init2(AVCodecContext *avctx, AVVideotoolboxContext *vtctx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function must be called to free the Videotoolbox context initialized with
|
|
||||||
* av_videotoolbox_default_init().
|
|
||||||
*
|
|
||||||
* @param avctx the corresponding codec context
|
|
||||||
*/
|
|
||||||
void av_videotoolbox_default_free(AVCodecContext *avctx);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVCODEC_VIDEOTOOLBOX_H */
|
|
@ -1,77 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* A public API for Vorbis parsing
|
|
||||||
*
|
|
||||||
* Determines the duration for each packet.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_VORBIS_PARSER_H
|
|
||||||
#define AVCODEC_VORBIS_PARSER_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
typedef struct AVVorbisParseContext AVVorbisParseContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate and initialize the Vorbis parser using headers in the extradata.
|
|
||||||
*
|
|
||||||
* @param avctx codec context
|
|
||||||
* @param s Vorbis parser context
|
|
||||||
*/
|
|
||||||
AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata,
|
|
||||||
int extradata_size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Free the parser and everything associated with it.
|
|
||||||
*/
|
|
||||||
void av_vorbis_parse_free(AVVorbisParseContext **s);
|
|
||||||
|
|
||||||
#define VORBIS_FLAG_HEADER 0x00000001
|
|
||||||
#define VORBIS_FLAG_COMMENT 0x00000002
|
|
||||||
#define VORBIS_FLAG_SETUP 0x00000004
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the duration for a Vorbis packet.
|
|
||||||
*
|
|
||||||
* If @p flags is @c NULL,
|
|
||||||
* special frames are considered invalid.
|
|
||||||
*
|
|
||||||
* @param s Vorbis parser context
|
|
||||||
* @param buf buffer containing a Vorbis frame
|
|
||||||
* @param buf_size size of the buffer
|
|
||||||
* @param flags flags for special frames
|
|
||||||
*/
|
|
||||||
int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf,
|
|
||||||
int buf_size, int *flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the duration for a Vorbis packet.
|
|
||||||
*
|
|
||||||
* @param s Vorbis parser context
|
|
||||||
* @param buf buffer containing a Vorbis frame
|
|
||||||
* @param buf_size size of the buffer
|
|
||||||
*/
|
|
||||||
int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf,
|
|
||||||
int buf_size);
|
|
||||||
|
|
||||||
void av_vorbis_parse_reset(AVVorbisParseContext *s);
|
|
||||||
|
|
||||||
#endif /* AVCODEC_VORBIS_PARSER_H */
|
|
170
Externals/ffmpeg/include/libavcodec/xvmc.h
vendored
170
Externals/ffmpeg/include/libavcodec/xvmc.h
vendored
@ -1,170 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2003 Ivan Kalvachev
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVCODEC_XVMC_H
|
|
||||||
#define AVCODEC_XVMC_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavc_codec_hwaccel_xvmc
|
|
||||||
* Public libavcodec XvMC header.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <X11/extensions/XvMC.h>
|
|
||||||
|
|
||||||
#include "libavutil/attributes.h"
|
|
||||||
#include "version.h"
|
|
||||||
#include "avcodec.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavc_codec_hwaccel_xvmc XvMC
|
|
||||||
* @ingroup lavc_codec_hwaccel
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define AV_XVMC_ID 0x1DC711C0 /**< special value to ensure that regular pixel routines haven't corrupted the struct
|
|
||||||
the number is 1337 speak for the letters IDCT MCo (motion compensation) */
|
|
||||||
|
|
||||||
struct attribute_deprecated xvmc_pix_fmt {
|
|
||||||
/** The field contains the special constant value AV_XVMC_ID.
|
|
||||||
It is used as a test that the application correctly uses the API,
|
|
||||||
and that there is no corruption caused by pixel routines.
|
|
||||||
- application - set during initialization
|
|
||||||
- libavcodec - unchanged
|
|
||||||
*/
|
|
||||||
int xvmc_id;
|
|
||||||
|
|
||||||
/** Pointer to the block array allocated by XvMCCreateBlocks().
|
|
||||||
The array has to be freed by XvMCDestroyBlocks().
|
|
||||||
Each group of 64 values represents one data block of differential
|
|
||||||
pixel information (in MoCo mode) or coefficients for IDCT.
|
|
||||||
- application - set the pointer during initialization
|
|
||||||
- libavcodec - fills coefficients/pixel data into the array
|
|
||||||
*/
|
|
||||||
short* data_blocks;
|
|
||||||
|
|
||||||
/** Pointer to the macroblock description array allocated by
|
|
||||||
XvMCCreateMacroBlocks() and freed by XvMCDestroyMacroBlocks().
|
|
||||||
- application - set the pointer during initialization
|
|
||||||
- libavcodec - fills description data into the array
|
|
||||||
*/
|
|
||||||
XvMCMacroBlock* mv_blocks;
|
|
||||||
|
|
||||||
/** Number of macroblock descriptions that can be stored in the mv_blocks
|
|
||||||
array.
|
|
||||||
- application - set during initialization
|
|
||||||
- libavcodec - unchanged
|
|
||||||
*/
|
|
||||||
int allocated_mv_blocks;
|
|
||||||
|
|
||||||
/** Number of blocks that can be stored at once in the data_blocks array.
|
|
||||||
- application - set during initialization
|
|
||||||
- libavcodec - unchanged
|
|
||||||
*/
|
|
||||||
int allocated_data_blocks;
|
|
||||||
|
|
||||||
/** Indicate that the hardware would interpret data_blocks as IDCT
|
|
||||||
coefficients and perform IDCT on them.
|
|
||||||
- application - set during initialization
|
|
||||||
- libavcodec - unchanged
|
|
||||||
*/
|
|
||||||
int idct;
|
|
||||||
|
|
||||||
/** In MoCo mode it indicates that intra macroblocks are assumed to be in
|
|
||||||
unsigned format; same as the XVMC_INTRA_UNSIGNED flag.
|
|
||||||
- application - set during initialization
|
|
||||||
- libavcodec - unchanged
|
|
||||||
*/
|
|
||||||
int unsigned_intra;
|
|
||||||
|
|
||||||
/** Pointer to the surface allocated by XvMCCreateSurface().
|
|
||||||
It has to be freed by XvMCDestroySurface() on application exit.
|
|
||||||
It identifies the frame and its state on the video hardware.
|
|
||||||
- application - set during initialization
|
|
||||||
- libavcodec - unchanged
|
|
||||||
*/
|
|
||||||
XvMCSurface* p_surface;
|
|
||||||
|
|
||||||
/** Set by the decoder before calling ff_draw_horiz_band(),
|
|
||||||
needed by the XvMCRenderSurface function. */
|
|
||||||
//@{
|
|
||||||
/** Pointer to the surface used as past reference
|
|
||||||
- application - unchanged
|
|
||||||
- libavcodec - set
|
|
||||||
*/
|
|
||||||
XvMCSurface* p_past_surface;
|
|
||||||
|
|
||||||
/** Pointer to the surface used as future reference
|
|
||||||
- application - unchanged
|
|
||||||
- libavcodec - set
|
|
||||||
*/
|
|
||||||
XvMCSurface* p_future_surface;
|
|
||||||
|
|
||||||
/** top/bottom field or frame
|
|
||||||
- application - unchanged
|
|
||||||
- libavcodec - set
|
|
||||||
*/
|
|
||||||
unsigned int picture_structure;
|
|
||||||
|
|
||||||
/** XVMC_SECOND_FIELD - 1st or 2nd field in the sequence
|
|
||||||
- application - unchanged
|
|
||||||
- libavcodec - set
|
|
||||||
*/
|
|
||||||
unsigned int flags;
|
|
||||||
//}@
|
|
||||||
|
|
||||||
/** Number of macroblock descriptions in the mv_blocks array
|
|
||||||
that have already been passed to the hardware.
|
|
||||||
- application - zeroes it on get_buffer().
|
|
||||||
A successful ff_draw_horiz_band() may increment it
|
|
||||||
with filled_mb_block_num or zero both.
|
|
||||||
- libavcodec - unchanged
|
|
||||||
*/
|
|
||||||
int start_mv_blocks_num;
|
|
||||||
|
|
||||||
/** Number of new macroblock descriptions in the mv_blocks array (after
|
|
||||||
start_mv_blocks_num) that are filled by libavcodec and have to be
|
|
||||||
passed to the hardware.
|
|
||||||
- application - zeroes it on get_buffer() or after successful
|
|
||||||
ff_draw_horiz_band().
|
|
||||||
- libavcodec - increment with one of each stored MB
|
|
||||||
*/
|
|
||||||
int filled_mv_blocks_num;
|
|
||||||
|
|
||||||
/** Number of the next free data block; one data block consists of
|
|
||||||
64 short values in the data_blocks array.
|
|
||||||
All blocks before this one have already been claimed by placing their
|
|
||||||
position into the corresponding block description structure field,
|
|
||||||
that are part of the mv_blocks array.
|
|
||||||
- application - zeroes it on get_buffer().
|
|
||||||
A successful ff_draw_horiz_band() may zero it together
|
|
||||||
with start_mb_blocks_num.
|
|
||||||
- libavcodec - each decoded macroblock increases it by the number
|
|
||||||
of coded blocks it contains.
|
|
||||||
*/
|
|
||||||
int next_free_data_block_num;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVCODEC_XVMC_H */
|
|
2978
Externals/ffmpeg/include/libavformat/avformat.h
vendored
2978
Externals/ffmpeg/include/libavformat/avformat.h
vendored
File diff suppressed because it is too large
Load Diff
801
Externals/ffmpeg/include/libavformat/avio.h
vendored
801
Externals/ffmpeg/include/libavformat/avio.h
vendored
@ -1,801 +0,0 @@
|
|||||||
/*
|
|
||||||
* copyright (c) 2001 Fabrice Bellard
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
#ifndef AVFORMAT_AVIO_H
|
|
||||||
#define AVFORMAT_AVIO_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavf_io
|
|
||||||
* Buffered I/O operations
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include "libavutil/common.h"
|
|
||||||
#include "libavutil/dict.h"
|
|
||||||
#include "libavutil/log.h"
|
|
||||||
|
|
||||||
#include "libavformat/version.h"
|
|
||||||
|
|
||||||
#define AVIO_SEEKABLE_NORMAL 0x0001 /**< Seeking works like for a local file */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Callback for checking whether to abort blocking functions.
|
|
||||||
* AVERROR_EXIT is returned in this case by the interrupted
|
|
||||||
* function. During blocking operations, callback is called with
|
|
||||||
* opaque as parameter. If the callback returns 1, the
|
|
||||||
* blocking operation will be aborted.
|
|
||||||
*
|
|
||||||
* No members can be added to this struct without a major bump, if
|
|
||||||
* new elements have been added after this struct in AVFormatContext
|
|
||||||
* or AVIOContext.
|
|
||||||
*/
|
|
||||||
typedef struct AVIOInterruptCB {
|
|
||||||
int (*callback)(void*);
|
|
||||||
void *opaque;
|
|
||||||
} AVIOInterruptCB;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Directory entry types.
|
|
||||||
*/
|
|
||||||
enum AVIODirEntryType {
|
|
||||||
AVIO_ENTRY_UNKNOWN,
|
|
||||||
AVIO_ENTRY_BLOCK_DEVICE,
|
|
||||||
AVIO_ENTRY_CHARACTER_DEVICE,
|
|
||||||
AVIO_ENTRY_DIRECTORY,
|
|
||||||
AVIO_ENTRY_NAMED_PIPE,
|
|
||||||
AVIO_ENTRY_SYMBOLIC_LINK,
|
|
||||||
AVIO_ENTRY_SOCKET,
|
|
||||||
AVIO_ENTRY_FILE,
|
|
||||||
AVIO_ENTRY_SERVER,
|
|
||||||
AVIO_ENTRY_SHARE,
|
|
||||||
AVIO_ENTRY_WORKGROUP,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Describes single entry of the directory.
|
|
||||||
*
|
|
||||||
* Only name and type fields are guaranteed be set.
|
|
||||||
* Rest of fields are protocol or/and platform dependent and might be unknown.
|
|
||||||
*/
|
|
||||||
typedef struct AVIODirEntry {
|
|
||||||
char *name; /**< Filename */
|
|
||||||
int type; /**< Type of the entry */
|
|
||||||
int utf8; /**< Set to 1 when name is encoded with UTF-8, 0 otherwise.
|
|
||||||
Name can be encoded with UTF-8 even though 0 is set. */
|
|
||||||
int64_t size; /**< File size in bytes, -1 if unknown. */
|
|
||||||
int64_t modification_timestamp; /**< Time of last modification in microseconds since unix
|
|
||||||
epoch, -1 if unknown. */
|
|
||||||
int64_t access_timestamp; /**< Time of last access in microseconds since unix epoch,
|
|
||||||
-1 if unknown. */
|
|
||||||
int64_t status_change_timestamp; /**< Time of last status change in microseconds since unix
|
|
||||||
epoch, -1 if unknown. */
|
|
||||||
int64_t user_id; /**< User ID of owner, -1 if unknown. */
|
|
||||||
int64_t group_id; /**< Group ID of owner, -1 if unknown. */
|
|
||||||
int64_t filemode; /**< Unix file mode, -1 if unknown. */
|
|
||||||
} AVIODirEntry;
|
|
||||||
|
|
||||||
typedef struct AVIODirContext {
|
|
||||||
struct URLContext *url_context;
|
|
||||||
} AVIODirContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Different data types that can be returned via the AVIO
|
|
||||||
* write_data_type callback.
|
|
||||||
*/
|
|
||||||
enum AVIODataMarkerType {
|
|
||||||
/**
|
|
||||||
* Header data; this needs to be present for the stream to be decodeable.
|
|
||||||
*/
|
|
||||||
AVIO_DATA_MARKER_HEADER,
|
|
||||||
/**
|
|
||||||
* A point in the output bytestream where a decoder can start decoding
|
|
||||||
* (i.e. a keyframe). A demuxer/decoder given the data flagged with
|
|
||||||
* AVIO_DATA_MARKER_HEADER, followed by any AVIO_DATA_MARKER_SYNC_POINT,
|
|
||||||
* should give decodeable results.
|
|
||||||
*/
|
|
||||||
AVIO_DATA_MARKER_SYNC_POINT,
|
|
||||||
/**
|
|
||||||
* A point in the output bytestream where a demuxer can start parsing
|
|
||||||
* (for non self synchronizing bytestream formats). That is, any
|
|
||||||
* non-keyframe packet start point.
|
|
||||||
*/
|
|
||||||
AVIO_DATA_MARKER_BOUNDARY_POINT,
|
|
||||||
/**
|
|
||||||
* This is any, unlabelled data. It can either be a muxer not marking
|
|
||||||
* any positions at all, it can be an actual boundary/sync point
|
|
||||||
* that the muxer chooses not to mark, or a later part of a packet/fragment
|
|
||||||
* that is cut into multiple write callbacks due to limited IO buffer size.
|
|
||||||
*/
|
|
||||||
AVIO_DATA_MARKER_UNKNOWN,
|
|
||||||
/**
|
|
||||||
* Trailer data, which doesn't contain actual content, but only for
|
|
||||||
* finalizing the output file.
|
|
||||||
*/
|
|
||||||
AVIO_DATA_MARKER_TRAILER
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bytestream IO Context.
|
|
||||||
* New fields can be added to the end with minor version bumps.
|
|
||||||
* Removal, reordering and changes to existing fields require a major
|
|
||||||
* version bump.
|
|
||||||
* sizeof(AVIOContext) must not be used outside libav*.
|
|
||||||
*
|
|
||||||
* @note None of the function pointers in AVIOContext should be called
|
|
||||||
* directly, they should only be set by the client application
|
|
||||||
* when implementing custom I/O. Normally these are set to the
|
|
||||||
* function pointers specified in avio_alloc_context()
|
|
||||||
*/
|
|
||||||
typedef struct AVIOContext {
|
|
||||||
/**
|
|
||||||
* A class for private options.
|
|
||||||
*
|
|
||||||
* If this AVIOContext is created by avio_open2(), av_class is set and
|
|
||||||
* passes the options down to protocols.
|
|
||||||
*
|
|
||||||
* If this AVIOContext is manually allocated, then av_class may be set by
|
|
||||||
* the caller.
|
|
||||||
*
|
|
||||||
* warning -- this field can be NULL, be sure to not pass this AVIOContext
|
|
||||||
* to any av_opt_* functions in that case.
|
|
||||||
*/
|
|
||||||
const AVClass *av_class;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The following shows the relationship between buffer, buf_ptr, buf_end, buf_size,
|
|
||||||
* and pos, when reading and when writing (since AVIOContext is used for both):
|
|
||||||
*
|
|
||||||
**********************************************************************************
|
|
||||||
* READING
|
|
||||||
**********************************************************************************
|
|
||||||
*
|
|
||||||
* | buffer_size |
|
|
||||||
* |---------------------------------------|
|
|
||||||
* | |
|
|
||||||
*
|
|
||||||
* buffer buf_ptr buf_end
|
|
||||||
* +---------------+-----------------------+
|
|
||||||
* |/ / / / / / / /|/ / / / / / /| |
|
|
||||||
* read buffer: |/ / consumed / | to be read /| |
|
|
||||||
* |/ / / / / / / /|/ / / / / / /| |
|
|
||||||
* +---------------+-----------------------+
|
|
||||||
*
|
|
||||||
* pos
|
|
||||||
* +-------------------------------------------+-----------------+
|
|
||||||
* input file: | | |
|
|
||||||
* +-------------------------------------------+-----------------+
|
|
||||||
*
|
|
||||||
*
|
|
||||||
**********************************************************************************
|
|
||||||
* WRITING
|
|
||||||
**********************************************************************************
|
|
||||||
*
|
|
||||||
* | buffer_size |
|
|
||||||
* |-------------------------------|
|
|
||||||
* | |
|
|
||||||
*
|
|
||||||
* buffer buf_ptr buf_end
|
|
||||||
* +-------------------+-----------+
|
|
||||||
* |/ / / / / / / / / /| |
|
|
||||||
* write buffer: | / to be flushed / | |
|
|
||||||
* |/ / / / / / / / / /| |
|
|
||||||
* +-------------------+-----------+
|
|
||||||
*
|
|
||||||
* pos
|
|
||||||
* +--------------------------+-----------------------------------+
|
|
||||||
* output file: | | |
|
|
||||||
* +--------------------------+-----------------------------------+
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
unsigned char *buffer; /**< Start of the buffer. */
|
|
||||||
int buffer_size; /**< Maximum buffer size */
|
|
||||||
unsigned char *buf_ptr; /**< Current position in the buffer */
|
|
||||||
unsigned char *buf_end; /**< End of the data, may be less than
|
|
||||||
buffer+buffer_size if the read function returned
|
|
||||||
less data than requested, e.g. for streams where
|
|
||||||
no more data has been received yet. */
|
|
||||||
void *opaque; /**< A private pointer, passed to the read/write/seek/...
|
|
||||||
functions. */
|
|
||||||
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);
|
|
||||||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
|
|
||||||
int64_t (*seek)(void *opaque, int64_t offset, int whence);
|
|
||||||
int64_t pos; /**< position in the file of the current buffer */
|
|
||||||
int must_flush; /**< true if the next seek should flush */
|
|
||||||
int eof_reached; /**< true if eof reached */
|
|
||||||
int write_flag; /**< true if open for writing */
|
|
||||||
int max_packet_size;
|
|
||||||
unsigned long checksum;
|
|
||||||
unsigned char *checksum_ptr;
|
|
||||||
unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size);
|
|
||||||
int error; /**< contains the error code or 0 if no error happened */
|
|
||||||
/**
|
|
||||||
* Pause or resume playback for network streaming protocols - e.g. MMS.
|
|
||||||
*/
|
|
||||||
int (*read_pause)(void *opaque, int pause);
|
|
||||||
/**
|
|
||||||
* Seek to a given timestamp in stream with the specified stream_index.
|
|
||||||
* Needed for some network streaming protocols which don't support seeking
|
|
||||||
* to byte position.
|
|
||||||
*/
|
|
||||||
int64_t (*read_seek)(void *opaque, int stream_index,
|
|
||||||
int64_t timestamp, int flags);
|
|
||||||
/**
|
|
||||||
* A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
|
|
||||||
*/
|
|
||||||
int seekable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* max filesize, used to limit allocations
|
|
||||||
* This field is internal to libavformat and access from outside is not allowed.
|
|
||||||
*/
|
|
||||||
int64_t maxsize;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* avio_read and avio_write should if possible be satisfied directly
|
|
||||||
* instead of going through a buffer, and avio_seek will always
|
|
||||||
* call the underlying seek function directly.
|
|
||||||
*/
|
|
||||||
int direct;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bytes read statistic
|
|
||||||
* This field is internal to libavformat and access from outside is not allowed.
|
|
||||||
*/
|
|
||||||
int64_t bytes_read;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* seek statistic
|
|
||||||
* This field is internal to libavformat and access from outside is not allowed.
|
|
||||||
*/
|
|
||||||
int seek_count;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* writeout statistic
|
|
||||||
* This field is internal to libavformat and access from outside is not allowed.
|
|
||||||
*/
|
|
||||||
int writeout_count;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Original buffer size
|
|
||||||
* used internally after probing and ensure seekback to reset the buffer size
|
|
||||||
* This field is internal to libavformat and access from outside is not allowed.
|
|
||||||
*/
|
|
||||||
int orig_buffer_size;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Threshold to favor readahead over seek.
|
|
||||||
* This is current internal only, do not use from outside.
|
|
||||||
*/
|
|
||||||
int short_seek_threshold;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ',' separated list of allowed protocols.
|
|
||||||
*/
|
|
||||||
const char *protocol_whitelist;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ',' separated list of disallowed protocols.
|
|
||||||
*/
|
|
||||||
const char *protocol_blacklist;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A callback that is used instead of write_packet.
|
|
||||||
*/
|
|
||||||
int (*write_data_type)(void *opaque, uint8_t *buf, int buf_size,
|
|
||||||
enum AVIODataMarkerType type, int64_t time);
|
|
||||||
/**
|
|
||||||
* If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT,
|
|
||||||
* but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly
|
|
||||||
* small chunks of data returned from the callback).
|
|
||||||
*/
|
|
||||||
int ignore_boundary_point;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Internal, not meant to be used from outside of AVIOContext.
|
|
||||||
*/
|
|
||||||
enum AVIODataMarkerType current_type;
|
|
||||||
int64_t last_time;
|
|
||||||
} AVIOContext;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the name of the protocol that will handle the passed URL.
|
|
||||||
*
|
|
||||||
* NULL is returned if no protocol could be found for the given URL.
|
|
||||||
*
|
|
||||||
* @return Name of the protocol or NULL.
|
|
||||||
*/
|
|
||||||
const char *avio_find_protocol_name(const char *url);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return AVIO_FLAG_* access flags corresponding to the access permissions
|
|
||||||
* of the resource in url, or a negative value corresponding to an
|
|
||||||
* AVERROR code in case of failure. The returned access flags are
|
|
||||||
* masked by the value in flags.
|
|
||||||
*
|
|
||||||
* @note This function is intrinsically unsafe, in the sense that the
|
|
||||||
* checked resource may change its existence or permission status from
|
|
||||||
* one call to another. Thus you should not trust the returned value,
|
|
||||||
* unless you are sure that no other processes are accessing the
|
|
||||||
* checked resource.
|
|
||||||
*/
|
|
||||||
int avio_check(const char *url, int flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Move or rename a resource.
|
|
||||||
*
|
|
||||||
* @note url_src and url_dst should share the same protocol and authority.
|
|
||||||
*
|
|
||||||
* @param url_src url to resource to be moved
|
|
||||||
* @param url_dst new url to resource if the operation succeeded
|
|
||||||
* @return >=0 on success or negative on error.
|
|
||||||
*/
|
|
||||||
int avpriv_io_move(const char *url_src, const char *url_dst);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Delete a resource.
|
|
||||||
*
|
|
||||||
* @param url resource to be deleted.
|
|
||||||
* @return >=0 on success or negative on error.
|
|
||||||
*/
|
|
||||||
int avpriv_io_delete(const char *url);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Open directory for reading.
|
|
||||||
*
|
|
||||||
* @param s directory read context. Pointer to a NULL pointer must be passed.
|
|
||||||
* @param url directory to be listed.
|
|
||||||
* @param options A dictionary filled with protocol-private options. On return
|
|
||||||
* this parameter will be destroyed and replaced with a dictionary
|
|
||||||
* containing options that were not found. May be NULL.
|
|
||||||
* @return >=0 on success or negative on error.
|
|
||||||
*/
|
|
||||||
int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get next directory entry.
|
|
||||||
*
|
|
||||||
* Returned entry must be freed with avio_free_directory_entry(). In particular
|
|
||||||
* it may outlive AVIODirContext.
|
|
||||||
*
|
|
||||||
* @param s directory read context.
|
|
||||||
* @param[out] next next entry or NULL when no more entries.
|
|
||||||
* @return >=0 on success or negative on error. End of list is not considered an
|
|
||||||
* error.
|
|
||||||
*/
|
|
||||||
int avio_read_dir(AVIODirContext *s, AVIODirEntry **next);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Close directory.
|
|
||||||
*
|
|
||||||
* @note Entries created using avio_read_dir() are not deleted and must be
|
|
||||||
* freeded with avio_free_directory_entry().
|
|
||||||
*
|
|
||||||
* @param s directory read context.
|
|
||||||
* @return >=0 on success or negative on error.
|
|
||||||
*/
|
|
||||||
int avio_close_dir(AVIODirContext **s);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Free entry allocated by avio_read_dir().
|
|
||||||
*
|
|
||||||
* @param entry entry to be freed.
|
|
||||||
*/
|
|
||||||
void avio_free_directory_entry(AVIODirEntry **entry);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate and initialize an AVIOContext for buffered I/O. It must be later
|
|
||||||
* freed with av_free().
|
|
||||||
*
|
|
||||||
* @param buffer Memory block for input/output operations via AVIOContext.
|
|
||||||
* The buffer must be allocated with av_malloc() and friends.
|
|
||||||
* It may be freed and replaced with a new buffer by libavformat.
|
|
||||||
* AVIOContext.buffer holds the buffer currently in use,
|
|
||||||
* which must be later freed with av_free().
|
|
||||||
* @param buffer_size The buffer size is very important for performance.
|
|
||||||
* For protocols with fixed blocksize it should be set to this blocksize.
|
|
||||||
* For others a typical size is a cache page, e.g. 4kb.
|
|
||||||
* @param write_flag Set to 1 if the buffer should be writable, 0 otherwise.
|
|
||||||
* @param opaque An opaque pointer to user-specific data.
|
|
||||||
* @param read_packet A function for refilling the buffer, may be NULL.
|
|
||||||
* @param write_packet A function for writing the buffer contents, may be NULL.
|
|
||||||
* The function may not change the input buffers content.
|
|
||||||
* @param seek A function for seeking to specified byte position, may be NULL.
|
|
||||||
*
|
|
||||||
* @return Allocated AVIOContext or NULL on failure.
|
|
||||||
*/
|
|
||||||
AVIOContext *avio_alloc_context(
|
|
||||||
unsigned char *buffer,
|
|
||||||
int buffer_size,
|
|
||||||
int write_flag,
|
|
||||||
void *opaque,
|
|
||||||
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
|
||||||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
|
||||||
int64_t (*seek)(void *opaque, int64_t offset, int whence));
|
|
||||||
|
|
||||||
void avio_w8(AVIOContext *s, int b);
|
|
||||||
void avio_write(AVIOContext *s, const unsigned char *buf, int size);
|
|
||||||
void avio_wl64(AVIOContext *s, uint64_t val);
|
|
||||||
void avio_wb64(AVIOContext *s, uint64_t val);
|
|
||||||
void avio_wl32(AVIOContext *s, unsigned int val);
|
|
||||||
void avio_wb32(AVIOContext *s, unsigned int val);
|
|
||||||
void avio_wl24(AVIOContext *s, unsigned int val);
|
|
||||||
void avio_wb24(AVIOContext *s, unsigned int val);
|
|
||||||
void avio_wl16(AVIOContext *s, unsigned int val);
|
|
||||||
void avio_wb16(AVIOContext *s, unsigned int val);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Write a NULL-terminated string.
|
|
||||||
* @return number of bytes written.
|
|
||||||
*/
|
|
||||||
int avio_put_str(AVIOContext *s, const char *str);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert an UTF-8 string to UTF-16LE and write it.
|
|
||||||
* @param s the AVIOContext
|
|
||||||
* @param str NULL-terminated UTF-8 string
|
|
||||||
*
|
|
||||||
* @return number of bytes written.
|
|
||||||
*/
|
|
||||||
int avio_put_str16le(AVIOContext *s, const char *str);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert an UTF-8 string to UTF-16BE and write it.
|
|
||||||
* @param s the AVIOContext
|
|
||||||
* @param str NULL-terminated UTF-8 string
|
|
||||||
*
|
|
||||||
* @return number of bytes written.
|
|
||||||
*/
|
|
||||||
int avio_put_str16be(AVIOContext *s, const char *str);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mark the written bytestream as a specific type.
|
|
||||||
*
|
|
||||||
* Zero-length ranges are omitted from the output.
|
|
||||||
*
|
|
||||||
* @param time the stream time the current bytestream pos corresponds to
|
|
||||||
* (in AV_TIME_BASE units), or AV_NOPTS_VALUE if unknown or not
|
|
||||||
* applicable
|
|
||||||
* @param type the kind of data written starting at the current pos
|
|
||||||
*/
|
|
||||||
void avio_write_marker(AVIOContext *s, int64_t time, enum AVIODataMarkerType type);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ORing this as the "whence" parameter to a seek function causes it to
|
|
||||||
* return the filesize without seeking anywhere. Supporting this is optional.
|
|
||||||
* If it is not supported then the seek function will return <0.
|
|
||||||
*/
|
|
||||||
#define AVSEEK_SIZE 0x10000
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Passing this flag as the "whence" parameter to a seek function causes it to
|
|
||||||
* seek by any means (like reopening and linear reading) or other normally unreasonable
|
|
||||||
* means that can be extremely slow.
|
|
||||||
* This may be ignored by the seek code.
|
|
||||||
*/
|
|
||||||
#define AVSEEK_FORCE 0x20000
|
|
||||||
|
|
||||||
/**
|
|
||||||
* fseek() equivalent for AVIOContext.
|
|
||||||
* @return new position or AVERROR.
|
|
||||||
*/
|
|
||||||
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Skip given number of bytes forward
|
|
||||||
* @return new position or AVERROR.
|
|
||||||
*/
|
|
||||||
int64_t avio_skip(AVIOContext *s, int64_t offset);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ftell() equivalent for AVIOContext.
|
|
||||||
* @return position or AVERROR.
|
|
||||||
*/
|
|
||||||
static av_always_inline int64_t avio_tell(AVIOContext *s)
|
|
||||||
{
|
|
||||||
return avio_seek(s, 0, SEEK_CUR);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the filesize.
|
|
||||||
* @return filesize or AVERROR
|
|
||||||
*/
|
|
||||||
int64_t avio_size(AVIOContext *s);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* feof() equivalent for AVIOContext.
|
|
||||||
* @return non zero if and only if end of file
|
|
||||||
*/
|
|
||||||
int avio_feof(AVIOContext *s);
|
|
||||||
#if FF_API_URL_FEOF
|
|
||||||
/**
|
|
||||||
* @deprecated use avio_feof()
|
|
||||||
*/
|
|
||||||
attribute_deprecated
|
|
||||||
int url_feof(AVIOContext *s);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** @warning Writes up to 4 KiB per call */
|
|
||||||
int avio_printf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Force flushing of buffered data.
|
|
||||||
*
|
|
||||||
* For write streams, force the buffered data to be immediately written to the output,
|
|
||||||
* without to wait to fill the internal buffer.
|
|
||||||
*
|
|
||||||
* For read streams, discard all currently buffered data, and advance the
|
|
||||||
* reported file position to that of the underlying stream. This does not
|
|
||||||
* read new data, and does not perform any seeks.
|
|
||||||
*/
|
|
||||||
void avio_flush(AVIOContext *s);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read size bytes from AVIOContext into buf.
|
|
||||||
* @return number of bytes read or AVERROR
|
|
||||||
*/
|
|
||||||
int avio_read(AVIOContext *s, unsigned char *buf, int size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Functions for reading from AVIOContext
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @note return 0 if EOF, so you cannot use it if EOF handling is
|
|
||||||
* necessary
|
|
||||||
*/
|
|
||||||
int avio_r8 (AVIOContext *s);
|
|
||||||
unsigned int avio_rl16(AVIOContext *s);
|
|
||||||
unsigned int avio_rl24(AVIOContext *s);
|
|
||||||
unsigned int avio_rl32(AVIOContext *s);
|
|
||||||
uint64_t avio_rl64(AVIOContext *s);
|
|
||||||
unsigned int avio_rb16(AVIOContext *s);
|
|
||||||
unsigned int avio_rb24(AVIOContext *s);
|
|
||||||
unsigned int avio_rb32(AVIOContext *s);
|
|
||||||
uint64_t avio_rb64(AVIOContext *s);
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read a string from pb into buf. The reading will terminate when either
|
|
||||||
* a NULL character was encountered, maxlen bytes have been read, or nothing
|
|
||||||
* more can be read from pb. The result is guaranteed to be NULL-terminated, it
|
|
||||||
* will be truncated if buf is too small.
|
|
||||||
* Note that the string is not interpreted or validated in any way, it
|
|
||||||
* might get truncated in the middle of a sequence for multi-byte encodings.
|
|
||||||
*
|
|
||||||
* @return number of bytes read (is always <= maxlen).
|
|
||||||
* If reading ends on EOF or error, the return value will be one more than
|
|
||||||
* bytes actually read.
|
|
||||||
*/
|
|
||||||
int avio_get_str(AVIOContext *pb, int maxlen, char *buf, int buflen);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read a UTF-16 string from pb and convert it to UTF-8.
|
|
||||||
* The reading will terminate when either a null or invalid character was
|
|
||||||
* encountered or maxlen bytes have been read.
|
|
||||||
* @return number of bytes read (is always <= maxlen)
|
|
||||||
*/
|
|
||||||
int avio_get_str16le(AVIOContext *pb, int maxlen, char *buf, int buflen);
|
|
||||||
int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @name URL open modes
|
|
||||||
* The flags argument to avio_open must be one of the following
|
|
||||||
* constants, optionally ORed with other flags.
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
#define AVIO_FLAG_READ 1 /**< read-only */
|
|
||||||
#define AVIO_FLAG_WRITE 2 /**< write-only */
|
|
||||||
#define AVIO_FLAG_READ_WRITE (AVIO_FLAG_READ|AVIO_FLAG_WRITE) /**< read-write pseudo flag */
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use non-blocking mode.
|
|
||||||
* If this flag is set, operations on the context will return
|
|
||||||
* AVERROR(EAGAIN) if they can not be performed immediately.
|
|
||||||
* If this flag is not set, operations on the context will never return
|
|
||||||
* AVERROR(EAGAIN).
|
|
||||||
* Note that this flag does not affect the opening/connecting of the
|
|
||||||
* context. Connecting a protocol will always block if necessary (e.g. on
|
|
||||||
* network protocols) but never hang (e.g. on busy devices).
|
|
||||||
* Warning: non-blocking protocols is work-in-progress; this flag may be
|
|
||||||
* silently ignored.
|
|
||||||
*/
|
|
||||||
#define AVIO_FLAG_NONBLOCK 8
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Use direct mode.
|
|
||||||
* avio_read and avio_write should if possible be satisfied directly
|
|
||||||
* instead of going through a buffer, and avio_seek will always
|
|
||||||
* call the underlying seek function directly.
|
|
||||||
*/
|
|
||||||
#define AVIO_FLAG_DIRECT 0x8000
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create and initialize a AVIOContext for accessing the
|
|
||||||
* resource indicated by url.
|
|
||||||
* @note When the resource indicated by url has been opened in
|
|
||||||
* read+write mode, the AVIOContext can be used only for writing.
|
|
||||||
*
|
|
||||||
* @param s Used to return the pointer to the created AVIOContext.
|
|
||||||
* In case of failure the pointed to value is set to NULL.
|
|
||||||
* @param url resource to access
|
|
||||||
* @param flags flags which control how the resource indicated by url
|
|
||||||
* is to be opened
|
|
||||||
* @return >= 0 in case of success, a negative value corresponding to an
|
|
||||||
* AVERROR code in case of failure
|
|
||||||
*/
|
|
||||||
int avio_open(AVIOContext **s, const char *url, int flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create and initialize a AVIOContext for accessing the
|
|
||||||
* resource indicated by url.
|
|
||||||
* @note When the resource indicated by url has been opened in
|
|
||||||
* read+write mode, the AVIOContext can be used only for writing.
|
|
||||||
*
|
|
||||||
* @param s Used to return the pointer to the created AVIOContext.
|
|
||||||
* In case of failure the pointed to value is set to NULL.
|
|
||||||
* @param url resource to access
|
|
||||||
* @param flags flags which control how the resource indicated by url
|
|
||||||
* is to be opened
|
|
||||||
* @param int_cb an interrupt callback to be used at the protocols level
|
|
||||||
* @param options A dictionary filled with protocol-private options. On return
|
|
||||||
* this parameter will be destroyed and replaced with a dict containing options
|
|
||||||
* that were not found. May be NULL.
|
|
||||||
* @return >= 0 in case of success, a negative value corresponding to an
|
|
||||||
* AVERROR code in case of failure
|
|
||||||
*/
|
|
||||||
int avio_open2(AVIOContext **s, const char *url, int flags,
|
|
||||||
const AVIOInterruptCB *int_cb, AVDictionary **options);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Close the resource accessed by the AVIOContext s and free it.
|
|
||||||
* This function can only be used if s was opened by avio_open().
|
|
||||||
*
|
|
||||||
* The internal buffer is automatically flushed before closing the
|
|
||||||
* resource.
|
|
||||||
*
|
|
||||||
* @return 0 on success, an AVERROR < 0 on error.
|
|
||||||
* @see avio_closep
|
|
||||||
*/
|
|
||||||
int avio_close(AVIOContext *s);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Close the resource accessed by the AVIOContext *s, free it
|
|
||||||
* and set the pointer pointing to it to NULL.
|
|
||||||
* This function can only be used if s was opened by avio_open().
|
|
||||||
*
|
|
||||||
* The internal buffer is automatically flushed before closing the
|
|
||||||
* resource.
|
|
||||||
*
|
|
||||||
* @return 0 on success, an AVERROR < 0 on error.
|
|
||||||
* @see avio_close
|
|
||||||
*/
|
|
||||||
int avio_closep(AVIOContext **s);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Open a write only memory stream.
|
|
||||||
*
|
|
||||||
* @param s new IO context
|
|
||||||
* @return zero if no error.
|
|
||||||
*/
|
|
||||||
int avio_open_dyn_buf(AVIOContext **s);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the written size and a pointer to the buffer. The buffer
|
|
||||||
* must be freed with av_free().
|
|
||||||
* Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer.
|
|
||||||
*
|
|
||||||
* @param s IO context
|
|
||||||
* @param pbuffer pointer to a byte buffer
|
|
||||||
* @return the length of the byte buffer
|
|
||||||
*/
|
|
||||||
int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Iterate through names of available protocols.
|
|
||||||
*
|
|
||||||
* @param opaque A private pointer representing current protocol.
|
|
||||||
* It must be a pointer to NULL on first iteration and will
|
|
||||||
* be updated by successive calls to avio_enum_protocols.
|
|
||||||
* @param output If set to 1, iterate over output protocols,
|
|
||||||
* otherwise over input protocols.
|
|
||||||
*
|
|
||||||
* @return A static string containing the name of current protocol or NULL
|
|
||||||
*/
|
|
||||||
const char *avio_enum_protocols(void **opaque, int output);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Pause and resume playing - only meaningful if using a network streaming
|
|
||||||
* protocol (e.g. MMS).
|
|
||||||
*
|
|
||||||
* @param h IO context from which to call the read_pause function pointer
|
|
||||||
* @param pause 1 for pause, 0 for resume
|
|
||||||
*/
|
|
||||||
int avio_pause(AVIOContext *h, int pause);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Seek to a given timestamp relative to some component stream.
|
|
||||||
* Only meaningful if using a network streaming protocol (e.g. MMS.).
|
|
||||||
*
|
|
||||||
* @param h IO context from which to call the seek function pointers
|
|
||||||
* @param stream_index The stream index that the timestamp is relative to.
|
|
||||||
* If stream_index is (-1) the timestamp should be in AV_TIME_BASE
|
|
||||||
* units from the beginning of the presentation.
|
|
||||||
* If a stream_index >= 0 is used and the protocol does not support
|
|
||||||
* seeking based on component streams, the call will fail.
|
|
||||||
* @param timestamp timestamp in AVStream.time_base units
|
|
||||||
* or if there is no stream specified then in AV_TIME_BASE units.
|
|
||||||
* @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE
|
|
||||||
* and AVSEEK_FLAG_ANY. The protocol may silently ignore
|
|
||||||
* AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will
|
|
||||||
* fail if used and not supported.
|
|
||||||
* @return >= 0 on success
|
|
||||||
* @see AVInputFormat::read_seek
|
|
||||||
*/
|
|
||||||
int64_t avio_seek_time(AVIOContext *h, int stream_index,
|
|
||||||
int64_t timestamp, int flags);
|
|
||||||
|
|
||||||
/* Avoid a warning. The header can not be included because it breaks c++. */
|
|
||||||
struct AVBPrint;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read contents of h into print buffer, up to max_size bytes, or up to EOF.
|
|
||||||
*
|
|
||||||
* @return 0 for success (max_size bytes read or EOF reached), negative error
|
|
||||||
* code otherwise
|
|
||||||
*/
|
|
||||||
int avio_read_to_bprint(AVIOContext *h, struct AVBPrint *pb, size_t max_size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Accept and allocate a client context on a server context.
|
|
||||||
* @param s the server context
|
|
||||||
* @param c the client context, must be unallocated
|
|
||||||
* @return >= 0 on success or a negative value corresponding
|
|
||||||
* to an AVERROR on failure
|
|
||||||
*/
|
|
||||||
int avio_accept(AVIOContext *s, AVIOContext **c);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Perform one step of the protocol handshake to accept a new client.
|
|
||||||
* This function must be called on a client returned by avio_accept() before
|
|
||||||
* using it as a read/write context.
|
|
||||||
* It is separate from avio_accept() because it may block.
|
|
||||||
* A step of the handshake is defined by places where the application may
|
|
||||||
* decide to change the proceedings.
|
|
||||||
* For example, on a protocol with a request header and a reply header, each
|
|
||||||
* one can constitute a step because the application may use the parameters
|
|
||||||
* from the request to change parameters in the reply; or each individual
|
|
||||||
* chunk of the request can constitute a step.
|
|
||||||
* If the handshake is already finished, avio_handshake() does nothing and
|
|
||||||
* returns 0 immediately.
|
|
||||||
*
|
|
||||||
* @param c the client context to perform the handshake on
|
|
||||||
* @return 0 on a complete and successful handshake
|
|
||||||
* > 0 if the handshake progressed, but is not complete
|
|
||||||
* < 0 for an AVERROR code
|
|
||||||
*/
|
|
||||||
int avio_handshake(AVIOContext *c);
|
|
||||||
#endif /* AVFORMAT_AVIO_H */
|
|
92
Externals/ffmpeg/include/libavformat/version.h
vendored
92
Externals/ffmpeg/include/libavformat/version.h
vendored
@ -1,92 +0,0 @@
|
|||||||
/*
|
|
||||||
* Version macros.
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVFORMAT_VERSION_H
|
|
||||||
#define AVFORMAT_VERSION_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup libavf
|
|
||||||
* Libavformat version macros
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "libavutil/version.h"
|
|
||||||
|
|
||||||
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
|
|
||||||
// Also please add any ticket numbers that you believe might be affected here
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 57
|
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 56
|
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 101
|
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
|
||||||
LIBAVFORMAT_VERSION_MICRO)
|
|
||||||
#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \
|
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
|
||||||
LIBAVFORMAT_VERSION_MICRO)
|
|
||||||
#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT
|
|
||||||
|
|
||||||
#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FF_API_* defines may be placed below to indicate public API that will be
|
|
||||||
* dropped at a future version bump. The defines themselves are not part of
|
|
||||||
* the public API and may change, break or disappear at any time.
|
|
||||||
*
|
|
||||||
* @note, when bumping the major version it is recommended to manually
|
|
||||||
* disable each FF_API_* in its own commit instead of disabling them all
|
|
||||||
* at once through the bump. This improves the git bisect-ability of the change.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#ifndef FF_API_LAVF_BITEXACT
|
|
||||||
#define FF_API_LAVF_BITEXACT (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_LAVF_FRAC
|
|
||||||
#define FF_API_LAVF_FRAC (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_LAVF_CODEC_TB
|
|
||||||
#define FF_API_LAVF_CODEC_TB (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_URL_FEOF
|
|
||||||
#define FF_API_URL_FEOF (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_LAVF_FMT_RAWPICTURE
|
|
||||||
#define FF_API_LAVF_FMT_RAWPICTURE (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_COMPUTE_PKT_FIELDS2
|
|
||||||
#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_OLD_OPEN_CALLBACKS
|
|
||||||
#define FF_API_OLD_OPEN_CALLBACKS (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_LAVF_AVCTX
|
|
||||||
#define FF_API_LAVF_AVCTX (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_NOCONST_GET_SIDE_DATA
|
|
||||||
#define FF_API_NOCONST_GET_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_HTTP_USER_AGENT
|
|
||||||
#define FF_API_HTTP_USER_AGENT (LIBAVFORMAT_VERSION_MAJOR < 58)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef FF_API_R_FRAME_RATE
|
|
||||||
#define FF_API_R_FRAME_RATE 1
|
|
||||||
#endif
|
|
||||||
#endif /* AVFORMAT_VERSION_H */
|
|
60
Externals/ffmpeg/include/libavutil/adler32.h
vendored
60
Externals/ffmpeg/include/libavutil/adler32.h
vendored
@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* copyright (c) 2006 Mans Rullgard
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavu_adler32
|
|
||||||
* Public header for Adler-32 hash function implementation.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_ADLER32_H
|
|
||||||
#define AVUTIL_ADLER32_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include "attributes.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavu_adler32 Adler-32
|
|
||||||
* @ingroup lavu_hash
|
|
||||||
* Adler-32 hash function implementation.
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculate the Adler32 checksum of a buffer.
|
|
||||||
*
|
|
||||||
* Passing the return value to a subsequent av_adler32_update() call
|
|
||||||
* allows the checksum of multiple buffers to be calculated as though
|
|
||||||
* they were concatenated.
|
|
||||||
*
|
|
||||||
* @param adler initial checksum value
|
|
||||||
* @param buf pointer to input buffer
|
|
||||||
* @param len size of input buffer
|
|
||||||
* @return updated checksum
|
|
||||||
*/
|
|
||||||
unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
|
|
||||||
unsigned int len) av_pure;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_ADLER32_H */
|
|
65
Externals/ffmpeg/include/libavutil/aes.h
vendored
65
Externals/ffmpeg/include/libavutil/aes.h
vendored
@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* copyright (c) 2007 Michael Niedermayer <michaelni@gmx.at>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_AES_H
|
|
||||||
#define AVUTIL_AES_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include "attributes.h"
|
|
||||||
#include "version.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavu_aes AES
|
|
||||||
* @ingroup lavu_crypto
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern const int av_aes_size;
|
|
||||||
|
|
||||||
struct AVAES;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate an AVAES context.
|
|
||||||
*/
|
|
||||||
struct AVAES *av_aes_alloc(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize an AVAES context.
|
|
||||||
* @param key_bits 128, 192 or 256
|
|
||||||
* @param decrypt 0 for encryption, 1 for decryption
|
|
||||||
*/
|
|
||||||
int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encrypt or decrypt a buffer using a previously initialized context.
|
|
||||||
* @param count number of 16 byte blocks
|
|
||||||
* @param dst destination array, can be equal to src
|
|
||||||
* @param src source array, can be equal to dst
|
|
||||||
* @param iv initialization vector for CBC mode, if NULL then ECB will be used
|
|
||||||
* @param decrypt 0 for encryption, 1 for decryption
|
|
||||||
*/
|
|
||||||
void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_AES_H */
|
|
83
Externals/ffmpeg/include/libavutil/aes_ctr.h
vendored
83
Externals/ffmpeg/include/libavutil/aes_ctr.h
vendored
@ -1,83 +0,0 @@
|
|||||||
/*
|
|
||||||
* AES-CTR cipher
|
|
||||||
* Copyright (c) 2015 Eran Kornblau <erankor at gmail dot com>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_AES_CTR_H
|
|
||||||
#define AVUTIL_AES_CTR_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include "attributes.h"
|
|
||||||
#include "version.h"
|
|
||||||
|
|
||||||
#define AES_CTR_KEY_SIZE (16)
|
|
||||||
#define AES_CTR_IV_SIZE (8)
|
|
||||||
|
|
||||||
struct AVAESCTR;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate an AVAESCTR context.
|
|
||||||
*/
|
|
||||||
struct AVAESCTR *av_aes_ctr_alloc(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize an AVAESCTR context.
|
|
||||||
* @param key encryption key, must have a length of AES_CTR_KEY_SIZE
|
|
||||||
*/
|
|
||||||
int av_aes_ctr_init(struct AVAESCTR *a, const uint8_t *key);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Release an AVAESCTR context.
|
|
||||||
*/
|
|
||||||
void av_aes_ctr_free(struct AVAESCTR *a);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Process a buffer using a previously initialized context.
|
|
||||||
* @param dst destination array, can be equal to src
|
|
||||||
* @param src source array, can be equal to dst
|
|
||||||
* @param size the size of src and dst
|
|
||||||
*/
|
|
||||||
void av_aes_ctr_crypt(struct AVAESCTR *a, uint8_t *dst, const uint8_t *src, int size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current iv
|
|
||||||
*/
|
|
||||||
const uint8_t* av_aes_ctr_get_iv(struct AVAESCTR *a);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate a random iv
|
|
||||||
*/
|
|
||||||
void av_aes_ctr_set_random_iv(struct AVAESCTR *a);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Forcefully change the iv
|
|
||||||
*/
|
|
||||||
void av_aes_ctr_set_iv(struct AVAESCTR *a, const uint8_t* iv);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Increment the top 64 bit of the iv (performed after each frame)
|
|
||||||
*/
|
|
||||||
void av_aes_ctr_increment_iv(struct AVAESCTR *a);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_AES_CTR_H */
|
|
168
Externals/ffmpeg/include/libavutil/attributes.h
vendored
168
Externals/ffmpeg/include/libavutil/attributes.h
vendored
@ -1,168 +0,0 @@
|
|||||||
/*
|
|
||||||
* copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* Macro definitions for various function/variable attributes
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_ATTRIBUTES_H
|
|
||||||
#define AVUTIL_ATTRIBUTES_H
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y))
|
|
||||||
# define AV_GCC_VERSION_AT_MOST(x,y) (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y))
|
|
||||||
#else
|
|
||||||
# define AV_GCC_VERSION_AT_LEAST(x,y) 0
|
|
||||||
# define AV_GCC_VERSION_AT_MOST(x,y) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef av_always_inline
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,1)
|
|
||||||
# define av_always_inline __attribute__((always_inline)) inline
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
# define av_always_inline __forceinline
|
|
||||||
#else
|
|
||||||
# define av_always_inline inline
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef av_extern_inline
|
|
||||||
#if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__)
|
|
||||||
# define av_extern_inline extern inline
|
|
||||||
#else
|
|
||||||
# define av_extern_inline inline
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,4)
|
|
||||||
# define av_warn_unused_result __attribute__((warn_unused_result))
|
|
||||||
#else
|
|
||||||
# define av_warn_unused_result
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,1)
|
|
||||||
# define av_noinline __attribute__((noinline))
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
# define av_noinline __declspec(noinline)
|
|
||||||
#else
|
|
||||||
# define av_noinline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,1)
|
|
||||||
# define av_pure __attribute__((pure))
|
|
||||||
#else
|
|
||||||
# define av_pure
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(2,6)
|
|
||||||
# define av_const __attribute__((const))
|
|
||||||
#else
|
|
||||||
# define av_const
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(4,3)
|
|
||||||
# define av_cold __attribute__((cold))
|
|
||||||
#else
|
|
||||||
# define av_cold
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__)
|
|
||||||
# define av_flatten __attribute__((flatten))
|
|
||||||
#else
|
|
||||||
# define av_flatten
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,1)
|
|
||||||
# define attribute_deprecated __attribute__((deprecated))
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
# define attribute_deprecated __declspec(deprecated)
|
|
||||||
#else
|
|
||||||
# define attribute_deprecated
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable warnings about deprecated features
|
|
||||||
* This is useful for sections of code kept for backward compatibility and
|
|
||||||
* scheduled for removal.
|
|
||||||
*/
|
|
||||||
#ifndef AV_NOWARN_DEPRECATED
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(4,6)
|
|
||||||
# define AV_NOWARN_DEPRECATED(code) \
|
|
||||||
_Pragma("GCC diagnostic push") \
|
|
||||||
_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
|
|
||||||
code \
|
|
||||||
_Pragma("GCC diagnostic pop")
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
# define AV_NOWARN_DEPRECATED(code) \
|
|
||||||
__pragma(warning(push)) \
|
|
||||||
__pragma(warning(disable : 4996)) \
|
|
||||||
code; \
|
|
||||||
__pragma(warning(pop))
|
|
||||||
#else
|
|
||||||
# define AV_NOWARN_DEPRECATED(code) code
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
# define av_unused __attribute__((unused))
|
|
||||||
#else
|
|
||||||
# define av_unused
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mark a variable as used and prevent the compiler from optimizing it
|
|
||||||
* away. This is useful for variables accessed only from inline
|
|
||||||
* assembler without the compiler being aware.
|
|
||||||
*/
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,1)
|
|
||||||
# define av_used __attribute__((used))
|
|
||||||
#else
|
|
||||||
# define av_used
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(3,3)
|
|
||||||
# define av_alias __attribute__((may_alias))
|
|
||||||
#else
|
|
||||||
# define av_alias
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(__clang__)
|
|
||||||
# define av_uninit(x) x=x
|
|
||||||
#else
|
|
||||||
# define av_uninit(x) x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
# define av_builtin_constant_p __builtin_constant_p
|
|
||||||
# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos)))
|
|
||||||
#else
|
|
||||||
# define av_builtin_constant_p(x) 0
|
|
||||||
# define av_printf_format(fmtpos, attrpos)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if AV_GCC_VERSION_AT_LEAST(2,5)
|
|
||||||
# define av_noreturn __attribute__((noreturn))
|
|
||||||
#else
|
|
||||||
# define av_noreturn
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* AVUTIL_ATTRIBUTES_H */
|
|
187
Externals/ffmpeg/include/libavutil/audio_fifo.h
vendored
187
Externals/ffmpeg/include/libavutil/audio_fifo.h
vendored
@ -1,187 +0,0 @@
|
|||||||
/*
|
|
||||||
* Audio FIFO
|
|
||||||
* Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* Audio FIFO Buffer
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_AUDIO_FIFO_H
|
|
||||||
#define AVUTIL_AUDIO_FIFO_H
|
|
||||||
|
|
||||||
#include "avutil.h"
|
|
||||||
#include "fifo.h"
|
|
||||||
#include "samplefmt.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @addtogroup lavu_audio
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @defgroup lavu_audiofifo Audio FIFO Buffer
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Context for an Audio FIFO Buffer.
|
|
||||||
*
|
|
||||||
* - Operates at the sample level rather than the byte level.
|
|
||||||
* - Supports multiple channels with either planar or packed sample format.
|
|
||||||
* - Automatic reallocation when writing to a full buffer.
|
|
||||||
*/
|
|
||||||
typedef struct AVAudioFifo AVAudioFifo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Free an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to free
|
|
||||||
*/
|
|
||||||
void av_audio_fifo_free(AVAudioFifo *af);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* @param sample_fmt sample format
|
|
||||||
* @param channels number of channels
|
|
||||||
* @param nb_samples initial allocation size, in samples
|
|
||||||
* @return newly allocated AVAudioFifo, or NULL on error
|
|
||||||
*/
|
|
||||||
AVAudioFifo *av_audio_fifo_alloc(enum AVSampleFormat sample_fmt, int channels,
|
|
||||||
int nb_samples);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reallocate an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to reallocate
|
|
||||||
* @param nb_samples new allocation size, in samples
|
|
||||||
* @return 0 if OK, or negative AVERROR code on failure
|
|
||||||
*/
|
|
||||||
av_warn_unused_result
|
|
||||||
int av_audio_fifo_realloc(AVAudioFifo *af, int nb_samples);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Write data to an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* The AVAudioFifo will be reallocated automatically if the available space
|
|
||||||
* is less than nb_samples.
|
|
||||||
*
|
|
||||||
* @see enum AVSampleFormat
|
|
||||||
* The documentation for AVSampleFormat describes the data layout.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to write to
|
|
||||||
* @param data audio data plane pointers
|
|
||||||
* @param nb_samples number of samples to write
|
|
||||||
* @return number of samples actually written, or negative AVERROR
|
|
||||||
* code on failure. If successful, the number of samples
|
|
||||||
* actually written will always be nb_samples.
|
|
||||||
*/
|
|
||||||
int av_audio_fifo_write(AVAudioFifo *af, void **data, int nb_samples);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Peek data from an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* @see enum AVSampleFormat
|
|
||||||
* The documentation for AVSampleFormat describes the data layout.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to read from
|
|
||||||
* @param data audio data plane pointers
|
|
||||||
* @param nb_samples number of samples to peek
|
|
||||||
* @return number of samples actually peek, or negative AVERROR code
|
|
||||||
* on failure. The number of samples actually peek will not
|
|
||||||
* be greater than nb_samples, and will only be less than
|
|
||||||
* nb_samples if av_audio_fifo_size is less than nb_samples.
|
|
||||||
*/
|
|
||||||
int av_audio_fifo_peek(AVAudioFifo *af, void **data, int nb_samples);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Peek data from an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* @see enum AVSampleFormat
|
|
||||||
* The documentation for AVSampleFormat describes the data layout.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to read from
|
|
||||||
* @param data audio data plane pointers
|
|
||||||
* @param nb_samples number of samples to peek
|
|
||||||
* @param offset offset from current read position
|
|
||||||
* @return number of samples actually peek, or negative AVERROR code
|
|
||||||
* on failure. The number of samples actually peek will not
|
|
||||||
* be greater than nb_samples, and will only be less than
|
|
||||||
* nb_samples if av_audio_fifo_size is less than nb_samples.
|
|
||||||
*/
|
|
||||||
int av_audio_fifo_peek_at(AVAudioFifo *af, void **data, int nb_samples, int offset);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read data from an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* @see enum AVSampleFormat
|
|
||||||
* The documentation for AVSampleFormat describes the data layout.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to read from
|
|
||||||
* @param data audio data plane pointers
|
|
||||||
* @param nb_samples number of samples to read
|
|
||||||
* @return number of samples actually read, or negative AVERROR code
|
|
||||||
* on failure. The number of samples actually read will not
|
|
||||||
* be greater than nb_samples, and will only be less than
|
|
||||||
* nb_samples if av_audio_fifo_size is less than nb_samples.
|
|
||||||
*/
|
|
||||||
int av_audio_fifo_read(AVAudioFifo *af, void **data, int nb_samples);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Drain data from an AVAudioFifo.
|
|
||||||
*
|
|
||||||
* Removes the data without reading it.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to drain
|
|
||||||
* @param nb_samples number of samples to drain
|
|
||||||
* @return 0 if OK, or negative AVERROR code on failure
|
|
||||||
*/
|
|
||||||
int av_audio_fifo_drain(AVAudioFifo *af, int nb_samples);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reset the AVAudioFifo buffer.
|
|
||||||
*
|
|
||||||
* This empties all data in the buffer.
|
|
||||||
*
|
|
||||||
* @param af AVAudioFifo to reset
|
|
||||||
*/
|
|
||||||
void av_audio_fifo_reset(AVAudioFifo *af);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current number of samples in the AVAudioFifo available for reading.
|
|
||||||
*
|
|
||||||
* @param af the AVAudioFifo to query
|
|
||||||
* @return number of samples available for reading
|
|
||||||
*/
|
|
||||||
int av_audio_fifo_size(AVAudioFifo *af);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current number of samples in the AVAudioFifo available for writing.
|
|
||||||
*
|
|
||||||
* @param af the AVAudioFifo to query
|
|
||||||
* @return number of samples available for writing
|
|
||||||
*/
|
|
||||||
int av_audio_fifo_space(AVAudioFifo *af);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_AUDIO_FIFO_H */
|
|
75
Externals/ffmpeg/include/libavutil/avassert.h
vendored
75
Externals/ffmpeg/include/libavutil/avassert.h
vendored
@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
* copyright (c) 2010 Michael Niedermayer <michaelni@gmx.at>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* simple assert() macros that are a bit more flexible than ISO C assert().
|
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_AVASSERT_H
|
|
||||||
#define AVUTIL_AVASSERT_H
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include "avutil.h"
|
|
||||||
#include "log.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* assert() equivalent, that is always enabled.
|
|
||||||
*/
|
|
||||||
#define av_assert0(cond) do { \
|
|
||||||
if (!(cond)) { \
|
|
||||||
av_log(NULL, AV_LOG_PANIC, "Assertion %s failed at %s:%d\n", \
|
|
||||||
AV_STRINGIFY(cond), __FILE__, __LINE__); \
|
|
||||||
abort(); \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* assert() equivalent, that does not lie in speed critical code.
|
|
||||||
* These asserts() thus can be enabled without fearing speed loss.
|
|
||||||
*/
|
|
||||||
#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0
|
|
||||||
#define av_assert1(cond) av_assert0(cond)
|
|
||||||
#else
|
|
||||||
#define av_assert1(cond) ((void)0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* assert() equivalent, that does lie in speed critical code.
|
|
||||||
*/
|
|
||||||
#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1
|
|
||||||
#define av_assert2(cond) av_assert0(cond)
|
|
||||||
#define av_assert2_fpu() av_assert0_fpu()
|
|
||||||
#else
|
|
||||||
#define av_assert2(cond) ((void)0)
|
|
||||||
#define av_assert2_fpu() ((void)0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Assert that floating point opperations can be executed.
|
|
||||||
*
|
|
||||||
* This will av_assert0() that the cpu is not in MMX state on X86
|
|
||||||
*/
|
|
||||||
void av_assert0_fpu(void);
|
|
||||||
|
|
||||||
#endif /* AVUTIL_AVASSERT_H */
|
|
@ -1,6 +0,0 @@
|
|||||||
/* Generated by ffconf */
|
|
||||||
#ifndef AVUTIL_AVCONFIG_H
|
|
||||||
#define AVUTIL_AVCONFIG_H
|
|
||||||
#define AV_HAVE_BIGENDIAN 0
|
|
||||||
#define AV_HAVE_FAST_UNALIGNED 1
|
|
||||||
#endif /* AVUTIL_AVCONFIG_H */
|
|
402
Externals/ffmpeg/include/libavutil/avstring.h
vendored
402
Externals/ffmpeg/include/libavutil/avstring.h
vendored
@ -1,402 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2007 Mans Rullgard
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_AVSTRING_H
|
|
||||||
#define AVUTIL_AVSTRING_H
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include "attributes.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @addtogroup lavu_string
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return non-zero if pfx is a prefix of str. If it is, *ptr is set to
|
|
||||||
* the address of the first character in str after the prefix.
|
|
||||||
*
|
|
||||||
* @param str input string
|
|
||||||
* @param pfx prefix to test
|
|
||||||
* @param ptr updated if the prefix is matched inside str
|
|
||||||
* @return non-zero if the prefix matches, zero otherwise
|
|
||||||
*/
|
|
||||||
int av_strstart(const char *str, const char *pfx, const char **ptr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return non-zero if pfx is a prefix of str independent of case. If
|
|
||||||
* it is, *ptr is set to the address of the first character in str
|
|
||||||
* after the prefix.
|
|
||||||
*
|
|
||||||
* @param str input string
|
|
||||||
* @param pfx prefix to test
|
|
||||||
* @param ptr updated if the prefix is matched inside str
|
|
||||||
* @return non-zero if the prefix matches, zero otherwise
|
|
||||||
*/
|
|
||||||
int av_stristart(const char *str, const char *pfx, const char **ptr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locate the first case-independent occurrence in the string haystack
|
|
||||||
* of the string needle. A zero-length string needle is considered to
|
|
||||||
* match at the start of haystack.
|
|
||||||
*
|
|
||||||
* This function is a case-insensitive version of the standard strstr().
|
|
||||||
*
|
|
||||||
* @param haystack string to search in
|
|
||||||
* @param needle string to search for
|
|
||||||
* @return pointer to the located match within haystack
|
|
||||||
* or a null pointer if no match
|
|
||||||
*/
|
|
||||||
char *av_stristr(const char *haystack, const char *needle);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locate the first occurrence of the string needle in the string haystack
|
|
||||||
* where not more than hay_length characters are searched. A zero-length
|
|
||||||
* string needle is considered to match at the start of haystack.
|
|
||||||
*
|
|
||||||
* This function is a length-limited version of the standard strstr().
|
|
||||||
*
|
|
||||||
* @param haystack string to search in
|
|
||||||
* @param needle string to search for
|
|
||||||
* @param hay_length length of string to search in
|
|
||||||
* @return pointer to the located match within haystack
|
|
||||||
* or a null pointer if no match
|
|
||||||
*/
|
|
||||||
char *av_strnstr(const char *haystack, const char *needle, size_t hay_length);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copy the string src to dst, but no more than size - 1 bytes, and
|
|
||||||
* null-terminate dst.
|
|
||||||
*
|
|
||||||
* This function is the same as BSD strlcpy().
|
|
||||||
*
|
|
||||||
* @param dst destination buffer
|
|
||||||
* @param src source string
|
|
||||||
* @param size size of destination buffer
|
|
||||||
* @return the length of src
|
|
||||||
*
|
|
||||||
* @warning since the return value is the length of src, src absolutely
|
|
||||||
* _must_ be a properly 0-terminated string, otherwise this will read beyond
|
|
||||||
* the end of the buffer and possibly crash.
|
|
||||||
*/
|
|
||||||
size_t av_strlcpy(char *dst, const char *src, size_t size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Append the string src to the string dst, but to a total length of
|
|
||||||
* no more than size - 1 bytes, and null-terminate dst.
|
|
||||||
*
|
|
||||||
* This function is similar to BSD strlcat(), but differs when
|
|
||||||
* size <= strlen(dst).
|
|
||||||
*
|
|
||||||
* @param dst destination buffer
|
|
||||||
* @param src source string
|
|
||||||
* @param size size of destination buffer
|
|
||||||
* @return the total length of src and dst
|
|
||||||
*
|
|
||||||
* @warning since the return value use the length of src and dst, these
|
|
||||||
* absolutely _must_ be a properly 0-terminated strings, otherwise this
|
|
||||||
* will read beyond the end of the buffer and possibly crash.
|
|
||||||
*/
|
|
||||||
size_t av_strlcat(char *dst, const char *src, size_t size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Append output to a string, according to a format. Never write out of
|
|
||||||
* the destination buffer, and always put a terminating 0 within
|
|
||||||
* the buffer.
|
|
||||||
* @param dst destination buffer (string to which the output is
|
|
||||||
* appended)
|
|
||||||
* @param size total size of the destination buffer
|
|
||||||
* @param fmt printf-compatible format string, specifying how the
|
|
||||||
* following parameters are used
|
|
||||||
* @return the length of the string that would have been generated
|
|
||||||
* if enough space had been available
|
|
||||||
*/
|
|
||||||
size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) av_printf_format(3, 4);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the count of continuous non zero chars starting from the beginning.
|
|
||||||
*
|
|
||||||
* @param len maximum number of characters to check in the string, that
|
|
||||||
* is the maximum value which is returned by the function
|
|
||||||
*/
|
|
||||||
static inline size_t av_strnlen(const char *s, size_t len)
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
for (i = 0; i < len && s[i]; i++)
|
|
||||||
;
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Print arguments following specified format into a large enough auto
|
|
||||||
* allocated buffer. It is similar to GNU asprintf().
|
|
||||||
* @param fmt printf-compatible format string, specifying how the
|
|
||||||
* following parameters are used.
|
|
||||||
* @return the allocated string
|
|
||||||
* @note You have to free the string yourself with av_free().
|
|
||||||
*/
|
|
||||||
char *av_asprintf(const char *fmt, ...) av_printf_format(1, 2);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert a number to an av_malloced string.
|
|
||||||
*/
|
|
||||||
char *av_d2str(double d);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unescape the given string until a non escaped terminating char,
|
|
||||||
* and return the token corresponding to the unescaped string.
|
|
||||||
*
|
|
||||||
* The normal \ and ' escaping is supported. Leading and trailing
|
|
||||||
* whitespaces are removed, unless they are escaped with '\' or are
|
|
||||||
* enclosed between ''.
|
|
||||||
*
|
|
||||||
* @param buf the buffer to parse, buf will be updated to point to the
|
|
||||||
* terminating char
|
|
||||||
* @param term a 0-terminated list of terminating chars
|
|
||||||
* @return the malloced unescaped string, which must be av_freed by
|
|
||||||
* the user, NULL in case of allocation failure
|
|
||||||
*/
|
|
||||||
char *av_get_token(const char **buf, const char *term);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Split the string into several tokens which can be accessed by
|
|
||||||
* successive calls to av_strtok().
|
|
||||||
*
|
|
||||||
* A token is defined as a sequence of characters not belonging to the
|
|
||||||
* set specified in delim.
|
|
||||||
*
|
|
||||||
* On the first call to av_strtok(), s should point to the string to
|
|
||||||
* parse, and the value of saveptr is ignored. In subsequent calls, s
|
|
||||||
* should be NULL, and saveptr should be unchanged since the previous
|
|
||||||
* call.
|
|
||||||
*
|
|
||||||
* This function is similar to strtok_r() defined in POSIX.1.
|
|
||||||
*
|
|
||||||
* @param s the string to parse, may be NULL
|
|
||||||
* @param delim 0-terminated list of token delimiters, must be non-NULL
|
|
||||||
* @param saveptr user-provided pointer which points to stored
|
|
||||||
* information necessary for av_strtok() to continue scanning the same
|
|
||||||
* string. saveptr is updated to point to the next character after the
|
|
||||||
* first delimiter found, or to NULL if the string was terminated
|
|
||||||
* @return the found token, or NULL when no token is found
|
|
||||||
*/
|
|
||||||
char *av_strtok(char *s, const char *delim, char **saveptr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent conversion of ASCII isdigit.
|
|
||||||
*/
|
|
||||||
static inline av_const int av_isdigit(int c)
|
|
||||||
{
|
|
||||||
return c >= '0' && c <= '9';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent conversion of ASCII isgraph.
|
|
||||||
*/
|
|
||||||
static inline av_const int av_isgraph(int c)
|
|
||||||
{
|
|
||||||
return c > 32 && c < 127;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent conversion of ASCII isspace.
|
|
||||||
*/
|
|
||||||
static inline av_const int av_isspace(int c)
|
|
||||||
{
|
|
||||||
return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' ||
|
|
||||||
c == '\v';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent conversion of ASCII characters to uppercase.
|
|
||||||
*/
|
|
||||||
static inline av_const int av_toupper(int c)
|
|
||||||
{
|
|
||||||
if (c >= 'a' && c <= 'z')
|
|
||||||
c ^= 0x20;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent conversion of ASCII characters to lowercase.
|
|
||||||
*/
|
|
||||||
static inline av_const int av_tolower(int c)
|
|
||||||
{
|
|
||||||
if (c >= 'A' && c <= 'Z')
|
|
||||||
c ^= 0x20;
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent conversion of ASCII isxdigit.
|
|
||||||
*/
|
|
||||||
static inline av_const int av_isxdigit(int c)
|
|
||||||
{
|
|
||||||
c = av_tolower(c);
|
|
||||||
return av_isdigit(c) || (c >= 'a' && c <= 'f');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent case-insensitive compare.
|
|
||||||
* @note This means only ASCII-range characters are case-insensitive
|
|
||||||
*/
|
|
||||||
int av_strcasecmp(const char *a, const char *b);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locale-independent case-insensitive compare.
|
|
||||||
* @note This means only ASCII-range characters are case-insensitive
|
|
||||||
*/
|
|
||||||
int av_strncasecmp(const char *a, const char *b, size_t n);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Thread safe basename.
|
|
||||||
* @param path the path, on DOS both \ and / are considered separators.
|
|
||||||
* @return pointer to the basename substring.
|
|
||||||
*/
|
|
||||||
const char *av_basename(const char *path);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Thread safe dirname.
|
|
||||||
* @param path the path, on DOS both \ and / are considered separators.
|
|
||||||
* @return the path with the separator replaced by the string terminator or ".".
|
|
||||||
* @note the function may change the input string.
|
|
||||||
*/
|
|
||||||
const char *av_dirname(char *path);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Match instances of a name in a comma-separated list of names.
|
|
||||||
* List entries are checked from the start to the end of the names list,
|
|
||||||
* the first match ends further processing. If an entry prefixed with '-'
|
|
||||||
* matches, then 0 is returned. The "ALL" list entry is considered to
|
|
||||||
* match all names.
|
|
||||||
*
|
|
||||||
* @param name Name to look for.
|
|
||||||
* @param names List of names.
|
|
||||||
* @return 1 on match, 0 otherwise.
|
|
||||||
*/
|
|
||||||
int av_match_name(const char *name, const char *names);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Append path component to the existing path.
|
|
||||||
* Path separator '/' is placed between when needed.
|
|
||||||
* Resulting string have to be freed with av_free().
|
|
||||||
* @param path base path
|
|
||||||
* @param component component to be appended
|
|
||||||
* @return new path or NULL on error.
|
|
||||||
*/
|
|
||||||
char *av_append_path_component(const char *path, const char *component);
|
|
||||||
|
|
||||||
enum AVEscapeMode {
|
|
||||||
AV_ESCAPE_MODE_AUTO, ///< Use auto-selected escaping mode.
|
|
||||||
AV_ESCAPE_MODE_BACKSLASH, ///< Use backslash escaping.
|
|
||||||
AV_ESCAPE_MODE_QUOTE, ///< Use single-quote escaping.
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Consider spaces special and escape them even in the middle of the
|
|
||||||
* string.
|
|
||||||
*
|
|
||||||
* This is equivalent to adding the whitespace characters to the special
|
|
||||||
* characters lists, except it is guaranteed to use the exact same list
|
|
||||||
* of whitespace characters as the rest of libavutil.
|
|
||||||
*/
|
|
||||||
#define AV_ESCAPE_FLAG_WHITESPACE (1 << 0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Escape only specified special characters.
|
|
||||||
* Without this flag, escape also any characters that may be considered
|
|
||||||
* special by av_get_token(), such as the single quote.
|
|
||||||
*/
|
|
||||||
#define AV_ESCAPE_FLAG_STRICT (1 << 1)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Escape string in src, and put the escaped string in an allocated
|
|
||||||
* string in *dst, which must be freed with av_free().
|
|
||||||
*
|
|
||||||
* @param dst pointer where an allocated string is put
|
|
||||||
* @param src string to escape, must be non-NULL
|
|
||||||
* @param special_chars string containing the special characters which
|
|
||||||
* need to be escaped, can be NULL
|
|
||||||
* @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros.
|
|
||||||
* Any unknown value for mode will be considered equivalent to
|
|
||||||
* AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without
|
|
||||||
* notice.
|
|
||||||
* @param flags flags which control how to escape, see AV_ESCAPE_FLAG_ macros
|
|
||||||
* @return the length of the allocated string, or a negative error code in case of error
|
|
||||||
* @see av_bprint_escape()
|
|
||||||
*/
|
|
||||||
av_warn_unused_result
|
|
||||||
int av_escape(char **dst, const char *src, const char *special_chars,
|
|
||||||
enum AVEscapeMode mode, int flags);
|
|
||||||
|
|
||||||
#define AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES 1 ///< accept codepoints over 0x10FFFF
|
|
||||||
#define AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS 2 ///< accept non-characters - 0xFFFE and 0xFFFF
|
|
||||||
#define AV_UTF8_FLAG_ACCEPT_SURROGATES 4 ///< accept UTF-16 surrogates codes
|
|
||||||
#define AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES 8 ///< exclude control codes not accepted by XML
|
|
||||||
|
|
||||||
#define AV_UTF8_FLAG_ACCEPT_ALL \
|
|
||||||
AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES|AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS|AV_UTF8_FLAG_ACCEPT_SURROGATES
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read and decode a single UTF-8 code point (character) from the
|
|
||||||
* buffer in *buf, and update *buf to point to the next byte to
|
|
||||||
* decode.
|
|
||||||
*
|
|
||||||
* In case of an invalid byte sequence, the pointer will be updated to
|
|
||||||
* the next byte after the invalid sequence and the function will
|
|
||||||
* return an error code.
|
|
||||||
*
|
|
||||||
* Depending on the specified flags, the function will also fail in
|
|
||||||
* case the decoded code point does not belong to a valid range.
|
|
||||||
*
|
|
||||||
* @note For speed-relevant code a carefully implemented use of
|
|
||||||
* GET_UTF8() may be preferred.
|
|
||||||
*
|
|
||||||
* @param codep pointer used to return the parsed code in case of success.
|
|
||||||
* The value in *codep is set even in case the range check fails.
|
|
||||||
* @param bufp pointer to the address the first byte of the sequence
|
|
||||||
* to decode, updated by the function to point to the
|
|
||||||
* byte next after the decoded sequence
|
|
||||||
* @param buf_end pointer to the end of the buffer, points to the next
|
|
||||||
* byte past the last in the buffer. This is used to
|
|
||||||
* avoid buffer overreads (in case of an unfinished
|
|
||||||
* UTF-8 sequence towards the end of the buffer).
|
|
||||||
* @param flags a collection of AV_UTF8_FLAG_* flags
|
|
||||||
* @return >= 0 in case a sequence was successfully read, a negative
|
|
||||||
* value in case of invalid sequence
|
|
||||||
*/
|
|
||||||
av_warn_unused_result
|
|
||||||
int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end,
|
|
||||||
unsigned int flags);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if a name is in a list.
|
|
||||||
* @returns 0 if not found, or the 1 based index where it has been found in the
|
|
||||||
* list.
|
|
||||||
*/
|
|
||||||
int av_match_list(const char *name, const char *list, char separator);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_AVSTRING_H */
|
|
345
Externals/ffmpeg/include/libavutil/avutil.h
vendored
345
Externals/ffmpeg/include/libavutil/avutil.h
vendored
@ -1,345 +0,0 @@
|
|||||||
/*
|
|
||||||
* copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_AVUTIL_H
|
|
||||||
#define AVUTIL_AVUTIL_H
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
* @ingroup lavu
|
|
||||||
* Convenience header that includes @ref lavu "libavutil"'s core.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @mainpage
|
|
||||||
*
|
|
||||||
* @section ffmpeg_intro Introduction
|
|
||||||
*
|
|
||||||
* This document describes the usage of the different libraries
|
|
||||||
* provided by FFmpeg.
|
|
||||||
*
|
|
||||||
* @li @ref libavc "libavcodec" encoding/decoding library
|
|
||||||
* @li @ref lavfi "libavfilter" graph-based frame editing library
|
|
||||||
* @li @ref libavf "libavformat" I/O and muxing/demuxing library
|
|
||||||
* @li @ref lavd "libavdevice" special devices muxing/demuxing library
|
|
||||||
* @li @ref lavu "libavutil" common utility library
|
|
||||||
* @li @ref lswr "libswresample" audio resampling, format conversion and mixing
|
|
||||||
* @li @ref lpp "libpostproc" post processing library
|
|
||||||
* @li @ref libsws "libswscale" color conversion and scaling library
|
|
||||||
*
|
|
||||||
* @section ffmpeg_versioning Versioning and compatibility
|
|
||||||
*
|
|
||||||
* Each of the FFmpeg libraries contains a version.h header, which defines a
|
|
||||||
* major, minor and micro version number with the
|
|
||||||
* <em>LIBRARYNAME_VERSION_{MAJOR,MINOR,MICRO}</em> macros. The major version
|
|
||||||
* number is incremented with backward incompatible changes - e.g. removing
|
|
||||||
* parts of the public API, reordering public struct members, etc. The minor
|
|
||||||
* version number is incremented for backward compatible API changes or major
|
|
||||||
* new features - e.g. adding a new public function or a new decoder. The micro
|
|
||||||
* version number is incremented for smaller changes that a calling program
|
|
||||||
* might still want to check for - e.g. changing behavior in a previously
|
|
||||||
* unspecified situation.
|
|
||||||
*
|
|
||||||
* FFmpeg guarantees backward API and ABI compatibility for each library as long
|
|
||||||
* as its major version number is unchanged. This means that no public symbols
|
|
||||||
* will be removed or renamed. Types and names of the public struct members and
|
|
||||||
* values of public macros and enums will remain the same (unless they were
|
|
||||||
* explicitly declared as not part of the public API). Documented behavior will
|
|
||||||
* not change.
|
|
||||||
*
|
|
||||||
* In other words, any correct program that works with a given FFmpeg snapshot
|
|
||||||
* should work just as well without any changes with any later snapshot with the
|
|
||||||
* same major versions. This applies to both rebuilding the program against new
|
|
||||||
* FFmpeg versions or to replacing the dynamic FFmpeg libraries that a program
|
|
||||||
* links against.
|
|
||||||
*
|
|
||||||
* However, new public symbols may be added and new members may be appended to
|
|
||||||
* public structs whose size is not part of public ABI (most public structs in
|
|
||||||
* FFmpeg). New macros and enum values may be added. Behavior in undocumented
|
|
||||||
* situations may change slightly (and be documented). All those are accompanied
|
|
||||||
* by an entry in doc/APIchanges and incrementing either the minor or micro
|
|
||||||
* version number.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavu libavutil
|
|
||||||
* Common code shared across all FFmpeg libraries.
|
|
||||||
*
|
|
||||||
* @note
|
|
||||||
* libavutil is designed to be modular. In most cases, in order to use the
|
|
||||||
* functions provided by one component of libavutil you must explicitly include
|
|
||||||
* the specific header containing that feature. If you are only using
|
|
||||||
* media-related components, you could simply include libavutil/avutil.h, which
|
|
||||||
* brings in most of the "core" components.
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @defgroup lavu_crypto Crypto and Hashing
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_math Mathematics
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_string String Manipulation
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_mem Memory Management
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_data Data Structures
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_audio Audio related
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_error Error Codes
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_log Logging Facility
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup lavu_misc Other
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @defgroup preproc_misc Preprocessor String Macros
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*
|
|
||||||
* @defgroup version_utils Library Version Macros
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @addtogroup lavu_ver
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the LIBAVUTIL_VERSION_INT constant.
|
|
||||||
*/
|
|
||||||
unsigned avutil_version(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return an informative version string. This usually is the actual release
|
|
||||||
* version number or a git commit description. This string has no fixed format
|
|
||||||
* and can change any time. It should never be parsed by code.
|
|
||||||
*/
|
|
||||||
const char *av_version_info(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the libavutil build-time configuration.
|
|
||||||
*/
|
|
||||||
const char *avutil_configuration(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the libavutil license.
|
|
||||||
*/
|
|
||||||
const char *avutil_license(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @addtogroup lavu_media Media Type
|
|
||||||
* @brief Media Type
|
|
||||||
*/
|
|
||||||
|
|
||||||
enum AVMediaType {
|
|
||||||
AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA
|
|
||||||
AVMEDIA_TYPE_VIDEO,
|
|
||||||
AVMEDIA_TYPE_AUDIO,
|
|
||||||
AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous
|
|
||||||
AVMEDIA_TYPE_SUBTITLE,
|
|
||||||
AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse
|
|
||||||
AVMEDIA_TYPE_NB
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a string describing the media_type enum, NULL if media_type
|
|
||||||
* is unknown.
|
|
||||||
*/
|
|
||||||
const char *av_get_media_type_string(enum AVMediaType media_type);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavu_const Constants
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @defgroup lavu_enc Encoding specific
|
|
||||||
*
|
|
||||||
* @note those definition should move to avcodec
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define FF_LAMBDA_SHIFT 7
|
|
||||||
#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
|
|
||||||
#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
|
|
||||||
#define FF_LAMBDA_MAX (256*128-1)
|
|
||||||
|
|
||||||
#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
* @defgroup lavu_time Timestamp specific
|
|
||||||
*
|
|
||||||
* FFmpeg internal timebase and timestamp definitions
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Undefined timestamp value
|
|
||||||
*
|
|
||||||
* Usually reported by demuxer that work on containers that do not provide
|
|
||||||
* either pts or dts.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define AV_NOPTS_VALUE ((int64_t)UINT64_C(0x8000000000000000))
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Internal time base represented as integer
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define AV_TIME_BASE 1000000
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Internal time base represented as fractional value
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
* @}
|
|
||||||
* @defgroup lavu_picture Image related
|
|
||||||
*
|
|
||||||
* AVPicture types, pixel formats and basic image planes manipulation.
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
enum AVPictureType {
|
|
||||||
AV_PICTURE_TYPE_NONE = 0, ///< Undefined
|
|
||||||
AV_PICTURE_TYPE_I, ///< Intra
|
|
||||||
AV_PICTURE_TYPE_P, ///< Predicted
|
|
||||||
AV_PICTURE_TYPE_B, ///< Bi-dir predicted
|
|
||||||
AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG-4
|
|
||||||
AV_PICTURE_TYPE_SI, ///< Switching Intra
|
|
||||||
AV_PICTURE_TYPE_SP, ///< Switching Predicted
|
|
||||||
AV_PICTURE_TYPE_BI, ///< BI type
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a single letter to describe the given picture type
|
|
||||||
* pict_type.
|
|
||||||
*
|
|
||||||
* @param[in] pict_type the picture type @return a single character
|
|
||||||
* representing the picture type, '?' if pict_type is unknown
|
|
||||||
*/
|
|
||||||
char av_get_picture_type_char(enum AVPictureType pict_type);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "common.h"
|
|
||||||
#include "error.h"
|
|
||||||
#include "rational.h"
|
|
||||||
#include "version.h"
|
|
||||||
#include "macros.h"
|
|
||||||
#include "mathematics.h"
|
|
||||||
#include "log.h"
|
|
||||||
#include "pixfmt.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return x default pointer in case p is NULL.
|
|
||||||
*/
|
|
||||||
static inline void *av_x_if_null(const void *p, const void *x)
|
|
||||||
{
|
|
||||||
return (void *)(intptr_t)(p ? p : x);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Compute the length of an integer list.
|
|
||||||
*
|
|
||||||
* @param elsize size in bytes of each list element (only 1, 2, 4 or 8)
|
|
||||||
* @param term list terminator (usually 0 or -1)
|
|
||||||
* @param list pointer to the list
|
|
||||||
* @return length of the list, in elements, not counting the terminator
|
|
||||||
*/
|
|
||||||
unsigned av_int_list_length_for_size(unsigned elsize,
|
|
||||||
const void *list, uint64_t term) av_pure;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Compute the length of an integer list.
|
|
||||||
*
|
|
||||||
* @param term list terminator (usually 0 or -1)
|
|
||||||
* @param list pointer to the list
|
|
||||||
* @return length of the list, in elements, not counting the terminator
|
|
||||||
*/
|
|
||||||
#define av_int_list_length(list, term) \
|
|
||||||
av_int_list_length_for_size(sizeof(*(list)), list, term)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Open a file using a UTF-8 filename.
|
|
||||||
* The API of this function matches POSIX fopen(), errors are returned through
|
|
||||||
* errno.
|
|
||||||
*/
|
|
||||||
FILE *av_fopen_utf8(const char *path, const char *mode);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the fractional representation of the internal time base.
|
|
||||||
*/
|
|
||||||
AVRational av_get_time_base_q(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_AVUTIL_H */
|
|
72
Externals/ffmpeg/include/libavutil/base64.h
vendored
72
Externals/ffmpeg/include/libavutil/base64.h
vendored
@ -1,72 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com)
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_BASE64_H
|
|
||||||
#define AVUTIL_BASE64_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavu_base64 Base64
|
|
||||||
* @ingroup lavu_crypto
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Decode a base64-encoded string.
|
|
||||||
*
|
|
||||||
* @param out buffer for decoded data
|
|
||||||
* @param in null-terminated input string
|
|
||||||
* @param out_size size in bytes of the out buffer, must be at
|
|
||||||
* least 3/4 of the length of in, that is AV_BASE64_DECODE_SIZE(strlen(in))
|
|
||||||
* @return number of bytes written, or a negative value in case of
|
|
||||||
* invalid input
|
|
||||||
*/
|
|
||||||
int av_base64_decode(uint8_t *out, const char *in, int out_size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculate the output size in bytes needed to decode a base64 string
|
|
||||||
* with length x to a data buffer.
|
|
||||||
*/
|
|
||||||
#define AV_BASE64_DECODE_SIZE(x) ((x) * 3LL / 4)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encode data to base64 and null-terminate.
|
|
||||||
*
|
|
||||||
* @param out buffer for encoded data
|
|
||||||
* @param out_size size in bytes of the out buffer (including the
|
|
||||||
* null terminator), must be at least AV_BASE64_SIZE(in_size)
|
|
||||||
* @param in input buffer containing the data to encode
|
|
||||||
* @param in_size size in bytes of the in buffer
|
|
||||||
* @return out or NULL in case of error
|
|
||||||
*/
|
|
||||||
char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculate the output size needed to base64-encode x bytes to a
|
|
||||||
* null-terminated string.
|
|
||||||
*/
|
|
||||||
#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_BASE64_H */
|
|
82
Externals/ffmpeg/include/libavutil/blowfish.h
vendored
82
Externals/ffmpeg/include/libavutil/blowfish.h
vendored
@ -1,82 +0,0 @@
|
|||||||
/*
|
|
||||||
* Blowfish algorithm
|
|
||||||
* Copyright (c) 2012 Samuel Pitoiset
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_BLOWFISH_H
|
|
||||||
#define AVUTIL_BLOWFISH_H
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup lavu_blowfish Blowfish
|
|
||||||
* @ingroup lavu_crypto
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define AV_BF_ROUNDS 16
|
|
||||||
|
|
||||||
typedef struct AVBlowfish {
|
|
||||||
uint32_t p[AV_BF_ROUNDS + 2];
|
|
||||||
uint32_t s[4][256];
|
|
||||||
} AVBlowfish;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate an AVBlowfish context.
|
|
||||||
*/
|
|
||||||
AVBlowfish *av_blowfish_alloc(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize an AVBlowfish context.
|
|
||||||
*
|
|
||||||
* @param ctx an AVBlowfish context
|
|
||||||
* @param key a key
|
|
||||||
* @param key_len length of the key
|
|
||||||
*/
|
|
||||||
void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encrypt or decrypt a buffer using a previously initialized context.
|
|
||||||
*
|
|
||||||
* @param ctx an AVBlowfish context
|
|
||||||
* @param xl left four bytes halves of input to be encrypted
|
|
||||||
* @param xr right four bytes halves of input to be encrypted
|
|
||||||
* @param decrypt 0 for encryption, 1 for decryption
|
|
||||||
*/
|
|
||||||
void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr,
|
|
||||||
int decrypt);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Encrypt or decrypt a buffer using a previously initialized context.
|
|
||||||
*
|
|
||||||
* @param ctx an AVBlowfish context
|
|
||||||
* @param dst destination array, can be equal to src
|
|
||||||
* @param src source array, can be equal to dst
|
|
||||||
* @param count number of 8 byte blocks
|
|
||||||
* @param iv initialization vector for CBC mode, if NULL ECB will be used
|
|
||||||
* @param decrypt 0 for encryption, 1 for decryption
|
|
||||||
*/
|
|
||||||
void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
|
|
||||||
int count, uint8_t *iv, int decrypt);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif /* AVUTIL_BLOWFISH_H */
|
|
219
Externals/ffmpeg/include/libavutil/bprint.h
vendored
219
Externals/ffmpeg/include/libavutil/bprint.h
vendored
@ -1,219 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012 Nicolas George
|
|
||||||
*
|
|
||||||
* This file is part of FFmpeg.
|
|
||||||
*
|
|
||||||
* FFmpeg 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.
|
|
||||||
*
|
|
||||||
* FFmpeg 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 FFmpeg; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef AVUTIL_BPRINT_H
|
|
||||||
#define AVUTIL_BPRINT_H
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#include "attributes.h"
|
|
||||||
#include "avstring.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define a structure with extra padding to a fixed size
|
|
||||||
* This helps ensuring binary compatibility with future versions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define FF_PAD_STRUCTURE(name, size, ...) \
|
|
||||||
struct ff_pad_helper_##name { __VA_ARGS__ }; \
|
|
||||||
typedef struct name { \
|
|
||||||
__VA_ARGS__ \
|
|
||||||
char reserved_padding[size - sizeof(struct ff_pad_helper_##name)]; \
|
|
||||||
} name;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Buffer to print data progressively
|
|
||||||
*
|
|
||||||
* The string buffer grows as necessary and is always 0-terminated.
|
|
||||||
* The content of the string is never accessed, and thus is
|
|
||||||
* encoding-agnostic and can even hold binary data.
|
|
||||||
*
|
|
||||||
* Small buffers are kept in the structure itself, and thus require no
|
|
||||||
* memory allocation at all (unless the contents of the buffer is needed
|
|
||||||
* after the structure goes out of scope). This is almost as lightweight as
|
|
||||||
* declaring a local "char buf[512]".
|
|
||||||
*
|
|
||||||
* The length of the string can go beyond the allocated size: the buffer is
|
|
||||||
* then truncated, but the functions still keep account of the actual total
|
|
||||||
* length.
|
|
||||||
*
|
|
||||||
* In other words, buf->len can be greater than buf->size and records the
|
|
||||||
* total length of what would have been to the buffer if there had been
|
|
||||||
* enough memory.
|
|
||||||
*
|
|
||||||
* Append operations do not need to be tested for failure: if a memory
|
|
||||||
* allocation fails, data stop being appended to the buffer, but the length
|
|
||||||
* is still updated. This situation can be tested with
|
|
||||||
* av_bprint_is_complete().
|
|
||||||
*
|
|
||||||
* The size_max field determines several possible behaviours:
|
|
||||||
*
|
|
||||||
* size_max = -1 (= UINT_MAX) or any large value will let the buffer be
|
|
||||||
* reallocated as necessary, with an amortized linear cost.
|
|
||||||
*
|
|
||||||
* size_max = 0 prevents writing anything to the buffer: only the total
|
|
||||||
* length is computed. The write operations can then possibly be repeated in
|
|
||||||
* a buffer with exactly the necessary size
|
|
||||||
* (using size_init = size_max = len + 1).
|
|
||||||
*
|
|
||||||
* size_max = 1 is automatically replaced by the exact size available in the
|
|
||||||
* structure itself, thus ensuring no dynamic memory allocation. The
|
|
||||||
* internal buffer is large enough to hold a reasonable paragraph of text,
|
|
||||||
* such as the current paragraph.
|
|
||||||
*/
|
|
||||||
|
|
||||||
FF_PAD_STRUCTURE(AVBPrint, 1024,
|
|
||||||
char *str; /**< string so far */
|
|
||||||
unsigned len; /**< length so far */
|
|
||||||
unsigned size; /**< allocated memory */
|
|
||||||
unsigned size_max; /**< maximum allocated memory */
|
|
||||||
char reserved_internal_buffer[1];
|
|
||||||
)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convenience macros for special values for av_bprint_init() size_max
|
|
||||||
* parameter.
|
|
||||||
*/
|
|
||||||
#define AV_BPRINT_SIZE_UNLIMITED ((unsigned)-1)
|
|
||||||
#define AV_BPRINT_SIZE_AUTOMATIC 1
|
|
||||||
#define AV_BPRINT_SIZE_COUNT_ONLY 0
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Init a print buffer.
|
|
||||||
*
|
|
||||||
* @param buf buffer to init
|
|
||||||
* @param size_init initial size (including the final 0)
|
|
||||||
* @param size_max maximum size;
|
|
||||||
* 0 means do not write anything, just count the length;
|
|
||||||
* 1 is replaced by the maximum value for automatic storage;
|
|
||||||
* any large value means that the internal buffer will be
|
|
||||||
* reallocated as needed up to that limit; -1 is converted to
|
|
||||||
* UINT_MAX, the largest limit possible.
|
|
||||||
* Check also AV_BPRINT_SIZE_* macros.
|
|
||||||
*/
|
|
||||||
void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Init a print buffer using a pre-existing buffer.
|
|
||||||
*
|
|
||||||
* The buffer will not be reallocated.
|
|
||||||
*
|
|
||||||
* @param buf buffer structure to init
|
|
||||||
* @param buffer byte buffer to use for the string data
|
|
||||||
* @param size size of buffer
|
|
||||||
*/
|
|
||||||
void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Append a formatted string to a print buffer.
|
|
||||||
*/
|
|
||||||
void av_bprintf(AVBPrint *buf, const char *fmt, ...) av_printf_format(2, 3);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Append a formatted string to a print buffer.
|
|
||||||
*/
|
|
||||||
void av_vbprintf(AVBPrint *buf, const char *fmt, va_list vl_arg);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Append char c n times to a print buffer.
|
|
||||||
*/
|
|
||||||
void av_bprint_chars(AVBPrint *buf, char c, unsigned n);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Append data to a print buffer.
|
|
||||||
*
|
|
||||||
* param buf bprint buffer to use
|
|
||||||
* param data pointer to data
|
|
||||||
* param size size of data
|
|
||||||
*/
|
|
||||||
void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size);
|
|
||||||
|
|
||||||
struct tm;
|
|
||||||
/**
|
|
||||||
* Append a formatted date and time to a print buffer.
|
|
||||||
*
|
|
||||||
* param buf bprint buffer to use
|
|
||||||
* param fmt date and time format string, see strftime()
|
|
||||||
* param tm broken-down time structure to translate
|
|
||||||
*
|
|
||||||
* @note due to poor design of the standard strftime function, it may
|
|
||||||
* produce poor results if the format string expands to a very long text and
|
|
||||||
* the bprint buffer is near the limit stated by the size_max option.
|
|
||||||
*/
|
|
||||||
void av_bprint_strftime(AVBPrint *buf, const char *fmt, const struct tm *tm);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allocate bytes in the buffer for external use.
|
|
||||||
*
|
|
||||||
* @param[in] buf buffer structure
|
|
||||||
* @param[in] size required size
|
|
||||||
* @param[out] mem pointer to the memory area
|
|
||||||
* @param[out] actual_size size of the memory area after allocation;
|
|
||||||
* can be larger or smaller than size
|
|
||||||
*/
|
|
||||||
void av_bprint_get_buffer(AVBPrint *buf, unsigned size,
|
|
||||||
unsigned char **mem, unsigned *actual_size);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reset the string to "" but keep internal allocated data.
|
|
||||||
*/
|
|
||||||
void av_bprint_clear(AVBPrint *buf);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test if the print buffer is complete (not truncated).
|
|
||||||
*
|
|
||||||
* It may have been truncated due to a memory allocation failure
|
|
||||||
* or the size_max limit (compare size and size_max if necessary).
|
|
||||||
*/
|
|
||||||
static inline int av_bprint_is_complete(const AVBPrint *buf)
|
|
||||||
{
|
|
||||||
return buf->len < buf->size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finalize a print buffer.
|
|
||||||
*
|
|
||||||
* The print buffer can no longer be used afterwards,
|
|
||||||
* but the len and size fields are still valid.
|
|
||||||
*
|
|
||||||
* @arg[out] ret_str if not NULL, used to return a permanent copy of the
|
|
||||||
* buffer contents, or NULL if memory allocation fails;
|
|
||||||
* if NULL, the buffer is discarded and freed
|
|
||||||
* @return 0 for success or error code (probably AVERROR(ENOMEM))
|
|
||||||
*/
|
|
||||||
int av_bprint_finalize(AVBPrint *buf, char **ret_str);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Escape the content in src and append it to dstbuf.
|
|
||||||
*
|
|
||||||
* @param dstbuf already inited destination bprint buffer
|
|
||||||
* @param src string containing the text to escape
|
|
||||||
* @param special_chars string containing the special characters which
|
|
||||||
* need to be escaped, can be NULL
|
|
||||||
* @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros.
|
|
||||||
* Any unknown value for mode will be considered equivalent to
|
|
||||||
* AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without
|
|
||||||
* notice.
|
|
||||||
* @param flags flags which control how to escape, see AV_ESCAPE_FLAG_* macros
|
|
||||||
*/
|
|
||||||
void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_chars,
|
|
||||||
enum AVEscapeMode mode, int flags);
|
|
||||||
|
|
||||||
#endif /* AVUTIL_BPRINT_H */
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user