mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
filter newlines out of GST_DEBUG statements to reflect new core behavior fixes to adder's caps, again
Original commit message from CVS: * filter newlines out of GST_DEBUG statements to reflect new core behavior * fixes to adder's caps, again
This commit is contained in:
parent
37c63c864c
commit
4ebed89637
14 changed files with 121 additions and 121 deletions
|
@ -742,7 +742,7 @@ dvdsrc_change_state (GstElement *element)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GST_IS_DVDSRC (element), GST_STATE_FAILURE);
|
g_return_val_if_fail (GST_IS_DVDSRC (element), GST_STATE_FAILURE);
|
||||||
|
|
||||||
GST_DEBUG (0,"gstdisksrc: state pending %d\n", GST_STATE_PENDING (element));
|
GST_DEBUG (0,"gstdisksrc: state pending %d", GST_STATE_PENDING (element));
|
||||||
|
|
||||||
/* if going down into NULL state, close the file if it's open */
|
/* if going down into NULL state, close the file if it's open */
|
||||||
if (GST_STATE_PENDING (element) == GST_STATE_NULL) {
|
if (GST_STATE_PENDING (element) == GST_STATE_NULL) {
|
||||||
|
|
|
@ -347,7 +347,7 @@ gst_lame_sinkconnect (GstPad *pad, GstCaps *caps)
|
||||||
|
|
||||||
if (!GST_CAPS_IS_FIXED (caps))
|
if (!GST_CAPS_IS_FIXED (caps))
|
||||||
{
|
{
|
||||||
GST_DEBUG (GST_CAT_CAPS, "caps on lame pad %s:%s not fixed, delayed\n",
|
GST_DEBUG (GST_CAT_CAPS, "caps on lame pad %s:%s not fixed, delayed",
|
||||||
GST_DEBUG_PAD_NAME (pad));
|
GST_DEBUG_PAD_NAME (pad));
|
||||||
return GST_PAD_CONNECT_DELAYED;
|
return GST_PAD_CONNECT_DELAYED;
|
||||||
}
|
}
|
||||||
|
@ -360,7 +360,7 @@ gst_lame_sinkconnect (GstPad *pad, GstCaps *caps)
|
||||||
/* check if the supplied caps of the peer element are compatible with our own use gst_pad_get_caps because if caps aren't set yet we need the template */
|
/* check if the supplied caps of the peer element are compatible with our own use gst_pad_get_caps because if caps aren't set yet we need the template */
|
||||||
if (!gst_caps_check_compatibility (caps, gst_pad_get_caps (pad)))
|
if (!gst_caps_check_compatibility (caps, gst_pad_get_caps (pad)))
|
||||||
{
|
{
|
||||||
GST_DEBUG (GST_CAT_CAPS, "peer caps (%p) not compatible with caps of pad %s:%s!\n",
|
GST_DEBUG (GST_CAT_CAPS, "peer caps (%p) not compatible with caps of pad %s:%s!",
|
||||||
caps, GST_DEBUG_PAD_NAME (pad));
|
caps, GST_DEBUG_PAD_NAME (pad));
|
||||||
return GST_PAD_CONNECT_REFUSED;
|
return GST_PAD_CONNECT_REFUSED;
|
||||||
}
|
}
|
||||||
|
@ -401,7 +401,7 @@ gst_lame_init (GstLame *lame)
|
||||||
|
|
||||||
GST_FLAG_SET (lame, GST_ELEMENT_EVENT_AWARE);
|
GST_FLAG_SET (lame, GST_ELEMENT_EVENT_AWARE);
|
||||||
|
|
||||||
GST_DEBUG (GST_CAT_PLUGIN_INFO, "setting up lame encoder\n");
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "setting up lame encoder");
|
||||||
lame->lgf = lame_init ();
|
lame->lgf = lame_init ();
|
||||||
|
|
||||||
lame->samplerate = 44100;
|
lame->samplerate = 44100;
|
||||||
|
@ -440,7 +440,7 @@ gst_lame_init (GstLame *lame)
|
||||||
lame->no_short_blocks = lame_get_no_short_blocks (lame->lgf);
|
lame->no_short_blocks = lame_get_no_short_blocks (lame->lgf);
|
||||||
lame->emphasis = lame_get_emphasis (lame->lgf);
|
lame->emphasis = lame_get_emphasis (lame->lgf);
|
||||||
|
|
||||||
GST_DEBUG (GST_CAT_PLUGIN_INFO, "done initializing lame element\n");
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "done initializing lame element");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -681,7 +681,7 @@ gst_lame_chain (GstPad *pad, GstBuffer *buf)
|
||||||
|
|
||||||
lame = GST_LAME (gst_pad_get_parent (pad));
|
lame = GST_LAME (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
GST_DEBUG (GST_CAT_PLUGIN_INFO, "entered chain\n");
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "entered chain");
|
||||||
|
|
||||||
if (!lame->initialized) {
|
if (!lame->initialized) {
|
||||||
gst_element_error (GST_ELEMENT (lame), "encoder not initialized (input is not audio?)");
|
gst_element_error (GST_ELEMENT (lame), "encoder not initialized (input is not audio?)");
|
||||||
|
@ -729,7 +729,7 @@ gst_lame_chain (GstPad *pad, GstBuffer *buf)
|
||||||
mp3_data, mp3_buffer_size);
|
mp3_data, mp3_buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG (GST_CAT_PLUGIN_INFO, "encoded %d bytes of audio to %d bytes of mp3\n", GST_BUFFER_SIZE (buf), mp3_size);
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "encoded %d bytes of audio to %d bytes of mp3", GST_BUFFER_SIZE (buf), mp3_size);
|
||||||
gst_buffer_unref (buf);
|
gst_buffer_unref (buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -822,7 +822,7 @@ gst_lame_change_state (GstElement *element)
|
||||||
|
|
||||||
lame = GST_LAME (element);
|
lame = GST_LAME (element);
|
||||||
|
|
||||||
GST_DEBUG (0,"state pending %d\n", GST_STATE_PENDING (element));
|
GST_DEBUG (0,"state pending %d", GST_STATE_PENDING (element));
|
||||||
|
|
||||||
switch (GST_STATE_TRANSITION (element)) {
|
switch (GST_STATE_TRANSITION (element)) {
|
||||||
case GST_STATE_READY_TO_NULL:
|
case GST_STATE_READY_TO_NULL:
|
||||||
|
|
|
@ -223,7 +223,7 @@ gst_mpeg2dec_vo_frame_draw (vo_frame_t * frame)
|
||||||
|
|
||||||
GST_BUFFER_TIMESTAMP (_frame->buffer) = pts;
|
GST_BUFFER_TIMESTAMP (_frame->buffer) = pts;
|
||||||
|
|
||||||
GST_DEBUG (0, "out: %lld %d %lld\n", GST_BUFFER_TIMESTAMP (_frame->buffer),
|
GST_DEBUG (0, "out: %lld %d %lld", GST_BUFFER_TIMESTAMP (_frame->buffer),
|
||||||
mpeg2dec->decoder->frame_rate_code,
|
mpeg2dec->decoder->frame_rate_code,
|
||||||
(long long)(1000000LL/video_rates[mpeg2dec->decoder->frame_rate_code]));
|
(long long)(1000000LL/video_rates[mpeg2dec->decoder->frame_rate_code]));
|
||||||
|
|
||||||
|
@ -438,7 +438,7 @@ gst_mpeg2dec_chain (GstPad *pad, GstBuffer *buf)
|
||||||
guint num_frames;
|
guint num_frames;
|
||||||
gint64 pts;
|
gint64 pts;
|
||||||
|
|
||||||
GST_DEBUG (0, "MPEG2DEC: chain called\n");
|
GST_DEBUG (0, "MPEG2DEC: chain called");
|
||||||
|
|
||||||
if (GST_IS_EVENT (buf)) {
|
if (GST_IS_EVENT (buf)) {
|
||||||
GstEvent *ev = GST_EVENT (buf);
|
GstEvent *ev = GST_EVENT (buf);
|
||||||
|
|
|
@ -239,7 +239,7 @@ sid_typefind (GstBuffer *buf, gpointer priv)
|
||||||
guchar *data = GST_BUFFER_DATA (buf);
|
guchar *data = GST_BUFFER_DATA (buf);
|
||||||
GstCaps *newcaps;
|
GstCaps *newcaps;
|
||||||
|
|
||||||
GST_DEBUG (0,"sid_demux: typefind\n");
|
GST_DEBUG (0,"sid_demux: typefind");
|
||||||
|
|
||||||
if (strncmp ((const char *)data, "PSID", 4))
|
if (strncmp ((const char *)data, "PSID", 4))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -48,7 +48,7 @@ GstRiff *gst_riff_encoder_new(guint32 type) {
|
||||||
GstRiff *riff;
|
GstRiff *riff;
|
||||||
gst_riff_list *list;
|
gst_riff_list *list;
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_encoder: making %4.4s encoder\n", (char *)&type);
|
GST_DEBUG (0,"gst_riff_encoder: making %4.4s encoder", (char *)&type);
|
||||||
riff = (GstRiff *)g_malloc(sizeof(GstRiff));
|
riff = (GstRiff *)g_malloc(sizeof(GstRiff));
|
||||||
g_return_val_if_fail(riff != NULL, NULL);
|
g_return_val_if_fail(riff != NULL, NULL);
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ gint gst_riff_encoder_avih(GstRiff *riff, gst_riff_avih *head, gulong size) {
|
||||||
|
|
||||||
g_return_val_if_fail(riff->state == GST_RIFF_STATE_INITIAL, GST_RIFF_EINVAL);
|
g_return_val_if_fail(riff->state == GST_RIFF_STATE_INITIAL, GST_RIFF_EINVAL);
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_encoder: add avih\n");
|
GST_DEBUG (0,"gst_riff_encoder: add avih");
|
||||||
|
|
||||||
ADD_LIST(riff, 0xB8, GST_RIFF_LIST_hdrl);
|
ADD_LIST(riff, 0xB8, GST_RIFF_LIST_hdrl);
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ gint gst_riff_encoder_strh(GstRiff *riff, guint32 fcc_type, gst_riff_strh *head,
|
||||||
g_return_val_if_fail(riff->state == GST_RIFF_STATE_HASAVIH ||
|
g_return_val_if_fail(riff->state == GST_RIFF_STATE_HASAVIH ||
|
||||||
riff->state == GST_RIFF_STATE_HASSTRF, GST_RIFF_EINVAL);
|
riff->state == GST_RIFF_STATE_HASSTRF, GST_RIFF_EINVAL);
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_encoder: add strh type %08x (%4.4s)\n", fcc_type, (char *)&fcc_type);
|
GST_DEBUG (0,"gst_riff_encoder: add strh type %08x (%4.4s)", fcc_type, (char *)&fcc_type);
|
||||||
|
|
||||||
ADD_LIST(riff, 108, GST_RIFF_LIST_strl);
|
ADD_LIST(riff, 108, GST_RIFF_LIST_strl);
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ gint gst_riff_encoder_strf(GstRiff *riff, void *format, gulong size) {
|
||||||
|
|
||||||
g_return_val_if_fail(riff->state == GST_RIFF_STATE_HASSTRH, GST_RIFF_EINVAL);
|
g_return_val_if_fail(riff->state == GST_RIFF_STATE_HASSTRH, GST_RIFF_EINVAL);
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_encoder: add strf\n");
|
GST_DEBUG (0,"gst_riff_encoder: add strf");
|
||||||
|
|
||||||
ADD_CHUNK(riff, GST_RIFF_TAG_strf, size);
|
ADD_CHUNK(riff, GST_RIFF_TAG_strf, size);
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ gint gst_riff_encoder_chunk(GstRiff *riff, guint32 chunk_type, void *chunkdata,
|
||||||
riff->state = GST_RIFF_STATE_MOVI;
|
riff->state = GST_RIFF_STATE_MOVI;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_encoder: add chunk type %08x (%4.4s)\n", chunk_type, (char *)&chunk_type);
|
GST_DEBUG (0,"gst_riff_encoder: add chunk type %08x (%4.4s)", chunk_type, (char *)&chunk_type);
|
||||||
|
|
||||||
ADD_CHUNK(riff, chunk_type, size);
|
ADD_CHUNK(riff, chunk_type, size);
|
||||||
|
|
||||||
|
|
|
@ -56,12 +56,12 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
size = GST_BUFFER_SIZE(buf);
|
size = GST_BUFFER_SIZE(buf);
|
||||||
last = off + size;
|
last = off + size;
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_parser: offset new buffer 0x%08lx size 0x%08x\n", off, GST_BUFFER_SIZE(buf));
|
GST_DEBUG (0,"gst_riff_parser: offset new buffer 0x%08lx size 0x%08x", off, GST_BUFFER_SIZE(buf));
|
||||||
|
|
||||||
if (riff->dataleft) {
|
if (riff->dataleft) {
|
||||||
gulong newsize;
|
gulong newsize;
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_parser: recovering left data\n");
|
GST_DEBUG (0,"gst_riff_parser: recovering left data");
|
||||||
newsize = riff->dataleft_size + size;
|
newsize = riff->dataleft_size + size;
|
||||||
riff->dataleft = g_realloc(riff->dataleft, newsize);
|
riff->dataleft = g_realloc(riff->dataleft, newsize);
|
||||||
memcpy(riff->dataleft+riff->dataleft_size, GST_BUFFER_DATA(buf), size);
|
memcpy(riff->dataleft+riff->dataleft_size, GST_BUFFER_DATA(buf), size);
|
||||||
|
@ -100,10 +100,10 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
/* if we have an incomplete chunk from the previous buffer */
|
/* if we have an incomplete chunk from the previous buffer */
|
||||||
if (riff->incomplete_chunk) {
|
if (riff->incomplete_chunk) {
|
||||||
guint leftover;
|
guint leftover;
|
||||||
GST_DEBUG (0,"gst_riff_parser: have incomplete chunk %08x filled\n", riff->incomplete_chunk_size);
|
GST_DEBUG (0,"gst_riff_parser: have incomplete chunk %08x filled", riff->incomplete_chunk_size);
|
||||||
leftover = riff->incomplete_chunk->size - riff->incomplete_chunk_size;
|
leftover = riff->incomplete_chunk->size - riff->incomplete_chunk_size;
|
||||||
if (leftover <= size) {
|
if (leftover <= size) {
|
||||||
GST_DEBUG (0,"gst_riff_parser: we can fill it from %08x with %08x bytes = %08x\n",
|
GST_DEBUG (0,"gst_riff_parser: we can fill it from %08x with %08x bytes = %08x",
|
||||||
riff->incomplete_chunk_size, leftover,
|
riff->incomplete_chunk_size, leftover,
|
||||||
riff->incomplete_chunk_size+leftover);
|
riff->incomplete_chunk_size+leftover);
|
||||||
memcpy(riff->incomplete_chunk->data+riff->incomplete_chunk_size, GST_BUFFER_DATA(buf), leftover);
|
memcpy(riff->incomplete_chunk->data+riff->incomplete_chunk_size, GST_BUFFER_DATA(buf), leftover);
|
||||||
|
@ -116,7 +116,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
riff->incomplete_chunk = NULL;
|
riff->incomplete_chunk = NULL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GST_DEBUG (0,"gst_riff_parser: we cannot fill it %08x >= %08lx\n", leftover, size);
|
GST_DEBUG (0,"gst_riff_parser: we cannot fill it %08x >= %08lx", leftover, size);
|
||||||
memcpy(riff->incomplete_chunk->data+riff->incomplete_chunk_size, GST_BUFFER_DATA(buf), size);
|
memcpy(riff->incomplete_chunk->data+riff->incomplete_chunk_size, GST_BUFFER_DATA(buf), size);
|
||||||
riff->incomplete_chunk_size += size;
|
riff->incomplete_chunk_size += size;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -125,7 +125,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
|
|
||||||
if (riff->nextlikely & 0x01) riff->nextlikely++;
|
if (riff->nextlikely & 0x01) riff->nextlikely++;
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_parser: next 0x%08x last 0x%08lx offset %08lx\n",riff->nextlikely, last, off);
|
GST_DEBUG (0,"gst_riff_parser: next 0x%08x last 0x%08lx offset %08lx",riff->nextlikely, last, off);
|
||||||
/* loop while the next likely chunk header is in this buffer */
|
/* loop while the next likely chunk header is in this buffer */
|
||||||
while ((riff->nextlikely+12) <= last) {
|
while ((riff->nextlikely+12) <= last) {
|
||||||
guint32 *words = (guint32 *)((guchar *)GST_BUFFER_DATA(buf) + riff->nextlikely - off );
|
guint32 *words = (guint32 *)((guchar *)GST_BUFFER_DATA(buf) + riff->nextlikely - off );
|
||||||
|
@ -134,17 +134,17 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
while (riff->chunks) {
|
while (riff->chunks) {
|
||||||
chunk = g_list_nth_data(riff->chunks, 0);
|
chunk = g_list_nth_data(riff->chunks, 0);
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_parser: next 0x%08x offset 0x%08lx size 0x%08x\n",riff->nextlikely,
|
GST_DEBUG (0,"gst_riff_parser: next 0x%08x offset 0x%08lx size 0x%08x",riff->nextlikely,
|
||||||
chunk->offset, chunk->size);
|
chunk->offset, chunk->size);
|
||||||
if (riff->nextlikely >= chunk->offset+chunk->size) {
|
if (riff->nextlikely >= chunk->offset+chunk->size) {
|
||||||
GST_DEBUG (0,"gst_riff_parser: found END LIST\n");
|
GST_DEBUG (0,"gst_riff_parser: found END LIST");
|
||||||
/* we have the end of the chunk on the stack, remove it */
|
/* we have the end of the chunk on the stack, remove it */
|
||||||
riff->chunks = g_list_remove(riff->chunks, chunk);
|
riff->chunks = g_list_remove(riff->chunks, chunk);
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_parser: next likely chunk is at offset 0x%08x\n",riff->nextlikely);
|
GST_DEBUG (0,"gst_riff_parser: next likely chunk is at offset 0x%08x",riff->nextlikely);
|
||||||
|
|
||||||
chunk = (GstRiffChunk *)g_malloc(sizeof(GstRiffChunk));
|
chunk = (GstRiffChunk *)g_malloc(sizeof(GstRiffChunk));
|
||||||
g_return_val_if_fail(chunk != NULL, GST_RIFF_ENOMEM);
|
g_return_val_if_fail(chunk != NULL, GST_RIFF_ENOMEM);
|
||||||
|
@ -159,7 +159,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
|
|
||||||
|
|
||||||
if (chunk->id == GST_RIFF_TAG_LIST) {
|
if (chunk->id == GST_RIFF_TAG_LIST) {
|
||||||
GST_DEBUG (0,"found LIST %s\n", gst_riff_id_to_fourcc(chunk->form));
|
GST_DEBUG (0,"found LIST %s", gst_riff_id_to_fourcc(chunk->form));
|
||||||
riff->nextlikely += 12;
|
riff->nextlikely += 12;
|
||||||
/* we push the list chunk on our 'stack' */
|
/* we push the list chunk on our 'stack' */
|
||||||
riff->chunks = g_list_prepend(riff->chunks,chunk);
|
riff->chunks = g_list_prepend(riff->chunks,chunk);
|
||||||
|
@ -170,7 +170,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
GST_DEBUG (0,"gst_riff_parser: chunk id offset %08x is 0x%08x '%s' and is 0x%08x long\n",
|
GST_DEBUG (0,"gst_riff_parser: chunk id offset %08x is 0x%08x '%s' and is 0x%08x long",
|
||||||
riff->nextlikely, GUINT32_FROM_LE (words[0]),
|
riff->nextlikely, GUINT32_FROM_LE (words[0]),
|
||||||
gst_riff_id_to_fourcc(GUINT32_FROM_LE (words[0])), GUINT32_FROM_LE (words[1]));
|
gst_riff_id_to_fourcc(GUINT32_FROM_LE (words[0])), GUINT32_FROM_LE (words[1]));
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
if (riff->nextlikely > last) {
|
if (riff->nextlikely > last) {
|
||||||
guint left = size - (riff->nextlikely - chunk->size - off);
|
guint left = size - (riff->nextlikely - chunk->size - off);
|
||||||
|
|
||||||
GST_DEBUG (0,"make incomplete buffer %08x\n", left);
|
GST_DEBUG (0,"make incomplete buffer %08x", left);
|
||||||
chunk->data = g_malloc(chunk->size);
|
chunk->data = g_malloc(chunk->size);
|
||||||
memcpy(chunk->data, (gchar *)(words+2), left);
|
memcpy(chunk->data, (gchar *)(words+2), left);
|
||||||
riff->incomplete_chunk = chunk;
|
riff->incomplete_chunk = chunk;
|
||||||
|
@ -199,7 +199,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
|
||||||
}
|
}
|
||||||
if ((riff->nextlikely+12) > last && !riff->incomplete_chunk) {
|
if ((riff->nextlikely+12) > last && !riff->incomplete_chunk) {
|
||||||
guint left = last - riff->nextlikely;
|
guint left = last - riff->nextlikely;
|
||||||
GST_DEBUG (0,"gst_riff_parser: not enough data next 0x%08x last 0x%08lx %08x %08lx\n",riff->nextlikely,
|
GST_DEBUG (0,"gst_riff_parser: not enough data next 0x%08x last 0x%08lx %08x %08lx",riff->nextlikely,
|
||||||
last, left, off);
|
last, left, off);
|
||||||
|
|
||||||
riff->dataleft = g_malloc(left);
|
riff->dataleft = g_malloc(left);
|
||||||
|
|
|
@ -209,7 +209,7 @@ gst_ac3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
/* g_return_if_fail(GST_IS_BUFFER(buf)); */
|
/* g_return_if_fail(GST_IS_BUFFER(buf)); */
|
||||||
|
|
||||||
ac3parse = GST_AC3PARSE(GST_OBJECT_PARENT (pad));
|
ac3parse = GST_AC3PARSE(GST_OBJECT_PARENT (pad));
|
||||||
GST_DEBUG (0,"ac3parse: received buffer of %d bytes\n", GST_BUFFER_SIZE (buf));
|
GST_DEBUG (0,"ac3parse: received buffer of %d bytes", GST_BUFFER_SIZE (buf));
|
||||||
|
|
||||||
/* deal with partial frame from previous buffer */
|
/* deal with partial frame from previous buffer */
|
||||||
if (ac3parse->partialbuf) {
|
if (ac3parse->partialbuf) {
|
||||||
|
@ -229,7 +229,7 @@ gst_ac3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
while (offset < size-2) {
|
while (offset < size-2) {
|
||||||
int skipped = 0;
|
int skipped = 0;
|
||||||
|
|
||||||
GST_DEBUG (0,"ac3parse: offset %ld, size %ld \n",offset, size);
|
GST_DEBUG (0,"ac3parse: offset %ld, size %ld ",offset, size);
|
||||||
|
|
||||||
/* search for a possible start byte */
|
/* search for a possible start byte */
|
||||||
for (;((data[offset] != 0x0b) && (offset < size));offset++) skipped++ ;
|
for (;((data[offset] != 0x0b) && (offset < size));offset++) skipped++ ;
|
||||||
|
@ -250,18 +250,18 @@ gst_ac3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
bpf = frmsizecod_tbl[fsize].frm_size[rate] * 2;
|
bpf = frmsizecod_tbl[fsize].frm_size[rate] * 2;
|
||||||
/* if we don't have the whole frame... */
|
/* if we don't have the whole frame... */
|
||||||
if ((size - offset) < bpf) {
|
if ((size - offset) < bpf) {
|
||||||
GST_DEBUG (0,"ac3parse: partial buffer needed %ld < %d \n",size-offset, bpf);
|
GST_DEBUG (0,"ac3parse: partial buffer needed %ld < %d ",size-offset, bpf);
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
outbuf = gst_buffer_create_sub(ac3parse->partialbuf,offset,bpf);
|
outbuf = gst_buffer_create_sub(ac3parse->partialbuf,offset,bpf);
|
||||||
|
|
||||||
offset += bpf;
|
offset += bpf;
|
||||||
if (ac3parse->skip == 0 && GST_PAD_IS_CONNECTED(ac3parse->srcpad)) {
|
if (ac3parse->skip == 0 && GST_PAD_IS_CONNECTED(ac3parse->srcpad)) {
|
||||||
GST_DEBUG (0,"ac3parse: pushing buffer of %d bytes\n",GST_BUFFER_SIZE(outbuf));
|
GST_DEBUG (0,"ac3parse: pushing buffer of %d bytes",GST_BUFFER_SIZE(outbuf));
|
||||||
gst_pad_push(ac3parse->srcpad,outbuf);
|
gst_pad_push(ac3parse->srcpad,outbuf);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GST_DEBUG (0,"ac3parse: skipping buffer of %d bytes\n",GST_BUFFER_SIZE(outbuf));
|
GST_DEBUG (0,"ac3parse: skipping buffer of %d bytes",GST_BUFFER_SIZE(outbuf));
|
||||||
gst_buffer_unref(outbuf);
|
gst_buffer_unref(outbuf);
|
||||||
ac3parse->skip--;
|
ac3parse->skip--;
|
||||||
}
|
}
|
||||||
|
@ -275,7 +275,7 @@ gst_ac3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
/* bytes left not in a partial block, copy them over. */
|
/* bytes left not in a partial block, copy them over. */
|
||||||
if (size-offset > 0) {
|
if (size-offset > 0) {
|
||||||
gint remainder = (size - offset);
|
gint remainder = (size - offset);
|
||||||
GST_DEBUG (0,"ac3parse: partial buffer needed %d for trailing bytes\n",remainder);
|
GST_DEBUG (0,"ac3parse: partial buffer needed %d for trailing bytes",remainder);
|
||||||
|
|
||||||
outbuf = gst_buffer_create_sub(ac3parse->partialbuf,offset,remainder);
|
outbuf = gst_buffer_create_sub(ac3parse->partialbuf,offset,remainder);
|
||||||
gst_buffer_unref(ac3parse->partialbuf);
|
gst_buffer_unref(ac3parse->partialbuf);
|
||||||
|
|
|
@ -37,7 +37,7 @@ mp3_typefind(GstBuffer *buf, gpointer private)
|
||||||
|
|
||||||
data = GST_BUFFER_DATA(buf);
|
data = GST_BUFFER_DATA(buf);
|
||||||
|
|
||||||
GST_DEBUG (0,"mp3typefind: typefind\n");
|
GST_DEBUG (0,"mp3typefind: typefind");
|
||||||
|
|
||||||
/* check for ID3 Tag first and forward ID3 length */
|
/* check for ID3 Tag first and forward ID3 length */
|
||||||
if (!memcmp (data, "ID3", 3))
|
if (!memcmp (data, "ID3", 3))
|
||||||
|
@ -51,11 +51,11 @@ mp3_typefind(GstBuffer *buf, gpointer private)
|
||||||
((skip & 0x007f0000) >> 2) |
|
((skip & 0x007f0000) >> 2) |
|
||||||
((skip & 0x00007f00) >> 1) |
|
((skip & 0x00007f00) >> 1) |
|
||||||
((skip & 0x0000007f) >> 0)) + 4;
|
((skip & 0x0000007f) >> 0)) + 4;
|
||||||
GST_DEBUG (0, "mp3typefind: detected ID3 Tag with %u bytes\n", skip + 6);
|
GST_DEBUG (0, "mp3typefind: detected ID3 Tag with %u bytes", skip + 6);
|
||||||
/* return if buffer is not big enough */
|
/* return if buffer is not big enough */
|
||||||
if (GST_BUFFER_SIZE (buf) < skip + 10)
|
if (GST_BUFFER_SIZE (buf) < skip + 10)
|
||||||
{
|
{
|
||||||
GST_DEBUG (0, "mp3typefind: buffer too small (%d) to go on typefinding\n", skip + 6);
|
GST_DEBUG (0, "mp3typefind: buffer too small (%d) to go on typefinding", skip + 6);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
data += skip;
|
data += skip;
|
||||||
|
|
|
@ -242,7 +242,7 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
|
|
||||||
mp3parse = GST_MP3PARSE (gst_pad_get_parent (pad));
|
mp3parse = GST_MP3PARSE (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
GST_DEBUG (0,"mp3parse: received buffer of %d bytes\n",GST_BUFFER_SIZE(buf));
|
GST_DEBUG (0,"mp3parse: received buffer of %d bytes",GST_BUFFER_SIZE(buf));
|
||||||
|
|
||||||
last_ts = GST_BUFFER_TIMESTAMP(buf);
|
last_ts = GST_BUFFER_TIMESTAMP(buf);
|
||||||
|
|
||||||
|
@ -273,12 +273,12 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
while (offset < size-4) {
|
while (offset < size-4) {
|
||||||
int skipped = 0;
|
int skipped = 0;
|
||||||
|
|
||||||
GST_DEBUG (0,"mp3parse: offset %ld, size %ld \n",offset, size);
|
GST_DEBUG (0,"mp3parse: offset %ld, size %ld ",offset, size);
|
||||||
|
|
||||||
/* search for a possible start byte */
|
/* search for a possible start byte */
|
||||||
for (;((data[offset] != 0xff) && (offset < size));offset++) skipped++;
|
for (;((data[offset] != 0xff) && (offset < size));offset++) skipped++;
|
||||||
if (skipped && !mp3parse->in_flush) {
|
if (skipped && !mp3parse->in_flush) {
|
||||||
GST_DEBUG (0,"mp3parse: **** now at %ld skipped %d bytes\n",offset,skipped);
|
GST_DEBUG (0,"mp3parse: **** now at %ld skipped %d bytes",offset,skipped);
|
||||||
}
|
}
|
||||||
/* construct the header word */
|
/* construct the header word */
|
||||||
header = GULONG_FROM_BE(*((gulong *)(data+offset)));
|
header = GULONG_FROM_BE(*((gulong *)(data+offset)));
|
||||||
|
@ -305,12 +305,12 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
if ((size-offset)<(bpf+4)) { if (mp3parse->in_flush) break; } /* wait until we have the the entire current frame as well as the next frame header */
|
if ((size-offset)<(bpf+4)) { if (mp3parse->in_flush) break; } /* wait until we have the the entire current frame as well as the next frame header */
|
||||||
|
|
||||||
header2 = GULONG_FROM_BE(*((gulong *)(data+offset+bpf)));
|
header2 = GULONG_FROM_BE(*((gulong *)(data+offset+bpf)));
|
||||||
GST_DEBUG(0,"mp3parse: header=%08lX, header2=%08lX, bpf=%d\n", header, header2, bpf );
|
GST_DEBUG(0,"mp3parse: header=%08lX, header2=%08lX, bpf=%d", header, header2, bpf );
|
||||||
|
|
||||||
#define HDRMASK ~( (0xF<<12)/*bitrate*/ | (1<<9)/*padding*/ | (3<<4)/*mode extension*/ ) /* mask the bits which are allowed to differ between frames */
|
#define HDRMASK ~( (0xF<<12)/*bitrate*/ | (1<<9)/*padding*/ | (3<<4)/*mode extension*/ ) /* mask the bits which are allowed to differ between frames */
|
||||||
|
|
||||||
if ( (header2&HDRMASK) != (header&HDRMASK) ) { /* require 2 matching headers in a row */
|
if ( (header2&HDRMASK) != (header&HDRMASK) ) { /* require 2 matching headers in a row */
|
||||||
GST_DEBUG(0,"mp3parse: next header doesn't match (header=%08lX, header2=%08lX, bpf=%d)\n", header, header2, bpf );
|
GST_DEBUG(0,"mp3parse: next header doesn't match (header=%08lX, header2=%08lX, bpf=%d)", header, header2, bpf );
|
||||||
offset++; /* This frame is invalid. Start looking for a valid frame at the next position in the stream */
|
offset++; /* This frame is invalid. Start looking for a valid frame at the next position in the stream */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -319,7 +319,7 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
|
|
||||||
/* if we don't have the whole frame... */
|
/* if we don't have the whole frame... */
|
||||||
if ((size - offset) < bpf) {
|
if ((size - offset) < bpf) {
|
||||||
GST_DEBUG (0,"mp3parse: partial buffer needed %ld < %d \n",(size-offset), bpf);
|
GST_DEBUG (0,"mp3parse: partial buffer needed %ld < %d ",(size-offset), bpf);
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -327,7 +327,7 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
|
|
||||||
offset += bpf;
|
offset += bpf;
|
||||||
if (mp3parse->skip == 0) {
|
if (mp3parse->skip == 0) {
|
||||||
GST_DEBUG (0,"mp3parse: pushing buffer of %d bytes\n",GST_BUFFER_SIZE(outbuf));
|
GST_DEBUG (0,"mp3parse: pushing buffer of %d bytes",GST_BUFFER_SIZE(outbuf));
|
||||||
if (mp3parse->in_flush) {
|
if (mp3parse->in_flush) {
|
||||||
/* FIXME do some sort of flush event */
|
/* FIXME do some sort of flush event */
|
||||||
mp3parse->in_flush = FALSE;
|
mp3parse->in_flush = FALSE;
|
||||||
|
@ -336,21 +336,21 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
|
||||||
gst_pad_push(mp3parse->srcpad,outbuf);
|
gst_pad_push(mp3parse->srcpad,outbuf);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GST_DEBUG (0,"mp3parse: skipping buffer of %d bytes\n",GST_BUFFER_SIZE(outbuf));
|
GST_DEBUG (0,"mp3parse: skipping buffer of %d bytes",GST_BUFFER_SIZE(outbuf));
|
||||||
gst_buffer_unref(outbuf);
|
gst_buffer_unref(outbuf);
|
||||||
mp3parse->skip--;
|
mp3parse->skip--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
offset++;
|
offset++;
|
||||||
if (!mp3parse->in_flush) GST_DEBUG (0,"mp3parse: *** wrong header, skipping byte (FIXME?)\n");
|
if (!mp3parse->in_flush) GST_DEBUG (0,"mp3parse: *** wrong header, skipping byte (FIXME?)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* if we have processed this block and there are still */
|
/* if we have processed this block and there are still */
|
||||||
/* bytes left not in a partial block, copy them over. */
|
/* bytes left not in a partial block, copy them over. */
|
||||||
if (size-offset > 0) {
|
if (size-offset > 0) {
|
||||||
glong remainder = (size - offset);
|
glong remainder = (size - offset);
|
||||||
GST_DEBUG (0,"mp3parse: partial buffer needed %ld for trailing bytes\n",remainder);
|
GST_DEBUG (0,"mp3parse: partial buffer needed %ld for trailing bytes",remainder);
|
||||||
|
|
||||||
outbuf = gst_buffer_create_sub(mp3parse->partialbuf,offset,remainder);
|
outbuf = gst_buffer_create_sub(mp3parse->partialbuf,offset,remainder);
|
||||||
gst_buffer_unref(mp3parse->partialbuf);
|
gst_buffer_unref(mp3parse->partialbuf);
|
||||||
|
@ -408,28 +408,28 @@ bpf_from_header (GstMPEGAudioParse *parse, unsigned long header)
|
||||||
static gboolean
|
static gboolean
|
||||||
head_check (unsigned long head)
|
head_check (unsigned long head)
|
||||||
{
|
{
|
||||||
GST_DEBUG (0,"checking mp3 header 0x%08lx\n",head);
|
GST_DEBUG (0,"checking mp3 header 0x%08lx",head);
|
||||||
/* if it's not a valid sync */
|
/* if it's not a valid sync */
|
||||||
if ((head & 0xffe00000) != 0xffe00000) {
|
if ((head & 0xffe00000) != 0xffe00000) {
|
||||||
GST_DEBUG (0,"invalid sync\n");return FALSE; }
|
GST_DEBUG (0,"invalid sync");return FALSE; }
|
||||||
/* if it's an invalid MPEG version */
|
/* if it's an invalid MPEG version */
|
||||||
if (((head >> 19) & 3) == 0x1) {
|
if (((head >> 19) & 3) == 0x1) {
|
||||||
GST_DEBUG (0,"invalid MPEG version\n");return FALSE; }
|
GST_DEBUG (0,"invalid MPEG version");return FALSE; }
|
||||||
/* if it's an invalid layer */
|
/* if it's an invalid layer */
|
||||||
if (!((head >> 17) & 3)) {
|
if (!((head >> 17) & 3)) {
|
||||||
GST_DEBUG (0,"invalid layer\n");return FALSE; }
|
GST_DEBUG (0,"invalid layer");return FALSE; }
|
||||||
/* if it's an invalid bitrate */
|
/* if it's an invalid bitrate */
|
||||||
if (((head >> 12) & 0xf) == 0x0) {
|
if (((head >> 12) & 0xf) == 0x0) {
|
||||||
GST_DEBUG (0,"invalid bitrate\n");return FALSE; }
|
GST_DEBUG (0,"invalid bitrate");return FALSE; }
|
||||||
if (((head >> 12) & 0xf) == 0xf) {
|
if (((head >> 12) & 0xf) == 0xf) {
|
||||||
GST_DEBUG (0,"invalid bitrate\n");return FALSE; }
|
GST_DEBUG (0,"invalid bitrate");return FALSE; }
|
||||||
/* if it's an invalid samplerate */
|
/* if it's an invalid samplerate */
|
||||||
if (((head >> 10) & 0x3) == 0x3) {
|
if (((head >> 10) & 0x3) == 0x3) {
|
||||||
GST_DEBUG (0,"invalid samplerate\n");return FALSE; }
|
GST_DEBUG (0,"invalid samplerate");return FALSE; }
|
||||||
if ((head & 0xffff0000) == 0xfffe0000) {
|
if ((head & 0xffff0000) == 0xfffe0000) {
|
||||||
GST_DEBUG (0,"invalid sync\n");return FALSE; }
|
GST_DEBUG (0,"invalid sync");return FALSE; }
|
||||||
if (head & 0x00000002) {
|
if (head & 0x00000002) {
|
||||||
GST_DEBUG (0,"invalid emphasis\n");return FALSE; }
|
GST_DEBUG (0,"invalid emphasis");return FALSE; }
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -241,7 +241,7 @@ gst_mpeg_demux_parse_packhead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
|
|
||||||
parent_class->parse_packhead (mpeg_parse, buffer);
|
parent_class->parse_packhead (mpeg_parse, buffer);
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg_demux: in parse_packhead\n");
|
GST_DEBUG (0, "mpeg_demux: in parse_packhead");
|
||||||
|
|
||||||
buf = GST_BUFFER_DATA (buffer);
|
buf = GST_BUFFER_DATA (buffer);
|
||||||
/* do something usefull here */
|
/* do something usefull here */
|
||||||
|
@ -256,13 +256,13 @@ gst_mpeg_demux_parse_syshead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
guint16 header_length;
|
guint16 header_length;
|
||||||
guchar *buf;
|
guchar *buf;
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg_demux: in parse_syshead\n");
|
GST_DEBUG (0, "mpeg_demux: in parse_syshead");
|
||||||
|
|
||||||
buf = GST_BUFFER_DATA (buffer);
|
buf = GST_BUFFER_DATA (buffer);
|
||||||
buf += 4;
|
buf += 4;
|
||||||
|
|
||||||
header_length = GUINT16_FROM_BE (*(guint16 *) buf);
|
header_length = GUINT16_FROM_BE (*(guint16 *) buf);
|
||||||
GST_DEBUG (0, "mpeg_demux: header_length %d\n", header_length);
|
GST_DEBUG (0, "mpeg_demux: header_length %d", header_length);
|
||||||
buf += 2;
|
buf += 2;
|
||||||
|
|
||||||
/* marker:1==1 ! rate_bound:22 | marker:1==1*/
|
/* marker:1==1 ! rate_bound:22 | marker:1==1*/
|
||||||
|
@ -281,7 +281,7 @@ gst_mpeg_demux_parse_syshead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
gint stream_count = (header_length - 6) / 3;
|
gint stream_count = (header_length - 6) / 3;
|
||||||
gint i, j=0;
|
gint i, j=0;
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_syshead: number of streams=%d \n",
|
GST_DEBUG (0, "mpeg_demux::parse_syshead: number of streams=%d ",
|
||||||
stream_count);
|
stream_count);
|
||||||
|
|
||||||
for (i = 0; i < stream_count; i++) {
|
for (i = 0; i < stream_count; i++) {
|
||||||
|
@ -296,7 +296,7 @@ gst_mpeg_demux_parse_syshead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
|
|
||||||
stream_id = *buf++;
|
stream_id = *buf++;
|
||||||
if (!(stream_id & 0x80)) {
|
if (!(stream_id & 0x80)) {
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_syshead: error in system header length\n");
|
GST_DEBUG (0, "mpeg_demux::parse_syshead: error in system header length");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,9 +350,9 @@ gst_mpeg_demux_parse_syshead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_syshead: stream ID 0x%02X (%s)\n", stream_id, name);
|
GST_DEBUG (0, "mpeg_demux::parse_syshead: stream ID 0x%02X (%s)", stream_id, name);
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_syshead: STD_buffer_bound_scale %d\n", STD_buffer_bound_scale);
|
GST_DEBUG (0, "mpeg_demux::parse_syshead: STD_buffer_bound_scale %d", STD_buffer_bound_scale);
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_syshead: STD_buffer_size_bound %d or %d bytes\n",
|
GST_DEBUG (0, "mpeg_demux::parse_syshead: STD_buffer_size_bound %d or %d bytes",
|
||||||
STD_buffer_size_bound, buf_byte_size_bound);
|
STD_buffer_size_bound, buf_byte_size_bound);
|
||||||
|
|
||||||
/* create the pad and add it to self if it does not yet exist
|
/* create the pad and add it to self if it does not yet exist
|
||||||
|
@ -404,7 +404,7 @@ gst_mpeg_demux_parse_packet (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
GstBuffer *outbuf;
|
GstBuffer *outbuf;
|
||||||
guint8 *buf, *basebuf;
|
guint8 *buf, *basebuf;
|
||||||
|
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: in parse_packet\n");
|
GST_DEBUG (0,"mpeg_demux::parse_packet: in parse_packet");
|
||||||
|
|
||||||
basebuf = buf = GST_BUFFER_DATA (buffer);
|
basebuf = buf = GST_BUFFER_DATA (buffer);
|
||||||
id = *(buf+3);
|
id = *(buf+3);
|
||||||
|
@ -413,7 +413,7 @@ gst_mpeg_demux_parse_packet (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
/* start parsing */
|
/* start parsing */
|
||||||
packet_length = GUINT16_FROM_BE (*((guint16 *)buf));
|
packet_length = GUINT16_FROM_BE (*((guint16 *)buf));
|
||||||
|
|
||||||
GST_DEBUG (0,"mpeg_demux: got packet_length %d\n", packet_length);
|
GST_DEBUG (0,"mpeg_demux: got packet_length %d", packet_length);
|
||||||
headerlen = 2;
|
headerlen = 2;
|
||||||
buf += 2;
|
buf += 2;
|
||||||
|
|
||||||
|
@ -425,14 +425,14 @@ gst_mpeg_demux_parse_packet (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
switch (bits & 0xC0) {
|
switch (bits & 0xC0) {
|
||||||
case 0xC0:
|
case 0xC0:
|
||||||
if (bits == 0xff) {
|
if (bits == 0xff) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: have stuffing byte\n");
|
GST_DEBUG (0,"mpeg_demux::parse_packet: have stuffing byte");
|
||||||
} else {
|
} else {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: expected stuffing byte\n");
|
GST_DEBUG (0,"mpeg_demux::parse_packet: expected stuffing byte");
|
||||||
}
|
}
|
||||||
headerlen++;
|
headerlen++;
|
||||||
break;
|
break;
|
||||||
case 0x40:
|
case 0x40:
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: have STD\n");
|
GST_DEBUG (0,"mpeg_demux::parse_packet: have STD");
|
||||||
|
|
||||||
STD_buffer_bound_scale = bits & 0x20;
|
STD_buffer_bound_scale = bits & 0x20;
|
||||||
STD_buffer_size_bound = (bits & 0x1F) << 8;
|
STD_buffer_size_bound = (bits & 0x1F) << 8;
|
||||||
|
@ -450,7 +450,7 @@ gst_mpeg_demux_parse_packet (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
pts |= *buf++ << 7;
|
pts |= *buf++ << 7;
|
||||||
pts |= (*buf++ & 0xFE) >> 1;
|
pts |= (*buf++ & 0xFE) >> 1;
|
||||||
|
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: PTS = %llu\n", pts);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: PTS = %llu", pts);
|
||||||
headerlen += 5;
|
headerlen += 5;
|
||||||
goto done;
|
goto done;
|
||||||
case 0x30:
|
case 0x30:
|
||||||
|
@ -468,14 +468,14 @@ gst_mpeg_demux_parse_packet (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
dts |= *buf++ << 7;
|
dts |= *buf++ << 7;
|
||||||
dts |= (*buf++ & 0xFE) >> 1;
|
dts |= (*buf++ & 0xFE) >> 1;
|
||||||
|
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: PTS = %llu, DTS = %llu\n", pts, dts);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: PTS = %llu, DTS = %llu", pts, dts);
|
||||||
headerlen += 10;
|
headerlen += 10;
|
||||||
goto done;
|
goto done;
|
||||||
case 0x00:
|
case 0x00:
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: have no pts/dts\n");
|
GST_DEBUG (0,"mpeg_demux::parse_packet: have no pts/dts");
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: got trailer bits %x\n", (bits & 0x0f));
|
GST_DEBUG (0,"mpeg_demux::parse_packet: got trailer bits %x", (bits & 0x0f));
|
||||||
if ((bits & 0x0f) != 0xf) {
|
if ((bits & 0x0f) != 0xf) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: not a valid packet time sequence\n");
|
GST_DEBUG (0,"mpeg_demux::parse_packet: not a valid packet time sequence");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
headerlen++;
|
headerlen++;
|
||||||
|
@ -486,12 +486,12 @@ gst_mpeg_demux_parse_packet (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
} while (1);
|
} while (1);
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: done with header loop\n");
|
GST_DEBUG (0,"mpeg_demux::parse_packet: done with header loop");
|
||||||
|
|
||||||
done:
|
done:
|
||||||
/* calculate the amount of real data in this packet */
|
/* calculate the amount of real data in this packet */
|
||||||
datalen = packet_length - headerlen+2;
|
datalen = packet_length - headerlen+2;
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: headerlen is %d, datalen is %d\n",
|
GST_DEBUG (0,"mpeg_demux::parse_packet: headerlen is %d, datalen is %d",
|
||||||
headerlen,datalen);
|
headerlen,datalen);
|
||||||
|
|
||||||
/* private_stream_1 */
|
/* private_stream_1 */
|
||||||
|
@ -500,7 +500,7 @@ done:
|
||||||
ps_id_code = *(basebuf + headerlen);
|
ps_id_code = *(basebuf + headerlen);
|
||||||
/* make sure it's valid */
|
/* make sure it's valid */
|
||||||
if ((ps_id_code >= 0x80) && (ps_id_code <= 0x87)) {
|
if ((ps_id_code >= 0x80) && (ps_id_code <= 0x87)) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have a private_stream_1 (AC3) packet, track %d\n",
|
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have a private_stream_1 (AC3) packet, track %d",
|
||||||
id, ps_id_code - 0x80);
|
id, ps_id_code - 0x80);
|
||||||
outpad = &mpeg_demux->private_1_pad[ps_id_code - 0x80];
|
outpad = &mpeg_demux->private_1_pad[ps_id_code - 0x80];
|
||||||
/* scrap first 4 bytes (so-called "mystery AC3 tag") */
|
/* scrap first 4 bytes (so-called "mystery AC3 tag") */
|
||||||
|
@ -509,17 +509,17 @@ done:
|
||||||
}
|
}
|
||||||
/* private_stream_1 */
|
/* private_stream_1 */
|
||||||
} else if (id == 0xBF) {
|
} else if (id == 0xBF) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have a private_stream_2 packet\n", id);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have a private_stream_2 packet", id);
|
||||||
outpad = &mpeg_demux->private_2_pad;
|
outpad = &mpeg_demux->private_2_pad;
|
||||||
/* audio */
|
/* audio */
|
||||||
} else if ((id >= 0xC0) && (id <= 0xDF)) {
|
} else if ((id >= 0xC0) && (id <= 0xDF)) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have an audio packet\n", id);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have an audio packet", id);
|
||||||
outpad = &mpeg_demux->audio_pad[id & 0x1F];
|
outpad = &mpeg_demux->audio_pad[id & 0x1F];
|
||||||
outoffset = mpeg_demux->audio_offset[id & 0x1F];
|
outoffset = mpeg_demux->audio_offset[id & 0x1F];
|
||||||
mpeg_demux->audio_offset[id & 0x1F] += datalen;
|
mpeg_demux->audio_offset[id & 0x1F] += datalen;
|
||||||
/* video */
|
/* video */
|
||||||
} else if ((id >= 0xE0) && (id <= 0xEF)) {
|
} else if ((id >= 0xE0) && (id <= 0xEF)) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have a video packet\n", id);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: 0x%02X: we have a video packet", id);
|
||||||
outpad = &mpeg_demux->video_pad[id & 0x0F];
|
outpad = &mpeg_demux->video_pad[id & 0x0F];
|
||||||
outoffset = mpeg_demux->video_offset[id & 0x1F];
|
outoffset = mpeg_demux->video_offset[id & 0x1F];
|
||||||
mpeg_demux->video_offset[id & 0x1F] += datalen;
|
mpeg_demux->video_offset[id & 0x1F] += datalen;
|
||||||
|
@ -531,14 +531,14 @@ done:
|
||||||
|
|
||||||
/* if we don't know what it is, bail */
|
/* if we don't know what it is, bail */
|
||||||
if (outpad == NULL) {
|
if (outpad == NULL) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: unknown packet id 0x%02X !!\n", id);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: unknown packet id 0x%02X !!", id);
|
||||||
/* return total number of bytes */
|
/* return total number of bytes */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME, this should be done in parse_syshead */
|
/* FIXME, this should be done in parse_syshead */
|
||||||
if ((*outpad) == NULL) {
|
if ((*outpad) == NULL) {
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: unexpected packet id 0x%02X!!\n", id);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: unexpected packet id 0x%02X!!", id);
|
||||||
/* return total number of bytes */
|
/* return total number of bytes */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -546,7 +546,7 @@ done:
|
||||||
/* create the buffer and send it off to the Other Side */
|
/* create the buffer and send it off to the Other Side */
|
||||||
if (GST_PAD_IS_CONNECTED(*outpad) && datalen > 0) {
|
if (GST_PAD_IS_CONNECTED(*outpad) && datalen > 0) {
|
||||||
/* if this is part of the buffer, create a subbuffer */
|
/* if this is part of the buffer, create a subbuffer */
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: creating subbuffer len %d\n", datalen);
|
GST_DEBUG (0,"mpeg_demux::parse_packet: creating subbuffer len %d", datalen);
|
||||||
|
|
||||||
outbuf = gst_buffer_create_sub (buffer, headerlen+4, datalen);
|
outbuf = gst_buffer_create_sub (buffer, headerlen+4, datalen);
|
||||||
|
|
||||||
|
@ -557,7 +557,7 @@ done:
|
||||||
else {
|
else {
|
||||||
GST_BUFFER_TIMESTAMP (outbuf) = -1LL;
|
GST_BUFFER_TIMESTAMP (outbuf) = -1LL;
|
||||||
}
|
}
|
||||||
GST_DEBUG (0,"mpeg_demux::parse_packet: pushing buffer of len %d id %d, ts %lld\n",
|
GST_DEBUG (0,"mpeg_demux::parse_packet: pushing buffer of len %d id %d, ts %lld",
|
||||||
datalen, id, GST_BUFFER_TIMESTAMP (outbuf));
|
datalen, id, GST_BUFFER_TIMESTAMP (outbuf));
|
||||||
gst_pad_push ((*outpad), outbuf);
|
gst_pad_push ((*outpad), outbuf);
|
||||||
}
|
}
|
||||||
|
@ -585,7 +585,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
GstPadTemplate *newtemp = NULL;
|
GstPadTemplate *newtemp = NULL;
|
||||||
guint8 *buf, *basebuf;
|
guint8 *buf, *basebuf;
|
||||||
|
|
||||||
GST_DEBUG (0,"mpeg_demux: in parse_pes\n");
|
GST_DEBUG (0,"mpeg_demux: in parse_pes");
|
||||||
|
|
||||||
basebuf = buf = GST_BUFFER_DATA (buffer);
|
basebuf = buf = GST_BUFFER_DATA (buffer);
|
||||||
id = *(buf+3);
|
id = *(buf+3);
|
||||||
|
@ -594,7 +594,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
/* start parsing */
|
/* start parsing */
|
||||||
packet_length = GUINT16_FROM_BE (*((guint16 *)buf));
|
packet_length = GUINT16_FROM_BE (*((guint16 *)buf));
|
||||||
|
|
||||||
GST_DEBUG (0,"mpeg_demux: got packet_length %d\n", packet_length);
|
GST_DEBUG (0,"mpeg_demux: got packet_length %d", packet_length);
|
||||||
buf += 2;
|
buf += 2;
|
||||||
|
|
||||||
/* we don't operate on: program_stream_map, padding_stream, */
|
/* we don't operate on: program_stream_map, padding_stream, */
|
||||||
|
@ -611,7 +611,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
|
|
||||||
header_data_length = *buf++;
|
header_data_length = *buf++;
|
||||||
|
|
||||||
GST_DEBUG (0,"mpeg_demux: header_data_length is %d\n",header_data_length);
|
GST_DEBUG (0,"mpeg_demux: header_data_length is %d",header_data_length);
|
||||||
|
|
||||||
/* check for PTS */
|
/* check for PTS */
|
||||||
if ((flags2 & 0x80)) {
|
if ((flags2 & 0x80)) {
|
||||||
|
@ -621,14 +621,14 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
pts |= (*buf++ & 0xFE) << 14;
|
pts |= (*buf++ & 0xFE) << 14;
|
||||||
pts |= *buf++ << 7;
|
pts |= *buf++ << 7;
|
||||||
pts |= (*buf++ & 0xFE) >> 1;
|
pts |= (*buf++ & 0xFE) >> 1;
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_packet: %x PTS = %llu\n", id, (pts*1000000LL)/90000LL);
|
GST_DEBUG (0, "mpeg_demux::parse_packet: %x PTS = %llu", id, (pts*1000000LL)/90000LL);
|
||||||
}
|
}
|
||||||
if ((flags2 & 0x40)) {
|
if ((flags2 & 0x40)) {
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_packet: %x DTS foundu\n", id);
|
GST_DEBUG (0, "mpeg_demux::parse_packet: %x DTS foundu", id);
|
||||||
buf += 5;
|
buf += 5;
|
||||||
}
|
}
|
||||||
if ((flags2 & 0x20)) {
|
if ((flags2 & 0x20)) {
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_packet: %x ESCR foundu\n", id);
|
GST_DEBUG (0, "mpeg_demux::parse_packet: %x ESCR foundu", id);
|
||||||
buf += 6;
|
buf += 6;
|
||||||
}
|
}
|
||||||
if ((flags2 & 0x10)) {
|
if ((flags2 & 0x10)) {
|
||||||
|
@ -637,7 +637,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
es_rate = (*buf++ & 0x07) << 14;
|
es_rate = (*buf++ & 0x07) << 14;
|
||||||
es_rate |= (*buf++ ) << 7;
|
es_rate |= (*buf++ ) << 7;
|
||||||
es_rate |= (*buf++ & 0xFE) >> 1;
|
es_rate |= (*buf++ & 0xFE) >> 1;
|
||||||
GST_DEBUG (0, "mpeg_demux::parse_packet: %x ES Rate foundu\n", id);
|
GST_DEBUG (0, "mpeg_demux::parse_packet: %x ES Rate foundu", id);
|
||||||
}
|
}
|
||||||
/* FIXME: lots of PES parsing missing here... */
|
/* FIXME: lots of PES parsing missing here... */
|
||||||
|
|
||||||
|
@ -648,7 +648,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
headerlen = 5 + header_data_length;
|
headerlen = 5 + header_data_length;
|
||||||
/* constant is 2 bytes of bits, 1 byte header len */
|
/* constant is 2 bytes of bits, 1 byte header len */
|
||||||
datalen = packet_length - (3 + header_data_length);
|
datalen = packet_length - (3 + header_data_length);
|
||||||
GST_DEBUG (0,"mpeg_demux: headerlen is %d, datalen is %d\n",
|
GST_DEBUG (0,"mpeg_demux: headerlen is %d, datalen is %d",
|
||||||
headerlen, datalen);
|
headerlen, datalen);
|
||||||
|
|
||||||
/* private_stream_1 */
|
/* private_stream_1 */
|
||||||
|
@ -657,7 +657,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
ps_id_code = *(basebuf + headerlen + 4);
|
ps_id_code = *(basebuf + headerlen + 4);
|
||||||
/* make sure it's valid */
|
/* make sure it's valid */
|
||||||
if ((ps_id_code >= 0x80) && (ps_id_code <= 0x87)) {
|
if ((ps_id_code >= 0x80) && (ps_id_code <= 0x87)) {
|
||||||
GST_DEBUG (0,"mpeg_demux: we have a private_stream_1 (AC3) packet, track %d\n",
|
GST_DEBUG (0,"mpeg_demux: we have a private_stream_1 (AC3) packet, track %d",
|
||||||
ps_id_code - 0x80);
|
ps_id_code - 0x80);
|
||||||
outpad = &mpeg_demux->private_1_pad[ps_id_code - 0x80];
|
outpad = &mpeg_demux->private_1_pad[ps_id_code - 0x80];
|
||||||
/* scrap first 4 bytes (so-called "mystery AC3 tag") */
|
/* scrap first 4 bytes (so-called "mystery AC3 tag") */
|
||||||
|
@ -667,7 +667,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
mpeg_demux->private_1_offset[ps_id_code - 0x80] += datalen;
|
mpeg_demux->private_1_offset[ps_id_code - 0x80] += datalen;
|
||||||
}
|
}
|
||||||
else if ((ps_id_code >= 0x20) && (ps_id_code <= 0x2f)) {
|
else if ((ps_id_code >= 0x20) && (ps_id_code <= 0x2f)) {
|
||||||
GST_DEBUG (0,"mpeg_demux: we have a subtitle_stream packet, track %d\n",
|
GST_DEBUG (0,"mpeg_demux: we have a subtitle_stream packet, track %d",
|
||||||
ps_id_code - 0x20);
|
ps_id_code - 0x20);
|
||||||
outpad = &mpeg_demux->subtitle_pad[ps_id_code - 0x20];
|
outpad = &mpeg_demux->subtitle_pad[ps_id_code - 0x20];
|
||||||
headerlen += 1;
|
headerlen += 1;
|
||||||
|
@ -677,13 +677,13 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
}
|
}
|
||||||
/* private_stream_1 */
|
/* private_stream_1 */
|
||||||
} else if (id == 0xBF) {
|
} else if (id == 0xBF) {
|
||||||
GST_DEBUG (0,"mpeg_demux: we have a private_stream_2 packet\n");
|
GST_DEBUG (0,"mpeg_demux: we have a private_stream_2 packet");
|
||||||
outpad = &mpeg_demux->private_2_pad;
|
outpad = &mpeg_demux->private_2_pad;
|
||||||
outoffset = mpeg_demux->private_2_offset;
|
outoffset = mpeg_demux->private_2_offset;
|
||||||
mpeg_demux->private_2_offset += datalen;
|
mpeg_demux->private_2_offset += datalen;
|
||||||
/* audio */
|
/* audio */
|
||||||
} else if ((id >= 0xC0) && (id <= 0xDF)) {
|
} else if ((id >= 0xC0) && (id <= 0xDF)) {
|
||||||
GST_DEBUG (0,"mpeg_demux: we have an audio packet\n");
|
GST_DEBUG (0,"mpeg_demux: we have an audio packet");
|
||||||
outpad = &mpeg_demux->audio_pad[id - 0xC0];
|
outpad = &mpeg_demux->audio_pad[id - 0xC0];
|
||||||
outoffset = mpeg_demux->audio_offset[id & 0x1F];
|
outoffset = mpeg_demux->audio_offset[id & 0x1F];
|
||||||
mpeg_demux->audio_offset[id & 0x1F] += datalen;
|
mpeg_demux->audio_offset[id & 0x1F] += datalen;
|
||||||
|
@ -693,7 +693,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
mpeg_demux->audio_PTS[id & 0x1F] = pts;
|
mpeg_demux->audio_PTS[id & 0x1F] = pts;
|
||||||
/* video */
|
/* video */
|
||||||
} else if ((id >= 0xE0) && (id <= 0xEF)) {
|
} else if ((id >= 0xE0) && (id <= 0xEF)) {
|
||||||
GST_DEBUG (0,"mpeg_demux: we have a video packet\n");
|
GST_DEBUG (0,"mpeg_demux: we have a video packet");
|
||||||
outpad = &mpeg_demux->video_pad[id - 0xE0];
|
outpad = &mpeg_demux->video_pad[id - 0xE0];
|
||||||
outoffset = mpeg_demux->video_offset[id & 0x0F];
|
outoffset = mpeg_demux->video_offset[id & 0x0F];
|
||||||
mpeg_demux->video_offset[id & 0x0F] += datalen;
|
mpeg_demux->video_offset[id & 0x0F] += datalen;
|
||||||
|
@ -759,7 +759,7 @@ gst_mpeg_demux_parse_pes (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
/* create the buffer and send it off to the Other Side */
|
/* create the buffer and send it off to the Other Side */
|
||||||
if (GST_PAD_IS_CONNECTED(*outpad)) {
|
if (GST_PAD_IS_CONNECTED(*outpad)) {
|
||||||
/* if this is part of the buffer, create a subbuffer */
|
/* if this is part of the buffer, create a subbuffer */
|
||||||
GST_DEBUG (0,"mpeg_demux: creating subbuffer len %d\n", datalen);
|
GST_DEBUG (0,"mpeg_demux: creating subbuffer len %d", datalen);
|
||||||
|
|
||||||
outbuf = gst_buffer_create_sub (buffer, headerlen+4, datalen);
|
outbuf = gst_buffer_create_sub (buffer, headerlen+4, datalen);
|
||||||
GST_BUFFER_OFFSET(outbuf) = outoffset;
|
GST_BUFFER_OFFSET(outbuf) = outoffset;
|
||||||
|
|
|
@ -59,24 +59,24 @@ parse_packhead (GstMPEGPacketize * packetize)
|
||||||
guint8 *buf;
|
guint8 *buf;
|
||||||
GstBuffer *outbuf;
|
GstBuffer *outbuf;
|
||||||
|
|
||||||
GST_DEBUG (0, "packetize: in parse_packhead\n");
|
GST_DEBUG (0, "packetize: in parse_packhead");
|
||||||
|
|
||||||
buf = gst_bytestream_peek_bytes (packetize->bs, length);
|
buf = gst_bytestream_peek_bytes (packetize->bs, length);
|
||||||
if (!buf) return NULL;
|
if (!buf) return NULL;
|
||||||
buf += 4;
|
buf += 4;
|
||||||
|
|
||||||
GST_DEBUG (0, "code %02x\n", *buf);
|
GST_DEBUG (0, "code %02x", *buf);
|
||||||
|
|
||||||
/* start parsing the stream */
|
/* start parsing the stream */
|
||||||
if ((*buf & 0xf0) == 0x40) {
|
if ((*buf & 0xf0) == 0x40) {
|
||||||
GST_DEBUG (0, "packetize::parse_packhead setting mpeg2\n");
|
GST_DEBUG (0, "packetize::parse_packhead setting mpeg2");
|
||||||
packetize->MPEG2 = TRUE;
|
packetize->MPEG2 = TRUE;
|
||||||
length += 2;
|
length += 2;
|
||||||
buf = gst_bytestream_peek_bytes (packetize->bs, length);
|
buf = gst_bytestream_peek_bytes (packetize->bs, length);
|
||||||
if (!buf) return NULL;
|
if (!buf) return NULL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GST_DEBUG (0, "packetize::parse_packhead setting mpeg1\n");
|
GST_DEBUG (0, "packetize::parse_packhead setting mpeg1");
|
||||||
packetize->MPEG2 = FALSE;
|
packetize->MPEG2 = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,14 +94,14 @@ parse_generic (GstMPEGPacketize *packetize)
|
||||||
guchar *buf;
|
guchar *buf;
|
||||||
GstBuffer *outbuf;
|
GstBuffer *outbuf;
|
||||||
|
|
||||||
GST_DEBUG (0, "packetize: in parse_syshead\n");
|
GST_DEBUG (0, "packetize: in parse_syshead");
|
||||||
|
|
||||||
buf = gst_bytestream_peek_bytes (bs, 2 + 4);
|
buf = gst_bytestream_peek_bytes (bs, 2 + 4);
|
||||||
if (!buf) return NULL;
|
if (!buf) return NULL;
|
||||||
buf += 4;
|
buf += 4;
|
||||||
|
|
||||||
length = GUINT16_FROM_BE (*(guint16 *) buf);
|
length = GUINT16_FROM_BE (*(guint16 *) buf);
|
||||||
GST_DEBUG (0, "packetize: header_length %d\n", length);
|
GST_DEBUG (0, "packetize: header_length %d", length);
|
||||||
|
|
||||||
outbuf = gst_bytestream_read (packetize->bs, 2 + length + 4);
|
outbuf = gst_bytestream_read (packetize->bs, 2 + length + 4);
|
||||||
if (!outbuf) return NULL;
|
if (!outbuf) return NULL;
|
||||||
|
@ -126,12 +126,12 @@ parse_chunk (GstMPEGPacketize *packetize)
|
||||||
|
|
||||||
code = GUINT32_FROM_BE (*((guint32 *)(buf+offset)));
|
code = GUINT32_FROM_BE (*((guint32 *)(buf+offset)));
|
||||||
|
|
||||||
GST_DEBUG (0, "code = %08x\n", code);
|
GST_DEBUG (0, "code = %08x", code);
|
||||||
|
|
||||||
while ((code & 0xffffff00) != 0x100L) {
|
while ((code & 0xffffff00) != 0x100L) {
|
||||||
code = (code << 8) | buf[offset++];
|
code = (code << 8) | buf[offset++];
|
||||||
|
|
||||||
GST_DEBUG (0, " code = %08x\n", code);
|
GST_DEBUG (0, " code = %08x", code);
|
||||||
|
|
||||||
if ((offset % chunksize) == 0) {
|
if ((offset % chunksize) == 0) {
|
||||||
buf = gst_bytestream_peek_bytes (bs, offset + chunksize);
|
buf = gst_bytestream_peek_bytes (bs, offset + chunksize);
|
||||||
|
@ -163,12 +163,12 @@ find_start_code (GstMPEGPacketize *packetize)
|
||||||
|
|
||||||
code = GUINT32_FROM_BE (*((guint32 *)(buf)));
|
code = GUINT32_FROM_BE (*((guint32 *)(buf)));
|
||||||
|
|
||||||
GST_DEBUG (0, "code = %08x\n", code);
|
GST_DEBUG (0, "code = %08x", code);
|
||||||
|
|
||||||
while ((code & 0xffffff00) != 0x100L) {
|
while ((code & 0xffffff00) != 0x100L) {
|
||||||
code = (code << 8) | buf[offset++];
|
code = (code << 8) | buf[offset++];
|
||||||
|
|
||||||
GST_DEBUG (0, " code = %08x\n", code);
|
GST_DEBUG (0, " code = %08x", code);
|
||||||
/* g_print (" code = %08x\n", code); */
|
/* g_print (" code = %08x\n", code); */
|
||||||
|
|
||||||
if (offset == chunksize) {
|
if (offset == chunksize) {
|
||||||
|
@ -198,7 +198,7 @@ gst_mpeg_packetize_read (GstMPEGPacketize *packetize)
|
||||||
if (!find_start_code (packetize))
|
if (!find_start_code (packetize))
|
||||||
got_event = TRUE;
|
got_event = TRUE;
|
||||||
else {
|
else {
|
||||||
GST_DEBUG (0, "packetize: have chunk 0x%02X\n", packetize->id);
|
GST_DEBUG (0, "packetize: have chunk 0x%02X", packetize->id);
|
||||||
if (packetize->type == GST_MPEG_PACKETIZE_SYSTEM) {
|
if (packetize->type == GST_MPEG_PACKETIZE_SYSTEM) {
|
||||||
switch (packetize->id) {
|
switch (packetize->id) {
|
||||||
case PACK_START_CODE:
|
case PACK_START_CODE:
|
||||||
|
|
|
@ -185,7 +185,7 @@ gst_mpeg_parse_send_data (GstMPEGParse *mpeg_parse, GstData *data)
|
||||||
GST_BUFFER_TIMESTAMP (data) = mpeg_parse->next_ts;
|
GST_BUFFER_TIMESTAMP (data) = mpeg_parse->next_ts;
|
||||||
gst_pad_push (mpeg_parse->srcpad, GST_BUFFER (data));
|
gst_pad_push (mpeg_parse->srcpad, GST_BUFFER (data));
|
||||||
mpeg_parse->next_ts += ((size * 1000000.0) / (mpeg_parse->bit_rate));
|
mpeg_parse->next_ts += ((size * 1000000.0) / (mpeg_parse->bit_rate));
|
||||||
GST_DEBUG (0, "mpeg_parse: next_ts %lld\n", mpeg_parse->next_ts);
|
GST_DEBUG (0, "mpeg_parse: next_ts %lld", mpeg_parse->next_ts);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -198,7 +198,7 @@ gst_mpeg_parse_parse_packhead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
guint32 scr1, scr2;
|
guint32 scr1, scr2;
|
||||||
guint32 new_rate;
|
guint32 new_rate;
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg_parse: in parse_packhead\n");
|
GST_DEBUG (0, "mpeg_parse: in parse_packhead");
|
||||||
|
|
||||||
buf = GST_BUFFER_DATA (buffer);
|
buf = GST_BUFFER_DATA (buffer);
|
||||||
buf += 4;
|
buf += 4;
|
||||||
|
@ -229,7 +229,7 @@ gst_mpeg_parse_parse_packhead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
new_rate *= 400;
|
new_rate *= 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg_parse: SCR is %llu\n", scr);
|
GST_DEBUG (0, "mpeg_parse: SCR is %llu", scr);
|
||||||
mpeg_parse->next_ts = (scr*100)/9;
|
mpeg_parse->next_ts = (scr*100)/9;
|
||||||
|
|
||||||
if (mpeg_parse->bit_rate != new_rate) {
|
if (mpeg_parse->bit_rate != new_rate) {
|
||||||
|
@ -238,7 +238,7 @@ gst_mpeg_parse_parse_packhead (GstMPEGParse *mpeg_parse, GstBuffer *buffer)
|
||||||
g_object_notify (G_OBJECT (mpeg_parse), "bitrate");
|
g_object_notify (G_OBJECT (mpeg_parse), "bitrate");
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg_parse: stream is %1.3fMbs\n",
|
GST_DEBUG (0, "mpeg_parse: stream is %1.3fMbs",
|
||||||
(mpeg_parse->bit_rate) / 1000000.0);
|
(mpeg_parse->bit_rate) / 1000000.0);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -260,7 +260,7 @@ gst_mpeg_parse_loop (GstElement *element)
|
||||||
if (GST_IS_BUFFER (data)) {
|
if (GST_IS_BUFFER (data)) {
|
||||||
GstBuffer *buffer = GST_BUFFER (data);
|
GstBuffer *buffer = GST_BUFFER (data);
|
||||||
|
|
||||||
GST_DEBUG (0, "mpeg2demux: have chunk 0x%02X\n", id);
|
GST_DEBUG (0, "mpeg2demux: have chunk 0x%02X", id);
|
||||||
|
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case 0xba:
|
case 0xba:
|
||||||
|
|
|
@ -219,7 +219,7 @@ gst_rfc2250_enc_loop (GstElement *element)
|
||||||
if (GST_IS_BUFFER (data)) {
|
if (GST_IS_BUFFER (data)) {
|
||||||
GstBuffer *buffer = GST_BUFFER (data);
|
GstBuffer *buffer = GST_BUFFER (data);
|
||||||
|
|
||||||
GST_DEBUG (0, "rfc2250enc: have chunk 0x%02X\n", id);
|
GST_DEBUG (0, "rfc2250enc: have chunk 0x%02X", id);
|
||||||
|
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case SEQUENCE_START_CODE:
|
case SEQUENCE_START_CODE:
|
||||||
|
|
|
@ -230,15 +230,15 @@ gst_synaesthesia_chain (GstPad *pad, GstBuffer *bufin)
|
||||||
|
|
||||||
synaesthesia = GST_SYNAESTHESIA (gst_pad_get_parent (pad));
|
synaesthesia = GST_SYNAESTHESIA (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
GST_DEBUG (0, "Synaesthesia: chainfunc called\n");
|
GST_DEBUG (0, "Synaesthesia: chainfunc called");
|
||||||
|
|
||||||
samples_in = GST_BUFFER_SIZE (bufin) / sizeof (gint16);
|
samples_in = GST_BUFFER_SIZE (bufin) / sizeof (gint16);
|
||||||
|
|
||||||
GST_DEBUG (0, "input buffer has %d samples\n", samples_in);
|
GST_DEBUG (0, "input buffer has %d samples", samples_in);
|
||||||
|
|
||||||
/* FIXME: should really select the first 1024 samples after the timestamp. */
|
/* FIXME: should really select the first 1024 samples after the timestamp. */
|
||||||
if (GST_BUFFER_TIMESTAMP (bufin) < synaesthesia->next_time || samples_in < 1024) {
|
if (GST_BUFFER_TIMESTAMP (bufin) < synaesthesia->next_time || samples_in < 1024) {
|
||||||
GST_DEBUG (0, "timestamp is %llu: want >= %llu\n", GST_BUFFER_TIMESTAMP (bufin), synaesthesia->next_time);
|
GST_DEBUG (0, "timestamp is %llu: want >= %llu", GST_BUFFER_TIMESTAMP (bufin), synaesthesia->next_time);
|
||||||
gst_buffer_unref (bufin);
|
gst_buffer_unref (bufin);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -254,7 +254,7 @@ gst_synaesthesia_chain (GstPad *pad, GstBuffer *bufin)
|
||||||
|
|
||||||
synaesthesia_init (synaesthesia->width, synaesthesia->height);
|
synaesthesia_init (synaesthesia->width, synaesthesia->height);
|
||||||
|
|
||||||
GST_DEBUG (0, "making new pad\n");
|
GST_DEBUG (0, "making new pad");
|
||||||
|
|
||||||
caps = GST_CAPS_NEW (
|
caps = GST_CAPS_NEW (
|
||||||
"synaesthesiasrc",
|
"synaesthesiasrc",
|
||||||
|
@ -289,7 +289,7 @@ gst_synaesthesia_chain (GstPad *pad, GstBuffer *bufin)
|
||||||
|
|
||||||
gst_buffer_unref (bufin);
|
gst_buffer_unref (bufin);
|
||||||
|
|
||||||
GST_DEBUG (0, "Synaesthesia: exiting chainfunc\n");
|
GST_DEBUG (0, "Synaesthesia: exiting chainfunc");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue