Fwd: pb avimux fixed

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Fwd: pb avimux fixed

Ronald S. Bultje-3


Kind regards,
Ronald

Begin forwarded message:

From: renardier philippe <[hidden email]>
Date: August 1, 2009 1:19:01 PM EDT
To: [hidden email]
Subject: pb avimux fixed


Hi

I have fixed the issue.
I had a bug in the setting of the timestamps so in gstavimux.c the fonction
----------------------------------------
gst_avi_mux_do_one_buffer (GstAviMux * avimux)
{
 GstAviPad *avipad, *best_pad;
 GstClockTime time, best_time;
 GSList *node;
 GstBuffer *buffer;

 node = avimux->sinkpads;
 best_pad = NULL;
 best_time = GST_CLOCK_TIME_NONE;
 for (; node; node = node->next) {
   avipad = (GstAviPad *) node->data;

   if (!avipad->collect)
     continue;

   buffer = gst_collect_pads_peek (avimux->collect, avipad->collect);
   if (!buffer)
     continue;
   time = GST_BUFFER_TIMESTAMP (buffer);
   gst_buffer_unref (buffer);

   // invalid timestamp buffers pass first, these are probably initialization buffers
if (best_pad == NULL || !GST_CLOCK_TIME_IS_VALID (time) || (GST_CLOCK_TIME_IS_VALID (best_time) && time < best_time))
   {best_pad = avipad; best_time = time;}
 }

 if (best_pad) {
   GST_LOG_OBJECT (avimux, "selected pad %s with time %" GST_TIME_FORMAT,
       GST_PAD_NAME (best_pad->collect->pad), GST_TIME_ARGS (best_time));

   return gst_avi_mux_do_buffer (avimux, best_pad);
 } else {
   // simply finish off the file and send EOS
   gst_avi_mux_stop_file (avimux);
   gst_pad_push_event (avimux->srcpad, gst_event_new_eos ());
   return GST_FLOW_UNEXPECTED;
 }
}
----------------------------------------------------
finded always time > best_time for pad 2 and only one stream was recorded (the first of course).
This bug was not apparent when i recorded only video or only audio.
Now it's OK. GSreamer is a powerful tool and i think its use can be extended far beyond the scope of multimedia. Ten years ago i worked in the steel industry and we used a GSreamer-like custom framework to manage the process of rolling mills. We had plugins for locked loops, filters, IO and so on. Any kind of stream, physical or virtual can be managed with GStreamer.
I am sorry for the disturbance i made for nothing.

[hidden email]





------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel