aboutsummaryrefslogtreecommitdiff
path: root/libavformat/mxfdec.c
AgeCommit message (Collapse)Author
2019-12-31avformat/mxfdec: Clear metadata_sets_count in mxf_read_close()Michael Niedermayer
This avoids problems if the function is called twice Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit 13816a1d085fdb6598ea6dc92ed3a1e6aff0cc1f) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-22avformat/mxfdec: do not ignore bad size errorsMarton Balint
The return value was unintentionally lost after 00a2652df3bf25a27d174cc67ed508b5317cb115. Signed-off-by: Marton Balint <cus@passwd.hu> (cherry picked from commit 6ee40dcb64c91cc9a4cb988408d8ed159dacdcfe)
2019-04-28avformat/mxfdec: fix and enhance RIP KLV length checksMarton Balint
KLV length is BER encoded (variable size), but the code assumed the encoding to always use 4 bytes. Fixes parsing Random Index Pack in samples/MXF/issue2160/PW0805A0V01.4C5B5636.EFA330.mxf. Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-28avformat/mxfdec: take into account run-in in find_partition_by_offsetMarton Balint
Also rename the function to find_partition_by_absolute_offset to make it clear offset is absolute. Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-28avformat/mxfdec: guess wrapping of tracks by other tracks with the same body sidMarton Balint
This affects the following samples: samples/ffmpeg-bugs/roundup/issue1775/av_seek_frame_failure.mxf samples/ffmpeg-bugs/trac/ticket1957/16ch.mxf samples/ffmpeg-bugs/trac/ticket5016/r0.mxf samples/ffmpeg-bugs/trac/ticket5016/r1.mxf samples/ffmpeg-bugs/trac/ticket5316/hq.MXF samples/ffmpeg-bugs/trac/ticket5316/hqx.MXF Some AVPacket->pos values are changed because for frame wrapped tracks we point to the KLV offset and not the data. Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-28avformat/mxfdec: rework mxf_essence_container_endMarton Balint
We find the last essence container much faster if we go through the partitions backwards... Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-14avformat/mxfdec: use operational_pattern_ul instead of operational_pattern ↵Marton Balint
for metadata This makes it more consistent with other metadata keys. Signed-off-by: Marton Balint <cus@passwd.hu>
2019-04-11avformat/mxfdec: export operational pattern UL as file metadataMarton Balint
Can be useful for API users as ffmpeg/libavformat can't properly support some operational patterns. Signed-off-by: Marton Balint <cus@passwd.hu>
2019-03-21lavf: Constify the probe function argument.Carl Eugen Hoyos
Reviewed-by: Lauri Kasanen Reviewed-by: Tomas Härdin
2019-03-08Add the Canon XF-HEVC UL to the picture essence container UL listMatthew McKenna
2018-12-25avformat/mxfdec: support subsecond precision of decoded timestampsMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-25avformat/mxfdec: replace obsolete commentMarton Balint
We no longer use strftime directly but use av_timegm to get an int64_t timestamp. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-12-22avformat/mxfdec: Do not process zero modified_date timestamp.Michael Niedermayer
This causes windows to fail as the timestamp is outside its supported range Fixes regression & fate Reviewed-by: Marton Balint <cus@passwd.hu> Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-12-13avformat/mxfdec: fix error check in macroPaul B Mahol
Fixes #6750.
2018-12-09avformat/mxfdec: fix indentationPaul B Mahol
2018-12-07avformat/mxfdec: set codec_tag for prores codecPaul B Mahol
2018-10-12lavf/mxfdec: demux s436m as eia608 subtitle trackBaptiste Coudurier
2018-10-12lavf/mxfenc: support creating s436m data tracksBaptiste Coudurier
2018-09-05avformat/mxfdec: do not use sound essence descriptor quantization bits for ↵Marton Balint
bits_per_coded_sample It refers to the uncompressed quantization, therefore is not correct for AAC. Also change mxf_set_pts to work based on current edit unit if bits_per_coded_sample is not available. Fixes error messages in the sample of ticket #7366. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-24avformat/mxfdec: drop invalid index table segments when sorting themMarton Balint
This way if an index table segment is present multiple times, we can always use the proper one instead of the invalid one. Fixes seeking in the sample of ticket #5671. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-19avformat/mxfdec: only call mxf_free_metadataset when ctx_size is != 0, ↵Baptiste Coudurier
otherwise ctx == mxf
2018-07-13avformat/mxfdec: only return stream indexes which have a corresponding trackMarton Balint
Without this check some crafted files might crash because a packet might be demuxed which have no corresponding mxf track. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-05avformat/mxfdec: Fix av_log contextMichael Niedermayer
Fixes: out of array access Fixes: mxf-crash-1c2e59bf07a34675bfb3ada5e1ec22fa9f38f923 Found-by: Paul Ch <paulcher@icloud.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-04avformat/mxfdec: add support for opAtom without indexMarton Balint
Clip wrapped code is capable of doing some magic for such files. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-04avformat/mxfdec: guess constant byte count indexes based on track durationMarton Balint
For clip wrapped essences this should work. Also, since index_edit_rate can now be different from track edit rate, remove overriding track edit rate. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-04avformat/mxfdec: take into account index_edit_rateMarton Balint
Fixes samples/ffmpeg-bugs/roundup/issue591/02785736.mxf Fixes samples/ffmpeg-bugs/trac/ticket1916/pcm_s24le_to_pcm_s16le.mxf Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-04avformat/mxfdec: fix indentation and rename mxf_read_packet_oldMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-07-04avformat/mxfdec: add support for clip wrapped essencesMarton Balint
Also use common code with opAtom. Fixes ticket #2776. Partially fixes ticket #5671. Fixes ticket #5866. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: avoid index_table->nb_ptses overflow in ↵Marton Balint
mxf_compute_ptses_fake_index Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: compute sample_count for all streams on seekMarton Balint
sample_count will be used for per-stream current_edit_unit. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: add support for returning the partition for ↵Marton Balint
mxf_edit_unit_absolute_offset and mxf_absolute_bodysid_offset Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: make current_edit_unit a parameter of mxf_compute_samplesMarton Balint
No change in functionality. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: make edit_units_per_packet a track propertyMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: simply use the first essence element for non frame-wrapped ↵Marton Balint
partition essence offset Also add the canopus essence element to the list of the recognized essence element keys. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: compute both essence_offset and essence_length in ↵Marton Balint
mxf_compute_essence_containers Also compute the correct essence_offset and essence_length for all clip wrapped essences. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: extend mxf_handle_missing_index_segment for all clip ↵Marton Balint
wrapped essences Also make sure we set a valid track index sid and a valid track edit rate in order for the index to be useful. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: add some essence container uls from SMPTE draftMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: add support for determining essence wrapping schemeMarton Balint
Some code is based on bmxlib-libmxf/mxf/mxf_utils.c. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-24avformat/mxfdec: store next_klv in KLVPacketMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-08avformat/mxfdec: add support for recognizing timed text streamsMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-08avformat/mxfdec: remove check for NULL MXFTrack in mxf_set_ptsMarton Balint
It cannot happen for video streams. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-08avformat/mxfdec: only disallow seek on metadata streamsMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-08avformat/mxfdec: recognize SMPTE 436 VBI dataMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-06-08avformat/mxfdec: use MXFCodecUL struct to store essence description for ↵Marton Balint
data_essence_container_uls Signed-off-by: Marton Balint <cus@passwd.hu>
2018-05-30avformat/mxfdec: add some missing picture_essence_container_ulsMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-05-30avformat/mxfdec: use int math for sample count calculationMarton Balint
This also changes the rounding to nearest. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-05-30avformat/mxfdec: fix klv_decode_ber_length return value usageMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-09avformat/mxfdec: do not allow more partitions than INT_MAX/2Marton Balint
Some math (e.g: partition binary search) overflows if we have that many parititions. Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-09avformat/mxfdec: use binary search in mxf_absolute_bodysid_offsetMarton Balint
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-03-09avformat/mxfdec: fix opAtom audio demuxingMarton Balint
Consider edit rate when determining edit_units_per_packet and also make sure that checks are done in edit rate time base and not in stream time base. Fixes some errors reported with the sample in ticket #5863. Signed-off-by: Marton Balint <cus@passwd.hu>