Hi, Petri Helin wrote: >>> I am now also able to record h.264 encoded programs, just like mpeg2 >>> encoded, and as a result xxx.vdr files are created. But still, i cannot >>> replay them either. >> >> Stock xine-lib-1.1.7 or higher can play those files. You may also want >> to use vdr-xine-0.7.11 with a patched xine-lib-1.1.8 or stock xine-lib-1.2. > > Yes, I have now tried with the current xine-lib (1.1-branch) from > mercury and I can actually play the 001.vdr file. Nice! Yesterday I just > hastily tested with mplayer. Sure, it's odd that mplayer cannot play such 001.vdr files at the moment. I already had a look into mplayer's source and discovered why mplayer chose the wrong codec, but I'm still waiting for someone else to fix this issue. Digging around in the hardly known code of FFmpeg and now also mplayer plus creating patches eats a lot of time. >> NOTE: be aware that FFmpeg doesn't support interlaced streams properly >> at the moment. It typically crashes after a few frames. In my >> xine-lib.patch for xine-lib-1.1.8 I've therefore disabled decoding of >> interlaced frames (more or less properly). > > Xine does not crash, but the playback is really slow and there are > "ghost effects" in the picture. Xine puts out this kind of messages all > the time: > > [h264 @ 0xb61168f4]concealing 6960 DC, 6960 AC, 6960 MV errors > video_out: throwing away image with pts 455968 because it's too old > (diff : 574). > video_out: throwing away image with pts 448768 because it's too old > (diff : 7774). > video_out: throwing away image with pts 452368 because it's too old > (diff : 4174). > ffmpeg_video_dec: error decompressing frame > ffmpeg_video_dec: error decompressing frame I get similar messages here. Try to play the stream in slow motion and they should go away. > I have an Intel Core 2 Duo E6300 (1,83GHz) which might not be enough. Do > you have the xine-lib.patch for disabling interlaced frames available > for download somewhere? The attached patch is also part of the larger xine-lib.patch included in vdr-xine-0.7.11.tgz. Bye. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:rnissl@xxxxxx
diff -r 0f20b6e8ac9d src/libffmpeg/libavcodec/h264.c --- a/src/libffmpeg/libavcodec/h264.c Wed Aug 29 19:58:18 2007 +0200 +++ b/src/libffmpeg/libavcodec/h264.c Sat Sep 01 10:00:43 2007 +0200 @@ -4639,8 +4639,11 @@ static int decode_slice_header(H264Conte s->picture_structure= PICT_FRAME; }else{ if(get_bits1(&s->gb)) { //field_pic_flag - s->picture_structure= PICT_TOP_FIELD + get_bits1(&s->gb); //bottom_field_flag + //s->picture_structure= PICT_TOP_FIELD + get_bits1(&s->gb); //bottom_field_flag av_log(h->s.avctx, AV_LOG_ERROR, "PAFF interlacing is not implemented\n"); + s->avctx->release_buffer(s->avctx, (AVFrame*)s->current_picture_ptr); + s->current_picture_ptr = 0; + return -1; } else { s->picture_structure= PICT_FRAME; h->mb_aff_frame = h->sps.mb_aff; @@ -4696,8 +4699,12 @@ static int decode_slice_header(H264Conte if(h->slice_type == P_TYPE || h->slice_type == SP_TYPE || h->slice_type == B_TYPE){ if(h->slice_type == B_TYPE){ h->direct_spatial_mv_pred= get_bits1(&s->gb); - if(h->sps.mb_aff && h->direct_spatial_mv_pred) + if(h->sps.mb_aff && h->direct_spatial_mv_pred){ av_log(h->s.avctx, AV_LOG_ERROR, "MBAFF + spatial direct mode is not implemented\n"); + s->avctx->release_buffer(s->avctx, (AVFrame*)s->current_picture_ptr); + s->current_picture_ptr = 0; + return -1; + } } num_ref_idx_active_override_flag= get_bits1(&s->gb);
_______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr