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 (8)
......@@ -412,6 +412,7 @@ static void SetupPositions( subpicture_region_t *p_region, char *psz_subtitle )
static subpicture_region_t *CreateTextRegion( decoder_t *p_dec,
char *psz_subtitle,
char *psz_plaintext,
int i_sys_align )
{
decoder_sys_t *p_sys = p_dec->p_sys;
......@@ -419,57 +420,59 @@ static subpicture_region_t *CreateTextRegion( decoder_t *p_dec,
/* Create a new subpicture region */
p_text_region = subpicture_region_NewText();
if( p_text_region != NULL )
{
ssa_style_t *p_ssa_style = NULL;
if( p_text_region == NULL )
return NULL;
ssa_style_t *p_ssa_style = NULL;
p_ssa_style = ParseStyle( p_sys, psz_subtitle );
if( !p_ssa_style )
p_ssa_style = ParseStyle( p_sys, psz_subtitle );
if( !p_ssa_style )
{
for( int i = 0; i < p_sys->i_ssa_styles; i++ )
{
for( int i = 0; i < p_sys->i_ssa_styles; i++ )
{
if( !strcasecmp( p_sys->pp_ssa_styles[i]->psz_stylename, "Default" ) )
p_ssa_style = p_sys->pp_ssa_styles[i];
}
if( !strcasecmp( p_sys->pp_ssa_styles[i]->psz_stylename, "Default" ) )
p_ssa_style = p_sys->pp_ssa_styles[i];
}
}
/* Set default or user align/margin.
* Style overridden if no user value. */
p_text_region->i_x = i_sys_align > 0 ? 20 : 0;
p_text_region->i_y = 10;
p_text_region->i_align = SUBPICTURE_ALIGN_BOTTOM |
((i_sys_align > 0) ? i_sys_align : 0);
/* Set default or user align/margin.
* Style overridden if no user value. */
p_text_region->i_x = i_sys_align > 0 ? 20 : 0;
p_text_region->i_y = 10;
p_text_region->i_align = SUBPICTURE_ALIGN_BOTTOM |
((i_sys_align > 0) ? i_sys_align : 0);
if( p_ssa_style )
{
msg_Dbg( p_dec, "style is: %s", p_ssa_style->psz_stylename );
if( p_ssa_style )
{
msg_Dbg( p_dec, "style is: %s", p_ssa_style->psz_stylename );
/* TODO: Setup % based offsets properly, without adversely affecting
* everything else in vlc. Will address with separate patch,
* to prevent this one being any more complicated.
/* TODO: Setup % based offsets properly, without adversely affecting
* everything else in vlc. Will address with separate patch,
* to prevent this one being any more complicated.
* p_ssa_style->i_margin_percent_h;
* p_ssa_style->i_margin_percent_v;
*/
if( i_sys_align == -1 )
{
p_text_region->i_align = p_ssa_style->i_align;
p_text_region->i_x = p_ssa_style->i_margin_h;
p_text_region->i_y = p_ssa_style->i_margin_v;
}
p_text_region->p_text = text_segment_NewInheritStyle( p_ssa_style->p_style );
}
else
* p_ssa_style->i_margin_percent_h;
* p_ssa_style->i_margin_percent_v;
*/
if( i_sys_align == -1 )
{
p_text_region->p_text = text_segment_New( NULL );
p_text_region->i_align = p_ssa_style->i_align;
p_text_region->i_x = p_ssa_style->i_margin_h;
p_text_region->i_y = p_ssa_style->i_margin_v;
}
/* Look for position arguments which may override the style-based
* defaults.
*/
SetupPositions( p_text_region, psz_subtitle );
p_text_region->p_next = NULL;
p_text_region->p_text = text_segment_NewInheritStyle( p_ssa_style->p_style );
}
else
{
p_text_region->p_text = text_segment_New( NULL );
}
p_text_region->p_text->psz_text = psz_plaintext;
/* Look for position arguments which may override the style-based
* defaults.
*/
SetupPositions( p_text_region, psz_subtitle );
return p_text_region;
}
......@@ -825,27 +828,25 @@ static subpicture_region_t *ParseUSFString( decoder_t *p_dec,
{
subpicture_region_t *p_text_region;
char *psz_flat = NULL;
char *psz_knodes = strndup( &psz_subtitle[9], psz_end - &psz_subtitle[9] );
if( psz_knodes )
{
/* remove timing <k> tags */
psz_flat = CreatePlainText( psz_knodes );
char *psz_flat = CreatePlainText( psz_knodes );
free( psz_knodes );
if( psz_flat )
{
p_text_region = CreateTextRegion( p_dec,
psz_flat,
psz_flat,
p_sys->i_align );
if( p_text_region )
{
free( p_text_region->p_text->psz_text );
p_text_region->p_text->psz_text = psz_flat;
if( !p_region_first )
{
p_region_first = p_region_upto = p_text_region;
}
else if( p_text_region )
else
{
p_region_upto->p_next = p_text_region;
p_region_upto = p_region_upto->p_next;
......@@ -918,24 +919,26 @@ static subpicture_region_t *ParseUSFString( decoder_t *p_dec,
psz_end = psz_subtitle + strlen( psz_subtitle );
p_text_region = CreateTextRegion( p_dec,
psz_subtitle,
p_sys->i_align );
if( p_text_region )
{
free( p_text_region->p_text->psz_text );
p_text_region->p_text->psz_text = CreatePlainText( psz_subtitle );
}
if( !p_region_first )
char *psz_flat = CreatePlainText( psz_subtitle );
if( psz_flat )
{
p_region_first = p_region_upto = p_text_region;
}
else if( p_text_region )
{
p_region_upto->p_next = p_text_region;
p_region_upto = p_region_upto->p_next;
p_text_region = CreateTextRegion( p_dec,
psz_subtitle,
psz_flat,
p_sys->i_align );
if( p_text_region )
{
if( !p_region_first )
{
p_region_first = p_region_upto = p_text_region;
}
else
{
p_region_upto->p_next = p_text_region;
p_region_upto = p_region_upto->p_next;
}
}
else free( psz_flat );
}
}
if( psz_end )
......
......@@ -90,7 +90,7 @@ static void TTML_ImageSpuUpdate(subpicture_t *p_spu,
const video_format_t *p_fmt_dst,
vlc_tick_t i_ts)
{
VLC_UNUSED(p_fmt_src); VLC_UNUSED(p_fmt_dst);
VLC_UNUSED(p_fmt_src);
VLC_UNUSED(i_ts);
ttml_image_updater_sys_t *p_sys = p_spu->updater.p_sys;
subpicture_region_t **pp_last_region = &p_spu->p_region;
......
......@@ -208,7 +208,7 @@ static int SubsdelayCalculateAlpha( filter_t *p_filter, int i_overlapping, int i
static int SubsdelayGetTextRank( char *psz_text );
static bool SubsdelayIsTextEmpty( const text_segment_t* p_segment );
static bool SubsdelayIsTextEmpty( const subpicture_region_t * );
/*****************************************************************************
* Subpicture functions
......@@ -1044,8 +1044,7 @@ static void SubpicLocalUpdate( subpicture_t* p_subpic, vlc_tick_t i_ts )
if( p_entry->b_check_empty && p_subpic->p_region )
{
//FIXME: What if there is more than one segment?
if( SubsdelayIsTextEmpty( p_subpic->p_region->p_text ) )
if( SubsdelayIsTextEmpty( p_subpic->p_region ) )
{
/* remove empty subtitle */
......@@ -1108,7 +1107,7 @@ static void SubpicLocalUpdate( subpicture_t* p_subpic, vlc_tick_t i_ts )
*****************************************************************************/
static bool SubpicIsEmpty( subpicture_t* p_subpic )
{
return ( p_subpic->p_region && ( SubsdelayIsTextEmpty( p_subpic->p_region->p_text ) ) );
return p_subpic->p_region != NULL && SubsdelayIsTextEmpty( p_subpic->p_region );
}
/*****************************************************************************
......@@ -1327,8 +1326,11 @@ static int SubsdelayGetTextRank( char *psz_text )
/*****************************************************************************
* SubsdelayIsTextEmpty: Check if the text contains spaces only
*****************************************************************************/
static bool SubsdelayIsTextEmpty( const text_segment_t *p_segment )
static bool SubsdelayIsTextEmpty( const subpicture_region_t *p_region )
{
if ( p_region->fmt.i_chroma != VLC_CODEC_TEXT )
return true;
const text_segment_t *p_segment = p_region->p_text;
while ( p_segment )
{
if ( p_segment->psz_text && strlen( p_segment->psz_text ) > 0 )
......
......@@ -363,8 +363,17 @@ subpicture_region_t* subpicture_region_Copy( subpicture_region_t *p_region_src )
p_region_dst->i_align = p_region_src->i_align;
p_region_dst->i_alpha = p_region_src->i_alpha;
p_region_dst->i_text_align = p_region_src->i_text_align;
p_region_dst->b_noregionbg = p_region_src->b_noregionbg;
p_region_dst->b_gridmode = p_region_src->b_gridmode;
p_region_dst->b_balanced_text = p_region_src->b_balanced_text;
p_region_dst->i_max_width = p_region_src->i_max_width;
p_region_dst->i_max_height = p_region_src->i_max_height;
p_region_dst->p_text = text_segment_Copy( p_region_src->p_text );
p_region_dst->zoom_h = p_region_src->zoom_h;
p_region_dst->zoom_v = p_region_src->zoom_v;
picture_CopyPixels(p_region_dst->p_picture, p_region_src->p_picture);
return p_region_dst;
}
......@@ -34,7 +34,6 @@
#include <vlc_common.h>
#include <vlc_modules.h>
#include <vlc_vout.h>
#include <vlc_filter.h>
#include <vlc_spu.h>
#include <vlc_vector.h>
......@@ -1046,10 +1045,6 @@ static subpicture_region_t *SpuRenderRegion(spu_t *spu,
region->p_private = subpicture_region_private_New(&picture->format);
if (region->p_private) {
region->p_private->p_picture = picture;
if (!region->p_private->p_picture) {
subpicture_region_private_Delete(region->p_private);
region->p_private = NULL;
}
} else {
picture_Release(picture);
}
......