Re: Issue 415542 in chromium: H264 Pipeline Error: Decode Error

2,271 views
Skip to first unread message

chro...@googlecode.com

unread,
Sep 19, 2014, 1:32:40 AM9/19/14
to chromi...@chromium.org
Updates:
Labels: Needs-Feedback M-37

Comment #1 on issue 415542 by rponn...@chromium.org: H264 Pipeline Error:
Decode Error
https://code.google.com/p/chromium/issues/detail?id=415542

Unable to repro this on windows7 using: 37.0.2062.120 (Official Build
281580) with below steps:

1. Downloaded video
https://dl.dropboxusercontent.com/u/6679751/fragment1.mp4
2. Opened NTP
3. Drag & dropped the video in empty space in NTP

Video is played till end. Please find the attached screenshot as reference.

Could you please re-check on clean profile and confirm this issue. If issue
is still repro, please provide more steps.



Attachments:
415542.mp4 1.1 MB

--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

chro...@googlecode.com

unread,
Sep 19, 2014, 3:51:24 AM9/19/14
to chromi...@chromium.org

Comment #2 on issue 415542 by Janus.z...@gmail.com: H264 Pipeline Error:
Decode Error
https://code.google.com/p/chromium/issues/detail?id=415542

It appears to be a hardware acceleration related issue: Disabling hardware
acceleration is required in order to reproduce this.


Confirmed using:
Google Chrome 36.0.1985.143 (Officiële build 287914) m
Besturingssysteem Windows
Blink 537.36 (@179211)
JavaScript V8 3.26.31.15
Flash 14.0.0.177
User-agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/36.0.1985.143 Safari/537.36

and:
Google Chrome 37.0.2062.120 (Officiële build 281580) m
Besturingssysteem Windows
Blink 537.36 (@181352)
JavaScript V8 3.27.34.17
Flash 15.0.0.152
User-agent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/37.0.2062.120 Safari/537.36


Disabling hardware acceleration is not always required, when the renderer
picks CPU, it breaks.

chro...@googlecode.com

unread,
Sep 23, 2014, 2:41:08 AM9/23/14
to chromi...@chromium.org
Updates:
Status: Untriaged
Cc: rt...@chromium.org
Labels: -Needs-Feedback -M-37 M-39

Comment #3 on issue 415542 by hmupp...@chromium.org: H264 Pipeline Error:
Decode Error
https://code.google.com/p/chromium/issues/detail?id=415542

Able to reproduce the issue with chrome 37.0.2062.120 stable and
39.0.2166.2 canary on Win7 desktop.

Issue exists since M26. Not a regression.
rtoy@, would you mind take a look at this issue.

chro...@googlecode.com

unread,
Sep 23, 2014, 12:50:34 PM9/23/14
to chromi...@chromium.org
Updates:
Cc: dalecur...@chromium.org

Comment #4 on issue 415542 by rt...@chromium.org: H264 Pipeline Error:
Decode Error
https://code.google.com/p/chromium/issues/detail?id=415542

Dale, could you take a look?

chro...@googlecode.com

unread,
Sep 23, 2014, 4:41:14 PM9/23/14
to chromi...@chromium.org

Comment #5 on issue 415542 by dalecur...@chromium.org: H264 Pipeline Error:
Decode Error
https://code.google.com/p/chromium/issues/detail?id=415542

Fails due to error during video decode:

[6:22:0923/132033:ERROR:ffmpeg_video_decoder.cc(282)] Error decoding video:
timestamp: 80000 duration: 80000 size: 29585 side_data_size: 0 encrypted: 0
discard_padding (ms): (0, 0)

We could ignore it and be okay, but we have a policy decision not to allow
video with "errors." That said, it looks like playback requires
CODEC_FLAG2_CHUNKS which means "Input bitstream might be truncated at a
packet boundaries instead of only at frame boundaries."

We don't want to enable this for all H264 because it theoretically slows
down decoding since FFmpeg can't use frame level threading when its set.
Probably the GPU video decoder can properly handle these type of packets.

I'll take a quick look to see if there's any flags on the format context we
can check before hand which would allow us to speculatively enable this for
content which needs it.

chro...@googlecode.com

unread,
Sep 24, 2014, 2:46:57 PM9/24/14
to chromi...@chromium.org

Comment #7 on issue 415542 by dalecur...@chromium.org: H264 Pipeline Error:
Decode Error
https://code.google.com/p/chromium/issues/detail?id=415542

I spent some time looking for any hints and couldn't find anything.
AVFormatContext doesn't provide any hints that the content might be chunked
in this way. Digging through the h264 code it doesn't even know until it
finds it doesn't have the data it needs and by that point its too late to
disable.

The error returned is AVERROR_INVALIDDATA which is too generic to ignore
safely. We could make this some other type of error that we could
differentiate and (after investigation) safely ignore. It requires some
discussion with upstream FFmpeg though as I have no idea if ignoring this
is always safe.

I'll email ffmpeg-devel@ and see what they say about this.

chro...@googlecode.com

unread,
Sep 24, 2014, 5:29:55 PM9/24/14
to chromi...@chromium.org
Updates:
Cc: -dalecur...@chromium.org sche...@chromium.org
Labels: -Cr-Internals-Media Cr-Internals-Media-FFmpeg

Comment #8 on issue 415542 by dalecur...@chromium.org: H264 Pipeline Error:
Decode Error
https://code.google.com/p/chromium/issues/detail?id=415542

https://ffmpeg.org/pipermail/ffmpeg-devel/2014-September/163400.html

Doesn't look like we can ignore this safely in all cases. I suppose instead
of bailing out on the first error we could have a rolling error tolerance
which resets based on successfully decoded frames. Such a system would
allow through content with a few errors but fail content with multiple
successive errors. WDYT scherkus?

chro...@googlecode.com

unread,
Oct 3, 2014, 9:32:43 AM10/3/14
to chromi...@chromium.org

Comment #11 on issue 415542 by maarten....@opentelly.com: H264 Pipeline
The MP4 file has been obtained from a stream encoded with the following
(VLC) settings:

"vlc.exe -I dummy --no-crashdump --mms-caching
0 "http://192.168.91.205/web/stream.m3u?ref=1:0:1:2173:2:13E:EEEE0000:0:0:0:&name=TV&device=etc"
vlc://quit --sout-avcodec-strict=-2 --sout-transcode-deinterlace
--sout=#transcode{width=720,height=576,fps=12.5,vcodec=h264,vb=380,venc=x264{aud,profile=baseline,level=3.1,keyint=30,ref=1},acodec=mp4a,ab=48,channels=1,samplerate=44100}:std{access=livehttp{seglen=10,delsegs=true,numsegs=20,index=C:\HLS\tmp.m3u8,index-url=tv2000-########.ts},mux=ts{use-key-frames},dst=C:\HLS\tv-########.ts}"

I hope that answers your question?
Reply all
Reply to author
Forward
0 new messages