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

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Nov 18 00:30:57 PST 2013


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

--- Comment #33 from Jesper Larsen <jesper.larsen at ixonos.com> 2013-11-18 08:30:50 UTC ---
(In reply to comment #27)
> (In reply to comment #15)
> > Created an attachment (id=258536)
 View: https://bugzilla.gnome.org/attachment.cgi?id=258536
 Review: https://bugzilla.gnome.org/review?bug=671136&attachment=258536

[details] [review]
> > Use big endian UCS-2 coding
> > 
> > Decoding of control codes in multi byte character maps requires big endian
> 
> Is that compatible with the previous behaviour ?
> 

No, but I suspect a small bug in the previous behaviour. The problem is only
seen on strings with a multi byte character map and with the special control
codes. I.e. 0xE08A for newline.

The control codes are parsed in
gst-libs/gst/mpegts/gstmpegtsdescriptor.c:convert_to_utf8

while (*text != '\0') {                                                         
  guint16 code = GST_READ_UINT16_BE (text);                                     
  switch (code) {                                                               
    case 0xE086:         /* emphasis on */                                      
    case 0xE087:         /* emphasis off */                                     
      /* skip it */                                                             
      break;                                                                    
    case 0xE08A:{                                                               
      pos[0] = 0x00;      /* 0x00 0x0A is a new line */                         
      pos[1] = 0x0A;                                                            
      pos += 2;                                                                 
      break;                                                                    
    }                                                                           
    default:                                                                    
      pos[0] = text[0];                                                         
      pos[1] = text[1];                                                         
      pos += 2;                                                                 
      break;                                                                    
    }                                                                           
    text += 2;              
}

This parsing is big endian specific.

The character maps _ICONV_ISO10646_UC2 and _ICONV_UCS_2BE should be compliant,
but the old _ICONV_ISO10646_UC2 produces little endian strings on my setup.

-- 
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