From patchwork Sun Oct 3 21:55:41 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jose Alberto Reguero X-Patchwork-Id: 12838 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.69) (envelope-from ) id 1P2WX5-0004ad-76 for vdr@linuxtv.org; Sun, 03 Oct 2010 23:55:47 +0200 X-tubIT-Incoming-IP: 213.4.138.2 Received: from impaqm2.telefonica.net ([213.4.138.2]) by mail.tu-berlin.de (exim-4.69/mailfrontend-a) with esmtp for id 1P2WX4-0004Fj-Ay; Sun, 03 Oct 2010 23:55:47 +0200 Received: from IMPmailhost2.adm.correo ([10.20.102.39]) by IMPaqm2.telefonica.net with bizsmtp id EH0M1f04F0r0BT63MMvlHJ; Sun, 03 Oct 2010 23:55:45 +0200 Received: from jar.dominio ([80.25.230.35]) by IMPmailhost2.adm.correo with BIZ IMP id EMvl1f0010mULeg1iMvlST; Sun, 03 Oct 2010 23:55:45 +0200 X-Brightmail-Tracker: AAAAAA== X-TE-authinfo: authemail="jareguero$telefonica.net" |auth_email="jareguero@telefonica.net" X-TE-AcuTerraCos: auth_cuTerraCos="cosuitnetc01" From: Jose Alberto Reguero To: VDR Mailing List Date: Sun, 3 Oct 2010 23:55:41 +0200 User-Agent: KMail/1.13.5 (Linux/2.6.35; KDE/4.4.5; x86_64; ; ) References: <4BAA4EBA.4030406@free.fr> <201010022009.31161.dplu@free.fr> <201010031936.00018.jareguero@telefonica.net> In-Reply-To: <201010031936.00018.jareguero@telefonica.net> MIME-Version: 1.0 Message-Id: <201010032355.41878.jareguero@telefonica.net> X-tubIT-Score: 0.0 () X-PMX-Version: 5.5.4.371499, Antispam-Engine: 2.7.1.369594, Antispam-Data: 2010.10.3.214215 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MIME_TEXT_ONLY_MP_MIXED 0.05, BODY_SIZE_10000_PLUS 0, FROM_NAME_PHRASE 0, WEBMAIL_RCVD 0, WEBMAIL_SOURCE 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __C230066_P3_4 0, __CP_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_MIXED 0, __HAS_MSGID 0, __INT_PROD_TV 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __URI_NO_WWW 0, __USER_AGENT 0' X-LSpam-Score: -3.4 (---) X-LSpam-Report: No, score=-3.4 required=5.0 tests=AWL=0.208, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1 autolearn=ham Subject: Re: [vdr] vdr xine-lib eac3 X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Oct 2010 21:55:48 -0000 Status: O X-Status: X-Keywords: X-UID: 23625 Attached is a patch to fix xine-lib ts work with eac3. With this patch you can use xine-ui to play the records. Jose Alberto El Domingo 03 Octubre 2010, Jose Alberto Reguero escribió: > Playing with xine-ui and demux ts don't work well. You must play it with > vdr- xine. > > Jose Alberto > > El Sábado 02 Octubre 2010, dplu escribió: > > Hi > > > > I play with your sample , it has only one audio track and strictly no > > sound on it ... > > > > So I decide to replace my recent xine-ui by the very latest here > > http://hg.debian.org/hg/xine-lib/xine-ui/ > > > > xine-lib is latest one with only your patch in mpeg-pes > > ffmpeg is the full latest git with absolutely no patch > > > > the result is the same .. > > > > So I destroy the /.xine/config file and I can open the ts file and play > > with audio track .. if I play too hard, I have the message saying : > > > > -load_plugins: plugin vdpau_h264 will be used for video streamtype 4d. > > -Broken NAL, skip it. > > -ffmpeg_audio_dec: augmentation du buffer à 98304 pour éviter sa > > saturation. -load_plugins: plugin ffmpegaudio will be used for audio > > streamtype 41. -ffmpeg_audio_dec: trying to open null codec > > -audio_decoder: no plugin available to handle 'E-AC-3' > > > > no more sound available ... so it's better > > > > Back to vdr, I try to play with sound track and crash immediatly > > I remark that when crashing, and running xine-ui to reconnect to vdr > > playing my records, it has stop replay and fall back to live TV .. > > strange !!! > > > > I was focusing on xine but on vdr log there is a message I didn't saw : > > > > -SetPlayMode: 0 > > -SetPlayMode: 1 > > -SetPlayMode: 0 > > -SetPlayMode: 1 > > -SetDigitalAudioDevice: 1 > > -::write(2048) returned -1, error 32: Broken pipe > > -vdr-xine: Client disconnected! > > -SetPlayMode: 0 > > -SetPlayMode: 1 > > -SetDigitalAudioDevice: 0 > > > > I will report on our forum this event and ask my colleague to check also > > this part if they have time. In a short way does it means that vdr-xine > > ask xine-ui to break itself and stop replaying ? > > > > For myself, I will break for one week hoping somebody will continue to > > test or find what can be wrong in our basis config > > > > Thanks for your help and sorry to not have enough skills to debug or > > understand the source code > > > > Best regards > > > > Le Saturday 02 October 2010 12:54:07 Jose Alberto Reguero, vous avez écrit : > > > I use latsest xine-ui hg. The problem may be ffmpeg or xine-lib or > > > xine-ui. Are you sure that you have the latest versions and no > > > aditional patches? You can do hg diff o svn diff to see the changes > > > you have in the repositories. Here is a sample: > > > http://dl.free.fr/pByrnmYwZ > > > > > > Jose Alberto > > > > > > El Viernes 01 Octubre 2010, dplu escribió: > > > > Hi > > > > > > > > I continue to search why it fail ... with no luck, hope other people > > > > will have time to make test > > > > > > > > basis test setup : > > > > vdr 1.7.15 extention patch + patch e-ac3 for vdr-xine > > > > xine-ui 0.99.6 > > > > latest git ffmpeg > > > > latest xine 1.2 with basic e-ac3 patch for only > > > > > > > > From vdr : crash every time I change audio track as described > > > > previously > > > > > > > > Second test > > > > Try opening the TS file from xine-ui directly, same behaviour > > > > > > > > op mode : > > > > > > > > At startup sound track is "0" (should be "fra"), play nice > > > > track -- > > > > display track "off" , no crash > > > > track ++ > > > > display "0" instead of "fra" , no crash > > > > track ++ > > > > display "qaa" , it's real name .. crash in couple of seconds > > > > > > > > Here is the log with high verbosity > > > > http://pastebin.com/BvGKDk0v > > > > > > > > Hope this help you, I underline in yellow some strange thing > > > > > > > > By the way, if you have time, can you post a sample of recording made > > > > at home so we can also test your sample with our configuration > > > > > > > > Many thanks for your help and have a nice week end > > > > > > > > Best regards > > > > > > > > Le Thursday 30 September 2010 22:51:34 dplu, vous avez écrit : > > > > > Here is the result of my colleague using vdr-sxfe verbose and > > > > > changing the audio track > > > > > > > > > > [9665] [demux_vdr] audio stream changed: 03410000 -> 03410001 > > > > > Erreur de segmentation (=segfault error) > > > > > > > > > > As you can see this is the same error , he use this patch > > > > > > > > > > diff -r cb99a1abe986 src/combined/ffmpeg/ff_audio_decoder.c > > > > > --- a/src/combined/ffmpeg/ff_audio_decoder.c Fri Apr 09 18:55:47 > > > > > 2010 +0200 +++ b/src/combined/ffmpeg/ff_audio_decoder.c Sat Apr 10 > > > > > 16:23:14 2010 +0200 @@ -219,6 +219,12 @@ > > > > > this->context->extradata_size); > > > > > break; > > > > > } > > > > > + case BUF_AUDIO_EAC3: > > > > > + case BUF_AUDIO_A52: > > > > > + { > > > > > + this->context->request_channels = 2; > > > > > + break; > > > > > + } > > > > > default: > > > > > xprintf(this->stream->xine, XINE_VERBOSITY_LOG, > > > > > "ffmpeg_audio_dec: unknown header with buf type 0x%X\n", > > > > > codec_type); > > > > > > > > > > We continue to investigate > > > > > > > > > > thanks for your help > > > > > > > > > > Le Thursday 30 September 2010 22:40:34 dplu, vous avez écrit : > > > > > > I will add this patch to my xine-lib and rebuild all > > > > > > > > > > > > Here are two more samples to test given by colleague, I will also > > > > > > wait the answer from Karim Afifi to have comparative tests > > > > > > > > > > > > http://dl.free.fr/mE6yTLPnx > > > > > > http://dl.free.fr/u2dWSU5R8 > > > > > > > > > > > > Other idea : may it comes from my xine-ui version ? did you use a > > > > > > fresh one from http://hg.debian.org/hg/xine-lib/xine-ui/ > > > > > > > > > > > > Many thanks for your help and have a nice evening > > > > > > > > > > > > Le Thursday 30 September 2010 22:27:52 Jose Alberto Reguero, vous > > > > > > avez > > > > > > > > > > écrit : > > > > > > > The error you report doesn't matter. It is because there is no > > > > > > > case for EAC3. I have an additional patch to use only two > > > > > > > channels, and I don't have this error. You can use the patch > > > > > > > and comment the line: this->context->request_channels = 2; and > > > > > > > then you don't have the error. > > > > > > > I try with the sample you give to me. If you want you can give > > > > > > > me another sample. > > > > > > > > > > > > > > Jose Alberto > > > > > > > > > > > > > > El Jueves 30 Septiembre 2010, dplu escribió: > > > > > > > > Hi > > > > > > > > > > > > > > > > In fact, I use a very recent ffmpeg (less than one month) and > > > > > > > > the very latest xine-lib 1.2 with no patch except yours > > > > > > > > > > > > > > > > I found my error message in > > > > > > > > combined/ffmpeg/ff_audio_decoder.c > > > > > > > > > > > > > > > > This is strange that you cannot reproduce as long we (my > > > > > > > > colleague + me) are able to have it every time and other user > > > > > > > > report this problem using xlo plugin + sxfe (on French DVB > > > > > > > > forum) > > > > > > > > > > > > > > > > I can update my ffmpeg to the very latest release but not > > > > > > > > sure it will change something (ffplay or mplayer works fine) > > > > > > > > > > > > > > > > Nobody else can test our sample please ? > > > > > > > > > > > > > > > > Have a nive evening > > > > > > > > > > > > > > > > Le Thursday 30 September 2010 20:10:54 Jose Alberto Reguero, > > > > > > > > vous avez > > > > > > > > > > > > > > écrit : > > > > > > > > > I can change eac3 audio channel without problem. Perhaps > > > > > > > > > you have additional patches that cause that. > > > > > > > > > > > > > > > > > > Jose Alberto > > > > > > > > > > > > > > > > > > El Miércoles 29 Septiembre 2010, Karim Afifi escribió: > > > > > > > > > > Hello, > > > > > > > > > > > > > > > > > > > > Just to confirm that I've the same crash that dplu is > > > > > > > > > > talking about, with xineliboutput here. It occurs : > > > > > > > > > > - **Every time** I try to change audio track on "HD > > > > > > > > > > e-ac3" channel. - Many time when I zap from "SD" to on > > > > > > > > > > "HD e-ac3" channel. - Many time when I zap from HD > > > > > > > > > > "e-ac3" to on HD "e-ac3" channel. - No problem when > > > > > > > > > > using "SD" and "HD no e-ac3" channels. > > > > > > > > > > > > > > > > > > > > Guys, many thanks for your job, I hope vdr will soon > > > > > > > > > > remain as stable on "HD e-ac3" that with "SD" and "HD > > > > > > > > > > non e-ac3" channels. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Karim > > > > > > > > > > > > > > > > > > > > -----Message d'origine----- > > > > > > > > > > De : vdr-bounces@linuxtv.org > > > > > > > > > > [mailto:vdr-bounces@linuxtv.org] De la part de dplu > > > > > > > > > > Envoyé : mercredi 29 septembre 2010 15:05 > > > > > > > > > > À : VDR Mailing List > > > > > > > > > > Objet : Re: [vdr] vdr xine-lib eac3 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi > > > > > > > > > > > > > > > > > > > > Thanks for the patch, works nice now. Did you try to > > > > > > > > > > change audio channel ? I > > > > > > > > > > have a strange error reported also by french colleague : > > > > > > > > > > > > > > > > > > > > ffmpeg_audio_dec: augmentation du buffer à 98304 pour > > > > > > > > > > éviter sa saturation. (translation) => Increasing buffer > > > > > > > > > > size to 98304 to prevent overflow ffmpeg_audio_dec: > > > > > > > > > > unknown header with buf type 0x3410000 > > > > > > > > > > > > > > > > > > > > and xine-ui crash ... error in xiTK > > > > > > > > > > > > > > > > > > > > It happen when switching from fra to qaa (both e-ac3) and > > > > > > > > > > also when switching > > > > > > > > > > from ac3 live channels (like Einfestival HD or ITV HD) to > > > > > > > > > > records having e-ac3 tracks. It is Ok when coming from a > > > > > > > > > > mpeg audio channel (SD broadcast) > > > > > > > > > > > > > > > > > > > > I don't know if it is a xine problem sending bad > > > > > > > > > > information to ffmpeg or a bug in ffmpeg ... changing > > > > > > > > > > audio track (with # key) do not crash mplayer when > > > > > > > > > > playing the TS file > > > > > > > > > > > > > > > > > > > > By the way, many thanks for your work ;o)) > > > > > > > > > > > > > > > > > > > > Best regards > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Le Wednesday 29 September 2010 02:07:11 Jose Alberto > > > > > > > > > > Reguero, vous avez > > > > > > > > > > > > > > > > > > > > écrit : > > > > > > > > > > > Here is a new version of the patch. Now it works with > > > > > > > > > > > the sample. There > > > > > > > > > > > > > > > > > > > > was > > > > > > > > > > > > > > > > > > > > > a bug in the last patch. > > > > > > > > > > > > > > > > > > > > > > Jose Alberto > > > > > > > > > > > > > > > > > > > > > > El Lunes 27 Septiembre 2010, dplu escribió: > > > > > > > > > > > > Thanks for the test, In fact I am not in covered area > > > > > > > > > > > > so I work with sample given by a colleague who live > > > > > > > > > > > > in good area on our forum > > > > > > > > > > > > > > > > > > > > > > > > The sample is very fresh and works perfectly with > > > > > > > > > > > > xineliboutput + vdr-sxfe with patch > > > > > > > > > > > > xineliboutputeac3_4.diff plus patch ff_audio_decoder > > > > > > > > > > > > to downmix 5.1 to 2.0 > > > > > > > > > > > > > > > > > > > > > > > > Maybe is there "something" in TS who is different > > > > > > > > > > > > from your country. It should be also interesting to > > > > > > > > > > > > have report from Italian users who experiment this > > > > > > > > > > > > audio encoding (not all are xbmc user I hope) > > > > > > > > > > > > > > > > > > > > > > > > Have a nice evening > > > > > > > > > > > > > > > > > > > > > > > > Best regards > > > > > > > > > > > > > > > > > > > > > > > > Le Monday 27 September 2010 22:42:06 Jose Alberto > > > > > > > > > > > > Reguero, vous avez > > > > > > > > > > > > > > > > > > > > écrit : > > > > > > > > > > > > > I try the sample and don't work. I look into it. > > > > > > > > > > > > > But you must try live tv or samples made with the > > > > > > > > > > > > > patches, to see if it work. I try here > > > > > > > > > > > > > > > > > > > > with > > > > > > > > > > > > > > > > > > > > > > > a channel whith eac3 with spectral extention and it > > > > > > > > > > > > > work well. > > > > > > > > > > > > > > > > > > > > > > > > > > Jose Alberto > > > > _______________________________________________ > > vdr mailing list > > vdr@linuxtv.org > > http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr > > _______________________________________________ > vdr mailing list > vdr@linuxtv.org > http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr diff -r 03d01d484189 src/demuxers/demux_ts.c --- a/src/demuxers/demux_ts.c Thu Sep 23 18:19:29 2010 +0100 +++ b/src/demuxers/demux_ts.c Sun Oct 03 23:47:39 2010 +0200 @@ -847,7 +847,6 @@ m->type = BUF_SPU_DVD + spu_id; return 1; } else if ((p[0] & 0xF0) == 0x80) { - m->content = p+4; m->size = packet_len - 4; m->type |= BUF_AUDIO_A52; @@ -969,13 +968,16 @@ m->buf->decoder_info[2] = SPU_DVD_SUBTYPE_PACKAGE; } else { - if (this->numPreview<5) - ++this->numPreview; - if ( this->numPreview==1 ) - m->buf->decoder_flags=BUF_FLAG_HEADER | BUF_FLAG_FRAME_END; - else if ( this->numPreview<5 ) - m->buf->decoder_flags=BUF_FLAG_PREVIEW; - else + if ( (m->buf->type & BUF_AUDIO_BASE) == BUF_AUDIO_BASE) { + if (this->numPreview<5) + ++this->numPreview; + if ( this->numPreview==1 ) + m->buf->decoder_flags=BUF_FLAG_HEADER | BUF_FLAG_FRAME_END; + else if ( this->numPreview<5 ) + m->buf->decoder_flags=BUF_FLAG_PREVIEW; + else + m->buf->decoder_flags |= BUF_FLAG_FRAME_END; + } else m->buf->decoder_flags |= BUF_FLAG_FRAME_END; } m->buf->pts = m->pts; @@ -1033,7 +1035,19 @@ m->buf->extra_info->input_time = (int)((int64_t)this->input->get_current_pos (this->input) * 1000 / (this->rate * 50)); - m->fifo->put(m->fifo, m->buf); + if (this->numPreview > 0) { + if ( (m->buf->type & BUF_AUDIO_BASE) == BUF_AUDIO_BASE) { + if (this->numPreview<5) + ++this->numPreview; + if ( this->numPreview==1 ) + m->buf->decoder_flags=BUF_FLAG_HEADER | BUF_FLAG_FRAME_END; + else if ( this->numPreview<5 ) + m->buf->decoder_flags=BUF_FLAG_PREVIEW; + } + m->fifo->put(m->fifo, m->buf); + } else { + m->buf->free_buffer(m->buf); + } m->buffered_bytes = 0; m->buf = m->fifo->buffer_pool_alloc(m->fifo);