Commit Graph

44 Commits

Author SHA1 Message Date
Reinhard Tartler 790a367d9e Fix parser not to clobber has_b_frames when extradata is set.
Because in contrast to the decoder, the parser does not setup low_delay.
The code in parse_nal_units would always end up setting has_b_frames
to "1", except when stream is explicitly marked as low delay.
Since the parser itself would create 'extradata', simply reopening
the parser would cause this.

This happens for instance in estimate_timings_from_pts(), which causes the
parser to be reopened on the same stream.

This fixes Libav #22 and FFmpeg (trac) #360

CC: libav-stable@libav.org

Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(commit 31ac0ac29b)

Comments and description adapted by Reinhard Tartler.

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2012-02-26 15:50:59 +01:00
Janne Grunau f907615f08 parsers: initialize MpegEncContext.slice_context_count to 1
The mpeg4 video, H264 and VC-1 parser hold (directly or indirectly)
a MpegEncContext in their private context. Since they do not call the
common mpegvideo init function slice_context_count has explicitly set
to 1.
Prevents a null pointer dereference in the h264 parser and fixes
bug 193.
2012-01-06 01:47:45 +01:00
Janne Grunau 358ea75e9e Revert "h264: skip start code search if the size of the nal unit is known"
This reverts commit 87eebb3454.
2011-12-19 03:24:32 +01:00
Janne Grunau 87eebb3454 h264: skip start code search if the size of the nal unit is known
Start code emulation prevention is only required in Annex B bytestream
packed NAL units. For other coding formats the size is already known.
Looking for a start code prefix can result in false positives like in
http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4
which has a false positive in the SPS.
2011-12-18 23:52:53 +01:00
Anton Khirnov 5511ad14fe lavc: use designated initialisers for parsers. 2011-11-02 10:03:43 +01:00
Anton Khirnov 773375c3d0 lavc: rename ff_find_start_code to avpriv_mpv_find_start_code
It's used in lavf.
2011-10-20 21:06:58 +02:00
Diego Biurrun adbfc605f6 doxygen: Consistently use '@' instead of '\' for Doxygen markup.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-06-24 00:37:49 +02:00
Philip Langdale 25f05ddb1a h264_parser: Fix whitespace after previous change.
Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-13 20:51:58 +02:00
Philip Langdale a26ce1e2df h264_parser: Fix behaviour when PARSER_FLAG_COMPLETE_FRAMES is set.
Currently, the parser is buggy and only processes the stream extradata
when the flag is set. This fixes it to actually inspect the frames.

Whitespce will be fixed in a separate change.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-06-13 20:51:42 +02:00
Stefano Sabatini 975a1447f7 Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-05-02 12:18:44 +02:00
Mans Rullgard 2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Janne Grunau fe9a3fbe42 h264: Add Intra and Constrained Baseline profiles to avctx.profile 2011-02-01 20:37:02 +01:00
Diego Elio Pettenò d36beb3f69 Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.
None of these symbols should be accessed directly, so declare them as
hidden.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-01-26 16:08:45 +00:00
Diego Elio Pettenò 13eb6b9097 Make ff_h264_find_frame_end static to h264.c; delete h264_parser.h
The header is empty after making the function static, so delete it and
drop its usage.

Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
2011-01-25 22:07:29 +01:00
Baptiste Coudurier 9479415e4e In h264 parser, return immediately if buf_size is 0, avoid printing
erroneous message for last frame.

Originally committed as revision 24450 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-23 00:34:09 +00:00
Howard Chu 82f1ffc7ba Cleanup prev commit, flag variable should start with 0
Originally committed as revision 23364 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-28 20:14:14 +00:00
Howard Chu 23584bec87 Parse avctx->extradata if available.
Fixes many "non-existing PPS referenced" error messages

Originally committed as revision 23363 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-28 18:50:39 +00:00
Alex Converse 74a6df59e3 Add an AVSTREAM_PARSE_FULL_ONCE parsing mode to parse headers and combine packets once and only once.
Originally committed as revision 23332 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-26 04:20:32 +00:00
Diego Biurrun ba87f0801d Remove explicit filename from Doxygen @file commands.
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.

Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Rafaël Carré dd0cd3d273 Export H264 profile and level in AVCodecContext.
Patch by Rafaël Carré, rafael D carre A gmail

Originally committed as revision 21517 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-28 20:57:29 +00:00
Rafaël Carré e9ca315dd1 Initialize thread_context[0] with h264 parser context.
This allows freeing the parser memory in the thread_context freeing loop.

Patch by Rafaël Carré gmailify(rafael, carre)

Originally committed as revision 21508 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-28 13:04:25 +00:00
Baptiste Coudurier 8fa0ae060b Init state to -1 in h264 parser.
Fix:
==22063== Conditional jump or move depends on uninitialised value(s)
==22063==    at 0x811A4B7: ff_find_start_code (mpegvideo.c:99)
==22063==    by 0x82F5B74: parse_nal_units (h264_parser.c:132)
==22063==    by 0x82F5A68: h264_parse (h264_parser.c:261)
[...]
==22063==  Uninitialised value was created by a stack allocation
==22063==    at 0x82F5AF5: parse_nal_units (h264_parser.c:112)

Originally committed as revision 18479 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-13 03:29:19 +00:00
Reimar Döffinger 15861962a7 Add a ff_h264_free_context function and call it from the H.264 parser.
This ensures that the parser will no longer leak memory for all SPS/PPS it encounters.

Originally committed as revision 18406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 07:01:55 +00:00
John Cox 9e85f9c526 Fix SEIs when splitting H264 input.
Patch by John Cox, jc A kynesim D co D uk

Originally committed as revision 18020 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-16 22:38:27 +00:00
Carl Eugen Hoyos 26aedb4ab3 Cosmetics: Fix indentation after last commit.
Originally committed as revision 17621 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 20:36:47 +00:00
Ivan Schreter 2c0c5e1249 Initialize H264 parser context correctly if the optional SEI messages
are not present.

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17620 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-26 20:36:02 +00:00
Ivan Schreter c733922eec Export timestamp parameter from H.264.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17575 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-24 22:24:34 +00:00
Ivan Schreter fc9fe42833 Correct time_base of H.264 and repeat_pict.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17571 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-24 20:19:59 +00:00
Ivan Schreter 346db3ef7f Use context variable repeat_pict for frame duration computation and
document this new use.

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17492 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 20:11:47 +00:00
Ivan Schreter 96c3da93e6 Set context variable picture_structure in H264 parser.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17490 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 20:03:05 +00:00
Ivan Schreter 0ed260c7a3 Set context variable key_frame in H264 parser.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17489 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 19:59:25 +00:00
Ivan Schreter ff6474dd15 Parse NAL units in H264 parser.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17488 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 19:56:50 +00:00
Ivan Schreter 4d8eb2e899 Fix a const related warning
Patch by Ivan Schreter ( schreter gmx net )

Originally committed as revision 17073 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-08 21:22:18 +00:00
Diego Biurrun bad5537e2c Use full internal pathname in doxygen @file directives.
Otherwise doxygen complains about ambiguous filenames when files exist
under the same name in different subdirectories.

Originally committed as revision 16912 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-01 02:00:19 +00:00
Carl Eugen Hoyos 0d3d172f32 Remove CODEC_ID_H264_VDPAU.
Originally committed as revision 16649 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-17 01:17:04 +00:00
Aurelien Jacobs b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
NVIDIA Corporation 369122dd77 Add VDPAU hardware accelerated decoding for H264 which can be used by
video players.

Original patch by NVIDIA corporation.

Originally committed as revision 16431 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-04 23:55:27 +00:00
Michael Niedermayer e4f1ec3a4c Explain the lack of +3/7
Originally committed as revision 16380 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-28 23:26:12 +00:00
Michael Niedermayer 5cb5023c78 Make h264 parser 50% faster.
Originally committed as revision 16286 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-12-23 02:34:58 +00:00
Michael Niedermayer dd990075d6 100l forgot return type.
Originally committed as revision 15539 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-04 01:11:04 +00:00
Michael Niedermayer 3ee4f5e4fa ff_parse_close() is not the correct function for H264Context.
Originally committed as revision 15537 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-03 23:08:52 +00:00
Diego Pettenò 9aa1cfec1a fix warning reported by Intel C compiler:
libavcodec/h264_parser.c(77): warning #589: transfer of control
bypasses initialization of:
           variable "v" (declared at line 58)
                 goto found;
This new form also improves readability.

Patch by Diego 'Flameeyes' Pettenò %flameeyes A gmail P com%

Originally committed as revision 15526 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-02 19:24:26 +00:00
Diego Biurrun e5a389a1b7 license header consistency cosmetics
Originally committed as revision 9484 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-07-05 10:40:25 +00:00
Aurelien Jacobs 26b4fe821c split h264.c to move parser in its own file
Originally committed as revision 8985 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-10 22:26:44 +00:00