[gstreamer-bugs] [Bug 343519] New: [rmdemux] Stripped valuable data for decoding?
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Wed May 31 09:09:42 PDT 2006
Do not reply to this via email (we are currently unable to handle email
responses and they get discarded). You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=343519
GStreamer | gst-plugins-ugly | Ver: 0.10.3
Summary: [rmdemux] Stripped valuable data for decoding?
Product: GStreamer
Version: 0.10.3
Platform: Other
OS/Version: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-ugly
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: mozbugbox at yahoo.com.au
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME version: Unspecified
GNOME milestone: Unspecified
Please describe the problem:
It seems that the packet data in gst_rmdemux_parse_packet() was stripped before
passing to the pad.
In Mplayer, libmpcodecs/vd_realvid.c, decode() shows that the header is also
needed to prepor decode realvideo codec:
// copypaste from demux_real.c - it should match to get it working!
typedef struct dp_hdr_s {
uint32_t chunks; // number of chunks
uint32_t timestamp; // timestamp from packet header
uint32_t len; // length of actual data
uint32_t chunktab; // offset to chunk offset array
} dp_hdr_t;
// decode a frame
static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){
mp_image_t* mpi;
unsigned long result;
dp_hdr_t* dp_hdr=(dp_hdr_t*)data;
unsigned char* dp_data=((unsigned char*)data)+sizeof(dp_hdr_t);
uint32_t* extra=(uint32_t*)(((char*)data)+dp_hdr->chunktab);
unsigned char* buffer;
unsigned int transform_out[5];
transform_in_t transform_in={
dp_hdr->len, // length of the packet (sub-packets appended)
0, // unknown, seems to be unused
dp_hdr->chunks, // number of sub-packets - 1
extra, // table of sub-packet offsets
0, // unknown, seems to be unused
dp_hdr->timestamp,// timestamp (the integer value from the
stream)
};
....
result=(*rvyuv_transform)(dp_data, buffer, &transform_in,
transform_out, sh->context);
Steps to reproduce:
1.
2.
3.
Actual results:
Expected results:
Maybe the packet header should be passed along in some cap field. Since other
demux also handle realmedia codec (like matroska demuxer), what's the proper
way to unify all the demuxers?
matroska demuxer has other problems like don't pass along 'format' and
'subformat' and codec_data to _setcap.
Does this happen every time?
Other information:
--
Configure bugmail: http://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