[FFmpeg-devel] Bugs with European H264 TV Channel Handling with FFMPEG

Steven Ellis mail_lists
Tue Feb 5 07:03:24 CET 2008


> Hi,
>
> I just received the e-mail below from Igor which followed an IRC chat
> with the FFMPEG developers. It seems that the FFMPEG developers would
> like a set of samples exhibiting problems with H264 decoding.
>
> I have uploaded 5 samples to the MPlayer mailing list which exhibit
> two distinct problems that I have found across European H264 satellite
> channels.
>
> The first affects multiple channels and bouqets and seems to be
> related to "Spatial Direct Mode", i.e. channels that previously
> reported "Spatial Direct Mode not implemented" with FFMPEG. That
> message has now gone in the latest SVN, but the problems still exist.
>
> The second is related to a set of channels in a Scanidanavian bouquet.
> There is artifacting on the picture during movement and panning.
> Reinhard Nissl reported on the VDR mailing list that this might be a
> problem relating to the handling of the progressive frame flag and the
> TVTIME deinterlacer in xine, but the problem is apparent in other
> interlacers (Bob, Linear Blend et al).

Thanks for the recent patches for H.264 and spatial direct interlaced
video. Playback is a lot better, but I still see a lot of strange
artifacts in my video files.

I've uploaded a sample file from the current NZ DTT test transmissions. It
is a 576i H.264 stream with LATM HE-AAC audio. I've uploaded this to the
directory /MPlayer/incoming/h264_spatial_direct_aac together with a
description file.

At the moment ffplay can't handle the LATM HE-AAC audio, but recent
patches to MPlayer mean I've been able to test the audio.

For the video playback aside from the obvious interlaced video artifacts,
I see a lot of strange blocky artifacts, with no errors being reported by
ffplay.


ffplay -stats ./h264_spatial_direct_aac.ts
FFplay version SVN-r11870, Copyright (c) 2003-2008 Fabrice Bellard, et al..
  configuration:
  libavutil version: 49.6.0
  libavcodec version: 51.50.0
  libavformat version: 52.7.0
  libavdevice version: 52.0.0
  built on Feb  5 2008 18:22:28, gcc: 4.1.2 20070626 (Red Hat 4.1.2-14)
[h264 @ 0x84cac50]non existing PPS referenced
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]non existing PPS referenced
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]non existing PPS referenced
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]non existing PPS referenced
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]non existing PPS referenced
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
[h264 @ 0x84cac50]B picture before any references, skipping
[h264 @ 0x84cac50]decode_slice_header error
[h264 @ 0x84cac50]no frame!
Input #0, mpegts, from './h264_spatial_direct_aac.ts':
  Duration: 00:00:20.0, start: 94305.519511, bitrate: 4082 kb/s
  Program 1200
  Program 1201
  Program 1202
    Stream #0.0[0xfc]: Video: h264, yuv420p, 720x576 [PAR 16:11 DAR
20:11], 25.00 tb(r)
    Stream #0.1[0x12e](eng): Audio: 0x0000, 44100 Hz, 4 channels, 94 kb/s
  Program 1203
  Program 1204
  Program 1208
[h264 @ 0x84cac50]warning: first frame is no keyframe
[h264 @ 0x84cac50]reference picture missing during reorder
[h264 @ 0x84cac50]reference picture missing during reorder
[h264 @ 0x84cac50]reference picture missing during reorder


Note that I have made the following modifications so that ffplay could
detect the AAC streams, even though it can't play them

Index: libavformat/mpegts.c
===================================================================
--- libavformat/mpegts.c        (revision 11870)
+++ libavformat/mpegts.c        (working copy)
@@ -586,6 +586,7 @@
         case STREAM_TYPE_VIDEO_H264:
         case STREAM_TYPE_VIDEO_VC1:
         case STREAM_TYPE_AUDIO_AAC:
+        case STREAM_TYPE_AUDIO_LATM:
         case STREAM_TYPE_AUDIO_AC3:
         case STREAM_TYPE_AUDIO_DTS:
         case STREAM_TYPE_SUBTITLE_DVB:
@@ -918,6 +919,10 @@
         codec_type = CODEC_TYPE_AUDIO;
         codec_id = CODEC_ID_AAC;
         break;
+    case STREAM_TYPE_AUDIO_LATM:
+        codec_type = CODEC_TYPE_AUDIO;
+        codec_id = CODEC_ID_AAC;
+        break;
     case STREAM_TYPE_AUDIO_AC3:
         codec_type = CODEC_TYPE_AUDIO;
         codec_id = CODEC_ID_AC3;
Index: libavformat/mpegts.h
===================================================================
--- libavformat/mpegts.h        (revision 11870)
+++ libavformat/mpegts.h        (working copy)
@@ -50,6 +50,7 @@
 #define STREAM_TYPE_PRIVATE_DATA    0x06
 #define STREAM_TYPE_AUDIO_AAC       0x0f
 #define STREAM_TYPE_VIDEO_MPEG4     0x10
+#define STREAM_TYPE_AUDIO_LATM      0x11
 #define STREAM_TYPE_VIDEO_H264      0x1b
 #define STREAM_TYPE_VIDEO_VC1       0xea


Steve







More information about the ffmpeg-devel mailing list