Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: Remove redundant av_packet_unref()
@ 2023-03-13  4:13 Andreas Rheinhardt
  2023-03-13  4:14 ` [FFmpeg-devel] [PATCH 2/3] avcodec/libfdk-aacenc: " Andreas Rheinhardt
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Andreas Rheinhardt @ 2023-03-13  4:13 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Andreas Rheinhardt

The AVPacket given to an encoder's encode callback
is unreferenced generically on error.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
This stuff should probably be moved into the AudioFrameQueue
someday.

 libavcodec/libmp3lame.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c
index 26e58baa3d..e119189f2a 100644
--- a/libavcodec/libmp3lame.c
+++ b/libavcodec/libmp3lame.c
@@ -280,17 +280,14 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
         // Check if subtraction resulted in an overflow
         if ((discard_padding < avctx->frame_size) != (avpkt->duration > 0)) {
             av_log(avctx, AV_LOG_ERROR, "discard padding overflow\n");
-            av_packet_unref(avpkt);
             return AVERROR(EINVAL);
         }
         if ((!s->delay_sent && avctx->initial_padding > 0) || discard_padding > 0) {
             uint8_t* side_data = av_packet_new_side_data(avpkt,
                                                          AV_PKT_DATA_SKIP_SAMPLES,
                                                          10);
-            if(!side_data) {
-                av_packet_unref(avpkt);
+            if (!side_data)
                 return AVERROR(ENOMEM);
-            }
             if (!s->delay_sent) {
                 AV_WL32(side_data, avctx->initial_padding);
                 s->delay_sent = 1;
-- 
2.34.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [FFmpeg-devel] [PATCH 2/3] avcodec/libfdk-aacenc: Remove redundant av_packet_unref()
  2023-03-13  4:13 [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: Remove redundant av_packet_unref() Andreas Rheinhardt
@ 2023-03-13  4:14 ` Andreas Rheinhardt
  2023-03-13  4:15 ` [FFmpeg-devel] [PATCH 3/3] avcodec/libopusenc: " Andreas Rheinhardt
  2023-03-15 16:00 ` [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: " Andreas Rheinhardt
  2 siblings, 0 replies; 4+ messages in thread
From: Andreas Rheinhardt @ 2023-03-13  4:14 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Andreas Rheinhardt

The AVPacket given to an encoder's encode callback
is unreferenced generically on error.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/libfdk-aacenc.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
index db5b0841e0..eb97e0fb41 100644
--- a/libavcodec/libfdk-aacenc.c
+++ b/libavcodec/libfdk-aacenc.c
@@ -475,16 +475,13 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
     // Check if subtraction resulted in an overflow
     if ((discard_padding < avctx->frame_size) != (avpkt->duration > 0)) {
         av_log(avctx, AV_LOG_ERROR, "discard padding overflow\n");
-        av_packet_unref(avpkt);
         return AVERROR(EINVAL);
     }
     if ((!s->delay_sent && avctx->initial_padding > 0) || discard_padding > 0) {
         uint8_t *side_data =
             av_packet_new_side_data(avpkt, AV_PKT_DATA_SKIP_SAMPLES, 10);
-        if (!side_data) {
-            av_packet_unref(avpkt);
+        if (!side_data)
             return AVERROR(ENOMEM);
-        }
         if (!s->delay_sent) {
             AV_WL32(side_data, avctx->initial_padding);
             s->delay_sent = 1;
-- 
2.34.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [FFmpeg-devel] [PATCH 3/3] avcodec/libopusenc: Remove redundant av_packet_unref()
  2023-03-13  4:13 [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: Remove redundant av_packet_unref() Andreas Rheinhardt
  2023-03-13  4:14 ` [FFmpeg-devel] [PATCH 2/3] avcodec/libfdk-aacenc: " Andreas Rheinhardt
@ 2023-03-13  4:15 ` Andreas Rheinhardt
  2023-03-15 16:00 ` [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: " Andreas Rheinhardt
  2 siblings, 0 replies; 4+ messages in thread
From: Andreas Rheinhardt @ 2023-03-13  4:15 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Andreas Rheinhardt

The AVPacket given to an encoder's encode callback
is unreferenced generically on error.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/libopusenc.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
index 75bc491c9e..5a0786f32f 100644
--- a/libavcodec/libopusenc.c
+++ b/libavcodec/libopusenc.c
@@ -512,18 +512,14 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt,
 
     discard_padding = opus->opts.packet_size - avpkt->duration;
     // Check if subtraction resulted in an overflow
-    if ((discard_padding < opus->opts.packet_size) != (avpkt->duration > 0)) {
-        av_packet_unref(avpkt);
+    if ((discard_padding < opus->opts.packet_size) != (avpkt->duration > 0))
         return AVERROR(EINVAL);
-    }
     if (discard_padding > 0) {
         uint8_t* side_data = av_packet_new_side_data(avpkt,
                                                      AV_PKT_DATA_SKIP_SAMPLES,
                                                      10);
-        if(!side_data) {
-            av_packet_unref(avpkt);
+        if (!side_data)
             return AVERROR(ENOMEM);
-        }
         AV_WL32(side_data + 4, discard_padding);
     }
 
-- 
2.34.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: Remove redundant av_packet_unref()
  2023-03-13  4:13 [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: Remove redundant av_packet_unref() Andreas Rheinhardt
  2023-03-13  4:14 ` [FFmpeg-devel] [PATCH 2/3] avcodec/libfdk-aacenc: " Andreas Rheinhardt
  2023-03-13  4:15 ` [FFmpeg-devel] [PATCH 3/3] avcodec/libopusenc: " Andreas Rheinhardt
@ 2023-03-15 16:00 ` Andreas Rheinhardt
  2 siblings, 0 replies; 4+ messages in thread
From: Andreas Rheinhardt @ 2023-03-15 16:00 UTC (permalink / raw)
  To: ffmpeg-devel

Andreas Rheinhardt:
> The AVPacket given to an encoder's encode callback
> is unreferenced generically on error.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
> This stuff should probably be moved into the AudioFrameQueue
> someday.
> 
>  libavcodec/libmp3lame.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c
> index 26e58baa3d..e119189f2a 100644
> --- a/libavcodec/libmp3lame.c
> +++ b/libavcodec/libmp3lame.c
> @@ -280,17 +280,14 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
>          // Check if subtraction resulted in an overflow
>          if ((discard_padding < avctx->frame_size) != (avpkt->duration > 0)) {
>              av_log(avctx, AV_LOG_ERROR, "discard padding overflow\n");
> -            av_packet_unref(avpkt);
>              return AVERROR(EINVAL);
>          }
>          if ((!s->delay_sent && avctx->initial_padding > 0) || discard_padding > 0) {
>              uint8_t* side_data = av_packet_new_side_data(avpkt,
>                                                           AV_PKT_DATA_SKIP_SAMPLES,
>                                                           10);
> -            if(!side_data) {
> -                av_packet_unref(avpkt);
> +            if (!side_data)
>                  return AVERROR(ENOMEM);
> -            }
>              if (!s->delay_sent) {
>                  AV_WL32(side_data, avctx->initial_padding);
>                  s->delay_sent = 1;

Will apply this patchset tomorrow unless there are objections.

- Andreas

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-15 16:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-13  4:13 [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: Remove redundant av_packet_unref() Andreas Rheinhardt
2023-03-13  4:14 ` [FFmpeg-devel] [PATCH 2/3] avcodec/libfdk-aacenc: " Andreas Rheinhardt
2023-03-13  4:15 ` [FFmpeg-devel] [PATCH 3/3] avcodec/libopusenc: " Andreas Rheinhardt
2023-03-15 16:00 ` [FFmpeg-devel] [PATCH 1/3] avcodec/libmp3lame: " Andreas Rheinhardt

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git