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 (5)
......@@ -44,6 +44,7 @@
*****************************************************************************/
#include <stdlib.h>
#include <stdarg.h>
#include <errno.h>
#include <string.h>
#include <stdio.h>
......@@ -463,25 +464,29 @@ typedef union
} vlc_value_t;
/*****************************************************************************
* Error values (shouldn't be exposed)
*****************************************************************************/
/**
* \defgroup errors Error codes
* \ingroup cext
* @{
*/
/** No error */
#define VLC_SUCCESS (-0)
#define VLC_SUCCESS 0
/** Unspecified error */
#define VLC_EGENERIC (-1)
#define VLC_EGENERIC (-2 * (1 << (sizeof (int) * 8 - 2))) /* INT_MIN */
/** Not enough memory */
#define VLC_ENOMEM (-2)
#define VLC_ENOMEM (-ENOMEM)
/** Timeout */
#define VLC_ETIMEOUT (-3)
#define VLC_ETIMEOUT (-ETIMEDOUT)
/** Not found */
#define VLC_ENOENT (-4)
#define VLC_ENOENT (-ENOENT)
/** Bad variable value */
#define VLC_EINVAL (-7)
#define VLC_EINVAL (-EINVAL)
/** Operation forbidden */
#define VLC_EACCES (-9)
#define VLC_EACCES (-EACCES)
/** Operation not supported */
#define VLC_ENOTSUP (-10)
#define VLC_ENOTSUP (-ENOTSUP)
/** @} */
/*****************************************************************************
* Variable callbacks: called when the value is modified
......
......@@ -41,12 +41,6 @@ static const uint8_t xiphlavc0[] = { 0x00, 30,
0x01,
0x00, 0x00 };
enum
{
OK = VLC_SUCCESS,
FAIL = VLC_EGENERIC,
};
struct params_s
{
const void *packets[XIPH_MAX_HEADER_COUNT];
......@@ -61,7 +55,10 @@ struct params_s
#define BAILOUT(run) { fprintf(stderr, "failed %s line %d\n", run, __LINE__); \
return 1; }
#define RUN(run, test, a, b, res) \
if(test(#test " " run, a, b, &params) != res) BAILOUT(#test " " run)
if((!test(#test " " run, a, b, &params)) != res) \
BAILOUT(#test " " run)
#define PASS(run, test, a, b) RUN(run, test, a, b, true)
#define FAIL(run, test, a, b) RUN(run, test, a, b, false)
#define EXPECT(foo) if(!(foo)) BAILOUT(run)
#define EXPECT_CLEANUP(foo, cleanup) if(!(foo)) { cleanup; BAILOUT(run) }
......@@ -70,7 +67,7 @@ static int test_xiph_IsLavcFormat(const char *run,
const struct params_s *source)
{
EXPECT(xiph_IsLavcFormat(p_extra, i_extra, source->codec) == source->lavc);
return OK;
return 0;
}
static int test_xiph_CountHeaders(const char *run,
......@@ -78,7 +75,7 @@ static int test_xiph_CountHeaders(const char *run,
const struct params_s *source)
{
EXPECT(xiph_CountHeaders(p_extra, i_extra) == source->packets_count);
return OK;
return 0;
}
static int test_xiph_CountLavcHeaders(const char *run,
......@@ -86,7 +83,7 @@ static int test_xiph_CountLavcHeaders(const char *run,
const struct params_s *source)
{
EXPECT(xiph_CountLavcHeaders(p_extra, i_extra) == source->packets_count);
return OK;
return 0;
}
static int SplitCompare(const char *run,
......@@ -174,44 +171,44 @@ int main(void)
params.codec = VLC_CODEC_VORBIS;
/* check if we can detect lavc format */
RUN("0", test_xiph_IsLavcFormat, xiph0, 0, OK);
RUN("1", test_xiph_IsLavcFormat, xiph0, 1, OK);
RUN("2", test_xiph_IsLavcFormat, xiph0, 2, OK);
RUN("3", test_xiph_IsLavcFormat, xiph0, 6, OK);
RUN("lavc0", test_xiph_IsLavcFormat, xiph0, 0, OK);
RUN("lavc1", test_xiph_IsLavcFormat, xiph0, 1, OK);
RUN("lavc2", test_xiph_IsLavcFormat, xiph0, 6, OK);
RUN("lavc3", test_xiph_IsLavcFormat, xiphlavc0, 0, OK);
RUN("lavc4", test_xiph_IsLavcFormat, xiphlavc0, 1, OK);
PASS("0", test_xiph_IsLavcFormat, xiph0, 0);
PASS("1", test_xiph_IsLavcFormat, xiph0, 1);
PASS("2", test_xiph_IsLavcFormat, xiph0, 2);
PASS("3", test_xiph_IsLavcFormat, xiph0, 6);
PASS("lavc0", test_xiph_IsLavcFormat, xiph0, 0);
PASS("lavc1", test_xiph_IsLavcFormat, xiph0, 1);
PASS("lavc2", test_xiph_IsLavcFormat, xiph0, 6);
PASS("lavc3", test_xiph_IsLavcFormat, xiphlavc0, 0);
PASS("lavc4", test_xiph_IsLavcFormat, xiphlavc0, 1);
params.lavc = true;
RUN("lavc5", test_xiph_IsLavcFormat, xiphlavc0, 37, OK);
PASS("lavc5", test_xiph_IsLavcFormat, xiphlavc0, 37);
params.codec = 0;
params.lavc = false;
RUN("lavc6", test_xiph_IsLavcFormat, xiphlavc0, 37, OK);
PASS("lavc6", test_xiph_IsLavcFormat, xiphlavc0, 37);
/* check count and return 0 on error */
params.packets_count = 0;
RUN("0", test_xiph_CountHeaders, xiph0, 0, OK);
PASS("0", test_xiph_CountHeaders, xiph0, 0);
params.packets_count = 1;
RUN("1", test_xiph_CountHeaders, xiph0, 1, OK);
PASS("1", test_xiph_CountHeaders, xiph0, 1);
params.packets_count = 3;
RUN("2", test_xiph_CountHeaders, xiph1, 11, OK);
PASS("2", test_xiph_CountHeaders, xiph1, 11);
/* check lavc only valid with count == 3 */
params.packets_count = 3;
params.codec = VLC_CODEC_VORBIS;
RUN("lavc0", test_xiph_CountLavcHeaders, xiphlavc0, 37, OK);
PASS("lavc0", test_xiph_CountLavcHeaders, xiphlavc0, 37);
params.packets_count = 0;
RUN("lavc1", test_xiph_CountLavcHeaders, xiphlavc0, 35, OK);
RUN("lavc2", test_xiph_CountLavcHeaders, xiphlavc0, 0, OK);
PASS("lavc1", test_xiph_CountLavcHeaders, xiphlavc0, 35);
PASS("lavc2", test_xiph_CountLavcHeaders, xiphlavc0, 0);
/* check split on single/trail packet (no index) */
params.packets[0] = &xiph0[1];
params.packets_sizes[0] = 5;
params.packets_count = 1;
RUN("0", test_xiph_SplitHeaders, xiph0, 6, OK);
PASS("0", test_xiph_SplitHeaders, xiph0, 6);
params.packets_sizes[0] = 0;
RUN("1", test_xiph_SplitHeaders, xiph0, 1, OK);
PASS("1", test_xiph_SplitHeaders, xiph0, 1);
/* check split */
params.packets_count = 3;
......@@ -221,22 +218,22 @@ int main(void)
params.packets_sizes[1] = 1;
params.packets[2] = &xiph1[9];
params.packets_sizes[2] = 2;
RUN("2", test_xiph_SplitHeaders, xiph1, 11, OK);
RUN("3", test_xiph_SplitHeaders, xiph1, 7, FAIL);
PASS("2", test_xiph_SplitHeaders, xiph1, 11);
FAIL("3", test_xiph_SplitHeaders, xiph1, 7);
/* check variable length decoding */
uint8_t xiph2[265];
memset(xiph2, 0xFF, 265);
RUN("4", test_xiph_SplitHeaders, xiph2, 265, FAIL);
FAIL("4", test_xiph_SplitHeaders, xiph2, 265);
xiph2[0] = 1;
RUN("5", test_xiph_SplitHeaders, xiph2, 265, FAIL);
FAIL("5", test_xiph_SplitHeaders, xiph2, 265);
xiph2[2] = 1;
params.packets_count = 2;
params.packets[0] = &xiph2[3];
params.packets_sizes[0] = 256;
params.packets[1] = &xiph2[3+256];
params.packets_sizes[1] = 6;
RUN("6", test_xiph_SplitHeaders, xiph2, 265, OK);
PASS("6", test_xiph_SplitHeaders, xiph2, 265);
/* /!\ xiph2 content reused in another test below */
/* check lavc split */
......@@ -247,21 +244,21 @@ int main(void)
params.packets_sizes[1] = 1;
params.packets[2] = &xiphlavc0[37];
params.packets_sizes[2] = 0;
RUN("lavc0", test_xiph_SplitLavcHeaders, xiphlavc0, 37, OK);
RUN("lavc1", test_xiph_SplitLavcHeaders, xiphlavc0, 36, FAIL);
RUN("lavc2", test_xiph_SplitLavcHeaders, xiphlavc0, 31, FAIL);
PASS("lavc0", test_xiph_SplitLavcHeaders, xiphlavc0, 37);
FAIL("lavc1", test_xiph_SplitLavcHeaders, xiphlavc0, 36);
FAIL("lavc2", test_xiph_SplitLavcHeaders, xiphlavc0, 31);
/* Test single packet packing */
params.packets_count = XIPH_MAX_HEADER_COUNT + 1;
RUN("0", test_xiph_PackHeaders, xiph0, 6, FAIL);
FAIL("0", test_xiph_PackHeaders, xiph0, 6);
params.packets_count = 1;
params.packets[0] = &xiph0[1];
params.packets_sizes[0] = 5;
RUN("1", test_xiph_PackHeaders, xiph0, 6, OK);
PASS("1", test_xiph_PackHeaders, xiph0, 6);
/* Test multiple packets packing */
params.packets_count = 0;
RUN("2", test_xiph_PackHeaders, xiph1, 11, FAIL);
FAIL("2", test_xiph_PackHeaders, xiph1, 11);
params.packets_count = 3;
params.packets[0] = &xiph1[3];
params.packets_sizes[0] = 5;
......@@ -269,7 +266,7 @@ int main(void)
params.packets_sizes[1] = 1;
params.packets[2] = &xiph1[9];
params.packets_sizes[2] = 2;
RUN("3", test_xiph_PackHeaders, xiph1, 11, OK);
PASS("3", test_xiph_PackHeaders, xiph1, 11);
/* Test multiple packets packing variable length encoding */
params.packets_count = 2;
......@@ -277,20 +274,20 @@ int main(void)
params.packets_sizes[0] = 256;
params.packets[1] = &xiph2[3+256];
params.packets_sizes[1] = 6;
RUN("4", test_xiph_PackHeaders, xiph2, 265, OK);
PASS("4", test_xiph_PackHeaders, xiph2, 265);
/* Appending */
params.i_append = 0;
params.p_append = NULL;
params.packets[0] = &xiph0[1];
params.packets_sizes[0] = 5;
RUN("0", test_xiph_AppendHeaders, xiph0, 6, OK);
PASS("0", test_xiph_AppendHeaders, xiph0, 6);
/* append second time */
xiph2[0] = 1;
xiph2[1] = 5;
memcpy(&xiph2[2+0], &xiph0[1], 5);
memcpy(&xiph2[2+5], &xiph0[1], 5);
RUN("1", test_xiph_AppendHeaders, xiph2, 12, OK);
PASS("1", test_xiph_AppendHeaders, xiph2, 12);
/* check append array overflow */
free(params.p_append);
params.i_append = 0;
......@@ -301,7 +298,7 @@ int main(void)
xiph2[0] = i;
xiph2[1 + i] = 0;
RUN("2", test_xiph_AppendHeaders, xiph2, 1 + i,
((i < XIPH_MAX_HEADER_COUNT) ? OK : FAIL) );
(i < XIPH_MAX_HEADER_COUNT) );
}
free(params.p_append);
......
......@@ -90,26 +90,16 @@ vlc_player_t *vlclua_get_player_internal( lua_State *L )
*****************************************************************************/
int vlclua_push_ret( lua_State *L, int i_error )
{
const char *str;
lua_pushnumber( L, i_error );
int err;
switch( i_error )
{
case VLC_SUCCESS: err = 0; break;
case VLC_ENOMEM: err = ENOMEM; break;
case VLC_ETIMEOUT: err = ETIMEDOUT; break;
case VLC_EINVAL: err = EINVAL; break;
case VLC_ENOENT: err = ENOENT; break;
case VLC_EGENERIC:
lua_pushstring( L, "generic error" );
return 2;
default:
lua_pushstring( L, "unknown error" );
return 2;
}
lua_pushstring( L, vlc_strerror_c(err) );
if( i_error == VLC_EGENERIC )
str = "Generic error";
else
str = vlc_strerror_c( -i_error );
lua_pushstring( L, str );
return 2;
}
......