[FFmpeg-devel] [PATCH] avformat/smoothstreamingenc: Move buffers to the end of structs

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun Dec 5 13:36:11 EET 2021


Andreas Rheinhardt:
> This reduces codesize because the offsets of commonly used elements
> are now smaller and thus need less bytes to encode in ptr+offset
> addressing modes (with GCC 11.2 on x64: 0x1b8b -> 0x1a7b).
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
>  libavformat/smoothstreamingenc.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/libavformat/smoothstreamingenc.c b/libavformat/smoothstreamingenc.c
> index 27b59c299c..ab0920c16f 100644
> --- a/libavformat/smoothstreamingenc.c
> +++ b/libavformat/smoothstreamingenc.c
> @@ -40,17 +40,15 @@
>  #include "libavutil/intreadwrite.h"
>  
>  typedef struct Fragment {
> -    char file[1024];
> -    char infofile[1024];
>      int64_t start_time, duration;
>      int n;
>      int64_t start_pos, size;
> +    char file[1024];
> +    char infofile[1024];
>  } Fragment;
>  
>  typedef struct OutputStream {
>      AVFormatContext *ctx;
> -    char dirname[1024];
> -    uint8_t iobuf[32768];
>      URLContext *out;  // Current output stream where all output is written
>      URLContext *out2; // Auxiliary output stream where all output is also written
>      URLContext *tail_out; // The actual main output stream, if we're currently seeked back to write elsewhere
> @@ -64,6 +62,8 @@ typedef struct OutputStream {
>      char *private_str;
>      int packet_size;
>      int audio_tag;
> +    char dirname[1024];
> +    uint8_t iobuf[32768];
>  } OutputStream;
>  
>  typedef struct SmoothStreamingContext {
> 

Will apply this patchset tonight unless there are objections.

- Andreas


More information about the ffmpeg-devel mailing list