1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

384 Commits

Author SHA1 Message Date
Andreas Cadhalpun
fdb8c455b6 mxfdec: fix NULL pointer dereference in mxf_read_packet_old
Metadata streams have priv_data set to NULL.

Reviewed-by: Josh de Kock <josh@itanimul.li>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-11-23 00:40:52 +01:00
Andreas Cadhalpun
0efb610611 mxfdec: fix NULL pointer dereference
Metadata streams have priv_data set to NULL.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-11-05 18:56:41 +01:00
Michael Niedermayer
fecb3e82a4 avformat/mxfdec: Check size to avoid integer overflow in mxf_read_utf16_string()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-21 20:06:29 +02:00
Michael Niedermayer
c495f4ffde avformat/mxfdec: Fix mixed declaration and code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-21 20:06:29 +02:00
Mark Reid
6902e1c7fa libavformat/mxfdec: add metadata streams for external referenced sourclips
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-21 02:04:19 +02:00
Mark Reid
263f8fd7e5 libavformat/mxfdec: don't assume first stream index to be primary
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-21 02:04:16 +02:00
Mark Reid
3b82be9e3b libavformat/mxfdec: export track name metadata
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-21 02:04:01 +02:00
Tobias Rapp
e3196b6862 avformat/mxfdec: Detect field_order based on video_line_map
Read video_line_map from MXF generic picture essence descriptor and use
it to derive the coded field order. Use field_dominance to derive the
display field order from coded field order. If field_dominance is not
available the default value "1" is used as defined in SMPTE S377-1.

Fixes field_order detection for a bunch of DV/DVCPRO files. The heuristic
for deriving coded field order from video_line_map is inspired by
MediaInfo.

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-10-21 02:00:56 +02:00
Mark Reid
d8d4333217 avformat/mxfdec: use first valid sourceclip found if material track has multiple components
This commit fixes a issue with mxf footage having multiple
components on a material track.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-09-21 01:29:20 +02:00
Marton Balint
13b90ff2c1 avformat: fix decoded creation_time timestamps
Use proper ISO 8601 timestamps which also signal that they are in UTC.

This changes the format of creation_time and modification_date metadata values
from 2016-06-01 22:30:00 to 2016-01-01T22:30:00.000000Z

Fixes ticket #5673.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-08-28 15:55:32 +02:00
Clément Bœsch
8ef57a0d61 Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
  cosmetics: Fix spelling mistakes

Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 21:55:34 +02:00
Marton Balint
4bee44007a avformat/mxfdec: check if source_package is NULL
Fixes ticket #5554.

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-06-13 22:43:22 +02:00
Vittorio Giovara
41ed7ab45f cosmetics: Fix spelling mistakes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Derek Buitenhuis
6f69f7a8bf Merge commit '9200514ad8717c63f82101dc394f4378854325bf'
* commit '9200514ad8717c63f82101dc394f4378854325bf':
  lavf: replace AVStream.codec with AVStream.codecpar

This has been a HUGE effort from:
    - Derek Buitenhuis <derek.buitenhuis@gmail.com>
    - Hendrik Leppkes <h.leppkes@gmail.com>
    - wm4 <nfxjfg@googlemail.com>
    - Clément Bœsch <clement@stupeflix.com>
    - James Almer <jamrial@gmail.com>
    - Michael Niedermayer <michael@niedermayer.cc>
    - Rostislav Pehlivanov <atomnuker@gmail.com>

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-10 20:59:55 +01:00
Lou Logan
06eef96b69 fix some a/an typos
Signed-off-by: Lou Logan <lou@lrcd.com>
2016-03-28 14:13:17 -08:00
Carl Eugen Hoyos
f1a3677c0f lavf/mxfdec: Fix Canopus essence element size. 2016-03-14 16:37:48 +01:00
Carl Eugen Hoyos
ac1974652b lavf/mxfdec: Support Canopus codecs.
Fixes ticket #5316.
2016-03-10 09:59:35 +01:00
Anton Khirnov
9200514ad8 lavf: replace AVStream.codec with AVStream.codecpar
Currently, AVStream contains an embedded AVCodecContext instance, which
is used by demuxers to export stream parameters to the caller and by
muxers to receive stream parameters from the caller. It is also used
internally as the codec context that is passed to parsers.

In addition, it is also widely used by the callers as the decoding (when
demuxer) or encoding (when muxing) context, though this has been
officially discouraged since Libav 11.

There are multiple important problems with this approach:
    - the fields in AVCodecContext are in general one of
        * stream parameters
        * codec options
        * codec state
      However, it's not clear which ones are which. It is consequently
      unclear which fields are a demuxer allowed to set or a muxer allowed to
      read. This leads to erratic behaviour depending on whether decoding or
      encoding is being performed or not (and whether it uses the AVStream
      embedded codec context).
    - various synchronization issues arising from the fact that the same
      context is used by several different APIs (muxers/demuxers,
      parsers, bitstream filters and encoders/decoders) simultaneously, with
      there being no clear rules for who can modify what and the different
      processes being typically delayed with respect to each other.
    - avformat_find_stream_info() making it necessary to support opening
      and closing a single codec context multiple times, thus
      complicating the semantics of freeing various allocated objects in the
      codec context.

Those problems are resolved by replacing the AVStream embedded codec
context with a newly added AVCodecParameters instance, which stores only
the stream parameters exported by the demuxers or read by the muxers.
2016-02-23 17:01:58 +01:00
Marton Balint
97795ba6c3 lavf/mxfdec: fix seeking before the first keyframe
Regression since 53f2ef2c4a.
Fixes ticket #5017.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-12-08 02:14:44 +01:00
Anshul Maheshwari
162754c1e0 Remove Redundant Entry of MPEG2 Video Desc
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-07 01:28:48 +01:00
Carl Eugen Hoyos
ec494e6c83 lavf/mxfdec: Set width to actual coded_width for AVCI50.
Fixes ticket #5029.
Reported and analyzed by videolan trac user HenkDemper in vlc ticket #15762.
2015-11-29 21:08:38 +01:00
Andreas Cadhalpun
047bf82c18 mxfdec: check edit_rate also for physical_track
Previously only the edit_rate of material_track was checked.
If it's negative, it causes assertion failures in av_rescale_rnd.

Reviewed-by: Tim Nicholson <nichot20-at-yahoo.com@ffmpeg.org>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-11-18 23:54:24 +01:00
Alexis Ballier
12628e3369 libavformat/mxfdec.c: Report dark metadata keys only when they match no parser at all, not everytime they fail to match one.
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 00:53:35 +02:00
Alexis Ballier
94ec82f14a libavformat/mxfdec.c: cosmetics: Add missing space after '?' in log message.
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-22 00:53:35 +02:00
Arnaud Bienner
0cdba4ac68 lavf/mxfdec: Support more codecs in mxf_picture_essence_container_uls[].
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2015-09-05 00:11:14 +02:00
Carl Eugen Hoyos
f7361dbcf4 lavc/mxfdec: Support more mxf files with codec_ul.
Fixes decoding for the sample from ticket #4820.
2015-09-04 23:50:34 +02:00
Marton Balint
95584ddac4 mxfdec: set AVFMT_SEEK_TO_PTS demuxer flag
Since 53f2ef2c4a seeking is done using PTS.

Signed-off-by: Marton Balint <cus@passwd.hu>
2015-08-14 14:20:25 +02:00
Matthieu Bouron
f6518e51b8 lavf/mxfdec: support segmented frame layout as separate fields layout
According to S377M, segmented frame layout is identical to separate
field layout except that the two fields are taken from a single scan
of the incoming image, ie: they are coincident in time. Thus the
resulting frame is progressive.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-04 13:03:29 +02:00
Vittorio Giovara
059a934806 lavc: Consistently prefix input buffer defines
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:59 +01:00
Carl Eugen Hoyos
6b2bb3d231 Cosmetics: Reindent after last commit. 2015-07-22 10:25:10 +02:00
Carl Eugen Hoyos
35b33f1a19 lavf/mxfdec: Set codec_tag AVup for Avid 1:1 input. 2015-07-22 10:23:18 +02:00
Marton Balint
53f2ef2c4a mxfdec: calculate the index in display order
This should fix seeking for open GOP files as well.

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Marton Balint <cus@passwd.hu>
2015-07-16 22:07:49 +02:00
Michael Niedermayer
cf11fd632e avformat/mxfdec: Change version byte for JPEG2000 to match mxf.c and RP224v12
This should make no difference as the byte is ignored

Found-by: tim nicholson <nichot20@yahoo.com>
Reviewed-by: tim nicholson <nichot20@yahoo.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-16 13:28:44 +02:00
Michael Niedermayer
d0061e77cd avformat/mxfdec: Detect jpeg2000 through codec_ul too
Fixes Ticket2345

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-12 19:40:48 +02:00
Michael Niedermayer
e43f3c8858 avformat/mxfdec: return error instead of segfaulting if there are no streams
Fixes segfault from ticket 4350

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-02 13:45:47 +02:00
Michael Niedermayer
40d552dae6 Merge commit '1a3eb042c704dea190c644def5b32c9cee8832b8'
* commit '1a3eb042c704dea190c644def5b32c9cee8832b8':
  Replace av_dlog with normal av_log at trace level

Conflicts:
	ffplay.c
	libavdevice/fbdev_dec.c
	libavfilter/avfilter.c
	libavfilter/internal.h
	libavfilter/setpts.c
	libavfilter/src_movie.c
	libavfilter/vf_crop.c
	libavfilter/vf_drawtext.c
	libavfilter/vf_fieldorder.c
	libavformat/assdec.c
	libavformat/avidec.c
	libavformat/flvdec.c
	libavformat/http.c
	libavformat/ipmovie.c
	libavformat/isom.c
	libavformat/mov.c
	libavformat/mpegenc.c
	libavformat/mpegts.c
	libavformat/mpegtsenc.c
	libavformat/mux.c
	libavformat/mxfdec.c
	libavformat/nsvdec.c
	libavformat/oggdec.c
	libavformat/r3d.c
	libavformat/rtspdec.c
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 03:19:47 +02:00
Vittorio Giovara
1a3eb042c7 Replace av_dlog with normal av_log at trace level
This applies to every library where performance is not critical.
2015-04-19 12:41:59 +01:00
Mark Reid
e575589378 libavformat/mxfdec: fix MXFPackage->comment_refs memory leak
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-16 03:37:44 +01:00
Mark Reid
43cafb956e libavformat/mxfdec: export user comments metadata
Previous-revision-reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 22:46:18 +01:00
Michael Niedermayer
fd503e96ef Merge commit '6448f15af02f2c3cf0df8cb8237957e426041f2d'
* commit '6448f15af02f2c3cf0df8cb8237957e426041f2d':
  mxfdec: Fix the error handling for when strftime fails

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 19:59:30 +01:00
Martin Storsjö
6448f15af0 mxfdec: Fix the error handling for when strftime fails
The str variable is a char ** here.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-03-08 18:40:43 +02:00
Vilius Grigaliūnas
2af260e3a8 avformat/mxfdec: Detect XYZ pixel format for digital cinema files
While the native jpeg2000 decoder can determine pixel format correctly
from the codestream, libopenjpeg wrapper cannot. To make sure that
the output is correct when using libopenjpeg to decode digital
cinema files, we do detection from the metadata included in the MXF
wrapper.

If the container has "JPEG 2000 Coding Parameters" metadata element
with Rsiz value set to one of digital cinema profiles, we can safely
assume that the given input file is DCI compliant, therefore the
pixel format should be XYZ.

Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-05 11:47:11 +01:00
Mark Reid
ec5a4af560 libavformat/mxfdec: refactor reading strong ref array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-04 12:14:19 +01:00
Michael Niedermayer
a0fe1a25fa Merge commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e'
* commit 'daf8cf358a098a903d59adb6c0d0cc3262a8c93e':
  avformat: Don't anonymously typedef structs

Conflicts:
	libavformat/adtsenc.c
	libavformat/aiffenc.c
	libavformat/avidec.c
	libavformat/gif.c
	libavformat/iff.c
	libavformat/img2dec.c
	libavformat/jvdec.c
	libavformat/matroskadec.c
	libavformat/udp.c
	libavformat/wtvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-14 21:07:40 +01:00
Diego Biurrun
daf8cf358a avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
Carl Eugen Hoyos
449b8cf04b avformat/mxfdec: Fix cleanup in mxf_free_metadataset()
Fixes Ticket4256

Found-by: tholin
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-28 05:26:01 +01:00
Mark Reid
b396914c68 libavformat/mxfdec.c: support demuxing opatom audio without index
Reviewed-by: Tomas Härdin <tomas.hardin@codemill.se>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-18 22:02:58 +01:00
Mark Reid
b23a866844 libavformat/mxfdec.c: export the full UMID as metadata
Previous version reviewed-by: tim nicholson

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-13 01:16:39 +01:00
Mark Reid
b08b5f4be2 libavformat/mxfdec.c: read project_name metadata
MXF files generated by Media Composer or LibMXF can contain a
project name property in the Preface. Lots of existing samples have them.

http://samples.ffmpeg.org/MXF/issue2160/PW0805A0V01.4C5B5636.EFA330.mxf
project_name    : DNX145 PW Test

http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket3450/WriteAvidMXFgenerated/5502_0010_v1.mxf
project_name    : Rombus

http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket3100/1sec_mxf_test_Video5270C795.mxf
project_name    : NVB_DOOD

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-12 20:26:58 +01:00
Carl Eugen Hoyos
4373a25d94 lavf/mxfdec: Fix memleaks reading corrupt files.
Fixes ticket #4173.

Reviewed-by: Tomas Härdin
2014-12-15 01:37:12 +01:00