Tomas Härdin
c65642d351
mxfdec: Handle small EditUnitByteCount
...
These are common with audio atoms. Without this the demuxer would read two
bytes at a time for a mono 16-bit file.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:59:41 +01:00
Tomas Härdin
240ddbce56
mxfdec: Consider OPAtom files that do not have exactly one EC to be OP1a
...
This fixes demuxing of 2011_DCPTEST_24FPS.V.mxf.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:55:44 +01:00
Tomas Härdin
9123950be0
mxfdec: Don't crash in mxf_packet_timestamps() if current_edit_unit overflows
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:54:14 +01:00
Tomas Härdin
d00257e96a
mxfdec: Zero nb_ptses in mxf_compute_ptses_fake_index()
...
This fixes SIGSEGV on files with both CBR and VBR index segments (zzuf6.mxf).
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:54:13 +01:00
Tomas Härdin
df2a85085e
mxfdec: Sanity check PreviousPartition
...
Without this certain files could get the demuxer stuck in a loop.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:54:05 +01:00
Tomas Härdin
11800c8c89
mxfdec: Never seek back in local sets and KLVs
...
Specially crafted files can lead the parsing code to take too long.
We fix a lot of these problems by not allowing local tags to extend
past the end of the set and not allowing other KLVs to be read past
the end of themselves.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:46:12 +01:00
Tomas Härdin
687e2fdebd
mxfdec: Move the current_partition check inside mxf_read_header()
...
This fixes SIGSEGV on files where this is the case, such as zzuf4.mxf.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:43:47 +01:00
Tomas Härdin
e352c96c17
mxfdec: Fix infinite loop in mxf_packet_timestamps()
...
This can happen if an index table segment has a very large IndexStartPosition.
zzuf3.mxf is an example of such a file.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:42:59 +01:00
Tomas Härdin
0373ec635d
mxfdec: Check eof_reached in mxf_read_local_tags()
...
This fixes an infinite loop with zzuf2.mxf.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:41:50 +01:00
Tomas Härdin
effe3b9575
mxfdec: Check for NULL component
...
This fixes a SIGSEGV with zzuf1.mxf.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:41:50 +01:00
Tomas Härdin
29fc8f50cd
mxfdec: Make sure mxf->nb_index_tables > 0 in mxf_packet_timestamps()
...
Only the OPAtom demuxing logic is guaranteed to have index tables,
meaning OP1a files that lack an index would cause SIGSEGV.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:41:42 +01:00
Tomas Härdin
a3923482f2
mxfdec: Make sure x < index_table->nb_ptses
...
Avoids a SIGSEGV on files with IndexEntryCount < IndexDuration.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-02-09 12:40:34 +01:00
Anton Khirnov
6e9651d106
lavf: remove AVFormatParameters from AVFormatContext.read_header signature
2012-01-27 10:51:57 +01:00
Tomas Härdin
62271c4c9a
mxfdec: Fix files with essence containers larger than 2 GiB.
...
For such files, accumulating into an int would cause an overflow.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-26 15:47:50 +01:00
Jean First
4fbd3e89e7
mxfdec: Employ correct printf conversion specifiers for POSIX int types.
...
Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-26 15:31:55 +01:00
Janne Grunau
50a3f9a4bd
mxfdec: fix memleak on mxf_read_close()
2012-01-23 17:29:58 +01:00
Janne Grunau
20ea14d0f8
mxfdec: fix memleak on av_realloc failures
2012-01-22 14:47:11 +01:00
Tomas Härdin
fc85729458
mxfdec: Do not parse slices or DeltaEntryArrays.
...
The most recent demuxing/seeking code does not need them.
2012-01-22 14:40:54 +01:00
Janne Grunau
f028d4d1c3
mxfdec: hybrid demuxing/seeking solution
...
This uses the old demuxing code for OP1a and separate demuxing code for OPAtom.
Timestamp output is added to the old demuxing code.
The seeking code is made to seek to the start of the desired EditUnit only,
from which the normal demuxing code takes over (if OP1a). This means we
do not use delta entries or slices, only StreamOffsets. OPAtom seeking
basically works like before.
This also makes D-10 seeking behave the same way as OP1a and OPAtom. In other
words, we allow seeking before the start or past the end for D-10 too.
Based on several patches by Tomas Härdin <tomas.hardin@codemill.se> and
Reimar Döffinger <Reimar.Doeffinger@gmx.de>.
Changed av_calloc to av_mallocz, added overflow checks.
2012-01-22 14:40:53 +01:00
Tomas Härdin
1f5f8b2654
mxfdec: Add Avid's essence element key.
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:53 +01:00
Carl Eugen Hoyos
44deb9f68d
mfxdec: Separate mxf_essence_container_uls for audio and video.
...
It is a really bad idea to assign a video codec id
when we have set codec_type to audio and vice versa.
Prevents detection of mp2 in mxf as mpeg2video.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:53 +01:00
Tomas Härdin
3cb33fbe91
mxfdec: Compute packet offsets properly.
...
This replaces the old essence_offset code.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:53 +01:00
Tomas Härdin
f4187945a0
mxfdec: Use MaterialPackage - Track - TrackID instead of the system_item hack.
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:53 +01:00
Tomas Härdin
21cc4b3327
mxfdec: use av_dlog() for 'no corresponding source package found'
...
This is not an error and expected behavior for OPAtom files.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:53 +01:00
Tomas Härdin
c77a5460b1
mxfdec: Make mxf->partitions sorted by offset.
...
This also zeroes new entries for good measure (used by future patches).
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:53 +01:00
Tomas Härdin
be78e3f6ec
mxfdec: parse ThisPartition
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:53 +01:00
Tomas Härdin
775d3b4ab1
mxfdec: Speed up metadata and index parsing.
...
Specifically, this means parsing as before until we run into essence.
At that point we seek to the footer and parse until EOF. After that we start
seeking backward to the previous partition and parse that until we run into
essence or the next partition. This procedure is repeated until we encounter
the last partition we parsed in the forward direction.
The end result of all this is that large essence containers are not needlessly
parsed. This speeds up parsing large files a lot.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:52 +01:00
Tomas Härdin
0999151962
mxfdec: Make sure DataDefinition is consistent between material track and source track.
...
This fixes 0001GL.MXF.V1.mxf_opatom.mxf and 0001GL00.MXF.A1.mxf_opatom.mxf
getting two streams each due to both using the same SourcePackageID.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:52 +01:00
Tomas Härdin
0ac5e6a8c4
mxfdec: add EssenceContainer UL found in 0001GL00.MXF.A1.mxf_opatom.mxf
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:52 +01:00
Tomas Härdin
edb5085647
mxfdec: Add hack that adjusts the n_delta calculation when system items are present.
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:52 +01:00
Janne Grunau
682b6db706
mxfdec: Parse IndexTableSegments and convert them into AVIndexEntry arrays.
...
Based on patch from Tomas Härdin <tomas.hardin@codemill.se>
and work by Georg Lippitsch <georg.lippitsch@gmx.at>
Changed av_calloc to av_mallocz and added overflow checks.
2012-01-22 14:40:52 +01:00
Tomas Härdin
83ab10f6e9
mxfdec: Move FooterPartition to MXFContext and make sure it is never zero.
...
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:52 +01:00
Joakim Plate
3359246d9a
mxfdec: check return value of avio_seek
...
Avoid modifying state if avio_seek fails.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:52 +01:00
Philip de Nier
0662eea6b0
mxfdec: skip to end of structural sets
...
This fixes reading of partition packs. The code stops reading after the
operational pattern and should skip the array of essence container
labels that follow.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2012-01-22 14:40:52 +01:00
Tomas Härdin
d32b3f40c7
mxfdec: parse MXF partitions
2012-01-22 14:40:51 +01:00
Daniel Huang
bcd5d979aa
mov, mxfdec: Employ more meaningful return values.
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-15 22:00:11 +01:00
Tomas Härdin
6547fd9264
mxfdec: consider QuantizationBits between 17 and 24 to be pcm_s24*
...
This fixes playback of BRD38772509.mxf.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-12-21 16:28:42 +01:00
Anton Khirnov
c3f9ebf743
lavf: make av_set_pts_info private.
...
It's supposed to be called only from (de)muxers.
2011-11-30 20:34:45 +01:00
Alex Converse
735e601be1
mxfdec: Fix comparison of unsigned expression < 0.
...
'size' is populated by functions returning int64_t and int that return
negative error codes.
2011-11-08 10:59:52 -08:00
Anton Khirnov
a2faa95151
lavf: make some seeking functions private
...
Specifically av_update_cur_dts(), av_seek_frame_binary() and
av_gen_search().
They are not supposed to be called outside lavf.
2011-10-28 09:23:24 +02:00
Anton Khirnov
84ad31ff18
lavf: replace av_new_stream->avformat_new_stream part II.
...
Manual replacements are done in this commit.
In many cases, the id is some constant made up number (e.g. 0 for video
and 1 for audio), which is then not used in the demuxer for anything.
Those ids are removed.
2011-10-19 17:02:11 +02:00
Alex Converse
0c46e958d1
mxfdec: Fix some buffer overreads caused by the misuse of AVPacket related functions.
2011-10-10 09:40:26 -07:00
Alex Converse
1f6f58d585
mxfdec: Include FF_INPUT_BUFFER_PADDING_SIZE when allocating extradata.
...
This prevents out of bounds reads when extradata is being decoded.
2011-07-29 16:03:53 -07:00
Anton Khirnov
dfc2c4d900
lavf: use designated initialisers for all (de)muxers.
...
It's more readable and less prone to breakage.
2011-07-17 06:58:37 +02:00
Mans Rullgard
0ebcdf5cda
Do not include mathematics.h in avutil.h
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-03 21:42:06 +01:00
Diego Biurrun
b0a4e5f9e7
Employ correct printf format specifiers, mostly in debug output.
2011-05-31 23:45:14 +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
Anton Khirnov
45a8a02a41
lavf: replace avio_seek(SEEK_CUR) with avio_skip where it makes sense
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-16 22:24:51 -04:00
Anton Khirnov
66e5b1df36
avio: deprecate url_feof
...
AVIOContext.eof_reached should be used directly instead.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-07 17:20:31 -05:00
Anton Khirnov
a2704c9712
avio: add avio_tell macro as a replacement for url_ftell
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-04 11:26:57 -05:00
Anton Khirnov
e356fc57a2
lavf: replace all uses of url_fskip with avio_seek
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-01 12:22:16 -05:00
Anton Khirnov
6b4aa5dac8
avio: avio_ prefix for url_fseek
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-03-01 12:12:33 -05:00
Anton Khirnov
b7effd4e83
avio: avio_ prefixes for get_* functions
...
In the name of consistency:
get_byte -> avio_r8
get_<type> -> avio_r<type>
get_buffer -> avio_read
get_partial_buffer will be made private later
get_strz is left out becase I want to change it later to return
something useful.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-21 11:23:22 -05:00
Anton Khirnov
ae628ec1fd
avio: rename ByteIOContext to AVIOContext.
...
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-20 08:37:15 -05:00
Luca Barbato
dfd2a005eb
Replace dprintf with av_dlog
...
dprintf clashes with POSIX.1-2008
2011-01-29 23:55:37 +01:00
Diego Elio Pettenò
c6610a216e
Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.
...
This also lists the objects from those two libraries as internal (by adding
the ff_ prefix) so that they can then be hidden via linker scripts.
2011-01-26 22:10:09 +00:00
Axel Holzinger
354b757300
Zero-initialize structs/arrays with {0} instead of {}, which isn't proper C99
...
Patch by Axel Holzinger, aholzinger at gmx dot de
Originally committed as revision 24391 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-21 17:27:28 +00:00
Reimar Döffinger
39bb30f664
Change all functions referenced in the mxf_metadata_read_table to use the same
...
prototype and also always call them with exactly those arguments.
The previous way seems to have worked on all supported platforms, however
it was not strictly valid C and would crash e.g. with a compiler that
uses stdcall by default.
Also avoids warnings if -Wstrict-prototypes is used.
Originally committed as revision 23939 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-01 17:10:31 +00:00
Tomas Härdin
11fdc4d4fc
mxfdec: Improve parsing of the PixelLayout item
...
Originally committed as revision 23898 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 07:55:05 +00:00
Stefano Sabatini
72415b2adb
Define AVMediaType enum, and use it instead of enum CodecType, which
...
is deprecated and will be dropped at the next major bump.
Originally committed as revision 22735 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 23:30:55 +00:00
Reimar Döffinger
c7a38887c1
Do D10 AES3 audio conversion in-place instead of using a large on-stack buffer.
...
Originally committed as revision 20567 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-20 23:12:55 +00:00
Reimar Döffinger
1e69999334
MXF: simply ignore tracks that are invalid due to not having a valid Sequence
...
part instead of failing completely.
This partly fixes issue 1470 (broken files created by BBC ingex recorder).
Originally committed as revision 20221 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-13 08:08:10 +00:00
Baptiste Coudurier
9291fdf7bc
return AVERROR_EOF
...
Originally committed as revision 18993 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-30 06:16:44 +00:00
Baptiste Coudurier
8be080aebb
free Track and unset priv_data to avoid double free, fix memleak
...
Originally committed as revision 18836 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-15 05:33:05 +00:00
Baptiste Coudurier
b4800b8b7d
protect realloc overflow
...
Originally committed as revision 18088 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-21 00:50:51 +00:00
Baptiste Coudurier
5ac4d7689d
reuse MXFCodecUL for data def and simplify
...
Originally committed as revision 17042 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-08 05:12:30 +00:00
Baptiste Coudurier
251bf87560
remove implicit header inclusions from mxf.h
...
Originally committed as revision 17041 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-08 04:42:38 +00:00
Diego Biurrun
406792e7b0
cosmetics: Remove pointless period after copyright statement non-sentences.
...
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Baptiste Coudurier
8a47ad5e7c
use lower case x and alternate format for hex in printf
...
Originally committed as revision 16494 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-08 02:57:21 +00:00
Baptiste Coudurier
861b4f012a
print more debug information if enabled, including index
...
Originally committed as revision 16493 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-08 02:54:43 +00:00
Diego Biurrun
bc5c918ea8
Remove offset_t typedef and use int64_t directly instead.
...
The name offset_t is easily confused with the standard off_t type and
*_t is POSIX reserved namespace if any POSIX header is included.
Originally committed as revision 15533 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-10-03 10:16:29 +00:00
Baptiste Coudurier
5813a29eb1
revert r14983, value is not sample aspect ratio, it is display aspect ratio
...
Originally committed as revision 15352 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-17 23:14:48 +00:00
Baptiste Coudurier
66ec3d56a2
print stream index in decimal not in hex, easier for debugging
...
Originally committed as revision 15279 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-09 02:56:13 +00:00
Luca Abeni
dd1c8f3e6e
Bump Major version, this commit is almost just renaming bits_per_sample to
...
bits_per_coded_sample but that cannot be done seperately.
Patch by Luca Abeni
Also reset the minor version and fix the forgotton change to libfaad.
Note: The API/ABI should not be considered stable yet, there still may
be a change done here or there if some developer has some cleanup ideas and
patches!
Originally committed as revision 15262 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-09-08 14:24:59 +00:00
Baptiste Coudurier
4ee873e39d
put back mxf_essence_container_uls in demuxer as static const
...
Originally committed as revision 15083 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-31 01:39:42 +00:00
Aurelien Jacobs
2a242f4514
mxfdec: set sample_aspect_ratio
...
Originally committed as revision 14983 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-26 20:21:39 +00:00
Zhentan Feng
1b0732ea64
Remove useless #ifdef DEBUG (patch by Zhentan Feng).
...
Originally committed as revision 14853 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-19 21:58:47 +00:00
Zhentan Feng
c69968b4fe
Factorize common code out of the mxf demuxer.
...
Patch by zhentan feng.
Originally committed as revision 14826 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-18 17:54:18 +00:00
Baptiste Coudurier
d09ea6baaf
rename mxf.c to mxfdec.c
...
Originally committed as revision 14655 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-07 02:12:14 +00:00