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)
  • Alaric Senat's avatar
    transcode: simplify encoder closes · 357c70f1
    Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
    `module_unneed` is now called in one single place.
    357c70f1
  • Alaric Senat's avatar
    transcode: video_enc: rename `close` to `stop` · d899a2d3
    Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
    Now, this function only interrupts and join the encoder threads.
    d899a2d3
  • Alaric Senat's avatar
    transcode: encoder: properly close · 0d61cd2d
    Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
    Single `module_unneed` calls aren't enough to properly close encoders as
    their disable callbacks are stored independently from the module.
    As a side effect, this patch fixes a double-free where the custom
    `close` callback was called after the `module_unneed` call in the
    encoder destroy function:
    
    ```
    READ of size 8 at 0x619000050498 thread T10 (vlc-input)
        #0 0x7f83c0e72a67 in CloseEncoder ../../modules/codec/x264.c:1523
        #1 0x7f83d64b7613 in vlc_encoder_Destroy ../../src/input/decoder_helpers.c:176
        #2 0x7f83ccb31986 in transcode_encoder_delete ../../modules/stream_out/transcode/encoder/encoder.c:55
        #3 0x7f83ccb53203 in transcode_video_clean ../../modules/stream_out/transcode/video.c:405
        #4 0x7f83ccb2f6ac in Del ../../modules/stream_out/transcode/transcode.c:736
        #5 0x7f83d679814f in sout_StreamIdDel ../../src/stream_output/stream_output.c:707
        #6 0x7f83d6791cc3 in sout_InputDelete ../../src/stream_output/stream_output.c:155
        #7 ...
    
    0x619000050498 is located 1048 bytes inside of 1072-byte region [0x619000050080,0x6190000504b0)
    freed by thread T10 (vlc-input) here:
        #0 0x7f83d73b6388 in __interceptor_free.part.0 (/lib64/libasan.so.8+0xb9388)
        #1 0x7f83d6740fcd in vlc_objres_clear ../../src/misc/objres.c:93
        #2 0x7f83d640265d in module_unneed ../../src/modules/modules.c:307
        #3 0x7f83ccb3f212 in transcode_encoder_video_close ../../modules/stream_out/transcode/encoder/video.c:390
        #4 0x7f83ccb331a2 in transcode_encoder_close ../../modules/stream_out/transcode/encoder/encoder.c:188
        #5 0x7f83ccb53178 in transcode_video_clean ../../modules/stream_out/transcode/video.c:404
        #6 0x7f83ccb2f6ac in Del ../../modules/stream_out/transcode/transcode.c:736
        #7 ...
    ```
    0d61cd2d
  • Alaric Senat's avatar
    transcode: ensure encoder is stopped on destroy · 9c93ba93
    Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
    This makes the destroy procedure implicitly the same than the closing
    with extra resource removal steps.
    9c93ba93
  • Alaric Senat's avatar
    transcode: encoder: remove redundant `close` calls · d23d3574
    Alaric Senat authored and Steve Lhomme's avatar Steve Lhomme committed
    Destroying the encoder should implicitly call the correct close
    callbacks.
    d23d3574
......@@ -201,7 +201,6 @@ int transcode_audio_init( sout_stream_t *p_stream, const es_format_t *p_fmt,
void transcode_audio_clean( sout_stream_t *p_stream, sout_stream_id_sys_t *id )
{
/* Close encoder */
transcode_encoder_close( id->encoder );
transcode_encoder_delete( id->encoder );
es_format_Clean( &id->decoder_out );
......
......@@ -48,6 +48,7 @@ void transcode_encoder_delete( transcode_encoder_t *p_enc )
{
if( p_enc->p_encoder->fmt_in.i_cat == VIDEO_ES )
{
transcode_encoder_video_stop( p_enc );
block_ChainRelease( p_enc->p_buffers );
picture_fifo_Delete( p_enc->pp_pics );
}
......@@ -182,16 +183,17 @@ void transcode_encoder_close( transcode_encoder_t *p_enc )
if( !p_enc->p_encoder->p_module )
return;
switch( p_enc->p_encoder->fmt_in.i_cat )
if( p_enc->p_encoder->fmt_in.i_cat == VIDEO_ES )
transcode_encoder_video_stop( p_enc );
if( p_enc->p_encoder->ops != NULL && p_enc->p_encoder->ops->close != NULL )
{
case VIDEO_ES:
transcode_encoder_video_close( p_enc );
break;
default:
module_unneed( p_enc->p_encoder, p_enc->p_encoder->p_module );
break;
p_enc->p_encoder->ops->close( p_enc->p_encoder );
p_enc->p_encoder->ops = NULL;
}
module_unneed( p_enc->p_encoder, p_enc->p_encoder->p_module );
p_enc->p_encoder->p_module = NULL;
}
......
......@@ -40,7 +40,7 @@ int transcode_encoder_video_open( transcode_encoder_t *p_enc,
int transcode_encoder_spu_open( transcode_encoder_t *p_enc,
const transcode_encoder_config_t *p_cfg );
void transcode_encoder_video_close( transcode_encoder_t *p_enc );
void transcode_encoder_video_stop( transcode_encoder_t *p_enc );
block_t * transcode_encoder_video_encode( transcode_encoder_t *p_enc, picture_t *p_pic );
block_t * transcode_encoder_audio_encode( transcode_encoder_t *p_enc, block_t *p_block );
......
......@@ -375,7 +375,7 @@ int transcode_encoder_video_drain( transcode_encoder_t *p_enc, block_t **out )
return VLC_SUCCESS;
}
void transcode_encoder_video_close( transcode_encoder_t *p_enc )
void transcode_encoder_video_stop( transcode_encoder_t *p_enc )
{
if( p_enc->b_threaded && !p_enc->b_abort )
{
......@@ -385,10 +385,6 @@ void transcode_encoder_video_close( transcode_encoder_t *p_enc )
vlc_mutex_unlock( &p_enc->lock_out );
vlc_join( p_enc->thread, NULL );
}
/* Close encoder */
module_unneed( p_enc->p_encoder, p_enc->p_encoder->p_module );
p_enc->p_encoder->p_module = NULL;
}
int transcode_encoder_video_open( transcode_encoder_t *p_enc,
......
......@@ -141,7 +141,6 @@ int transcode_spu_init( sout_stream_t *p_stream, const es_format_t *p_fmt,
{
msg_Err( p_stream, "cannot output transcoded stream %4.4s",
(char *) &id->p_enccfg->i_codec );
transcode_encoder_close( id->encoder );
transcode_encoder_delete( id->encoder );
module_unneed( id->p_decoder, id->p_decoder->p_module );
id->p_decoder->p_module = NULL;
......@@ -162,10 +161,7 @@ void transcode_spu_clean( sout_stream_t *p_stream, sout_stream_id_sys_t *id)
/* Close encoder */
if( id->encoder )
{
transcode_encoder_close( id->encoder );
transcode_encoder_delete( id->encoder );
}
}
int transcode_spu_process( sout_stream_t *p_stream,
......
......@@ -398,10 +398,7 @@ void transcode_video_clean( sout_stream_id_sys_t *id )
{
/* Close encoder, but only if one was opened. */
if ( id->encoder )
{
transcode_encoder_close( id->encoder );
transcode_encoder_delete( id->encoder );
}
es_format_Clean( &id->decoder_out );
......