summaryrefslogtreecommitdiff
path: root/libavcodec/h264_sei.c
Commit message (Collapse)AuthorAge
* h264: Use common SEI typesMark Thompson2021-01-21
|
* avcodec/h264_sei: print a log message when a unsupported ITU-T T35 SEI ↵James Almer2020-12-18
| | | | | | messages is parsed Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/h264_sei: refactor parsing User Data Registered ITU-T T35 SEI messagesJames Almer2020-12-18
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/h264_sei: use ff_parse_a53_cc() to parse A53 Closed CaptionsJames Almer2020-08-15
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/h264: create user data unregistered SEI side data for H.264Limin Wang2020-06-15
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* h264_sei: parse the picture timing SEIs correctlyAnton Khirnov2020-04-10
| | | | | | | | | Those SEIs refer to the currently active SPS. However, since the SEI NALUs precede the coded picture data in the bitstream, the active SPS is in general not known when we are decoding the SEI. Therefore, store the content of the picture timing SEIs and actually parse it when the active SPS is known.
* h264_sei: use a separate reader for the individual SEI messagesAnton Khirnov2020-04-10
| | | | | This tells the parsing functions the payload size and prevents them from overreading.
* avcodec/h264_sei: fix the size of user data unregisteredLimin Wang2019-12-20
| | | | | | | According to the specifications, the payloadSize includes the 16-byte size of UUID. Signed-off-by: Limin Wang <lance.lmwang@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* h264/pic_timing: support multiple timecodesJosh de Kock2018-10-23
|
* lavc/h264: create AVFrame side data from H.264 timecodesDevin Heitmueller2018-10-23
| | | | | | | | | Create SMPTE ST 12-1 timecodes based on H.264 SEI picture timing info. For framerates > 30 FPS, the field flag is used in conjunction with pairs of frames which contain the same frame timestamp in S12M. Ensure the field is properly set per the spec.
* h264: Support multi-field closed captions by using AVBufferRef and not ↵Kieran Kunhya2018-08-17
| | | | | | resetting per field Signed-off-by: Josh de Kock <joshdk@obe.tv>
* avcodec/h264_slice: Fix overflow in recovery_frame computationMichael Niedermayer2018-06-11
| | | | | | | | Fixes: signed integer overflow: 15 + 2147483646 cannot be represented in type 'int' Fixes: 8381/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-6225533137321984 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/h264_sei: remove redundant prefix to H264SEIFramePacking fieldsJames Almer2017-12-01
| | | | | | Cosmetic change. Signed-off-by: James Almer <jamrial@gmail.com>
* Merge commit '99e9697e3a12ab4a6638a36b95edafd6a98f9eaa'James Almer2017-11-29
|\ | | | | | | | | | | | | * commit '99e9697e3a12ab4a6638a36b95edafd6a98f9eaa': stereo3d: Support view type for frame sequence type Merged-by: James Almer <jamrial@gmail.com>
| * stereo3d: Support view type for frame sequence typeVittorio Giovara2017-11-28
| | | | | | | | | | | | Implement detection in h264 and hevc and insertion in framepack filter. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * h264: Add support for alternative transfer characterics SEIVittorio Giovara2017-08-10
| | | | | | | | | | | | | | | | | | | | The use of this SEI is for backward compatibility in HLG HDR systems: older devices that cannot interpret the "arib-std-b67" transfer will get the compatible transfer (usually bt709 or bt2020) from the VUI, while newer devices that can interpret HDR will read the SEI and use its value instead. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * h264_sei: Add namespace prefix to all SEI valuesMark Thompson2017-05-16
| | | | | | | | | | This avoids confusion with equivalent H.265 SEI values when both are being used at the same time.
| * h264_sei: Check actual presence of picture timing SEI messageMichael Niedermayer2017-02-28
| | | | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * golomb: Convert to the new bitstream readerDiego Biurrun2017-01-31
| |
* | libavcodec/h264_sei: Don't log random user data. This prevents terminal junk.Kieran Kunhya2017-11-17
| |
* | avcodec/h264_sei: add namespace prefix to frame packingarrangement enum valuesJames Almer2017-09-12
| | | | | | | | | | | | Missed in 6eb102a616364d06a4cc994339b72910b3547e5f. Signed-off-by: James Almer <jamrial@gmail.com>
* | h264_sei: Add namespace prefix to all SEI valuesMark Thompson2017-09-12
| | | | | | | | | | | | | | This avoids confusion with equivalent H.265 SEI values when both are being used at the same time. (cherry picked from commit 6ea220cbeec8863e2006a03b73bed52db2b13ee7)
* | h264: Add support for alternative transfer characterics SEIVittorio Giovara2017-08-10
| | | | | | | | | | | | | | | | | | | | The use of this SEI is for backward compatibility in HLG HDR systems: older devices that cannot interpret the "arib-std-b67" transfer will get the compatible transfer (usually bt709 or bt2020) from the VUI, while newer devices that can interpret HDR will read the SEI and use its value instead. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec/h264_sei: Check actual presence of SEI picture timing instead of ↵Michael Niedermayer2017-02-15
| | | | | | | | | | | | implying it Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '1cf2f3d334f52849aae2be868bad1e5fa5f59aa0'James Almer2016-08-01
|\| | | | | | | | | | | | | * commit '1cf2f3d334f52849aae2be868bad1e5fa5f59aa0': h264_sei: drop an unnecessary h264dec.h include Merged-by: James Almer <jamrial@gmail.com>
| * h264_sei: drop an unnecessary h264dec.h includeAnton Khirnov2016-06-21
| | | | | | | | | | The code does not depend on the h264 decoder anymore and only needs information from h264_ps
* | Merge commit '9df889a5f116c1ee78c2f239e0ba599c492431aa'Clément Bœsch2016-07-29
|\| | | | | | | | | | | | | * commit '9df889a5f116c1ee78c2f239e0ba599c492431aa': h264: rename h264.[ch] to h264dec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
| * h264: rename h264.[ch] to h264dec.[ch]Anton Khirnov2016-06-21
| | | | | | | | This is more consistent with the naming of other decoders.
* | h264: make H264ParamSets sps constBenoit Fouet2016-06-30
| |
* | avcodec/h264_sei: Do not skip subsequent SEIs on errors potentially caused ↵Michael Niedermayer2016-06-26
| | | | | | | | | | | | by missing parameter sets. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch2016-06-21
|\| | | | | | | | | | | | | * commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
| * cosmetics: Fix spelling mistakesVittorio Giovara2016-05-04
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '728d90a0c1973661a9e73da697bf4f90c9d19577'Clément Bœsch2016-06-18
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '728d90a0c1973661a9e73da697bf4f90c9d19577': h264: decouple h264_sei from the h264 decoder Main changes: - SEI decoding doesn't have access to the debug flag in the codec context so a few logging are dropped. - naming of quincunx_sampling_flag and frame_packing_arrangement_type are kept as they are in FFmpeg instead of respectively quincunx_subsampling and arrangement_type used in Libav because the former match the specifications. - don't reset the x264 build info once read in order to fix fate-h264-lossless (change by Hendrik) - H264Context.has_recovery_point and deprecated AVCodecContext.dtg_active_format are set after ff_h264_sei_decode() based on the SEI state since ff_h264_sei_decode() doesn't have access to H264Context anymore. - frame_packing_arrangement_type is not checked against <= 0 in decode_postinit() since it is always read as a positive value with get_bits(). This fixes a -Wtype-limits warning by GCC spotted by Michael. Side Notes: - tested that ffprobe on the file from ticket #3652 still returns 4 keyframes - tested that playback from ticket #3063 still works Merged-by: Clément Bœsch <clement@stupeflix.com> Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * h264: decouple h264_sei from the h264 decoderAnton Khirnov2016-04-24
| | | | | | | | | | Make the SEI parsing independent of the H264Context, to allow decoupling the parser from the decoder.
* | lavc/h264_sei: fix broken style around green metadata codeClément Bœsch2016-06-14
| |
* | lavc/h264: rename GreenMetaData to H264SEIGreenMetaDataClément Bœsch2016-06-14
| | | | | | | | Reduces diff for the next merge with Libav.
* | lavc/h264_sei: reduce scope of parameters for green meta decodeClément Bœsch2016-06-14
| | | | | | | | | | This is again will help the merge as ff_h264_decode_sei will not have access to H264Context anymore.
* | lavc/h264: move green meta logging out of the sei decodingClément Bœsch2016-06-14
| | | | | | | | | | This will simplify the next Libav merge where SEI decoding doesn't have access to the debug level anymore.
* | lavc/h264_sei: fix green metadata typoClément Bœsch2016-06-13
| |
* | Merge commit '3176217c60ca7828712985092d9102d331ea4f3d'Clément Bœsch2016-06-12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '3176217c60ca7828712985092d9102d331ea4f3d': h264: decouple h264_ps from the h264 decoder Main changes: - a local GetBitContext is created for the various ff_h264_decode_seq_parameter_set() attempts - just like the old code, remove_sps() is adjusted so it doesn't remove the pps. Fixes decode with Ticket #631 http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20111108/dae58f17/attachment.mp4 but see next point as well. - ff_h264_update_thread_context() is updated to work even when SPS isn't set as it breaks current skip_frame code. This makes sure we can still decode the sample from ticket #631 without the need for -flags2 +chunks. (Thanks to Michael) - keep {sps,pps}_ref pointers that stay alive even when the active pps/sps get removed from the available lists (patch by michaelni with additionnal frees in ff_h264_free_context() from mateo) - added a check on sps in avpriv_h264_has_num_reorder_frames() to fix crashes with mpegts_with_dvbsubs.ts from Ticket #4074 http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket4074/mpegts_with_dvbsubs.ts - in h264_parser.c:h264_parse(), after the ff_h264_decode_extradata() is called, the pps and sps from the local parser context are updated with the pps and sps from the used h264context. This fixes fate-flv-demux. - in h264_slice.c, "PPS changed between slices" error is not triggered anymore in one condition as it makes fate-h264-xavc-4389 fails with THREADS=N (Thanks to Michael) Merged-by: Clément Bœsch <clement@stupeflix.com> Merged-by: Michael Niedermayer <michael@niedermayer.cc> Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
| * h264: decouple h264_ps from the h264 decoderAnton Khirnov2016-04-24
| | | | | | | | | | | | | | | | | | Make the SPS/PPS parsing independent of the H264Context, to allow decoupling the parser from the decoder. The change is modelled after the one done earlier for HEVC. Move the dequant buffers to the PPS to avoid complex checks whether they changed and an expensive copy for frame threads.
* | avcodec: Use get_ue_golomb_long() when neededMark Harris2015-12-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | get_ue_golomb() cannot decode values larger than 8190 (the maximum value that can be golomb encoded in 25 bits) and produces the error "Invalid UE golomb code" if a larger value is encountered. Use get_ue_golomb_long() instead (which supports 63 bits, up to 4294967294) when valid h264/hevc values can exceed 8190. This updates decoding of the following values: (maximum) first_mb_in_slice 36863* for level 5.2 abs_diff_pic_num_minus1 131071 difference_of_pic_nums_minus1 131071 idr_pic_id 65535 recovery_frame_cnt 65535 frame_packing_arrangement_id 4294967294 frame_packing_arrangement_repetition_period 16384 display_orientation_repetition_period 16384 An alternative would be to modify get_ue_golomb() to handle encoded values of up to 49 bits as was done for get_se_golomb() in a92816c. In that case get_ue_golomb() could continue to be used for all of these except frame_packing_arrangement_id. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit 'b4a82e740743744136e07054525560351e4892ae'Hendrik Leppkes2015-11-02
|\| | | | | | | | | | | | | * commit 'b4a82e740743744136e07054525560351e4892ae': h264: Print the complete user message Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * h264: Print the complete user messageVittorio Giovara2015-10-30
| | | | | | | | | | | | | | Previously the message was cut off at 256th byte. This will allow dumping the complete x264 encode info when needed. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '8487987b87a252963b27b6adfd82887ea5933918'Hendrik Leppkes2015-11-02
|\| | | | | | | | | | | | | * commit '8487987b87a252963b27b6adfd82887ea5933918': h264: Print user data SEI under normal debug verbosity Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * h264: Print user data SEI under normal debug verbosityVittorio Giovara2015-10-30
| | | | | | | | | | | | Drop the need of setting -debug bugs since it's not a bug, and the message is already under a AV_LOG_DEBUG log level. Instead only print it when there is an actual string in it.
| * h264: Fix faulty call to avpriv_request_sampleLuca Barbato2015-08-22
| | | | | | | | Broken in f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068
* | avcodec/h264_sei: Remove "Subtitles with data type 0x%02x" sample requestMichael Niedermayer2015-09-09
| | | | | | | | Suggested-by: Carl and Hendrik
* | Merge commit 'f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068'Hendrik Leppkes2015-08-24
|\| | | | | | | | | | | | | * commit 'f9ab4fe1f7c1e9d410ca5ee2c9ff8d2892aad068': h264: Discard currently unsupported registered sei Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * h264: Discard currently unsupported registered seiJohn Högberg2015-08-21
| | | | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>