[Bug 671136] mpegtsmux: add support for SDT and NIT tables for DVB-S/DVB-T

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Oct 16 14:29:20 CEST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=671136
  GStreamer | gst-plugins-bad | git

--- Comment #4 from Edward Hervey <bilboed at bilboed.com> 2013-10-16 12:29:15 UTC ---
(In reply to comment #3)
> Created an attachment (id=257410)
 View: https://bugzilla.gnome.org/attachment.cgi?id=257410
 Review: https://bugzilla.gnome.org/review?bug=671136&attachment=257410

> mpeg-ts changes
> 
> I have a basic implementation working now. I will wait for the refactoring in
> https://bugzilla.gnome.org/show_bug.cgi?id=709826 in order to adapt the changes
> I have in gst/mpegtsmux.
> 
> However, I would like to discuss changes to the mpeg-ts lib.
> 
> What is the general intention for GstMpegTsSection? Would it ideally replace
> the current TsMuxSection?

  It was in the back of my mind when designing the mpeg-ts lib (to be honest,
until a few days ago I hadn't looked that much in depth at mpegtsmux).

> 
> The mpeg-ts lib is mostly tuned for parsing at the moment. The patch I attached
> is the changes I have made to get my basic implementation working. It includes
> a function used to synchronize the public part of GstMpegTsSection with the
> data field. Basically it is the reverse of the gst_mpegts_section_new function.
> 
> I added a small set_version function to illustrate how updates of the section
> could happen. In this approach it would make sense to mark the version_number
> as private instead of public though. I'm not really fancying that.
> 
> The muxer in my implementation gets the data through the
> gst_mpegts_section_get_buffer function, which just wraps the sections data
> field in a GstBuffer.
> 
> Is any of this in line with the thoughts about the mpeg-ts lib?


One potential idea would be to be able to create the opposite of the
gst_mpegts_section_get_* and have gst_mpegts_section_from_*

Ex:
GstMpegTSSection *gst_mpegts_section_from_nit(GstMpegTsNIT *nit);

That would store the argument in GstMpegTSSection's parsed_data (private).

You could then set whatever public fields you want on the section (say the
version) and then call a generic function to serialize it to a binary section
data (which you can then inject in a muxer).

guint8 *gst_mpegts_section_packetize(GstMpegTSSection *section, gsize
*output_size);

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list