mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2026-01-24 07:31:22 +01:00
Merge commit 'bb4edddd93'
* commit 'bb4edddd93': rmenc: limit packet size Conflicts: libavformat/rmenc.c See:08728f400bMerged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
be07270bca
1 changed files with 6 additions and 3 deletions
|
|
@ -44,6 +44,10 @@ typedef struct RMMuxContext {
|
|||
|
||||
/* in ms */
|
||||
#define BUFFER_DURATION 0
|
||||
/* the header needs at most 7 + 4 + 12 B */
|
||||
#define MAX_HEADER_SIZE (7 + 4 + 12)
|
||||
/* UINT16_MAX is the maximal chunk size */
|
||||
#define MAX_PACKET_SIZE (UINT16_MAX - MAX_HEADER_SIZE)
|
||||
|
||||
|
||||
static void put_str(AVIOContext *s, const char *tag)
|
||||
|
|
@ -396,9 +400,8 @@ static int rm_write_video(AVFormatContext *s, const uint8_t *buf, int size, int
|
|||
/* Well, I spent some time finding the meaning of these bits. I am
|
||||
not sure I understood everything, but it works !! */
|
||||
#if 1
|
||||
/* 0xFFFF is the maximal chunk size; header needs at most 7 + 4 + 12 B */
|
||||
if (size > 0xFFFF - 7 - 4 - 12) {
|
||||
av_log(s, AV_LOG_ERROR, "large packet size %d not supported\n", size);
|
||||
if (size > MAX_PACKET_SIZE) {
|
||||
av_log(s, AV_LOG_ERROR, "Muxing packets larger than 64 kB (%d) is not supported\n", size);
|
||||
return AVERROR_PATCHWELCOME;
|
||||
}
|
||||
write_packet_header(s, stream, size + 7 + (size >= 0x4000)*4, key_frame);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue