soverlay broken after version 0.8.6a?

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

soverlay broken after version 0.8.6a?

Postby zuah » 13 Sep 2008 09:38

Hi !

I have been transcoding DVB streams using VLC player and this batch script:

"c:\Program Files\VideoLAN\VLC\vlc" -vvv %1 --sub-track=1 --sout-transcode-deinterlace :sout=#transcode{fps=25,no-hurry-up,vcodec=mp2v,vb=3064,acodec=mp2a,ab=196,scale=1,channels=2,audio-sync,soverlay}:standard{mux=ps,dst=%1.mpg,access=file} vlc:quit

The idea is to burn the dvb subtitles into the video stream. This works fine with version 0.8.6a if I use mp2v codec. With h264 codec, aac audio and mp4 container subtitles are a mess.

I have tested several newer VLC versions including the latest nightly build (vlc-1.0.0-git-20080912-0006-win32.exe) but it seems that soverlay is not working after version 0.8.6a. Or am I doing something wrong?

Thank you for your hard work.

VLC_help
Mega Cone Master
Mega Cone Master
Posts: 25661
Joined: 13 Sep 2006 14:16

Re: soverlay broken after version 0.8.6a?

Postby VLC_help » 13 Sep 2008 17:24

Overlays/Subtitles:
--sout-transcode-senc=<string>
Subtitles encoder
This is the subtitles encoder module that will be used (and its
associated options).
--sout-transcode-scodec=<string>
Destination subtitles codec
This is the subtitles codec that will be used.
--sout-transcode-soverlay, --no-sout-transcode-soverlay
Destination subtitles codec (default disabled)
This is the subtitles codec that will be used. (default disabled)
--sout-transcode-sfilter=<string>
Overlays
This allows you to add overlays (also known as "subpictures" on the
transcoded video stream. The subpictures produced by the filters will
be overlayed directly onto the video. You must specify a
comma-separated list of subpicture modules
http://wiki.videolan.org/VLC_command-line_help do these work any better?

zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

Re: soverlay broken after version 0.8.6a?

Postby zuah » 14 Sep 2008 13:25

I tested the options but no change. The stream is transcoded without subtitles.

I found these lines from the message window:
stream_out_transcode debug: subtitles (fcc=`dvbs') overlaying
main debug: looking for decoder module: 35 candidates
main debug: using decoder module "dvbsub"


This part works for sure "c:\Program Files\VideoLAN\VLC\vlc" -vvv %1 --sub-track=1. VLC player starts playing the video and subtitles are shown.

VLC_help
Mega Cone Master
Mega Cone Master
Posts: 25661
Joined: 13 Sep 2006 14:16

Re: soverlay broken after version 0.8.6a?

Postby VLC_help » 14 Sep 2008 13:53

You have a short sample file you could share?

zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

Re: soverlay broken after version 0.8.6a?

Postby zuah » 14 Sep 2008 16:29

I uploaded sample (28MB) to rapidshare
http://rapidshare.de/files/40471079/YLE_test.ts.html

For this file I have to set --sub-track=0 to see the correct subtitles.

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Re: soverlay broken after version 0.8.6a?

Postby DJ » 14 Sep 2008 22:13

My tests show that the soverlay is NOT broken, in that other formats with subs are combined with the picture. Also if you use your batch file with your sample and choose sub track 1 the teletext is combined with the picture, thus proving that the soverlay function works.

The issue here could be with DVB subs that are not being combined properly however every front end I have (2) for Directshow says there are no subs present with your sample file. I know that teletext is not supported by these front ends but DVB subs are. This was determined using graph edit and doing a examination of the file. Obviously there are subs within your test file. So I set up the transcode for VLC to do all elementary streams, but only the teletext came across.

I guess the big question remains is what this sub (format) and why it isn't being recognized by the transcoder. I realize that VLC says it's DVBS

I do have another program that can do a more through examination of your test file, but it is not installed on my machine at the moment because it interferes with another program I have installed.

At this point I would suggest choosing another program source for your test sample and try again to see if the problem persists.

jmetsako
New Cone
New Cone
Posts: 6
Joined: 14 Sep 2008 22:19

Re: soverlay broken after version 0.8.6a?

Postby jmetsako » 14 Sep 2008 22:38

I 100% agree with zuah. After version 0.8.6a subtitle selecting is somehow broken.

"C:\Program Files\VideoLAN\vlc-0.8.6a\vlc" --sub-language=fi "%infile%" --sout "#transcode{soverlay, vcodec=mp2v, vb=3000, acodec=mpga, ab=128, channels=2, audio-sync}:std{access=file, mux=ps, dst=%outfile%}"

Works like charm but not with any later versions.

br.
Jani

zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

Re: soverlay broken after version 0.8.6a?

Postby zuah » 14 Sep 2008 22:39

I don't know if this helps but here is a demux log from projectx:

Code: Select all

14. syyskuuta 2008 23.26.51 EEST ProjectX 0.90.04.00.b21 (30.08.2007) -> working with collection 0 -> save normal log file -> log 'packets out of sequence' / bit errors -> log 'missing startcodes' -> log 'PES header found in ES' -> log WSS -> log VPS -> log RDS -> log max. 500 warnings/errors -> write all video data -> write all other data -> patch c.d.flagged infos of pictures -> add sequence end code -> insert sequenzendcode on format changes -> set resolution in SDE -> ensure each GOP has a sequenceheader -> PVA: strictly specs. for audio streams -> VOB: determine diff. Cell timelines -> TS: ignore scrambled packets -> TS: enhanced search for open packets -> TS: join file segments (of Dreambox®) -> TS: generate PMT stream dependent -> get only enclosed PES/TS packets -> concatenate different recordings -> ensure 1st PES-packet start with video -> generate PCR/SCR from PTS -> write output files to: 'F:\Tallenukset' -> 2 cutpoint(s) defined ( (0) use BytePos. for cuts ) -> main I/O-Buffersize in bytes 4096000 bytes FileSegments: * (0) I:\YLE_test.ts second. Files: * --- +> Input File 0: 'I:\YLE_test.ts' (29 627 108 bytes) -> Filetype is TS (generic PES Container) -> demux -> Service ID 0x1 -> PMT 0x1771 refers to these usable streams: Video: PID: 0x200(#0) Audio: PID: 0x28A(eng)(#138) Teletext: PID: 0x911(fin_i100 ) Subpict.: PID: 0x403(fin_0x11_p1_a50 ) !> PID 0x0 (PAT) (7520 #41) -> ignored ok> PID 0x200 has PES-ID 0xE0 (MPEG Video) (12408 #67) ok> PID 0x911 has PES-ID 0xBD (private stream 1) (TTX) (12972 #70) ok> PID 0x28A has PES-ID 0xC0 (MPEG Audio) (23688 #127) !> PID 0x1771 (PMT) (63732 #340) -> ignored -> cut-in @ GOP# 0 / new vframe 0 / new Timecode 00:00:00.000 (283504) -> video basics: 720*576 @ 25fps @ 0.7031 (16:9) @ 8400000bps, vbvBuffer 112 -> starting export of video data @ GOP# 0 !> dropping useless B-Frames @ GOP# 0 / new Timecode 00:00:00.000 ok> PID 0x403 has PES-ID 0xBD (private stream 1) (SubID 0x20) (1536712 #8175) packs: 156847 100% 29627108 ++> Mpg Video: PID 0x0200 / PesID 0xE0 / SubID 0x00 : -> Video: fr-ct-1p-cg-og-dg -> 1402-1-0-117-0-0 -> Video length: 1402 frames @ 00:00:56.080 -> GOP summary: min. 20, max. 24 fields; contains interlaced frames -> avg. nom. bitrate 3537293bps (min/max: 2784800/4762000) -> set first sequenceheader bitrate to 4762000bps ---> new File: F:\Tallenukset\YLE_test.mpv ++> Teletext: PID 0x0911 / PesID 0xBD / SubID 0x10 : -> export format: srt -> temp. file: YLE_test.tt (1488606 bytes) -> looking for page number 451 -> Teletext PTS: first packet 09:54:52.138, last packet 09:55:48.178 -> Video PTS: start 1.GOP 09:54:52.661, end last GOP 09:55:48.741 ->adjusting teletext at video-timeline -> program: YLE 6 pages of No. 451 written... ---> new File: F:\Tallenukset\YLE_test[451].srt ++> Mpg Audio: PID 0x028A / PesID 0xC0 / SubID 0x00 : -> check CRC of AC-3 / MPEG-Audio L1,2 -> remove CRC in MPEG-Audio L1,2 -> add frames -> Audio PTS: first packet 09:54:52.138, last packet 09:55:48.298 -> Video PTS: start 1.GOP 09:54:52.661, end last GOP 09:55:48.741 -> adjusting audio at video-timeline -> src_audio: MPEG-1, Layer2, 48000Hz, stereo, 224kbps, CRC @ 00:00:00.000 !> 14 frame(s) (336ms) added @ 00:00:55.752 audio frames: wri-pre-skip-ins-add 2337-0-0-0-14 @ 00:00:56.088 done... ---> new File: 'F:\Tallenukset\YLE_test.mp2.mpa.wav' ++> Subpicture: PID 0x0403 / PesID 0xBD / SubID 0x20 : -> selected DVB subpicture color model: YLE ; fixed to page id: -> export format: sup -> temp. file: YLE_test.sp (48219 bytes) -> set new picture display mode: all forced -> Subpicture PTS: first packet 09:54:56.796, last packet 09:55:39.719 -> Video PTS: start 1.GOP 09:54:52.661, end last GOP 09:55:48.741 -> adjusting subpicture at video-timeline -> source is DVB Subtitle... 5 subpictures written... ---> new File: F:\Tallenukset\YLE_test.sup -> create VobSub Files (idx + sub) : F:\Tallenukset\YLE_test.sup.sub summary of created media files: .Video (m2v): 1402 Frames 00:00:56.080 'F:\Tallenukset\YLE_test.mpv' Audio 00 (mp2): 2337 Frames 00:00:56.088 0-0-0-14 'F:\Tallenukset\YLE_test.mp2.mpa.wav' SubPicture 01: 5 subpictures 'F:\Tallenukset\YLE_test.sup' Teletext 00: 6 pages of No. 451 'F:\Tallenukset\YLE_test[451].srt' => 26 399 570 bytes written... -> we have 4 warnings/errors.

DJ
Cone Master
Cone Master
Posts: 8206
Joined: 01 Jan 2006 04:30
Location: Koloa, Hawaii USA

Re: soverlay broken after version 0.8.6a?

Postby DJ » 14 Sep 2008 22:56

Given that formats other than DVB are being written to picture during the transcode the soverlay function is not broken. It is more likely that changes were made to the DVB module and that only this format is effected.

Has anyone tried VLC 0.9?

jmetsako
New Cone
New Cone
Posts: 6
Joined: 14 Sep 2008 22:19

Re: soverlay broken after version 0.8.6a?

Postby jmetsako » 18 Sep 2008 14:04

yes, tested with 0.9.2
"C:\Program Files\VideoLAN\vlc-0.9.2\vlc" --sub-language=fi file://"%infile%" --sout "#transcode{soverlay, vcodec=mp2v, vb=3000, acodec=mpga, ab=128, channels=2, audio-sync}:std{access=file, mux=ps, dst=%outfile%}"

Same result, no subtitles on outfile

Or did you mean especially 0.9 version?

VLC_help
Mega Cone Master
Mega Cone Master
Posts: 25661
Joined: 13 Sep 2006 14:16

Re: soverlay broken after version 0.8.6a?

Postby VLC_help » 19 Sep 2008 19:42

0.9.2 should be the right one for testing. Only option that comes to my mind is track the change that made this in 0.8.6

zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

Re: soverlay broken after version 0.8.6a?

Postby zuah » 19 Sep 2008 19:58

I did some tests with builds vlc-0.9.3-git-win32.exe and vlc-1.0.0-git-20080919-0711-win32.exe.

-still no subtitles after transcoding
-audio goes out of sync if mpeg4 codec is used
-VLC player crashes when h264 codec is used

Test setup: Win XP Pro SP3, AMD 3800+ X2, PNY GeForce 7600GT, 2GB Ram

VLC_help
Mega Cone Master
Mega Cone Master
Posts: 25661
Joined: 13 Sep 2006 14:16

Re: soverlay broken after version 0.8.6a?

Postby VLC_help » 20 Sep 2008 18:17

IIRC there was one x264 related patch posted to mailing list that hopefully fixes the H.264 encoding.

zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

Re: soverlay broken after version 0.8.6a?

Postby zuah » 27 Sep 2008 07:47

I made the same tests with nightly build vlc-0.9.4-git-win32.exe 27-Sep-2008 02:33.
No improvements :(

There seems to be issue with video quality when transcoding to mpeg4 format. Looks like the deblocking filter is not working like it should be. The quality is much better when I use version 0.8.6a

I uploaded short samples to rapidshare:
http://rapidshare.de/files/40560014/VLC ... t.zip.html

zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

Re: soverlay broken after version 0.8.6a?

Postby zuah » 01 Oct 2008 21:13

Build vlc-0.9.4-git-win32.exe 01-Oct-2008 10:52 tested. No improvements.

boghead
New Cone
New Cone
Posts: 1
Joined: 02 Oct 2008 09:53

Re: soverlay broken after version 0.8.6a?

Postby boghead » 02 Oct 2008 10:00

I know I am not supposed to post anything about other operating systems here, but, just in case it is relevant, I am seeing this same problem on the Linux client as well.

jmetsako
New Cone
New Cone
Posts: 6
Joined: 14 Sep 2008 22:19

Re: soverlay broken after version 0.8.6a?

Postby jmetsako » 12 Oct 2008 19:57

Tested also now with 0.9.4 release and no help.

zuah
New Cone
New Cone
Posts: 8
Joined: 13 Sep 2008 09:11

Re: soverlay broken after version 0.8.6a?

Postby zuah » 13 Nov 2008 20:28

Build vlc-0.9.7-git-win32.exe 13-Nov-2008 02:35 tested. No improvements.

johu
New Cone
New Cone
Posts: 5
Joined: 22 Dec 2008 22:41

Re: soverlay broken after version 0.8.6a?

Postby johu » 22 Dec 2008 23:34

Hi. I can confirm this problem with DVB subtitles is really present on both win32 and linux platforms. Overlaying DVB subtitles to video prior re-encoding works up to 0.8.6a and fails on 0.8.6b and all later versions including number of nightly builds picked randomly between 0.8.6b and those built on last night. I went thru patches between 0.8.6a and 0.8.6b on Linux (FC10) and managed to pinpoint problematic patch.

This is commit that causes subtitles to fail: http://git.videolan.org/?p=vlc.git;a=co ... c39e7dcd86

Code: Select all

9b6378b771cc4c9618dd934a8a4bf5c39e7dcd86 is first bad commit commit 9b6378b771cc4c9618dd934a8a4bf5c39e7dcd86 Author: Christophe Massiot <massiot@videolan.org> Date: Fri Apr 6 18:03:48 2007 +0000 * Backport basic teletext decoder, and teletext and dvbsub-related fixes in the TS demux and mux. Includes changesets : [18605] [18606] [18607] [18609] [18610] [18613] [18615] [18620] [18630] [18633] [19717]
I used following command-line:

Code: Select all

vlc -vvv YLE_TV1_dvbsub_ttxsub.ts --sub-track=0 --sout-transcode-deinterlace ':sout=#transcode{vcodec=mp2v,vb=1000,acodec,soverlay}:standard{mux=ps,dst=output.mpg,access=file}' vlc://quit --intf dummy
Source file used: http://sukkamehulinko.romikselle.com/vl ... _ttxsub.ts (20MB)
Output from build with bad patch applied: http://sukkamehulinko.romikselle.com/vl ... ut-bad.mpg (15MB)
Output from build without bad patch: http://sukkamehulinko.romikselle.com/vl ... put-ok.mpg (16MB)


Using same binary compiled with this commit that also adds support for ttx subs I can create files with overlayed teletext subtitles. They're not synced properly but that's another story and might be already fixed on newer builds. Here's command line used and sample output just in case someone finds it useful.

Code: Select all

vlc -vvv YLE_TV1_dvbsub_ttxsub.ts --sub-track=1 --sub-language fi --telx-override-page=451 --sout-transcode-deinterlace ':sout=#transcode{vcodec=mp2v,vb=1000,acodec,soverlay}:standard{mux=ps,dst=output.mpg,access=file}' vlc://quit --intf dummy
Output from build with bad patch applied in teletext mode: http://sukkamehulinko.romikselle.com/vl ... ttxsub.mpg

johu
New Cone
New Cone
Posts: 5
Joined: 22 Dec 2008 22:41

Re: soverlay broken after version 0.8.6a?

Postby johu » 23 Dec 2008 00:53

DVB subtitles work if I remove changes problematic commit applies to modules/demux/ts.c. Any ideas? Something wrong on this code or elsewhere which is just triggered by change to demux/ts.c?

Code: Select all

--- a/modules/demux/ts.c +++ b/modules/demux/ts.c @@ -3009,69 +3009,213 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt ) msg_Dbg( p_demux, " * EBU Teletext descriptor" ); pid->es->fmt.i_cat = SPU_ES; pid->es->fmt.i_codec = VLC_FOURCC( 't', 'e', 'l', 'x' ); - pid->es->fmt.psz_description = strdup( "Teletext" ); pid->es->fmt.i_extra = p_dr->i_length; pid->es->fmt.p_extra = malloc( p_dr->i_length ); memcpy( pid->es->fmt.p_extra, p_dr->p_data, p_dr->i_length ); + +#if defined _DVBPSI_DR_56_H_ && defined DVBPSI_VERSION \ + && DVBPSI_VERSION_INT > ((0<<16)+(1<<8)+5) + pid->es->fmt.i_group = p_pmt->i_program_number; + + /* In stream output mode, only enable descriptor + * pass-through. */ + if( !p_demux->out->b_sout ) + { + uint16_t n, i = 0; + dvbpsi_teletext_dr_t *sub; + + sub = dvbpsi_DecodeTeletextDr( p_dr ); + if( !sub ) continue; + + /* Each subtitle ES contains n languages, + * We are going to create n ES for the n tracks */ + for( n = 0; n < sub->i_pages_number; n++ ) + { + dvbpsi_teletextpage_t *p_page = &sub->p_pages[n]; + if( p_page->i_teletext_type == 0x2 + || p_page->i_teletext_type == 0x5 ) + { + ts_es_t *p_es; + + if( i == 0 ) + { + p_es = pid->es; + } + else + { + p_es = malloc( sizeof( ts_es_t ) ); + p_es->fmt = pid->es->fmt; + p_es->id = NULL; + p_es->p_pes = NULL; + p_es->i_pes_size = 0; + p_es->i_pes_gathered = 0; + p_es->pp_last = &p_es->p_pes; + p_es->p_mpeg4desc = NULL; + + TAB_APPEND( pid->i_extra_es, pid->extra_es, + p_es ); + } + + p_es->fmt.psz_language = malloc( 4 ); + memcpy( p_es->fmt.psz_language, + p_page->i_iso6392_language_code, 3 ); + p_es->fmt.psz_language[3] = 0; + + switch( p_page->i_teletext_type ) + { + case 0x2: + p_es->fmt.psz_description = + strdup(_("subtitles")); + msg_Dbg( p_demux, + " * sub lan=%s page=%d%x", + p_es->fmt.psz_language, + p_page->i_teletext_magazine_number, + p_page->i_teletext_page_number ); + break; + + case 0x5: + p_es->fmt.psz_description = + strdup(_("hearing impaired")); + msg_Dbg( p_demux, + " * hearing impaired lan=%s page=%d%x", + p_es->fmt.psz_language, + p_page->i_teletext_magazine_number, + p_page->i_teletext_page_number ); + break; + default: + break; + } + + p_es->fmt.subs.dvb.i_id = + p_page->i_teletext_page_number; + /* Hack, FIXME */ + p_es->fmt.subs.dvb.i_id |= + ((int)p_page->i_teletext_magazine_number << 16); + + i++; + } + } + + if( !i ) + pid->es->fmt.i_cat = UNKNOWN_ES; + } + else +#endif /* defined _DVBPSI_DR_56_H_ && DVBPSI_VERSION(0,1,6) */ + { + pid->es->fmt.subs.dvb.i_id = -1; + pid->es->fmt.psz_description = strdup( "Teletext" ); + } } -#ifdef _DVBPSI_DR_59_H_ else if( p_dr->i_tag == 0x59 ) { - uint16_t n; - dvbpsi_subtitling_dr_t *sub; - /* DVB subtitles */ pid->es->fmt.i_cat = SPU_ES; pid->es->fmt.i_codec = VLC_FOURCC( 'd', 'v', 'b', 's' ); - pid->es->fmt.i_group = p_pmt->i_program_number; + pid->es->fmt.i_extra = p_dr->i_length; + pid->es->fmt.p_extra = malloc( p_dr->i_length ); + memcpy( pid->es->fmt.p_extra, p_dr->p_data, + p_dr->i_length ); - sub = dvbpsi_DecodeSubtitlingDr( p_dr ); - if( !sub ) continue; +#ifdef _DVBPSI_DR_59_H_ + pid->es->fmt.i_group = p_pmt->i_program_number; - /* Each subtitle ES contains n languages, - * We are going to create n ES for the n tracks */ - if( sub->i_subtitles_number > 0 ) + /* In stream output mode, only enable descriptor + * pass-through. */ + if( !p_demux->out->b_sout ) { - pid->es->fmt.psz_language = malloc( 4 ); - memcpy( pid->es->fmt.psz_language, - sub->p_subtitle[0].i_iso6392_language_code, 3); - pid->es->fmt.psz_language[3] = 0; - - pid->es->fmt.subs.dvb.i_id = - sub->p_subtitle[0].i_composition_page_id; - /* Hack, FIXME */ - pid->es->fmt.subs.dvb.i_id |= - ((int)sub->p_subtitle[0].i_ancillary_page_id << 16); - } - else pid->es->fmt.i_cat = UNKNOWN_ES; + uint16_t n, i = 0; + dvbpsi_subtitling_dr_t *sub; + + sub = dvbpsi_DecodeSubtitlingDr( p_dr ); + if( !sub ) continue; + + for( n = 0; n < sub->i_subtitles_number; n++ ) + { + dvbpsi_subtitle_t *p_sub = &sub->p_subtitle[n]; + ts_es_t *p_es; + + if( i == 0 ) + { + p_es = pid->es; + } + else + { + p_es = malloc( sizeof( ts_es_t ) ); + p_es->fmt = pid->es->fmt; + p_es->id = NULL; + p_es->p_pes = NULL; + p_es->i_pes_size = 0; + p_es->i_pes_gathered = 0; + p_es->pp_last = &p_es->p_pes; + p_es->p_mpeg4desc = NULL; + + TAB_APPEND( pid->i_extra_es, pid->extra_es, + p_es ); + } + + p_es->fmt.psz_language = malloc( 4 ); + memcpy( p_es->fmt.psz_language, + p_sub->i_iso6392_language_code, 3 ); + p_es->fmt.psz_language[3] = 0; + + switch( p_sub->i_subtitling_type ) + { + case 0x10: + p_es->fmt.psz_description = + strdup(_("subtitles")); + break; + case 0x11: + p_es->fmt.psz_description = + strdup(_("4:3 subtitles")); + break; + case 0x12: + p_es->fmt.psz_description = + strdup(_("16:9 subtitles")); + break; + case 0x13: + p_es->fmt.psz_description = + strdup(_("2.21:1 subtitles")); + break; + case 0x20: + p_es->fmt.psz_description = + strdup(_("hearing impaired")); + break; + case 0x21: + p_es->fmt.psz_description = + strdup(_("4:3 hearing impaired")); + break; + case 0x22: + p_es->fmt.psz_description = + strdup(_("16:9 hearing impaired")); + break; + case 0x23: + p_es->fmt.psz_description = + strdup(_("2.21:1 hearing impaired")); + break; + default: + break; + } + + p_es->fmt.subs.dvb.i_id = + p_sub->i_composition_page_id; + /* Hack, FIXME */ + p_es->fmt.subs.dvb.i_id |= + ((int)p_sub->i_ancillary_page_id << 16); + + i++; + } - for( n = 1; n < sub->i_subtitles_number; n++ ) + if( !i ) + pid->es->fmt.i_cat = UNKNOWN_ES; + } + else +#endif /* _DVBPSI_DR_59_H_ */ { - ts_es_t *p_es = malloc( sizeof( ts_es_t ) ); - p_es->fmt = pid->es->fmt; - p_es->id = NULL; - p_es->p_pes = NULL; - p_es->i_pes_size = 0; - p_es->i_pes_gathered = 0; - p_es->pp_last = &p_es->p_pes; - p_es->p_mpeg4desc = NULL; - - p_es->fmt.psz_language = malloc( 4 ); - memcpy( p_es->fmt.psz_language, - sub->p_subtitle[n].i_iso6392_language_code, 3); - p_es->fmt.psz_language[3] = 0; - - p_es->fmt.subs.dvb.i_id = - sub->p_subtitle[n].i_composition_page_id; - /* Hack, FIXME */ - p_es->fmt.subs.dvb.i_id |= - ((int)sub->p_subtitle[n].i_ancillary_page_id << 16); - - TAB_APPEND( pid->i_extra_es, pid->extra_es, p_es ); + pid->es->fmt.subs.dvb.i_id = -1; + pid->es->fmt.psz_description = strdup( "DVB subtitles" ); } } -#endif /* _DVBPSI_DR_59_H_ */ } } else if( p_es->i_type == 0xa0 )

johu
New Cone
New Cone
Posts: 5
Joined: 22 Dec 2008 22:41

Re: soverlay broken after version 0.8.6a?

Postby johu » 23 Dec 2008 01:34

Think I just found it. That problematic commit seems to disable dvb subtitle processing in sout mode. After I removed that check (see patch below) "burning" dvb subtitles to image work again even with rest of ttxsubs patch still applied.

Hopefully someone with better understanding of C and VLC could take a look at this and make proper fix to implement on next release as now problem has been narrowed to few lines - no need to go thru four months worth of commits anymore.

Code: Select all

--- modules/demux/ts.c.old 2008-12-23 00:59:54.000000000 +0200 +++ modules/demux/ts.c 2008-12-23 01:10:05.000000000 +0200 @@ -3120,10 +3120,6 @@ #ifdef _DVBPSI_DR_59_H_ pid->es->fmt.i_group = p_pmt->i_program_number; - /* In stream output mode, only enable descriptor - * pass-through. */ - if( !p_demux->out->b_sout ) - { uint16_t n, i = 0; dvbpsi_subtitling_dr_t *sub; @@ -3208,13 +3204,7 @@ if( !i ) pid->es->fmt.i_cat = UNKNOWN_ES; - } - else #endif /* _DVBPSI_DR_59_H_ */ - { - pid->es->fmt.subs.dvb.i_id = -1; - pid->es->fmt.psz_description = strdup( "DVB subtitles" ); - } } } }

johu
New Cone
New Cone
Posts: 5
Joined: 22 Dec 2008 22:41

Re: soverlay broken after version 0.8.6a?

Postby johu » 23 Dec 2008 02:45

Compiled 0.9.8a using SRPM from atrpms.net on Fedora 10. By default stream overlay with teletext subtitles work but fail with dvb subtitles. After making change shown on my previous post both teletext and dvb subtitle soverlay works at least with my short test clips. With teletext timing is still slightly off (much less than with 0.8.6b), but this could be problem with source material as well.

So for my needs this problem is solved with this hack for now. Hopefully proper fix will be included in future releases so users don't need to recompile after every new release. While it's easy with atrpms.net SRPM on Linux I assume not many Windows users have required tools available.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: soverlay broken after version 0.8.6a?

Postby Jean-Baptiste Kempf » 23 Dec 2008 13:00

Send the solutions and remarks to the mailing list team.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

johu
New Cone
New Cone
Posts: 5
Joined: 22 Dec 2008 22:41

Re: soverlay broken after version 0.8.6a?

Postby johu » 23 Dec 2008 14:20

"Mailing list team" would be vlc-devel?

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: soverlay broken after version 0.8.6a?

Postby Jean-Baptiste Kempf » 23 Dec 2008 17:25

yes.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.


Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: No registered users and 19 guests