[vdr] CoreAVC + xineliboutput there is an howto?

2008-01-28 Thread ThE-GuRuZ
Hi all man, there is a lot of time that i’m trying to make work correctly
dvb-s2 but I’ve not understand how to make work coreavc, there is any
sep-by-step or similar howto or wiki???

 

Bye and tnx a lot for your biggest work ;-)

 

  _  

La mia Cartella di Posta in Arrivo è protetta con SPAMfighter
197 messaggi contenenti spam sono stati bloccati con successo.
Scarica gratuitamente SPAMfighter  ! 

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] CoreAVC + xineliboutput

2008-01-20 Thread Per Mellander

Igor skrev:


@Per
can you write more detail HOWTO (my English is not so good, sorry)



I have started with a CVS xine-lib. Then applied the vdr-xine patch.

Download and apply the xine.patch from 
http://code.google.com/p/coreavc-for-linux/


There are also some patches here to fix some problems with xine-lib:
http://dvbn.happysat.org/viewtopic.php?p=243997

Walery's patch to demux_mpeg_pes.c is attached. Apply that to.

Per

--- demux_mpeg_pes.c.org2008-01-19 22:09:58.0 +0100
+++ demux_mpeg_pes.c2008-01-19 22:10:02.0 +0100
@@ -1092,6 +1092,7 @@ static int32_t parse_private_stream_1(de
 return this->packet_len + result;
 }
 
+int sent_header = 0; 
 static int32_t parse_video_stream(demux_mpeg_pes_t *this, uint8_t *p, 
buf_element_t *buf) {
   int32_t result;
   uint32_t todo_length=0;
@@ -1136,6 +1137,7 @@ static int32_t parse_video_stream(demux_
  an AUD has been found at the beginning of the payload.
*/
   if (this->mpeg12_h264_detected < 2) {
+sent_header = 0; /* Added by Mel */
 uint8_t *pp = p + 2, *pp_limit = p + payload_size - 1;
 while (0 < pp && pp < pp_limit) {
   if (pp[0] == 0x01 && pp[-1] == 0x00 && pp[-2] == 0x00) {
@@ -1156,9 +1158,44 @@ static int32_t parse_video_stream(demux_
   pp++;
   pp = memchr(pp, 0x01, pp_limit - pp);
 }
+usleep(100); 
 lprintf("%s%c\n", (this->mpeg12_h264_detected & 1) ? "H.264" : "MPEG1/2", 
(this->mpeg12_h264_detected & 2) ? '!' : '?');
+
+
+
+  if (this->mpeg12_h264_detected == 3){
+if (sent_header == 0) {
+  printf("INIT H264\n");
+  xine_bmiheader bih;
+  buf_element_t *buf = this->video_fifo->buffer_pool_alloc 
(this->video_fifo);
+  buf->decoder_flags = BUF_FLAG_STDHEADER;
+
+  memset(&bih, 0x00, sizeof(bih));
+  bih.biWidth = 1920;
+  bih.biHeight = 1080;
+  bih.biPlanes = 1;
+  bih.biBitCount = 24;
+  bih.biCompression = 0x34363248; //31435641; //AVC1
+  bih.biSizeImage = 0;
+  bih.biXPelsPerMeter=1;
+  bih.biYPelsPerMeter=1;
+  bih.biClrUsed=0;
+  bih.biClrImportant=0;
+  bih.biSize = sizeof(bih);
+  buf->content = malloc(sizeof(bih));
+  memcpy(buf->content, &bih, sizeof(bih));
+  //memcpy(buf->content, &bih, sizeof(bih));
+  buf->size = sizeof(bih);
+  buf->type = BUF_VIDEO_H264;
+  buf->decoder_flags |= BUF_FLAG_FRAME_END;
+  this->video_fifo->put (this->video_fifo, buf);
+  sent_header = 1;
+  buf = NULL;
+}
   }
+}
 
+
   /* when an H.264 AUD is seen, we first need to tell the decoder that the
  previous frame was complete.
*/
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] CoreAVC + xineliboutput

2008-01-20 Thread Igor
> > I'm having the same problem. I've put the .ax file in /usr/lib/win32,
> > registed the key in ~/.mplayer/registry32 and then done: -
> 
> You don't have to register.

yes, for xine no need any coreavc-registration.

> I patched xine-lib with coreavc for Linux xine.patch @
> http://coreavc-for-linux.googlecode.com/svn/trunk/xine/xine.patch

no any rejects ? with which xine-lib version did you work ?

> Then you have to add additional code to demux_mpeg_pes.c ( see attached 
> patch )

did you install the additional patches from hXXp://dvbn.happysat.org ?

> You have to delete xineplug_decode_ff.so and xineplug_decode_qt.so in 
> /usr/local/lib/xine/plugins/1.1.9/

yes, may be the option --disable-ffmpeg during xine-lib compilaton will help, 
too

> I tried xineliboutput first but that give me black screen with epg + 
> sound. 

for xineliboutput you have to try the patch from 
http://allrussian.info/thread.php?postid=1226448#post1226448
(very many thanks to Walery)

>>With vdr-xine-0.8.1.tgz it all seems to work :)

fine !!! and what about your impressions ?

> Many thanks to Igor who has been a great help!

ah, not to me ! To Walery from our forum - he helped to me and to you yesterday 
evening.

@ALL
can somebody to make cumulative coreavc-patch for xine and xineliboutput with 
"xine.patch + patches from dvbn.happysat + patches" from allrussian ?

@Per
can you write more detail HOWTO (my English is not so good, sorry)

Igor




___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] CoreAVC + xineliboutput

2008-01-19 Thread Per Mellander

Morfsta skrev:

I'm having the same problem. I've put the .ax file in /usr/lib/win32,
registed the key in ~/.mplayer/registry32 and then done: -


You don't have to register.

I patched xine-lib with coreavc for Linux xine.patch @
http://coreavc-for-linux.googlecode.com/svn/trunk/xine/xine.patch

Then you have to add additional code to demux_mpeg_pes.c ( see attached 
patch )


You have to delete xineplug_decode_ff.so and xineplug_decode_qt.so in 
/usr/local/lib/xine/plugins/1.1.9/


I tried xineliboutput first but that give me black screen with epg + 
sound. With vdr-xine-0.8.1.tgz it all seems to work :)


[EMAIL PROTECTED] plugins]# lsof | grep Core
xine   4548  root  mem   REG8,2  1031168141 
/usr/lib/win32/CoreAVCDecoder.ax


Many thanks to Igor who has been a great help!


--- demux_mpeg_pes.c.org2008-01-19 22:09:58.0 +0100
+++ demux_mpeg_pes.c2008-01-19 22:10:02.0 +0100
@@ -1092,6 +1092,7 @@ static int32_t parse_private_stream_1(de
 return this->packet_len + result;
 }
 
+int sent_header = 0; /* Added by Mel */
 static int32_t parse_video_stream(demux_mpeg_pes_t *this, uint8_t *p, 
buf_element_t *buf) {
   int32_t result;
   uint32_t todo_length=0;
@@ -1136,6 +1137,7 @@ static int32_t parse_video_stream(demux_
  an AUD has been found at the beginning of the payload.
*/
   if (this->mpeg12_h264_detected < 2) {
+sent_header = 0; /* Added by Mel */
 uint8_t *pp = p + 2, *pp_limit = p + payload_size - 1;
 while (0 < pp && pp < pp_limit) {
   if (pp[0] == 0x01 && pp[-1] == 0x00 && pp[-2] == 0x00) {
@@ -1156,9 +1158,44 @@ static int32_t parse_video_stream(demux_
   pp++;
   pp = memchr(pp, 0x01, pp_limit - pp);
 }
+usleep(100); /* Added by Mel */
 lprintf("%s%c\n", (this->mpeg12_h264_detected & 1) ? "H.264" : "MPEG1/2", 
(this->mpeg12_h264_detected & 2) ? '!' : '?');
+
+// Mel START
+
+  if (this->mpeg12_h264_detected == 3){
+if (sent_header == 0) {
+  printf("INIT H264\n");
+  xine_bmiheader bih;
+  buf_element_t *buf = this->video_fifo->buffer_pool_alloc 
(this->video_fifo);
+  buf->decoder_flags = BUF_FLAG_STDHEADER;
+
+  memset(&bih, 0x00, sizeof(bih));
+  bih.biWidth = 1920;
+  bih.biHeight = 1080;
+  bih.biPlanes = 1;
+  bih.biBitCount = 24;
+  bih.biCompression = 0x34363248; //31435641; //AVC1
+  bih.biSizeImage = 0;
+  bih.biXPelsPerMeter=1;
+  bih.biYPelsPerMeter=1;
+  bih.biClrUsed=0;
+  bih.biClrImportant=0;
+  bih.biSize = sizeof(bih);
+  buf->content = malloc(sizeof(bih));
+  memcpy(buf->content, &bih, sizeof(bih));
+  //memcpy(buf->content, &bih, sizeof(bih));
+  buf->size = sizeof(bih);
+  buf->type = BUF_VIDEO_H264;
+  buf->decoder_flags |= BUF_FLAG_FRAME_END;
+  this->video_fifo->put (this->video_fifo, buf);
+  sent_header = 1;
+  buf = NULL;
+}
   }
+}
 
+// Mel END
   /* when an H.264 AUD is seen, we first need to tell the decoder that the
  previous frame was complete.
*/
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] CoreAVC + xineliboutput

2008-01-19 Thread Morfsta
I'm having the same problem. I've put the .ax file in /usr/lib/win32,
registed the key in ~/.mplayer/registry32 and then done: -
# dshowserver -c CoreAVCDecoder.ax -s 1280x720 -g
09571a4b-f1fe-4c60-9760de6d310c7c31 -b 12 -f 0x34363248 -o 0x30323449
shm:/dshow_shm.(null)
sem1:/dshow_sem1.(null)
sem2:/dshow_sem2.(null)
Opening device
Called unk_IsDebuggerPresent
len: 948
ProductVersion: 1.3.0.0
Decoder supports the following YUV formats: YUY2 IYUV YV12 I420
Decoder is capable of YUV output (flags 0x27)
Setting fmt
Starting
Initialization is complete
shm_open failed: No such file or directory

Is dshowserver supposed to run in the background - using strace it
says it's detached but I can't see it?

I looked through the diff and can't find any options to enable CoreAVC
in xine-lib... Must be missing something?

Igor, can you point us to or translate a HOWTO?

Thanks


On Jan 19, 2008 4:38 PM, Per Mellander <[EMAIL PROTECTED]> wrote:
> I have done all the patching to xine-lib, ( patch from
> coreavc-for-linux-read-only + additional from happysat ). Then I've put
> CoreAVCDecoder.ax in /usr/lib/win32.
>
> I'm running VDR with xineliboutput.
>
> -P "xineliboutput --fullscreen --local=sxfe --audio=alsa --remote=none"
>
> What more do I have to do, ( extra arguments etc. ) to use CoreAVC? When
> I start VDR now I can't see any difference from using ffmpeg.
>
> 
> load_plugins: plugin
> /usr/local/lib/xine/plugins/1.1.9/xineplug_dmx_nsv.so found
> load_plugins: plugin
> /usr/local/lib/xine/plugins/1.1.9/xineplug_decode_a52.so found
> video_out_xv: using Xv port 275 from adaptor NV17 Video Texture for
> hardware colour space conversion and scaling.
> video_out_xv: this adaptor supports the yuy2 format.
> video_out_xv: this adaptor supports the yv12 format.
> audio_alsa_out : supported modes are 8bit 16bit 24bit 32bit mono stereo
> (4-channel not enabled in xine config) (4.1-channel
>  not enabled in xine config) (5-channel not enabled in xine config)
> (5.1-channel not enabled in xine config) (a/52 and DTS pass-through not
> enabled in xine config)
> xine: found input plugin  : VDR (Video Disk Recorder) input plugin
> input cache plugin disabled
> xine: found demuxer plugin: DVD/VOB demux plugin
> video_out_xv: VO_PROP_INTERLACED(1)
> av_offset=0 pts
> video_out_xv: VO_PROP_ZOOM_X = 100
> prebuffer=14400 pts
> prebuffer=14400 pts
> prebuffer=14400 pts
> prebuffer=14400 pts
> prebuffer=14400 pts
> video: synced early
> prebuffer=14400 pts
> prebuffer=14400 pts
> video: synced early
> prebuffer=14400 pts
> prebuffer=14400 pts
> video: synced early
> [h264 @ 0x11c43f0]non existing PPS referenced
> [h264 @ 0x11c43f0]decode_slice_header error
> [h264 @ 0x11c43f0]non existing PPS referenced
> [h264 @ 0x11c43f0]decode_slice_header error
> 
>
> ___
> 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


[vdr] CoreAVC + xineliboutput

2008-01-19 Thread Per Mellander
I have done all the patching to xine-lib, ( patch from 
coreavc-for-linux-read-only + additional from happysat ). Then I've put 
CoreAVCDecoder.ax in /usr/lib/win32.

I'm running VDR with xineliboutput.

-P "xineliboutput --fullscreen --local=sxfe --audio=alsa --remote=none"

What more do I have to do, ( extra arguments etc. ) to use CoreAVC? When 
I start VDR now I can't see any difference from using ffmpeg.


load_plugins: plugin 
/usr/local/lib/xine/plugins/1.1.9/xineplug_dmx_nsv.so found
load_plugins: plugin 
/usr/local/lib/xine/plugins/1.1.9/xineplug_decode_a52.so found
video_out_xv: using Xv port 275 from adaptor NV17 Video Texture for 
hardware colour space conversion and scaling.
video_out_xv: this adaptor supports the yuy2 format.
video_out_xv: this adaptor supports the yv12 format.
audio_alsa_out : supported modes are 8bit 16bit 24bit 32bit mono stereo 
(4-channel not enabled in xine config) (4.1-channel
  not enabled in xine config) (5-channel not enabled in xine config) 
(5.1-channel not enabled in xine config) (a/52 and DTS pass-through not 
enabled in xine config)
xine: found input plugin  : VDR (Video Disk Recorder) input plugin
input cache plugin disabled
xine: found demuxer plugin: DVD/VOB demux plugin
video_out_xv: VO_PROP_INTERLACED(1)
av_offset=0 pts
video_out_xv: VO_PROP_ZOOM_X = 100
prebuffer=14400 pts
prebuffer=14400 pts
prebuffer=14400 pts
prebuffer=14400 pts
prebuffer=14400 pts
video: synced early
prebuffer=14400 pts
prebuffer=14400 pts
video: synced early
prebuffer=14400 pts
prebuffer=14400 pts
video: synced early
[h264 @ 0x11c43f0]non existing PPS referenced
[h264 @ 0x11c43f0]decode_slice_header error
[h264 @ 0x11c43f0]non existing PPS referenced
[h264 @ 0x11c43f0]decode_slice_header error


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr