add notes on flacparse bug
This commit is contained in:
19
doc/hacking/bugs/bgo-650785/bgo-650785.otl
Normal file
19
doc/hacking/bugs/bgo-650785/bgo-650785.otl
Normal file
@@ -0,0 +1,19 @@
|
||||
bugzilla 650785
|
||||
bisecting -good
|
||||
notes
|
||||
using teuf's C test case, but fixing the spaces between quotes and !
|
||||
tested on F17 ana
|
||||
commits
|
||||
e0cadab
|
||||
teuf fails
|
||||
8823ae251a72bd18fc93322914c70390fc16c6b3
|
||||
slomo's patch from bz report
|
||||
teuf works
|
||||
8229709
|
||||
1 patch after 0.10.30
|
||||
teuf works
|
||||
a53540346a18d27b94f5254ac2582cb844e9bde0
|
||||
tim's fix for bugzilla 650785
|
||||
commit a53540346a18d27b94f5254ac2582cb844e9bde0
|
||||
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
|
||||
Date: Mon May 23 13:50:46 2011 +0100
|
||||
10
doc/hacking/bugs/bgo-650785/bisect.sh
Executable file
10
doc/hacking/bugs/bgo-650785/bisect.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
GOOD=/home/thomas/gst/git/gst-plugins-good/gst/audioparsers
|
||||
MORI=/home/thomas/dev/own/morituri
|
||||
|
||||
cd $GOOD
|
||||
make
|
||||
|
||||
GST_PLUGIN_PATH=$GOOD gst-inspect flacparse | grep ersion:
|
||||
|
||||
cd $MORI
|
||||
GST_PLUGIN_PATH=$GOOD ./flacparse-testcase $MORI/morituri/test/track.flac
|
||||
64
doc/hacking/bugs/bgo-650785/flacparse-testcase.c
Normal file
64
doc/hacking/bugs/bgo-650785/flacparse-testcase.c
Normal file
@@ -0,0 +1,64 @@
|
||||
/* gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) -g3 -ggdb3 -o flacparse-testcase ./flacparse-testcase.c */
|
||||
#include <gst/gst.h>
|
||||
|
||||
static const char PIPELINE[] = "filesrc location=%s " \
|
||||
"! decodebin ! audio/x-raw-int " \
|
||||
"! appsink name=sink sync=False " \
|
||||
"emit-signals=True";
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
GstElement *pipeline;
|
||||
GstElement *sink;
|
||||
gchar *pipeline_str;
|
||||
GstStateChangeReturn state_change_status;
|
||||
gint64 duration;
|
||||
GstFormat query_format;
|
||||
gboolean query_success;
|
||||
|
||||
gst_init(&argc, &argv);
|
||||
|
||||
if (argc != 2) {
|
||||
g_print("Usage: %s filename\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
pipeline_str = g_strdup_printf(PIPELINE, argv[1]);
|
||||
pipeline = gst_parse_launch(pipeline_str, NULL);
|
||||
if (pipeline == NULL) {
|
||||
g_print("Failed to create pipeline\n");
|
||||
g_print("%s\n", pipeline_str);
|
||||
return 2;
|
||||
}
|
||||
g_free(pipeline_str);
|
||||
|
||||
gst_element_set_state(pipeline, GST_STATE_PAUSED);
|
||||
state_change_status = gst_element_get_state(pipeline, NULL, NULL,
|
||||
GST_CLOCK_TIME_NONE);
|
||||
if (state_change_status != GST_STATE_CHANGE_SUCCESS) {
|
||||
g_print("Failed to set pipeline to PAUSED\n");
|
||||
return 3;
|
||||
}
|
||||
|
||||
sink = gst_bin_get_by_name(GST_BIN(pipeline), "sink");
|
||||
if (sink == NULL) {
|
||||
g_print("Couldn't find sink in pipeline\n");
|
||||
return 4;
|
||||
}
|
||||
|
||||
query_format = GST_FORMAT_DEFAULT;
|
||||
query_success = gst_element_query_duration(sink, &query_format,
|
||||
&duration);
|
||||
if (query_success) {
|
||||
g_print("%s duration is %"G_GINT64_FORMAT"\n", argv[1], duration);
|
||||
return 0;
|
||||
} else {
|
||||
g_print("Couldn't get duration for %s\n", argv[1]);
|
||||
return 5;
|
||||
}
|
||||
|
||||
gst_object_unref(GST_OBJECT(sink));
|
||||
gst_object_unref(GST_OBJECT(pipeline));
|
||||
|
||||
return 6;
|
||||
}
|
||||
Reference in New Issue
Block a user