Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added s302m encoder. #12

Closed
wants to merge 4 commits into from
Closed

Conversation

darrylwally
Copy link
Contributor

This patch is based off of this patch that was originally submitted to libav here: http://patches.libav.org/patch/20184/

This implementation covers all sample sizes (16, 20, 24 bits per sample) and implements the, now, required encode2 function. It also improves upon the original patch by adding CODEC_CAP_VARIABLE_FRAME_SIZE to the capabilities and sets the frame_size to zero so that any number of samples can be placed in a frame. Variable frame size is required as the SMPTE 302M spec requires, for example, content with 1080i59.94 video standard to have the 1602, 1601, 1602, 1601, 1602 sample pattern.

#define AES3_HEADER_LEN 4

typedef struct S302MContext {
AVFrame frame;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

codecs should not depend on sizof(AVFrame) due to ABI, AVFrame is part of libavutil and not libavcodec

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright. The original implementation had it this way. No one at libav mentioned it, hence, it was left this way.

@darrylwally
Copy link
Contributor Author

I will have an updated patch in a day or two.

- Removed legacy avcodec_encode_audio interface.
- Removed unnecessary sanity checks
- Allocate/check packet using ff_alloc_packet2
@michaelni
Copy link
Member

Any updates on this? you said you will have an updated patch in a day or 2, did i miss it ?

@darrylwally
Copy link
Contributor Author

@michaelni Sorry for the extreme delay. I didn't get a chance to get back to this until now. New commits are attached.

@michaelni
Copy link
Member

Patch applied by Paul

@michaelni michaelni closed this May 23, 2013
lizhong1008 added a commit to lizhong1008/FFmpeg that referenced this pull request Jan 15, 2018
width/height may be overwriten by coded_width/coded_height if they are
different.
It is to fix FFmpeg#12

Signed-off-by: Zhong Li <zhong.li@intel.com>
TimothyGu pushed a commit that referenced this pull request Dec 9, 2021
…ion parameter

If memory allocation fails, ERROR(ENOMEM) '-12' will be returned.
When resample() is done first, the negative size param would cause buffer-overflow and SEGV in swri_rematrix().
When swri_rematrix() is run first, resample() would not cause an error but Err num as a wrong parameter passing.
Err num should be returned immediately. And remove an unneeded term from an assert.

coredump info:
    #0 0x499517 in posix_memalign (/home/r1/ffmpeg/ffmpeg_4.4.1+0x499517)
    #1 0x6c1f0b4 in av_malloc /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavutil/mem.c:86:9
    #2 0x6c208fe in av_mallocz /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavutil/mem.c:239:17
    #3 0x6c207ad in av_mallocz_array /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavutil/mem.c:195:12
    #4 0x654b2e5 in swri_realloc_audio /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libswresample/swresample.c:418:14
    #5 0x654f9a1 in swr_convert_internal /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libswresample/swresample.c:601:17
    #6 0x654d2c0 in swr_convert /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libswresample/swresample.c:766:19
    #7 0x186cf56 in flush_frame /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/af_aresample.c:251:13
    #8 0x186a454 in request_frame /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/af_aresample.c:288:20
    #9 0x787d9c in ff_request_frame_to_filter /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/avfilter.c:459:15
    #10 0x7877f1 in forward_status_change /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/avfilter.c:1257:19
    #11 0x77ed7e in ff_filter_activate_default /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/avfilter.c:1288:20
    #12 0x77e4e1 in ff_filter_activate /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/avfilter.c:1441:11
    #13 0x793b3f in ff_filter_graph_run_once /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/avfiltergraph.c:1403:12
    #14 0x7a7bee in get_frame_internal /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/buffersink.c:131:19
    #15 0x7a7287 in av_buffersink_get_frame_flags /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/buffersink.c:142:12
    #16 0x792888 in avfilter_graph_request_oldest /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/libavfilter/avfiltergraph.c:1356:17
    #17 0x5d07df in transcode_from_filter /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/fftools/ffmpeg.c:4639:11
    #18 0x59e557 in transcode_step /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/fftools/ffmpeg.c:4729:20
    #19 0x593970 in transcode /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/fftools/ffmpeg.c:4805:15
    #20 0x58f7a4 in main /home/r1/ffmpeg/ffmpeg-4.4.1/build/src/fftools/ffmpeg.c:5010:9
    #21 0x7f6fd2dee0b2 in __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308:16

SUMMARY: AddressSanitizer: negative-size-param (/home/r1/ffmpeg/ffmpeg_4.4.1+0x497e67) in __asan_memcpy

Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Clazex pushed a commit to Clazex/FFmpeg.Build that referenced this pull request Feb 2, 2023
* export stringToUTF8() for Unicode characters

* export lengthBytesUTF8() for Unicode characters

Co-authored-by: jeromewu <jeromewus@gmail.com>
eliteprox pushed a commit to eliteprox/FFmpeg-netint-livepeer that referenced this pull request Mar 11, 2023
Fix livepeer_dnn filter memory leak, minor refactoring
Leask pushed a commit to kalos-ai/FFmpeg-GLTransitions that referenced this pull request Mar 26, 2024
nvanderzwet-ssimwave pushed a commit to ssimwave/FFmpeg-clean that referenced this pull request Apr 17, 2024
nvanderzwet-ssimwave pushed a commit to ssimwave/FFmpeg-clean that referenced this pull request Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants