* [FFmpeg-devel] [PATCH] avformat/mpegts: add a ts_id exported option
@ 2024-02-19 2:48 James Almer
2024-02-19 11:20 ` Andreas Rheinhardt
0 siblings, 1 reply; 3+ messages in thread
From: James Almer @ 2024-02-19 2:48 UTC (permalink / raw)
To: ffmpeg-devel
Replaces AVFormatContext.ts_id
Signed-off-by: James Almer <jamrial@gmail.com>
---
To be pushed as part of the bump set.
libavformat/avformat.h | 6 ------
libavformat/mpegts.c | 9 +++++++--
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 50bbd1949b..affc5fde07 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1538,12 +1538,6 @@ typedef struct AVFormatContext {
#define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative
#define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0
- /**
- * Transport stream id.
- * This will be moved into demuxer private options. Thus no API/ABI compatibility
- */
- int ts_id;
-
/**
* Audio preload in microseconds.
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 1cf390e98e..36fded8db8 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -167,6 +167,8 @@ struct MpegTSContext {
int merge_pmt_versions;
int max_packet_size;
+ int id;
+
/******************************************/
/* private mpegts data */
/* scan context */
@@ -184,7 +186,10 @@ struct MpegTSContext {
};
#define MPEGTS_OPTIONS \
- { "resync_size", "set size limit for looking up a new synchronization", offsetof(MpegTSContext, resync_size), AV_OPT_TYPE_INT, { .i64 = MAX_RESYNC_SIZE}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }
+ { "resync_size", "set size limit for looking up a new synchronization", \
+ offsetof(MpegTSContext, resync_size), AV_OPT_TYPE_INT, { .i64 = MAX_RESYNC_SIZE}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, \
+ { "ts_id", "transport stream id", \
+ offsetof(MpegTSContext, id), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, AV_OPT_FLAG_EXPORT|AV_OPT_FLAG_READONLY }
static const AVOption options[] = {
MPEGTS_OPTIONS,
@@ -2554,7 +2559,7 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
if (skip_identical(h, tssf))
return;
- ts->stream->ts_id = h->id;
+ ts->id = h->id;
for (;;) {
sid = get16(&p, p_end);
--
2.43.2
_______________________________________________
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] 3+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/mpegts: add a ts_id exported option
2024-02-19 2:48 [FFmpeg-devel] [PATCH] avformat/mpegts: add a ts_id exported option James Almer
@ 2024-02-19 11:20 ` Andreas Rheinhardt
2024-02-19 14:10 ` James Almer
0 siblings, 1 reply; 3+ messages in thread
From: Andreas Rheinhardt @ 2024-02-19 11:20 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> Replaces AVFormatContext.ts_id
>
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> To be pushed as part of the bump set.
>
> libavformat/avformat.h | 6 ------
> libavformat/mpegts.c | 9 +++++++--
> 2 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
> index 50bbd1949b..affc5fde07 100644
> --- a/libavformat/avformat.h
> +++ b/libavformat/avformat.h
> @@ -1538,12 +1538,6 @@ typedef struct AVFormatContext {
> #define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative
> #define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0
>
> - /**
> - * Transport stream id.
> - * This will be moved into demuxer private options. Thus no API/ABI compatibility
> - */
> - int ts_id;
> -
> /**
> * Audio preload in microseconds.
> * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
> index 1cf390e98e..36fded8db8 100644
> --- a/libavformat/mpegts.c
> +++ b/libavformat/mpegts.c
> @@ -167,6 +167,8 @@ struct MpegTSContext {
> int merge_pmt_versions;
> int max_packet_size;
>
> + int id;
> +
> /******************************************/
> /* private mpegts data */
> /* scan context */
> @@ -184,7 +186,10 @@ struct MpegTSContext {
> };
>
> #define MPEGTS_OPTIONS \
> - { "resync_size", "set size limit for looking up a new synchronization", offsetof(MpegTSContext, resync_size), AV_OPT_TYPE_INT, { .i64 = MAX_RESYNC_SIZE}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }
> + { "resync_size", "set size limit for looking up a new synchronization", \
> + offsetof(MpegTSContext, resync_size), AV_OPT_TYPE_INT, { .i64 = MAX_RESYNC_SIZE}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, \
> + { "ts_id", "transport stream id", \
> + offsetof(MpegTSContext, id), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, AV_OPT_FLAG_EXPORT|AV_OPT_FLAG_READONLY }
>
> static const AVOption options[] = {
> MPEGTS_OPTIONS,
> @@ -2554,7 +2559,7 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
>
> if (skip_identical(h, tssf))
> return;
> - ts->stream->ts_id = h->id;
> + ts->id = h->id;
>
> for (;;) {
> sid = get16(&p, p_end);
Patchwork shows that several ts fate tests fail with this patch,
presumably because ffprobe prints exported options (see
print_private_data()).
Anyway, I don't see why you not add the option now and remove the public
field with the bump.
- 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] 3+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/mpegts: add a ts_id exported option
2024-02-19 11:20 ` Andreas Rheinhardt
@ 2024-02-19 14:10 ` James Almer
0 siblings, 0 replies; 3+ messages in thread
From: James Almer @ 2024-02-19 14:10 UTC (permalink / raw)
To: ffmpeg-devel
On 2/19/2024 8:20 AM, Andreas Rheinhardt wrote:
> James Almer:
>> Replaces AVFormatContext.ts_id
>>
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> To be pushed as part of the bump set.
>>
>> libavformat/avformat.h | 6 ------
>> libavformat/mpegts.c | 9 +++++++--
>> 2 files changed, 7 insertions(+), 8 deletions(-)
>>
>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h
>> index 50bbd1949b..affc5fde07 100644
>> --- a/libavformat/avformat.h
>> +++ b/libavformat/avformat.h
>> @@ -1538,12 +1538,6 @@ typedef struct AVFormatContext {
>> #define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative
>> #define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0
>>
>> - /**
>> - * Transport stream id.
>> - * This will be moved into demuxer private options. Thus no API/ABI compatibility
>> - */
>> - int ts_id;
>> -
>> /**
>> * Audio preload in microseconds.
>> * Note, not all formats support this and unpredictable things may happen if it is used when not supported.
>> diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
>> index 1cf390e98e..36fded8db8 100644
>> --- a/libavformat/mpegts.c
>> +++ b/libavformat/mpegts.c
>> @@ -167,6 +167,8 @@ struct MpegTSContext {
>> int merge_pmt_versions;
>> int max_packet_size;
>>
>> + int id;
>> +
>> /******************************************/
>> /* private mpegts data */
>> /* scan context */
>> @@ -184,7 +186,10 @@ struct MpegTSContext {
>> };
>>
>> #define MPEGTS_OPTIONS \
>> - { "resync_size", "set size limit for looking up a new synchronization", offsetof(MpegTSContext, resync_size), AV_OPT_TYPE_INT, { .i64 = MAX_RESYNC_SIZE}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }
>> + { "resync_size", "set size limit for looking up a new synchronization", \
>> + offsetof(MpegTSContext, resync_size), AV_OPT_TYPE_INT, { .i64 = MAX_RESYNC_SIZE}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, \
>> + { "ts_id", "transport stream id", \
>> + offsetof(MpegTSContext, id), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, AV_OPT_FLAG_EXPORT|AV_OPT_FLAG_READONLY }
>>
>> static const AVOption options[] = {
>> MPEGTS_OPTIONS,
>> @@ -2554,7 +2559,7 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
>>
>> if (skip_identical(h, tssf))
>> return;
>> - ts->stream->ts_id = h->id;
>> + ts->id = h->id;
>>
>> for (;;) {
>> sid = get16(&p, p_end);
>
> Patchwork shows that several ts fate tests fail with this patch,
> presumably because ffprobe prints exported options (see
> print_private_data()).
Amended locally with the updated refs.
> Anyway, I don't see why you not add the option now and remove the public
> field with the bump.
Ok, will do that and apply now.
Thanks.
_______________________________________________
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] 3+ messages in thread
end of thread, other threads:[~2024-02-19 14:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-19 2:48 [FFmpeg-devel] [PATCH] avformat/mpegts: add a ts_id exported option James Almer
2024-02-19 11:20 ` Andreas Rheinhardt
2024-02-19 14:10 ` James Almer
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