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 (6)
......@@ -57,190 +57,171 @@ static const struct
{
vlc_fourcc_t i_chroma;
enum AVPixelFormat i_chroma_id;
video_color_range_t range;
} chroma_table[] =
{
/* Planar YUV formats */
{VLC_CODEC_I444, AV_PIX_FMT_YUV444P },
{VLC_CODEC_J444, AV_PIX_FMT_YUVJ444P },
{VLC_CODEC_I440, AV_PIX_FMT_YUV440P },
{VLC_CODEC_J440, AV_PIX_FMT_YUVJ440P },
{VLC_CODEC_I422, AV_PIX_FMT_YUV422P },
{VLC_CODEC_J422, AV_PIX_FMT_YUVJ422P },
{VLC_CODEC_I420, AV_PIX_FMT_YUV420P },
{VLC_CODEC_YV12, AV_PIX_FMT_YUV420P },
{VLC_CODEC_J420, AV_PIX_FMT_YUVJ420P },
{VLC_CODEC_I411, AV_PIX_FMT_YUV411P },
{VLC_CODEC_I410, AV_PIX_FMT_YUV410P },
{VLC_CODEC_YV9, AV_PIX_FMT_YUV410P },
{VLC_CODEC_NV12, AV_PIX_FMT_NV12 },
{VLC_CODEC_NV21, AV_PIX_FMT_NV21 },
{VLC_CODEC_I420_9L, AV_PIX_FMT_YUV420P9LE },
{VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE },
{VLC_CODEC_I420_10L, AV_PIX_FMT_YUV420P10LE },
{VLC_CODEC_I420_10B, AV_PIX_FMT_YUV420P10BE },
{VLC_CODEC_I444, AV_PIX_FMT_YUV444P, COLOR_RANGE_UNDEF },
{VLC_CODEC_I444, AV_PIX_FMT_YUVJ444P, COLOR_RANGE_FULL },
{VLC_CODEC_I440, AV_PIX_FMT_YUV440P, COLOR_RANGE_UNDEF },
{VLC_CODEC_I440, AV_PIX_FMT_YUVJ440P, COLOR_RANGE_FULL },
{VLC_CODEC_I422, AV_PIX_FMT_YUV422P, COLOR_RANGE_UNDEF },
{VLC_CODEC_I422, AV_PIX_FMT_YUVJ422P, COLOR_RANGE_FULL },
{VLC_CODEC_I420, AV_PIX_FMT_YUV420P, COLOR_RANGE_UNDEF },
{VLC_CODEC_YV12, AV_PIX_FMT_YUV420P, COLOR_RANGE_UNDEF },
{VLC_CODEC_I420, AV_PIX_FMT_YUVJ420P, COLOR_RANGE_FULL },
{VLC_CODEC_I411, AV_PIX_FMT_YUV411P, COLOR_RANGE_UNDEF },
{VLC_CODEC_I411, AV_PIX_FMT_YUVJ411P, COLOR_RANGE_FULL },
{VLC_CODEC_I410, AV_PIX_FMT_YUV410P, COLOR_RANGE_UNDEF },
{VLC_CODEC_YV9, AV_PIX_FMT_YUV410P, COLOR_RANGE_UNDEF },
{VLC_CODEC_NV12, AV_PIX_FMT_NV12, COLOR_RANGE_UNDEF },
{VLC_CODEC_NV21, AV_PIX_FMT_NV21, COLOR_RANGE_UNDEF },
{VLC_CODEC_I420_9L, AV_PIX_FMT_YUV420P9LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I420_10L, AV_PIX_FMT_YUV420P10LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I420_10B, AV_PIX_FMT_YUV420P10BE, COLOR_RANGE_UNDEF },
#ifdef AV_PIX_FMT_YUV420P12 /* 54, 17, 100 */
{VLC_CODEC_I420_12L, AV_PIX_FMT_YUV420P12LE },
{VLC_CODEC_I420_12B, AV_PIX_FMT_YUV420P12BE },
{VLC_CODEC_I420_12L, AV_PIX_FMT_YUV420P12LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I420_12B, AV_PIX_FMT_YUV420P12BE, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_I420_16L, AV_PIX_FMT_YUV420P16LE },
{VLC_CODEC_I420_16B, AV_PIX_FMT_YUV420P16BE },
{VLC_CODEC_I420_16L, AV_PIX_FMT_YUV420P16LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I420_16B, AV_PIX_FMT_YUV420P16BE, COLOR_RANGE_UNDEF },
#ifdef AV_PIX_FMT_P010LE
{VLC_CODEC_P010, AV_PIX_FMT_P010LE },
{VLC_CODEC_P010, AV_PIX_FMT_P010LE, COLOR_RANGE_UNDEF },
#endif
#ifdef AV_PIX_FMT_P016LE
{VLC_CODEC_P016, AV_PIX_FMT_P016LE },
{VLC_CODEC_P016, AV_PIX_FMT_P016LE, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_I422_9L, AV_PIX_FMT_YUV422P9LE },
{VLC_CODEC_I422_9B, AV_PIX_FMT_YUV422P9BE },
{VLC_CODEC_I422_10L, AV_PIX_FMT_YUV422P10LE },
{VLC_CODEC_I422_10B, AV_PIX_FMT_YUV422P10BE },
{VLC_CODEC_I422_16L, AV_PIX_FMT_YUV422P16LE },
{VLC_CODEC_I422_16B, AV_PIX_FMT_YUV422P16BE },
{VLC_CODEC_I422_9L, AV_PIX_FMT_YUV422P9LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I422_9B, AV_PIX_FMT_YUV422P9BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I422_10L, AV_PIX_FMT_YUV422P10LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I422_10B, AV_PIX_FMT_YUV422P10BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I422_16L, AV_PIX_FMT_YUV422P16LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I422_16B, AV_PIX_FMT_YUV422P16BE, COLOR_RANGE_UNDEF },
#ifdef AV_PIX_FMT_YUV422P12 /* 54, 17, 100 */
{VLC_CODEC_I422_12L, AV_PIX_FMT_YUV422P12LE },
{VLC_CODEC_I422_12B, AV_PIX_FMT_YUV422P12BE },
{VLC_CODEC_I422_12L, AV_PIX_FMT_YUV422P12LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I422_12B, AV_PIX_FMT_YUV422P12BE, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_YUV420A, AV_PIX_FMT_YUVA420P },
{VLC_CODEC_YUV422A, AV_PIX_FMT_YUVA422P },
{VLC_CODEC_YUVA, AV_PIX_FMT_YUVA444P },
{VLC_CODEC_YUV420A, AV_PIX_FMT_YUVA420P, COLOR_RANGE_UNDEF },
{VLC_CODEC_YUV422A, AV_PIX_FMT_YUVA422P, COLOR_RANGE_UNDEF },
{VLC_CODEC_YUVA, AV_PIX_FMT_YUVA444P, COLOR_RANGE_UNDEF },
{VLC_CODEC_YUVA_444_10L, AV_PIX_FMT_YUVA444P10LE },
{VLC_CODEC_YUVA_444_10B, AV_PIX_FMT_YUVA444P10BE },
{VLC_CODEC_YUVA_444_10L, AV_PIX_FMT_YUVA444P10LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_YUVA_444_10B, AV_PIX_FMT_YUVA444P10BE, COLOR_RANGE_UNDEF },
#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(56, 24, 101)
{VLC_CODEC_YUVA_444_12L, AV_PIX_FMT_YUVA444P12LE },
{VLC_CODEC_YUVA_444_12B, AV_PIX_FMT_YUVA444P12BE },
{VLC_CODEC_YUVA_444_12L, AV_PIX_FMT_YUVA444P12LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_YUVA_444_12B, AV_PIX_FMT_YUVA444P12BE, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_I444_9L, AV_PIX_FMT_YUV444P9LE },
{VLC_CODEC_I444_9B, AV_PIX_FMT_YUV444P9BE },
{VLC_CODEC_I444_10L, AV_PIX_FMT_YUV444P10LE },
{VLC_CODEC_I444_10B, AV_PIX_FMT_YUV444P10BE },
{VLC_CODEC_I444_9L, AV_PIX_FMT_YUV444P9LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I444_9B, AV_PIX_FMT_YUV444P9BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I444_10L, AV_PIX_FMT_YUV444P10LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I444_10B, AV_PIX_FMT_YUV444P10BE, COLOR_RANGE_UNDEF },
#ifdef AV_PIX_FMT_YUV444P12 /* 54, 17, 100 */
{VLC_CODEC_I444_12L, AV_PIX_FMT_YUV444P12LE },
{VLC_CODEC_I444_12B, AV_PIX_FMT_YUV444P12BE },
{VLC_CODEC_I444_12L, AV_PIX_FMT_YUV444P12LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I444_12B, AV_PIX_FMT_YUV444P12BE, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_I444_16L, AV_PIX_FMT_YUV444P16LE },
{VLC_CODEC_I444_16B, AV_PIX_FMT_YUV444P16BE },
{VLC_CODEC_I444_16L, AV_PIX_FMT_YUV444P16LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_I444_16B, AV_PIX_FMT_YUV444P16BE, COLOR_RANGE_UNDEF },
/* Packed YUV formats */
{VLC_CODEC_YUYV, AV_PIX_FMT_YUYV422 },
{VLC_CODEC_UYVY, AV_PIX_FMT_UYVY422 },
{VLC_CODEC_YVYU, AV_PIX_FMT_YVYU422 },
{VLC_CODEC_YUYV, AV_PIX_FMT_YUYV422, COLOR_RANGE_UNDEF },
{VLC_CODEC_UYVY, AV_PIX_FMT_UYVY422, COLOR_RANGE_UNDEF },
{VLC_CODEC_YVYU, AV_PIX_FMT_YVYU422, COLOR_RANGE_UNDEF },
/* Packed RGB formats */
{VLC_CODEC_RGB233, AV_PIX_FMT_RGB8 },
{VLC_CODEC_BGR233, AV_PIX_FMT_BGR8 },
{VLC_CODEC_RGB233, AV_PIX_FMT_RGB8, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGR233, AV_PIX_FMT_BGR8, COLOR_RANGE_UNDEF },
{VLC_CODEC_RGB565BE, AV_PIX_FMT_RGB565BE },
{VLC_CODEC_RGB565LE, AV_PIX_FMT_RGB565LE },
{VLC_CODEC_BGR565BE, AV_PIX_FMT_BGR565BE },
{VLC_CODEC_BGR565LE, AV_PIX_FMT_BGR565LE },
{VLC_CODEC_RGB565BE, AV_PIX_FMT_RGB565BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_RGB565LE, AV_PIX_FMT_RGB565LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGR565BE, AV_PIX_FMT_BGR565BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGR565LE, AV_PIX_FMT_BGR565LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_RGB555BE, AV_PIX_FMT_RGB555BE },
{VLC_CODEC_RGB555LE, AV_PIX_FMT_RGB555LE },
{VLC_CODEC_BGR555BE, AV_PIX_FMT_BGR555BE },
{VLC_CODEC_BGR555LE, AV_PIX_FMT_BGR555LE },
{VLC_CODEC_RGB555BE, AV_PIX_FMT_RGB555BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_RGB555LE, AV_PIX_FMT_RGB555LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGR555BE, AV_PIX_FMT_BGR555BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGR555LE, AV_PIX_FMT_BGR555LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_RGB24, AV_PIX_FMT_RGB24 },
{VLC_CODEC_BGR24, AV_PIX_FMT_BGR24 },
{VLC_CODEC_RGB24, AV_PIX_FMT_RGB24, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGR24, AV_PIX_FMT_BGR24, COLOR_RANGE_UNDEF },
{VLC_CODEC_RGBX, AV_PIX_FMT_RGB0 },
{VLC_CODEC_XRGB, AV_PIX_FMT_0RGB },
{VLC_CODEC_BGRX, AV_PIX_FMT_BGR0 },
{VLC_CODEC_XBGR, AV_PIX_FMT_0BGR },
{VLC_CODEC_RGBX, AV_PIX_FMT_RGB0, COLOR_RANGE_UNDEF },
{VLC_CODEC_XRGB, AV_PIX_FMT_0RGB, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGRX, AV_PIX_FMT_BGR0, COLOR_RANGE_UNDEF },
{VLC_CODEC_XBGR, AV_PIX_FMT_0BGR, COLOR_RANGE_UNDEF },
{VLC_CODEC_RGBA, AV_PIX_FMT_RGBA },
{VLC_CODEC_ARGB, AV_PIX_FMT_ARGB },
{VLC_CODEC_BGRA, AV_PIX_FMT_BGRA },
{VLC_CODEC_ABGR, AV_PIX_FMT_ABGR },
{VLC_CODEC_RGBA, AV_PIX_FMT_RGBA, COLOR_RANGE_UNDEF },
{VLC_CODEC_ARGB, AV_PIX_FMT_ARGB, COLOR_RANGE_UNDEF },
{VLC_CODEC_BGRA, AV_PIX_FMT_BGRA, COLOR_RANGE_UNDEF },
{VLC_CODEC_ABGR, AV_PIX_FMT_ABGR, COLOR_RANGE_UNDEF },
#ifdef WORDS_BIGENDIAN
{VLC_CODEC_RGBA64, AV_PIX_FMT_RGBA64BE },
{VLC_CODEC_RGBA64, AV_PIX_FMT_RGBA64BE, COLOR_RANGE_UNDEF },
#else /* !WORDS_BIGENDIAN */
{VLC_CODEC_RGBA64, AV_PIX_FMT_RGBA64LE },
{VLC_CODEC_RGBA64, AV_PIX_FMT_RGBA64LE, COLOR_RANGE_UNDEF },
#endif /* !WORDS_BIGENDIAN */
#ifdef AV_PIX_FMT_X2BGR10
{VLC_CODEC_RGBA10, AV_PIX_FMT_X2BGR10 },
{VLC_CODEC_RGBA10, AV_PIX_FMT_X2BGR10, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_GREY, AV_PIX_FMT_GRAY8 },
{VLC_CODEC_GREY, AV_PIX_FMT_GRAY8, COLOR_RANGE_UNDEF},
#ifdef AV_PIX_FMT_GRAY10
{VLC_CODEC_GREY_10L, AV_PIX_FMT_GRAY10LE },
{VLC_CODEC_GREY_10B, AV_PIX_FMT_GRAY10BE },
{VLC_CODEC_GREY_10L, AV_PIX_FMT_GRAY10LE, COLOR_RANGE_UNDEF},
{VLC_CODEC_GREY_10B, AV_PIX_FMT_GRAY10BE, COLOR_RANGE_UNDEF},
#endif
#ifdef AV_PIX_FMT_GRAY12
{VLC_CODEC_GREY_12L, AV_PIX_FMT_GRAY12LE },
{VLC_CODEC_GREY_12B, AV_PIX_FMT_GRAY12BE },
{VLC_CODEC_GREY_12L, AV_PIX_FMT_GRAY12LE, COLOR_RANGE_UNDEF},
{VLC_CODEC_GREY_12B, AV_PIX_FMT_GRAY12BE, COLOR_RANGE_UNDEF},
#endif
{VLC_CODEC_GREY_16L, AV_PIX_FMT_GRAY16LE },
{VLC_CODEC_GREY_16B, AV_PIX_FMT_GRAY16BE },
{VLC_CODEC_GREY_16L, AV_PIX_FMT_GRAY16LE, COLOR_RANGE_UNDEF},
{VLC_CODEC_GREY_16B, AV_PIX_FMT_GRAY16BE, COLOR_RANGE_UNDEF},
/* Paletized RGB */
{VLC_CODEC_RGBP, AV_PIX_FMT_PAL8 },
{VLC_CODEC_RGBP, AV_PIX_FMT_PAL8, COLOR_RANGE_UNDEF},
{VLC_CODEC_GBR_PLANAR, AV_PIX_FMT_GBRP },
{VLC_CODEC_GBR_PLANAR_9L, AV_PIX_FMT_GBRP9LE },
{VLC_CODEC_GBR_PLANAR_9B, AV_PIX_FMT_GBRP9BE },
{VLC_CODEC_GBR_PLANAR_10L, AV_PIX_FMT_GBRP10LE },
{VLC_CODEC_GBR_PLANAR_10B, AV_PIX_FMT_GBRP10BE },
{VLC_CODEC_GBR_PLANAR, AV_PIX_FMT_GBRP, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBR_PLANAR_9L, AV_PIX_FMT_GBRP9LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBR_PLANAR_9B, AV_PIX_FMT_GBRP9BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBR_PLANAR_10L, AV_PIX_FMT_GBRP10LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBR_PLANAR_10B, AV_PIX_FMT_GBRP10BE, COLOR_RANGE_UNDEF },
#ifdef AV_PIX_FMT_GBRP12 /* 55, 24, 0 / 51, 74, 100 */
{VLC_CODEC_GBR_PLANAR_12L, AV_PIX_FMT_GBRP12LE },
{VLC_CODEC_GBR_PLANAR_12B, AV_PIX_FMT_GBRP12BE },
{VLC_CODEC_GBR_PLANAR_12L, AV_PIX_FMT_GBRP12LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBR_PLANAR_12B, AV_PIX_FMT_GBRP12BE, COLOR_RANGE_UNDEF },
#endif
#ifdef AV_PIX_FMT_GBRP14 /* ffmpeg only */
{VLC_CODEC_GBR_PLANAR_14L, AV_PIX_FMT_GBRP14LE },
{VLC_CODEC_GBR_PLANAR_14B, AV_PIX_FMT_GBRP14BE },
{VLC_CODEC_GBR_PLANAR_14L, AV_PIX_FMT_GBRP14LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBR_PLANAR_14B, AV_PIX_FMT_GBRP14BE, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_GBR_PLANAR_16L, AV_PIX_FMT_GBRP16LE },
{VLC_CODEC_GBR_PLANAR_16B, AV_PIX_FMT_GBRP16BE },
{VLC_CODEC_GBRA_PLANAR, AV_PIX_FMT_GBRAP },
{VLC_CODEC_GBR_PLANAR_16L, AV_PIX_FMT_GBRP16LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBR_PLANAR_16B, AV_PIX_FMT_GBRP16BE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBRA_PLANAR, AV_PIX_FMT_GBRAP, COLOR_RANGE_UNDEF },
#ifdef AV_PIX_FMT_GBRAP10 /* 56, 1, 0 / 55, 25, 100 */
{VLC_CODEC_GBRA_PLANAR_10L, AV_PIX_FMT_GBRAP10LE },
{VLC_CODEC_GBRA_PLANAR_10B, AV_PIX_FMT_GBRAP10BE },
{VLC_CODEC_GBRA_PLANAR_10L, AV_PIX_FMT_GBRAP10LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBRA_PLANAR_10B, AV_PIX_FMT_GBRAP10BE, COLOR_RANGE_UNDEF },
#endif
#ifdef AV_PIX_FMT_GBRAP12 /* 55, 25, 0, 19, 100 */
{VLC_CODEC_GBRA_PLANAR_12L, AV_PIX_FMT_GBRAP12LE },
{VLC_CODEC_GBRA_PLANAR_12B, AV_PIX_FMT_GBRAP12BE },
{VLC_CODEC_GBRA_PLANAR_12L, AV_PIX_FMT_GBRAP12LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBRA_PLANAR_12B, AV_PIX_FMT_GBRAP12BE, COLOR_RANGE_UNDEF },
#endif
{VLC_CODEC_GBRA_PLANAR_16L, AV_PIX_FMT_GBRAP16LE },
{VLC_CODEC_GBRA_PLANAR_16B, AV_PIX_FMT_GBRAP16BE },
{VLC_CODEC_GBRA_PLANAR_16L, AV_PIX_FMT_GBRAP16LE, COLOR_RANGE_UNDEF },
{VLC_CODEC_GBRA_PLANAR_16B, AV_PIX_FMT_GBRAP16BE, COLOR_RANGE_UNDEF },
/* XYZ */
{VLC_CODEC_XYZ12, AV_PIX_FMT_XYZ12BE },
{ 0, 0 }
{VLC_CODEC_XYZ12, AV_PIX_FMT_XYZ12BE, COLOR_RANGE_UNDEF },
{ 0, 0, COLOR_RANGE_UNDEF }
};
/* FIXME special case the RGB formats */
enum AVPixelFormat GetFfmpegChroma( const video_format_t *fmt )
{
for( int i = 0; chroma_table[i].i_chroma != 0; i++ )
{
if( chroma_table[i].i_chroma == fmt->i_chroma )
{
return chroma_table[i].i_chroma_id;
}
}
return AV_PIX_FMT_NONE;
}
vlc_fourcc_t FindVlcChroma( enum AVPixelFormat i_ffmpeg_id )
{
for( int i = 0; chroma_table[i].i_chroma != 0; i++ )
if( chroma_table[i].i_chroma_id == i_ffmpeg_id )
return chroma_table[i].i_chroma;
return 0;
}
int GetVlcChroma( video_format_t *fmt, enum AVPixelFormat i_ffmpeg_chroma )
{
for( int i = 0; chroma_table[i].i_chroma != 0; i++ )
......@@ -248,6 +229,8 @@ int GetVlcChroma( video_format_t *fmt, enum AVPixelFormat i_ffmpeg_chroma )
if( chroma_table[i].i_chroma_id == i_ffmpeg_chroma )
{
fmt->i_chroma = chroma_table[i].i_chroma;
if (chroma_table[i].range != COLOR_RANGE_UNDEF)
fmt->color_range = chroma_table[i].range;
return VLC_SUCCESS;
}
}
......
......@@ -28,9 +28,7 @@
#include <libavutil/pixfmt.h>
enum AVPixelFormat FindFfmpegChroma( vlc_fourcc_t );
enum AVPixelFormat GetFfmpegChroma( const video_format_t *fmt );
vlc_fourcc_t FindVlcChroma( enum AVPixelFormat );
int GetVlcChroma( video_format_t *fmt, enum AVPixelFormat i_ffmpeg_chroma );
#endif
......@@ -569,7 +569,7 @@ int InitVideoEnc( vlc_object_t *p_this )
p_enc->fmt_in.video.i_chroma = VLC_CODEC_RGB24;
}
p_context->pix_fmt = GetFfmpegChroma( &p_enc->fmt_in.video );
p_context->pix_fmt = FindFfmpegChroma( p_enc->fmt_in.video.i_chroma );
if( p_codec->pix_fmts )
{
......@@ -868,7 +868,7 @@ int InitVideoEnc( vlc_object_t *p_this )
{
/* XXX: hack: Force same codec (will be handled by transcode) */
p_enc->fmt_in.video.i_chroma = p_enc->fmt_in.i_codec = p_enc->fmt_out.i_codec;
p_context->pix_fmt = GetFfmpegChroma( &p_enc->fmt_in.video );
p_context->pix_fmt = FindFfmpegChroma( p_enc->fmt_in.video.i_chroma );
}
/* Make sure we get extradata filled by the encoder */
......
......@@ -325,24 +325,15 @@ static int lavc_UpdateVideoFormat(decoder_t *dec, AVCodecContext *ctx,
return 0;
}
static bool chroma_compatible(vlc_fourcc_t a, vlc_fourcc_t b)
static bool chroma_compatible(const video_format_t *a, const video_format_t *b)
{
static const vlc_fourcc_t compat_lists[][2] = {
{VLC_CODEC_J420, VLC_CODEC_I420},
{VLC_CODEC_J422, VLC_CODEC_I422},
{VLC_CODEC_J440, VLC_CODEC_I440},
{VLC_CODEC_J444, VLC_CODEC_I444},
};
if (a == b)
return true;
for (size_t i = 0; i < ARRAY_SIZE(compat_lists); i++) {
if ((a == compat_lists[i][0] || a == compat_lists[i][1]) &&
(b == compat_lists[i][0] || b == compat_lists[i][1]))
return true;
}
return false;
if (a->i_chroma != b->i_chroma)
return false;
if (a->color_range != b->color_range && a->color_range != COLOR_RANGE_UNDEF)
return false;
return true;
}
/**
......@@ -353,15 +344,16 @@ static int lavc_CopyPicture(decoder_t *dec, picture_t *pic, AVFrame *frame)
{
decoder_sys_t *sys = dec->p_sys;
vlc_fourcc_t fourcc = FindVlcChroma(frame->format);
if (!fourcc)
video_format_t test_chroma;
video_format_Init(&test_chroma, 0);
if (GetVlcChroma(&test_chroma, frame->format) != VLC_SUCCESS)
{
const char *name = av_get_pix_fmt_name(frame->format);
msg_Err(dec, "Unsupported decoded output format %d (%s)",
sys->p_context->pix_fmt, (name != NULL) ? name : "unknown");
return VLC_EGENERIC;
} else if (!chroma_compatible(fourcc, pic->format.i_chroma)
} else if (!chroma_compatible(&test_chroma, &pic->format)
/* ensure we never read more than dst lines/pixels from src */
|| frame->width != (int) pic->format.i_visible_width
|| frame->height < (int) pic->format.i_visible_height)
......
......@@ -320,7 +320,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
{
video_format_t vfmt;
video_format_Copy(&vfmt, &fmt->video);
enum AVPixelFormat avformat = GetFfmpegChroma(&vfmt);
enum AVPixelFormat avformat = FindFfmpegChroma(vfmt.i_chroma);
if(avformat == AV_PIX_FMT_NONE)
msg_Warn(p_mux, "can't match format RAW video %4.4s",
(const char *)&vfmt.i_chroma);
......
......@@ -324,8 +324,8 @@ static int GetParameters( ScalerConfiguration *p_cfg,
bool b_swap_uvi = false;
bool b_swap_uvo = false;
i_fmti = GetFfmpegChroma( p_fmti );
i_fmto = GetFfmpegChroma( p_fmto );
i_fmti = FindFfmpegChroma( p_fmti->i_chroma );
i_fmto = FindFfmpegChroma( p_fmto->i_chroma );
if( p_fmti->i_chroma == p_fmto->i_chroma )
{
......