Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (3)
  • Niklas Haas's avatar
    libplacebo: set initial framebuffer size on init · a13bd62d
    Niklas Haas authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
    Needed for OpenGL, to avoid printing an error on the first frame, before
    the `control()` function is called.
    
    Also allows us to bail out early on swapchain initialization errors.
    a13bd62d
  • Niklas Haas's avatar
    libplacebo: clarify option wording · 4dda6c6a
    Niklas Haas authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
    These options are only *overrides* of the detected values. This needs to
    be made clear to the user - e.g. setting this to PQ will *not* put the
    display into PQ mode.
    4dda6c6a
  • Niklas Haas's avatar
    libplacebo: support HDR output modes · e33c274d
    Niklas Haas authored and Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen committed
    Technically, this just requires forwarding the colorspace and HDR
    metadata information to the libplacebo swapchain.
    
    In practice, this does nothing at all on OpenGL, and for Vulkan it only
    works with implementations that provide VK_KHR_swapchain_colorspace and
    VK_EXT_hdr_metadata, which in practice means "Windows, Wayland and DRM
    only", although we don't support DRM or wayland (yet) so it really just
    means "Windows only".
    
    We provide only a very short list of valid configurations, because
    anything else is severely limited in practice.
    e33c274d
......@@ -96,6 +96,7 @@ static void PictureDisplay(vout_display_t *, picture_t *);
static int Control(vout_display_t *, int);
static void Close(vout_display_t *);
static void UpdateParams(vout_display_t *);
static void UpdateColorspaceHint(vout_display_t *, const video_format_t *);
static const struct vlc_display_operations ops = {
.close = Close,
......@@ -127,6 +128,15 @@ static int Open(vout_display_t *vd,
if (vlc_placebo_MakeCurrent(sys->pl) != VLC_SUCCESS)
goto error;
// Set colorsapce hint *before* first swapchain resize
UpdateColorspaceHint(vd, fmt);
// Set initial framebuffer size
int width = (int) vd->cfg->display.width;
int height = (int) vd->cfg->display.height;
if (!pl_swapchain_resize(sys->pl->swapchain, &width, &height))
goto error;
const struct pl_gpu *gpu = sys->pl->gpu;
sys->renderer = pl_renderer_create(sys->pl->ctx, gpu);
if (!sys->renderer)
......@@ -459,6 +469,53 @@ static void PictureDisplay(vout_display_t *vd, picture_t *pic)
}
}
static void UpdateColorspaceHint(vout_display_t *vd, const video_format_t *fmt)
{
#if PL_API_VER >= 155
vout_display_sys_t *sys = vd->sys;
struct pl_swapchain_colors hint = {0};
switch (var_InheritBool(vd, "pl-output-hint")) {
case OUTPUT_AUTO: ;
const struct pl_color_space csp = vlc_placebo_ColorSpace(fmt);
hint.primaries = csp.primaries;
hint.transfer = csp.transfer;
hint.hdr = (struct pl_hdr_metadata) {
.prim.green.x = fmt->mastering.primaries[0] / 50000.0f,
.prim.green.y = fmt->mastering.primaries[1] / 50000.0f,
.prim.blue.x = fmt->mastering.primaries[2] / 50000.0f,
.prim.blue.y = fmt->mastering.primaries[3] / 50000.0f,
.prim.red.x = fmt->mastering.primaries[4] / 50000.0f,
.prim.red.y = fmt->mastering.primaries[5] / 50000.0f,
.prim.white.x = fmt->mastering.white_point[0] / 50000.0f,
.prim.white.y = fmt->mastering.white_point[1] / 50000.0f,
.max_luma = fmt->mastering.max_luminance / 10000.0f,
.min_luma = fmt->mastering.min_luminance / 10000.0f,
.max_cll = fmt->lighting.MaxCLL,
.max_fall = fmt->lighting.MaxFALL,
};
break;
case OUTPUT_SDR:
break;
case OUTPUT_HDR10:
hint.primaries = PL_COLOR_PRIM_BT_2020;
hint.transfer = PL_COLOR_TRC_PQ;
break;
case OUTPUT_HLG:
hint.primaries = PL_COLOR_PRIM_BT_2020;
hint.transfer = PL_COLOR_TRC_HLG;
break;
}
pl_swapchain_colorspace_hint(sys->pl->swapchain, &hint);
#else // PL_API_VER
VLC_UNUSED(vd);
VLC_UNUSED(fmt);
#endif
}
static int Control(vout_display_t *vd, int query)
{
vout_display_sys_t *sys = vd->sys;
......@@ -648,6 +705,10 @@ vlc_module_begin ()
DEBAND_GRAIN_TEXT, DEBAND_GRAIN_LONGTEXT)
set_section("Colorspace conversion", NULL)
#if PL_API_VER >= 155
add_integer("pl-output-hint", true, OUTPUT_HINT_TEXT, OUTPUT_HINT_LONGTEXT)
change_integer_list(output_values, output_text)
#endif
add_integer("pl-intent", pl_color_map_default_params.intent,
RENDER_INTENT_TEXT, RENDER_INTENT_LONGTEXT)
change_integer_list(intent_values, intent_text)
......
......@@ -75,8 +75,8 @@ static const char * const intent_text[] = {
"Saturation",
};
#define PRIM_TEXT "Display primaries"
#define PRIM_LONGTEXT "The primaries associated with the output display"
#define PRIM_TEXT "Override detected display primaries"
#define PRIM_LONGTEXT "Override the auto-detected display primaries."
static const int prim_values[] = {
PL_COLOR_PRIM_UNKNOWN,
......@@ -100,7 +100,7 @@ static const int prim_values[] = {
};
static const char * const prim_text[] = {
"Automatic / Unknown primaries",
"Automatic (no override)",
"ITU-R Rec. BT.601 (525-line = NTSC, SMPTE-C)",
"ITU-R Rec. BT.601 (625-line = PAL, SECAM)",
"ITU-R Rec. BT.709 (HD), also sRGB",
......@@ -120,8 +120,8 @@ static const char * const prim_text[] = {
#endif
};
#define TRC_TEXT "Display gamma / transfer function"
#define TRC_LONGTEXT "The gamma/transfer function associated with the output display"
#define TRC_TEXT "Override detected display gamma"
#define TRC_LONGTEXT "Override the auto-detected display gamma / transfer function."
static const int trc_values[] = {
PL_COLOR_TRC_UNKNOWN,
......@@ -140,7 +140,7 @@ static const int trc_values[] = {
};
static const char * const trc_text[] = {
"Automatic / Unknown gamma",
"Automatic (no override)",
"ITU-R Rec. BT.1886 (CRT emulation + OOTF)",
"IEC 61966-2-4 sRGB (CRT emulation)",
"Linear light content",
......@@ -191,6 +191,30 @@ static const char * const lut_mode_text[] = {
#define USER_SHADER_FILE_TEXT "Custom shader"
#define USER_SHADER_FILE_LONGTEXT "Path to a file containing a custom user shader, in mpv .hook format."
enum {
OUTPUT_AUTO,
OUTPUT_SDR,
OUTPUT_HDR10,
OUTPUT_HLG,
};
static const int output_values[] = {
OUTPUT_AUTO,
OUTPUT_SDR,
OUTPUT_HDR10,
OUTPUT_HLG,
};
static const char * const output_text[] = {
"Automatic (passthrough)",
"Standard gamut SDR",
"HDR10 (BT.2020+PQ)",
"BT.2020+HLG",
};
#define OUTPUT_HINT_TEXT "Display output colorspace"
#define OUTPUT_HINT_LONGTEXT "Determines what colorspace to try configuring the display to. Note that the HDR modes require a compatible driver and display."
#define TONEMAPPING_TEXT "Tone-mapping algorithm"
#define TONEMAPPING_LONGTEXT "Algorithm to use when converting from wide gamut to standard gamut, or from HDR to SDR."
......