All Boards Creating App Video

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

All Boards Creating App Video

All Boards Creating App Video

Instead to use gst-launch to play your audio/video media you can create an application do to that.

This application was tested in iMX27ADS but should to work on iMX27PDK

First execute LTIB (./ltib -c) and select these packages: all gstreamer plugin, alsa-utils and libmad.

Create your file code (i.e.: playvideo.c):

#include <gst/gst.h>

#include <glib.h> #include <string.h>



static GstElement *source, *demuxer, *vdqueue, *adqueue, *vdsink, *adsink, *decvd, *decad;

void on_pad_added (GstElement *element, GstPad *pad)
{
        g_debug ("Signal: pad-added");
        GstCaps *caps;
        GstStructure *str;

        caps = gst_pad_get_caps (pad);
        g_assert (caps != NULL);
        str = gst_caps_get_structure (caps, 0);
        g_assert (str != NULL);

        if (g_strrstr (gst_structure_get_name (str), "video")) {
                g_debug ("Linking video pad to dec_vd");
                // Link it actually
                GstPad *targetsink = gst_element_get_pad (decvd, "sink");
                g_assert (targetsink != NULL);
                gst_pad_link (pad, targetsink);
                gst_object_unref (targetsink);
        }

        if (g_strrstr (gst_structure_get_name (str), "audio")) {
                g_debug ("Linking audio pad to dec_ad");
                // Link it actually
                GstPad *targetsink = gst_element_get_pad (decad, "sink");
                g_assert (targetsink != NULL);
                gst_pad_link (pad, targetsink);
                gst_object_unref (targetsink);
        }

        gst_caps_unref (caps);
}

static gboolean
bus_call (GstBus    *bus,
          GstMessage *msg,
          gpointer    data)
{
  GMainLoop *loop = (GMainLoop *) data;

  switch (GST_MESSAGE_TYPE (msg)) {

    case GST_MESSAGE_EOS:
      g_print ("End of stream\n");
      g_main_loop_quit (loop);
      break;

    case GST_MESSAGE_ERROR: {
      gchar  *debug;
      GError *error;

      gst_message_parse_error (msg, &error, &debug);
      g_free (debug);

      g_printerr ("Error: %s\n", error->message);
      g_error_free (error);

      g_main_loop_quit (loop);
      break;
    }
    default:
      break;
  }

  return TRUE;
}

int
main (int  argc,
      char *argv[])
{
  GMainLoop *loop;

  GstElement *pipeline;
  GstBus *bus;

  /* Initialisation */
  gst_init (&argc, &argv);

  loop = g_main_loop_new (NULL, FALSE);


  /* Check input arguments */
  if (argc != 2) {
    g_printerr ("Usage: %s <Video H264 filename>\n", argv[0]);
    return -1;
  }


  /* Create gstreamer elements */
  pipeline      = gst_pipeline_new ("media-player");
  source        = gst_element_factory_make ("filesrc","file-source");
  demuxer      = gst_element_factory_make ("mfw_mp4demuxer","avi-demuxer");
  decvd        = gst_element_factory_make ("mfw_vpudecoder", "video-decoder");
  decad        = gst_element_factory_make ("mad", "mp3-decoder");
  vdsink        = gst_element_factory_make ("mfw_v4lsink",    "video-sink");
  vdqueue      = gst_element_factory_make ("queue",            "video-queue");
  adqueue      = gst_element_factory_make ("queue",            "audio-queue");
  adsink        = gst_element_factory_make ("fakesink",        "audio-sink");

  g_object_set (decvd, "codec-type", "std_avc", NULL);

  if (!pipeline || !source || !demuxer || !decvd || !decad || !vdsink || !vdqueue || !adqueue || !adsink) {
    g_printerr ("One element could not be created. Exiting.\n");
    return -1;
  }

  /* Set up the pipeline */

  /* we set the input filename to the source element */
  g_object_set (G_OBJECT (source), "location", argv[1], NULL);

  /* we add a message handler */
  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
  gst_bus_add_watch (bus, bus_call, loop);
  gst_object_unref (bus);

  /* we add all elements into the pipeline */
  /* file-source | ogg-demuxer | vorbis-decoder | converter | alsa-output */
  gst_bin_add_many (GST_BIN (pipeline),
                    source, demuxer, decvd, decad, adqueue, vdqueue, vdsink, adsink,  NULL);

  /* we link the elements together */
  /* file-source -> ogg-demuxer ~> vorbis-decoder -> converter -> alsa-output */
  gst_element_link (source, demuxer);
  gst_element_link (decvd, vdqueue);
  gst_element_link (vdqueue, vdsink);
  //gst_element_link (decad, adqueue);
  gst_element_link (adqueue, adsink);

  g_signal_connect (demuxer, "pad-added", G_CALLBACK (on_pad_added), NULL);

  /* note that the demuxer will be linked to the decoder dynamically.
    The reason is that Ogg may contain various streams (for example
    audio and video). The source pad(s) will be created at run time,
    by the demuxer when it detects the amount and nature of streams.
    Therefore we connect a callback function which will be executed
    when the "pad-added" is emitted.*/

  /* Set the pipeline to "playing" state*/
  g_print ("Now playing: %s\n", argv[1]);
  gst_element_set_state (pipeline, GST_STATE_PLAYING);


  /* Iterate */
  g_print ("Running...\n");
  g_main_loop_run (loop);


  /* Out of the main loop, clean up nicely */
  g_print ("Returned, stopping playback\n");
  gst_element_set_state (pipeline, GST_STATE_NULL);

  g_print ("Deleting pipeline\n");
  gst_object_unref (GST_OBJECT (pipeline));

  return 0;
}

Create a directory inside your ltib directory to compile your source code:

$ mkdir ~/your-ltib-dir/rpm/BUILD/gst

Enter on LTIB shell mode:

$ ./ltib -m shell

Entering ltib shell mode, type 'exit' to quit

LTIB>

Enter in your application dir:

LTIB> cd rpm/BUILD/gst/

Compile your application:

LTIB> gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) playvideo.c -o playvideo

If everything worked file you will get a "playvideo" arm binary:

LTIB> file playvideo

playvideo: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped

Now just copy it to ~/your-ltib-dir/rootfs/home.

Start your board using this rootfs and execute:

root@freescale ~$ cd /home/

root@freescale /home$ ./playvideo your-file-h264-mp3.avi

Now playing: your-file-h264-mp3.avi

Running...

评论

Hi Jesseg,

Where I can get mfw_mp3_encode/decode source code and how to add them into my ltib environment, I am using imx27ads board and BSP REL2

Best regards.

%3CLINGO-SUB%20id%3D%22lingo-sub-1104011%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E6%89%80%E6%9C%89%E6%9D%BF%E5%9D%97%20%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E8%A7%86%E9%A2%91%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1104011%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%9D%A5%E4%BD%BF%E7%94%A8%20gst-launch%20%E6%9D%A5%E6%92%AD%E6%94%BE%E9%9F%B3%E9%A2%91%2F%E8%A7%86%E9%A2%91%E5%AA%92%E4%BD%93%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CDIV%20style%3D%22background-color%3A%20%23eeeeff%3B%20padding-left%3A%2030px%3B%20width%3A%2060%25%3B%20margin-left%3A%2020%25%3B%22%3E%E8%AF%A5%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%B7%B2%E5%9C%A8%20iMX27ADS%20%E4%B8%AD%E6%B5%8B%E8%AF%95%EF%BC%8C%E4%BD%86%E5%BA%94%E5%8F%AF%E5%9C%A8%20iMX27PDK%20%E4%B8%8A%E8%BF%90%E8%A1%8C%E3%80%82%3C%2FDIV%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E9%A6%96%E5%85%88%E6%89%A7%E8%A1%8C%20LTIB%20(.%2Fltib%20-c)%20%E5%B9%B6%E9%80%89%E6%8B%A9%E8%BF%99%E4%BA%9B%E5%8C%85%EF%BC%9A%E6%89%80%E6%9C%89%20gstreamer%20%E6%8F%92%E4%BB%B6%E3%80%81alsa-utils%20%E5%92%8C%20libmad%E3%80%82%3C%2FP%3E%3CP%3E%E5%88%9B%E5%BB%BA%E6%82%A8%E7%9A%84%E6%96%87%E4%BB%B6%E4%BB%A3%E7%A0%81%EF%BC%88%E5%8D%B3%EF%BC%9Aplayvideo.c%EF%BC%89%EF%BC%9A%3C%2FP%3E%3CBLOCKQUOTE%3E%23%E5%8C%85%E6%8B%AC%3CGST%3E%0A%3CP%3E%23include%20%3CGLIB.H%3E%23include%20%3CSTRING.H%3E%3C%2FSTRING.H%3E%3C%2FGLIB.H%3E%3C%2FP%3E%0A%0A%0A%3CBR%20%2F%3E%3CBR%20%2F%3E%0A%3CP%3E%E9%9D%99%E6%80%81%20GstElement%20*source%E3%80%81*demuxer%E3%80%81*vdqueue%E3%80%81*adqueue%E3%80%81*vdsink%E3%80%81*adsink%E3%80%81*decvd%E3%80%81*decad%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20void%20on_pad_added%20(GstElement%20*element%EF%BC%8CGstPad%20*pad)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20g_debug%20(%22%E4%BF%A1%E5%8F%B7%3A%20pad-added%22)%3B%3CBR%20%2F%3E%20GstCaps%20*%E5%A4%A7%E5%86%99%E5%AD%97%E6%AF%8D%EF%BC%9B%3CBR%20%2F%3E%20Gst%E7%BB%93%E6%9E%84*str%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%B8%BD%20%3D%20gst_pad_get_caps%20%EF%BC%88%E5%9E%AB%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20g_assert%EF%BC%88caps%EF%BC%81%3D%20NULL%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20str%20%3D%20gst_caps_get_structure%20(caps%EF%BC%8C%200)%3B%3CBR%20%2F%3E%20g_assert%EF%BC%88str%EF%BC%81%3DNULL%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%EF%BC%88g_strrstr%EF%BC%88gst_structure_get_name%EF%BC%88str%EF%BC%89%EF%BC%8C%E2%80%9C%E8%A7%86%E9%A2%91%E2%80%9D%EF%BC%89%7B%3CBR%20%2F%3E%20g_debug%20(%22%E5%B0%86%E8%A7%86%E9%A2%91%E6%9D%BF%E9%93%BE%E6%8E%A5%E5%88%B0%20dec_vd%22)%3B%3CBR%20%2F%3E%20%2F%2F%20%E5%AE%9E%E9%99%85%E9%93%BE%E6%8E%A5%3CBR%20%2F%3EGstPad%20*targetsink%20%3D%20gst_element_get_pad%20(decvd%EF%BC%8C%E2%80%9C%E6%8E%A5%E6%94%B6%E5%99%A8%E2%80%9D)%3B%3CBR%20%2F%3E%20g_assert%EF%BC%88%E7%9B%AE%E6%A0%87%E6%8E%A5%E6%94%B6%E5%99%A8%EF%BC%81%3D%20NULL%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_pad_link%EF%BC%88pad%EF%BC%8Ctargetsink%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_object_unref%EF%BC%88%E7%9B%AE%E6%A0%87%E6%8E%A5%E6%94%B6%E5%99%A8%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%EF%BC%88g_strrstr%EF%BC%88gst_structure_get_name%EF%BC%88str%EF%BC%89%EF%BC%8C%E2%80%9Caudio%E2%80%9D%EF%BC%89%EF%BC%89%7B%3CBR%20%2F%3E%20g_debug%20(%22%E5%B0%86%E9%9F%B3%E9%A2%91%E5%9E%AB%E9%93%BE%E6%8E%A5%E5%88%B0%20dec_ad%22)%3B%3CBR%20%2F%3E%20%2F%2F%20%E5%AE%9E%E9%99%85%E9%93%BE%E6%8E%A5%3CBR%20%2F%3EGstPad%20*targetsink%20%3D%20gst_element_get_pad%20(decad%2C%20%22sink%22)%3B%3CBR%20%2F%3E%20g_assert%EF%BC%88%E7%9B%AE%E6%A0%87%E6%8E%A5%E6%94%B6%E5%99%A8%EF%BC%81%3D%20NULL%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_pad_link%EF%BC%88pad%EF%BC%8Ctargetsink%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_object_unref%EF%BC%88%E7%9B%AE%E6%A0%87%E6%8E%A5%E6%94%B6%E5%99%A8%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%20gst_caps_unref%EF%BC%88%E5%A4%A7%E5%86%99%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E9%9D%99%E6%80%81%20gboolean%3CBR%20%2F%3E%E6%80%BB%E7%BA%BF%E8%B0%83%E7%94%A8%EF%BC%88GstBus%20*%E6%80%BB%E7%BA%BF%EF%BC%8C%3CBR%20%2F%3E%20GstMessage%20*msg%EF%BC%8C%3CBR%20%2F%3E%20gpointer%20%E6%95%B0%E6%8D%AE%EF%BC%89%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20GMainLoop%20*%E5%BE%AA%E7%8E%AF%20%3D%20(GMainLoop%20*)%20%E6%95%B0%E6%8D%AE%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%BC%80%E5%85%B3%EF%BC%88GST_MESSAGE_TYPE%EF%BC%88msg%EF%BC%89%EF%BC%89%7B%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%A1%88%E4%BE%8B%20GST_MESSAGE_EOS%EF%BC%9A%3CBR%20%2F%3E%20g_print%20(%22%E6%B5%81%E7%BB%93%E6%9D%9F%5Cn%22)%3B%3CBR%20%2F%3E%20g_main_loop_quit%EF%BC%88%E5%BE%AA%E7%8E%AF%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%E4%BC%91%E6%81%AF%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%A1%88%E4%BE%8B%20GST_MESSAGE_ERROR%EF%BC%9A%7B%3CBR%20%2F%3E%20gchar%20*%E8%B0%83%E8%AF%95%EF%BC%9B%3CBR%20%2F%3E%20GError%20*%E9%94%99%E8%AF%AF%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20gst_message_parse_error%EF%BC%88msg%EF%BC%8C%26amp%3Berror%EF%BC%8C%26amp%3Bdebug%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20g_free%EF%BC%88%E8%B0%83%E8%AF%95%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20g_printerr%20(%22%E9%94%99%E8%AF%AF%EF%BC%9A%25s%5Cn%22%2C%20%E9%94%99%E8%AF%AF-%26gt%3B%E6%B6%88%E6%81%AF)%3B%3CBR%20%2F%3E%20g_error_free%EF%BC%88%E9%94%99%E8%AF%AF%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20g_main_loop_quit%EF%BC%88%E5%BE%AA%E7%8E%AF%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%E4%BC%91%E6%81%AF%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%E9%BB%98%E8%AE%A4%EF%BC%9A%3CBR%20%2F%3E%E4%BC%91%E6%81%AF%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%BF%94%E5%9B%9E%20TRUE%EF%BC%9B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%95%B4%E6%95%B0%3CBR%20%2F%3E%E4%B8%BB%E8%A6%81%EF%BC%88int%20argc%EF%BC%8C%3CBR%20%2F%3E%E5%AD%97%E7%AC%A6%20*argv%5B%5D)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20GMainLoop%20*%E5%BE%AA%E7%8E%AF%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20GstElement%20*%E7%AE%A1%E9%81%93%EF%BC%9B%3CBR%20%2F%3E%20GstBus%20*%E6%80%BB%E7%BA%BF%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E5%88%9D%E5%A7%8B%E5%8C%96%20*%2F%3CBR%20%2F%3E%20gst_init%EF%BC%88%EF%BC%86argc%EF%BC%8C%EF%BC%86argv%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%BE%AA%E7%8E%AF%20%3D%20g_main_loop_new%20(NULL%EF%BC%8CFALSE)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E6%A3%80%E6%9F%A5%E8%BE%93%E5%85%A5%E5%8F%82%E6%95%B0%20*%2F%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%EF%BC%88argc%EF%BC%81%3D%202%EF%BC%89%7B%3CBR%20%2F%3E%20g_printerr%20(%22%E7%94%A8%E6%B3%95%EF%BC%9A%EF%BC%85s%20%3CVIDEO%20h264%3D%22%22%20filename%3D%22%22%3E%20%5Cn%22%2C%20argv%5B0%5D)%3B%3CBR%20%2F%3E%E8%BF%94%E5%9B%9E-1%EF%BC%9B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E5%88%9B%E5%BB%BA%20gstreamer%20%E5%85%83%E7%B4%A0%20*%2F%3CBR%20%2F%3E%E7%AE%A1%E9%81%93%3Dgst_pipeline_new%EF%BC%88%E2%80%9C%E5%AA%92%E4%BD%93%E6%92%AD%E6%94%BE%E5%99%A8%E2%80%9D%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%E6%BA%90%20%3D%20gst_element_factory_make%20(%22filesrc%22%2C%22%E6%96%87%E4%BB%B6%E6%BA%90%22)%3B%3CBR%20%2F%3E%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%3Dgst_element_factory_make%EF%BC%88%E2%80%9Cmfw_mp4demuxer%E2%80%9D%EF%BC%8C%E2%80%9Cavi%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%E2%80%9D%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20decvd%20%3D%20gst_element_factory_make%EF%BC%88%E2%80%9Cmfw_vpudecoder%E2%80%9D%EF%BC%8C%E2%80%9C%E8%A7%86%E9%A2%91%E8%A7%A3%E7%A0%81%E5%99%A8%E2%80%9D%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20decad%20%3D%20gst_element_factory_make%20(%E2%80%9Cmad%E2%80%9D%2C%20%E2%80%9Cmp3%E8%A7%A3%E7%A0%81%E5%99%A8%E2%80%9D)%3B%3CBR%20%2F%3E%20vdsink%20%3D%20gst_element_factory_make%EF%BC%88%E2%80%9Cmfw_v4lsink%E2%80%9D%EF%BC%8C%E2%80%9C%E8%A7%86%E9%A2%91%E6%8E%A5%E6%94%B6%E5%99%A8%E2%80%9D%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20vdqueue%20%3D%20gst_element_factory_make%20(%E2%80%9C%E9%98%9F%E5%88%97%E2%80%9D%EF%BC%8C%E2%80%9C%E8%A7%86%E9%A2%91%E9%98%9F%E5%88%97%E2%80%9D)%3B%3CBR%20%2F%3E%20adqueue%20%3D%20gst_element_factory_make%20(%E2%80%9C%E9%98%9F%E5%88%97%E2%80%9D%EF%BC%8C%E2%80%9C%E9%9F%B3%E9%A2%91%E9%98%9F%E5%88%97%E2%80%9D)%3B%3CBR%20%2F%3E%20adsink%20%3D%20gst_element_factory_make%20(%E2%80%9Cfakesink%E2%80%9D%EF%BC%8C%E2%80%9C%E9%9F%B3%E9%A2%91%E6%8E%A5%E6%94%B6%E5%99%A8%E2%80%9D)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20g_object_set%20(decvd%2C%20%E2%80%9C%E7%BC%96%E8%A7%A3%E7%A0%81%E5%99%A8%E7%B1%BB%E5%9E%8B%E2%80%9D%2C%20%E2%80%9Cstd_avc%E2%80%9D%2C%20NULL)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%A6%82%E6%9E%9C%EF%BC%88%EF%BC%81%E7%AE%A1%E9%81%93%7C%7C%EF%BC%81%E6%BA%90%7C%7C%EF%BC%81%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%7C%7C%EF%BC%81decvd%20%7C%7C%EF%BC%81decad%20%7C%7C%EF%BC%81vdsink%20%7C%7C%EF%BC%81vdqueue%20%7C%7C%EF%BC%81adqueue%20%7C%7C%EF%BC%81adsink%EF%BC%89%7B%3CBR%20%2F%3E%20g_printerr%EF%BC%88%E2%80%9C%E6%97%A0%E6%B3%95%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0%E3%80%82%E9%80%80%E5%87%BA%E3%80%82%5Cn%E2%80%9D)%3B%3CBR%20%2F%3E%E8%BF%94%E5%9B%9E-1%EF%BC%9B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E8%AE%BE%E7%BD%AE%E7%AE%A1%E9%81%93%20*%2F%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E6%88%91%E4%BB%AC%E5%B0%86%E8%BE%93%E5%85%A5%E6%96%87%E4%BB%B6%E5%90%8D%E8%AE%BE%E7%BD%AE%E4%B8%BA%E6%BA%90%E5%85%83%E7%B4%A0%20*%2F%3CBR%20%2F%3E%20g_object_set%20(G_OBJECT%20(%E6%BA%90)%2C%20%22%E4%BD%8D%E7%BD%AE%22%2C%20argv%5B1%5D%2C%20NULL)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E6%88%91%E4%BB%AC%E6%B7%BB%E5%8A%A0%E4%B8%80%E4%B8%AA%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%20*%2F%3CBR%20%2F%3E%E6%80%BB%E7%BA%BF%20%3D%20gst_pipeline_get_bus%20(GST_PIPELINE%20(%E7%AE%A1%E9%81%93))%3B%3CBR%20%2F%3E%20gst_bus_add_watch%EF%BC%88%E6%80%BB%E7%BA%BF%EF%BC%8Cbus_call%EF%BC%8C%E5%BE%AA%E7%8E%AF%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_object_unref%EF%BC%88%E6%80%BB%E7%BA%BF%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E6%88%91%E4%BB%AC%E5%B0%86%E6%89%80%E6%9C%89%E5%85%83%E7%B4%A0%E6%B7%BB%E5%8A%A0%E5%88%B0%E7%AE%A1%E9%81%93%E4%B8%AD%20*%2F%3CBR%20%2F%3E%20%2F*%20%E6%96%87%E4%BB%B6%E6%BA%90%20%7C%20ogg%20%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%20%7C%20vorbis%20%E8%A7%A3%E7%A0%81%E5%99%A8%20%7C%E8%BD%AC%E6%8D%A2%E5%99%A8%7C%20alsa-%E8%BE%93%E5%87%BA%20*%2F%3CBR%20%2F%3E%20gst_bin_add_many%EF%BC%88GST_BIN%EF%BC%88%E7%AE%A1%E9%81%93%EF%BC%89%EF%BC%8C%3CBR%20%2F%3E%E6%BA%90%E3%80%81%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%E3%80%81decvd%E3%80%81decad%E3%80%81adqueue%E3%80%81vdqueue%E3%80%81vdsink%E3%80%81adsink%E3%80%81NULL%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E6%88%91%E4%BB%AC%E5%B0%86%E5%85%83%E7%B4%A0%E9%93%BE%E6%8E%A5%E5%9C%A8%E4%B8%80%E8%B5%B7%20*%2F%3CBR%20%2F%3E%20%2F*%20%E6%96%87%E4%BB%B6%E6%BA%90%20-%26gt%3B%20ogg-demuxer%20~%26gt%3B%20vorbis-decoder%20-%26gt%3B%20%E8%BD%AC%E6%8D%A2%E5%99%A8%20-%26gt%3B%20alsa-output%20*%2F%3CBR%20%2F%3E%20gst_element_link%EF%BC%88%E6%BA%90%EF%BC%8C%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_element_link%EF%BC%88decvd%EF%BC%8Cvdqueue%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_element_link%EF%BC%88vdqueue%EF%BC%8Cvdsink%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20%2F%2Fgst_element_link%EF%BC%88decad%EF%BC%8Cadqueue%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%20gst_element_link%EF%BC%88%E5%B9%BF%E5%91%8A%E9%98%9F%E5%88%97%EF%BC%8C%E5%B9%BF%E5%91%8A%E6%8E%A5%E6%94%B6%E5%99%A8%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20g_signal_connect%EF%BC%88%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%EF%BC%8C%E2%80%9Cpad-added%E2%80%9D%EF%BC%8CG_CALLBACK%EF%BC%88on_pad_added%EF%BC%89%EF%BC%8CNULL%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E6%B3%A8%E6%84%8F%EF%BC%8C%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%E5%B0%86%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%88%B0%E8%A7%A3%E7%A0%81%E5%99%A8%E3%80%82%3CBR%20%2F%3E%E5%8E%9F%E5%9B%A0%E6%98%AF%20Ogg%20%E5%8F%AF%E8%83%BD%E5%8C%85%E5%90%AB%E5%90%84%E7%A7%8D%E6%B5%81%EF%BC%88%E4%BE%8B%E5%A6%82%3CBR%20%2F%3E%E9%9F%B3%E9%A2%91%E5%92%8C%E8%A7%86%E9%A2%91%EF%BC%89%E3%80%82%E6%BA%90%E5%9E%AB%E5%B0%86%E5%9C%A8%E8%BF%90%E8%A1%8C%E6%97%B6%E5%88%9B%E5%BB%BA%EF%BC%8C%3CBR%20%2F%3E%E5%BD%93%E8%A7%A3%E5%A4%8D%E7%94%A8%E5%99%A8%E6%A3%80%E6%B5%8B%E5%88%B0%E6%B5%81%E7%9A%84%E6%95%B0%E9%87%8F%E5%92%8C%E6%80%A7%E8%B4%A8%E6%97%B6%E3%80%82%3CBR%20%2F%3E%E5%9B%A0%E6%AD%A4%E6%88%91%E4%BB%AC%E8%BF%9E%E6%8E%A5%E4%B8%80%E4%B8%AA%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0%EF%BC%8C%E5%AE%83%E5%B0%86%E8%A2%AB%E6%89%A7%E8%A1%8C%3CBR%20%2F%3E%E5%BD%93%E5%8F%91%E5%87%BA%E2%80%9Cpad-added%E2%80%9D%E6%97%B6%E3%80%82*%2F%3CBR%20%2F%3E%3CBR%20%2F%3E%2F*%20%E8%AE%BE%E7%BD%AE%E7%AE%A1%E9%81%93%E4%B8%BA%E2%80%9C%E6%92%AD%E6%94%BE%E2%80%9D%E7%8A%B6%E6%80%81*%2F%3CBR%20%2F%3E%20g_print%20(%22%E6%AD%A3%E5%9C%A8%E6%92%AD%E6%94%BE%EF%BC%9A%25s%5Cn%22%2C%20argv%5B1%5D)%3B%3CBR%20%2F%3E%20gst_element_set_state%EF%BC%88%E7%AE%A1%E9%81%93%EF%BC%8CGST_STATE_PLAYING%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E8%BF%AD%E4%BB%A3%20*%2F%3CBR%20%2F%3E%20g_print%20(%22%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C...%5Cn%22)%3B%3CBR%20%2F%3E%20g_main_loop_run%EF%BC%88%E5%BE%AA%E7%8E%AF%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%20%2F*%20%E9%80%80%E5%87%BA%E4%B8%BB%E5%BE%AA%E7%8E%AF%EF%BC%8C%E8%BF%9B%E8%A1%8C%E8%89%AF%E5%A5%BD%E7%9A%84%E6%B8%85%E7%90%86%20*%2F%3CBR%20%2F%3E%20g_print%20(%22%E8%BF%94%E5%9B%9E%EF%BC%8C%E5%81%9C%E6%AD%A2%E6%92%AD%E6%94%BE%5Cn%22)%3B%3CBR%20%2F%3E%20gst_element_set_state%EF%BC%88%E7%AE%A1%E9%81%93%EF%BC%8CGST_STATE_NULL%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%20g_print%20(%22%E5%88%A0%E9%99%A4%E7%AE%A1%E9%81%93%5Cn%22)%3B%3CBR%20%2F%3E%20gst_object_unref%20(GST_OBJECT%20(%E7%AE%A1%E9%81%93))%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%BF%94%E5%9B%9E%200%EF%BC%9B%3CBR%20%2F%3E%20%7D%3C%2FVIDEO%3E%3C%2FP%3E%0A%0A%0A%0A%3C%2FGST%3E%3C%2FBLOCKQUOTE%3E%3CP%3E%E5%9C%A8%E6%82%A8%E7%9A%84%20ltib%20%E7%9B%AE%E5%BD%95%E4%B8%AD%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E6%9D%A5%E7%BC%96%E8%AF%91%E6%82%A8%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%9A%3C%2FP%3E%3CP%3E%24%20mkdir%20~%2Fyour-ltib-dir%2Frpm%2FBUILD%2Fgst%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E8%BF%9B%E5%85%A5LTIB%20shell%E6%A8%A1%E5%BC%8F%EF%BC%9A%3C%2FP%3E%3CP%3E%24%20.%2Fltib-m%20%E5%A3%B3%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E8%BF%9B%E5%85%A5%20ltib%20shell%20%E6%A8%A1%E5%BC%8F%EF%BC%8C%E8%BE%93%E5%85%A5%E2%80%9Cexit%E2%80%9D%E9%80%80%E5%87%BA%3C%2FP%3E%3CP%3ELTIB%26gt%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E8%BE%93%E5%85%A5%E6%82%A8%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9B%AE%E5%BD%95%EF%BC%9A%3C%2FP%3E%3CP%3ELTIB%26gt%3B%20cd%20rpm%2FBUILD%2Fgst%2F%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E7%BC%96%E8%AF%91%E6%82%A8%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9A%3C%2FP%3E%3CP%3ELTIB%26gt%3B%20gcc%20-Wall%20%24%EF%BC%88pkg-config%20--cflags%20--libs%20gstreamer-0.10%EF%BC%89%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91.c-o%20%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E5%A6%82%E6%9E%9C%E4%B8%80%E5%88%87%E6%AD%A3%E5%B8%B8%EF%BC%8C%E6%82%A8%E5%B0%86%E8%8E%B7%E5%BE%97%E4%B8%80%E4%B8%AA%E2%80%9Cplayvideo%E2%80%9Darm%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%9A%3C%2FP%3E%3CP%3ELTIB%26gt%3B%E6%96%87%E4%BB%B6%E6%92%AD%E6%94%BE%E8%A7%86%E9%A2%91%3C%2FP%3E%3CP%3Eplayvideo%EF%BC%9AELF%2032%20%E4%BD%8D%20LSB%20%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%EF%BC%8CARM%EF%BC%8C%E7%89%88%E6%9C%AC%201%EF%BC%88SYSV%EF%BC%89%EF%BC%8C%E9%80%82%E7%94%A8%E4%BA%8E%20GNU%2FLinux%202.6.14%EF%BC%8C%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%EF%BC%88%E4%BD%BF%E7%94%A8%E5%85%B1%E4%BA%AB%E5%BA%93%EF%BC%89%EF%BC%8C%E6%9C%AA%E5%89%A5%E7%A6%BB%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E7%8E%B0%E5%9C%A8%E5%8F%AA%E9%9C%80%E5%B0%86%E5%85%B6%E5%A4%8D%E5%88%B6%E5%88%B0~%2Fyour-ltib-dir%2Frootfs%2Fhome%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E4%BD%BF%E7%94%A8%E6%AD%A4%20rootfs%20%E5%90%AF%E5%8A%A8%E4%BD%A0%E7%9A%84%E4%B8%BB%E6%9D%BF%E5%B9%B6%E6%89%A7%E8%A1%8C%EF%BC%9A%3C%2FP%3E%3CP%3Eroot%40freescale~%24%20cd%20%2Fhome%2F%3C%2FP%3E%3CP%3Eroot%40freescale%2Fhome%24.%2Fplayvideo%E4%BD%A0%E7%9A%84%E6%96%87%E4%BB%B6-h264-mp3.avi%3C%2FP%3E%3CP%3E%E6%AD%A3%E5%9C%A8%E6%92%AD%E6%94%BE%EF%BC%9Ayour-file-h264-mp3.avi%3C%2FP%3E%3CP%3E%E8%B7%91%E6%AD%A5...%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1104012%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E6%89%80%E6%9C%89%E6%9D%BF%E5%9D%97%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E8%A7%86%E9%A2%91%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1104012%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3EHi%20Jesseg%2C%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%93%AA%E9%87%8C%E8%8E%B7%E5%BE%97%20mfw_mp3_encode%2Fdecode%20%E6%BA%90%E4%BB%A3%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E5%B0%86%E5%AE%83%E4%BB%AC%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%88%91%E7%9A%84%20ltib%20%E7%8E%AF%E5%A2%83%E4%B8%AD%EF%BC%8C%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%20imx27ads%20%E6%9D%BF%E5%92%8C%20BSP%20REL2%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E
无评分
版本历史
最后更新:
‎08-06-2012 12:01 PM
更新人: