diff options
author | Georgi Chorbadzhiyski <gf@unixsol.org> | 2011-01-20 09:26:40 +0200 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-01-20 11:31:20 +0000 |
commit | 69688e71bc4c4318209e8d4e3861c47186caebda (patch) | |
tree | 620ab6ef97dc49d6a2ebabc42be1e07475fc8a7d /libavformat/mpegtsenc.c | |
parent | b9c7f66e6da8ac77eaa0c3fb6d476e6fc929b3c9 (diff) | |
download | ffmpeg-69688e71bc4c4318209e8d4e3861c47186caebda.tar.gz |
Add service_provider and service_name metadata
This patch adds support in mpegts muxer for using service_provider and
service_name metadata to set service_provider_name and service_name
fields in SDT.
Example usage:
ffmpeg -i file.ts -f mpegts -re -acodec copy -vcodec copy -f mpegts \
-metadata service_provider="Some provider" \
-metadata service_name="Some Channel" \
"udp://239.0.70.2:5000?pkt_size=1316&ttl=1"
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavformat/mpegtsenc.c')
-rw-r--r-- | libavformat/mpegtsenc.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index bfd21db139..14bbd62ab4 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -391,18 +391,22 @@ static int mpegts_write_header(AVFormatContext *s) MpegTSWriteStream *ts_st; MpegTSService *service; AVStream *st, *pcr_st = NULL; - AVMetadataTag *title; + AVMetadataTag *title, *provider; int i, j; const char *service_name; + const char *provider_name; int *pids; ts->tsid = DEFAULT_TSID; ts->onid = DEFAULT_ONID; /* allocate a single DVB service */ title = av_metadata_get(s->metadata, "title", NULL, 0); + if (!title) + title = av_metadata_get(s->metadata, "service_name", NULL, 0); service_name = title ? title->value : DEFAULT_SERVICE_NAME; - service = mpegts_add_service(ts, DEFAULT_SID, - DEFAULT_PROVIDER_NAME, service_name); + provider = av_metadata_get(s->metadata, "service_provider", NULL, 0); + provider_name = provider ? provider->value : DEFAULT_PROVIDER_NAME; + service = mpegts_add_service(ts, DEFAULT_SID, provider_name, service_name); service->pmt.write_packet = section_write_packet; service->pmt.opaque = s; service->pmt.cc = 15; |