Opened 11 years ago

Closed 11 years ago

#1914 closed defect (fixed)

libavcodec is unable to decode h264 created by "Unreal h264 encoder"

Reported by: Kozlov Sergey Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: h264
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
How to reproduce:
open file with Graph Studio Next
Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Attachments (1)

test 8.mp4 (2.2 MB ) - added by Carl Eugen Hoyos 11 years ago.

Change History (6)

by Carl Eugen Hoyos, 11 years ago

Attachment: test 8.mp4 added

comment:1 by Carl Eugen Hoyos, 11 years ago

Analyzed by developer: unset
Keywords: h264 added; libavcodec removed
Priority: importantnormal
Reproduced by developer: unset
Version: unspecifiedgit-master

Which software plays the file?
(Is this a 3d / mvc stream?)

comment:2 by Kozlov Sergey, 11 years ago

Graph Studio Plays The File.

I found it:
the error is in mp4muxer or in mp4demuxer (both from GDCL).

I will write them.
You may also take a look at this file.
But it is not encoder or decoder error.

mp4muxer does not give video stream to decoder.
There is offset overflow while reading chanks (negative offset in long variable).

This may be causer by writer (mp4muxer) (wrong data written to file) or by reader mp4demuxer (wrong data reading place).

comment:3 by Kozlov Sergey, 11 years ago

Hello.

I have figured out that in some cases mp4muxer and mp4demuxer work.

Now i suspect UXH264 video encoder and your avcodec.

mp4muxer works for direct stream copy and in case NV12 video format.
For NV12 video format coder, file can be displayer by "Super" player.

Also mp4demuxer works while playing file, created by "Super".

There left only video encoder UXH264 and your decoder.

video encoder is on major suspection.

The video encoder uses "libx264.a".
For this file i have got no source code.

Before conversion to h264 by "libx264.a"

function /* x264_encoder_encode:
 *      encode one picture */
int     x264_encoder_encode ( x264_t *, x264_nal_t **, int *, x264_picture_t *, x264_picture_t * );

declared in x364.h file) video has right YV12 format (i had checked).

I will try to check "libx264.a".

Also, could you explain, how to save picture (frame) coded by x264_encoder_encode, and how to view, if it has right?

Last edited 11 years ago by Carl Eugen Hoyos (previous) (diff)

in reply to:  2 comment:4 by Carl Eugen Hoyos, 11 years ago

Replying to Kozlov Sergey:

Graph Studio Plays The File.

Iiuc, Graph Studio does not contain a decoder, but uses a decoder installed on your system. Which decoder is installed?

comment:5 by Michael Niedermayer, 11 years ago

Reproduced by developer: set
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.