diff mbox series

[FFmpeg-devel,1/2] mpegtsenc: Restrict "async" behavior to KLV async packets

Message ID 20230309170405.25457-1-dheitmueller@ltnglobal.com
State Accepted
Commit 6273fb36ccefa38f4bd378d1611375492e70cac6
Headers show
Series [FFmpeg-devel,1/2] mpegtsenc: Restrict "async" behavior to KLV async packets | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Devin Heitmueller March 9, 2023, 5:04 p.m. UTC
The original code would strip off the PTS/DTS of any packets
which had a stream ID of STREAM_ID_PRIVATE_STREAM_1.  While the
intent was to apply this to asynchronous KLV packets, it was
being applied to any codec that had that same stream ID (including
types such as SMPTE 2038).

Add a clause to the if() statement to ensure it only gets applied
if the codec actually is KLV.

Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com>
---
 libavformat/mpegtsenc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Marton Balint March 16, 2023, 10:41 p.m. UTC | #1
On Thu, 9 Mar 2023, Devin Heitmueller wrote:

> The original code would strip off the PTS/DTS of any packets
> which had a stream ID of STREAM_ID_PRIVATE_STREAM_1.  While the
> intent was to apply this to asynchronous KLV packets, it was
> being applied to any codec that had that same stream ID (including
> types such as SMPTE 2038).
>
> Add a clause to the if() statement to ensure it only gets applied
> if the codec actually is KLV.

Thanks, will apply.

Regards,
Marton

>
> Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com>
> ---
> libavformat/mpegtsenc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
> index ceed089587..3f201cce1d 100644
> --- a/libavformat/mpegtsenc.c
> +++ b/libavformat/mpegtsenc.c
> @@ -1455,7 +1455,8 @@ static int get_pes_stream_id(AVFormatContext *s, AVStream *st, int stream_id, in
>                st->codecpar->codec_id == AV_CODEC_ID_TIMED_ID3) {
>         return STREAM_ID_PRIVATE_STREAM_1;
>     } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) {
> -        if (stream_id == STREAM_ID_PRIVATE_STREAM_1) /* asynchronous KLV */
> +        if (st->codecpar->codec_id == AV_CODEC_ID_SMPTE_KLV &&
> +            stream_id == STREAM_ID_PRIVATE_STREAM_1) /* asynchronous KLV */
>             *async = 1;
>         return stream_id != -1 ? stream_id : STREAM_ID_METADATA_STREAM;
>     } else {
> -- 
> 2.35.1.655.ga68dfadae5
>
> _______________________________________________
> 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".
>
diff mbox series

Patch

diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index ceed089587..3f201cce1d 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -1455,7 +1455,8 @@  static int get_pes_stream_id(AVFormatContext *s, AVStream *st, int stream_id, in
                st->codecpar->codec_id == AV_CODEC_ID_TIMED_ID3) {
         return STREAM_ID_PRIVATE_STREAM_1;
     } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) {
-        if (stream_id == STREAM_ID_PRIVATE_STREAM_1) /* asynchronous KLV */
+        if (st->codecpar->codec_id == AV_CODEC_ID_SMPTE_KLV &&
+            stream_id == STREAM_ID_PRIVATE_STREAM_1) /* asynchronous KLV */
             *async = 1;
         return stream_id != -1 ? stream_id : STREAM_ID_METADATA_STREAM;
     } else {