Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
gst-plugins-bad
gst-plugins-bad
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 994
    • Issues 994
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 192
    • Merge Requests 192
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GStreamer
  • gst-plugins-badgst-plugins-bad
  • Issues
  • #1356

Closed
Open
Opened Jul 08, 2020 by Flavio Correia@facorreia2

h264parse: not correctly converting avc (alignment=au) to byte-stream (alignment=nal)

I am using Gstreamer 1.14.5 to read a MPEG DASH stream (H.264 stored in AVC format using AU alignment) and convert it to elementary stream (H.264 stored in byte-stream format using NAL alignment). However, the output is corrupted and the content can not be decoded correctly.

The follow errors are printed when we try to use mplayer to reproduce the output content:

[h264 @ 0x7fc7012eb920]concealing 288 DC, 288 AC, 288 MV errors in P frame
[h264 @ 0x7fc7012eb920]illegal short term buffer state detected

This pipeline using a open MPEG DASH TEST MEDIA url can be used to reproduce the issue. (the url is from BBC )
gst-launch-1.0 -v souphttpsrc location=http://rdmedia.bbc.co.uk/dash/ondemand/bbb/2/client_manifest-common_init.mpd ! dashdemux name=demux multiqueue name=mq demux.video_00 ! mq.sink_1 mq.src_1 ! qtdemux ! h264parse ! video/x-h264,stream-format=byte-stream,alignment=nal ! filesink location=/tmp/video.h264

I am using the MPlayer 1.3.0 to validate the video.h264 output but the gstreamer can be used too with the follow command: gst-launch-1.0 playbin uri=file:///tmp/video.h264

I tested using Gstreamer 1.16 and it has the same issue

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: gstreamer/gst-plugins-bad#1356