mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
add plugin documentation
Original commit message from CVS: add plugin documentation
This commit is contained in:
parent
d1436be17d
commit
7d7c3e478e
10 changed files with 225 additions and 17747 deletions
|
@ -1,5 +1,5 @@
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
gst ext m4 common
|
gst ext docs m4 common
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
gst-plugins-ugly.spec depcomp \
|
gst-plugins-ugly.spec depcomp \
|
||||||
|
|
11
configure.ac
11
configure.ac
|
@ -325,6 +325,12 @@ GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS $G
|
||||||
AC_SUBST(GST_LIBS)
|
AC_SUBST(GST_LIBS)
|
||||||
AC_SUBST(GST_CFLAGS)
|
AC_SUBST(GST_CFLAGS)
|
||||||
|
|
||||||
|
dnl ######################
|
||||||
|
dnl # Checks for gtk-doc #
|
||||||
|
dnl ######################
|
||||||
|
|
||||||
|
GTK_DOC_CHECK([1.3])
|
||||||
|
|
||||||
dnl ############################
|
dnl ############################
|
||||||
dnl # Set up some more defines #
|
dnl # Set up some more defines #
|
||||||
dnl ############################
|
dnl ############################
|
||||||
|
@ -374,7 +380,6 @@ dnl po/Makefile.in
|
||||||
|
|
||||||
AC_CONFIG_FILES(
|
AC_CONFIG_FILES(
|
||||||
Makefile
|
Makefile
|
||||||
gst-plugins-ugly.spec
|
|
||||||
gst/Makefile
|
gst/Makefile
|
||||||
gst/dvdlpcmdec/Makefile
|
gst/dvdlpcmdec/Makefile
|
||||||
gst/mpegaudioparse/Makefile
|
gst/mpegaudioparse/Makefile
|
||||||
|
@ -385,9 +390,13 @@ ext/lame/Makefile
|
||||||
ext/mad/Makefile
|
ext/mad/Makefile
|
||||||
ext/mpeg2dec/Makefile
|
ext/mpeg2dec/Makefile
|
||||||
ext/sidplay/Makefile
|
ext/sidplay/Makefile
|
||||||
|
docs/Makefile
|
||||||
|
docs/plugins/Makefile
|
||||||
|
docs/version.entities
|
||||||
common/Makefile
|
common/Makefile
|
||||||
common/m4/Makefile
|
common/m4/Makefile
|
||||||
m4/Makefile
|
m4/Makefile
|
||||||
|
gst-plugins-ugly.spec
|
||||||
)
|
)
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
|
|
109
docs/plugins/Makefile.am
Normal file
109
docs/plugins/Makefile.am
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj
|
||||||
|
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
# The name of the module, e.g. 'glib'.
|
||||||
|
#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@
|
||||||
|
MODULE=gst-plugins-ugly
|
||||||
|
DOC_MODULE=$(MODULE)-plugins
|
||||||
|
|
||||||
|
# for upload.mak
|
||||||
|
DOC=$(MODULE)-plugins
|
||||||
|
FORMATS=html
|
||||||
|
html: html-build.stamp
|
||||||
|
include $(top_srcdir)/common/upload-doc.mak
|
||||||
|
|
||||||
|
# generated basefiles
|
||||||
|
#basefiles = \
|
||||||
|
## $(DOC_MODULE).types \
|
||||||
|
# $(DOC_MODULE)-sections.txt \
|
||||||
|
# $(DOC_MODULE)-docs.sgml
|
||||||
|
|
||||||
|
# ugly hack to make -unused.sgml work
|
||||||
|
#unused-build.stamp:
|
||||||
|
# BUILDDIR=`pwd` && \
|
||||||
|
# cd $(srcdir)/tmpl && \
|
||||||
|
# ln -sf gstreamer-libs-unused.sgml \
|
||||||
|
# $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml
|
||||||
|
# touch unused-build.stamp
|
||||||
|
|
||||||
|
# these rules are added to create parallel docs using GST_MAJORMINOR
|
||||||
|
#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs%
|
||||||
|
# cp $< $@
|
||||||
|
|
||||||
|
#CLEANFILES = $(basefiles)
|
||||||
|
|
||||||
|
# The top-level SGML file. Change it if you want.
|
||||||
|
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
|
||||||
|
|
||||||
|
# The directory containing the source code. Relative to $(top_srcdir).
|
||||||
|
# gtk-doc will search all .c & .h files beneath here for inline comments
|
||||||
|
# documenting functions and macros.
|
||||||
|
DOC_SOURCE_DIR = $(top_srcdir)
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-scan.
|
||||||
|
SCAN_OPTIONS=
|
||||||
|
|
||||||
|
# FIXME :
|
||||||
|
# there's something wrong with gstreamer-sections.txt not being in the dist
|
||||||
|
# maybe it doesn't resolve; we're adding it below for now
|
||||||
|
#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE)
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-mkdb.
|
||||||
|
MKDB_OPTIONS=--sgml-mode
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-fixref.
|
||||||
|
# FIXME get the location of the installed gstreamer docs
|
||||||
|
#FIXXREF_OPTIONS=--extra-dir=../gst/html
|
||||||
|
|
||||||
|
# Used for dependencies.
|
||||||
|
HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.h
|
||||||
|
CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.c
|
||||||
|
|
||||||
|
# this is a wingo addition
|
||||||
|
# thomasvs: another nice wingo addition would be an explanation on why
|
||||||
|
# this is useful ;)
|
||||||
|
|
||||||
|
SCANOBJ_DEPS =
|
||||||
|
|
||||||
|
# Header files to ignore when scanning.
|
||||||
|
IGNORE_HFILES =
|
||||||
|
IGNORE_CFILES =
|
||||||
|
|
||||||
|
# we add all .h files of elements that have signals/args we want
|
||||||
|
# sadly this also pulls in the private methods - maybe we should
|
||||||
|
# move those around in the source ?
|
||||||
|
# also, we should add some stuff here conditionally based on whether
|
||||||
|
# or not the plugin will actually build
|
||||||
|
# but I'm not sure about that - it might be this Just Works given that
|
||||||
|
# the registry won't have the element
|
||||||
|
|
||||||
|
# FIXME: not ported yet
|
||||||
|
# $(top_srcdir)/ext/gnomevfs/gstgnomevfssink.c
|
||||||
|
|
||||||
|
EXTRA_HFILES = \
|
||||||
|
$(top_srcdir)/ext/mad/gstmad.h
|
||||||
|
|
||||||
|
# Images to copy into HTML directory.
|
||||||
|
HTML_IMAGES =
|
||||||
|
|
||||||
|
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||||
|
content_files =
|
||||||
|
|
||||||
|
# Other files to distribute.
|
||||||
|
extra_files =
|
||||||
|
|
||||||
|
# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
|
||||||
|
# contains GtkObjects/GObjects and you want to document signals and properties.
|
||||||
|
GTKDOC_CFLAGS = $(GST_BASE_CFLAGS) -I$(top_builddir)
|
||||||
|
GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
|
||||||
|
|
||||||
|
GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
|
||||||
|
GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
|
||||||
|
|
||||||
|
# If you need to override some of the declarations, place them in this file
|
||||||
|
# and uncomment this line.
|
||||||
|
#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
|
||||||
|
DOC_OVERRIDES =
|
||||||
|
|
||||||
|
include $(top_srcdir)/common/gtk-doc-plugins.mak
|
28
docs/plugins/gst-plugins-ugly-plugins-docs.sgml
Normal file
28
docs/plugins/gst-plugins-ugly-plugins-docs.sgml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||||
|
<!ENTITY % version-entities SYSTEM "version.entities">
|
||||||
|
%version-entities;
|
||||||
|
]>
|
||||||
|
|
||||||
|
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
|
||||||
|
<bookinfo>
|
||||||
|
<title>GStreamer Ugly Plugins &GST_MAJORMINOR; Plugins Reference Manual</title>
|
||||||
|
</bookinfo>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>gst-plugins-ugly Elements</title>
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>gst-plugins-ugly Plugins</title>
|
||||||
|
|
||||||
|
<xi:include href="xml/plugin-dvdlpcmdec.xml" />
|
||||||
|
<xi:include href="xml/plugin-gstcoreelements.xml" />
|
||||||
|
<xi:include href="xml/plugin-lame.xml" />
|
||||||
|
<xi:include href="xml/plugin-mad.xml" />
|
||||||
|
<xi:include href="xml/plugin-mpegaudioparse.xml" />
|
||||||
|
<xi:include href="xml/plugin-rmdemux.xml" />
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
</book>
|
9
docs/plugins/gst-plugins-ugly-plugins-sections.txt
Normal file
9
docs/plugins/gst-plugins-ugly-plugins-sections.txt
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<SECTION>
|
||||||
|
<FILE>element-mad</FILE>
|
||||||
|
GstMad
|
||||||
|
<TITLE>mad</TITLE>
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
GstMadClass
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
|
1
docs/plugins/gst-plugins-ugly-plugins.types
Normal file
1
docs/plugins/gst-plugins-ugly-plugins.types
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <gst/gst.h>
|
|
@ -674,7 +674,7 @@ dvdnavsrc_tca_seek (DVDNavSrc * src, int title, int chapter, int angle)
|
||||||
g_return_val_if_fail (src->title > 0, FALSE);
|
g_return_val_if_fail (src->title > 0, FALSE);
|
||||||
|
|
||||||
GST_INFO_OBJECT (src, "seeking to %d/%d/%d", title, chapter, angle);
|
GST_INFO_OBJECT (src, "seeking to %d/%d/%d", title, chapter, angle);
|
||||||
/**
|
/*
|
||||||
* Make sure our title number is valid.
|
* Make sure our title number is valid.
|
||||||
*/
|
*/
|
||||||
if (dvdnav_get_number_of_titles (src->dvdnav, &titles) != DVDNAV_STATUS_OK) {
|
if (dvdnav_get_number_of_titles (src->dvdnav, &titles) != DVDNAV_STATUS_OK) {
|
||||||
|
@ -689,7 +689,7 @@ dvdnavsrc_tca_seek (DVDNavSrc * src, int title, int chapter, int angle)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Before we can get the number of chapters (programs) we need to call
|
* Before we can get the number of chapters (programs) we need to call
|
||||||
* dvdnav_title_play so that dvdnav_get_number_of_programs knows which title
|
* dvdnav_title_play so that dvdnav_get_number_of_programs knows which title
|
||||||
* to operate on (also needed to get the number of angles)
|
* to operate on (also needed to get the number of angles)
|
||||||
|
@ -701,7 +701,7 @@ dvdnavsrc_tca_seek (DVDNavSrc * src, int title, int chapter, int angle)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Make sure the chapter number is valid for this title.
|
* Make sure the chapter number is valid for this title.
|
||||||
*/
|
*/
|
||||||
if (dvdnav_get_number_of_titles (src->dvdnav, &programs)
|
if (dvdnav_get_number_of_titles (src->dvdnav, &programs)
|
||||||
|
@ -717,7 +717,7 @@ dvdnavsrc_tca_seek (DVDNavSrc * src, int title, int chapter, int angle)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Make sure the angle number is valid for this title.
|
* Make sure the angle number is valid for this title.
|
||||||
*/
|
*/
|
||||||
if (dvdnav_get_angle_info (src->dvdnav, &curangle, &angles)
|
if (dvdnav_get_angle_info (src->dvdnav, &curangle, &angles)
|
||||||
|
@ -733,7 +733,7 @@ dvdnavsrc_tca_seek (DVDNavSrc * src, int title, int chapter, int angle)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* We've got enough info, time to open the title set data.
|
* We've got enough info, time to open the title set data.
|
||||||
*/
|
*/
|
||||||
if (src->chapter == 0) {
|
if (src->chapter == 0) {
|
||||||
|
@ -800,7 +800,7 @@ dvdnavsrc_update_streaminfo (DVDNavSrc * src)
|
||||||
g_object_notify (G_OBJECT (src), "streaminfo");
|
g_object_notify (G_OBJECT (src), "streaminfo");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Check for a new DVD domain area, and update the structure if
|
* Check for a new DVD domain area, and update the structure if
|
||||||
* necessary.
|
* necessary.
|
||||||
*/
|
*/
|
||||||
|
@ -825,7 +825,7 @@ dvdnavsrc_set_domain (DVDNavSrc * src)
|
||||||
src->domain = domain;
|
src->domain = domain;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Check for a new highlighted area, and send an spu highlight event if
|
* Check for a new highlighted area, and send an spu highlight event if
|
||||||
* necessary.
|
* necessary.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -544,7 +544,7 @@ dvdreadsrc_srcpad_query (GstPad * pad, GstQueryType type,
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Returns true if the pack is a NAV pack. This check is clearly insufficient,
|
* Returns true if the pack is a NAV pack. This check is clearly insufficient,
|
||||||
* and sometimes we incorrectly think that valid other packs are NAV packs. I
|
* and sometimes we incorrectly think that valid other packs are NAV packs. I
|
||||||
* need to make this stronger.
|
* need to make this stronger.
|
||||||
|
@ -579,7 +579,7 @@ _open (DVDReadSrcPrivate * priv, const gchar * location)
|
||||||
g_return_val_if_fail (priv != NULL, -1);
|
g_return_val_if_fail (priv != NULL, -1);
|
||||||
g_return_val_if_fail (location != NULL, -1);
|
g_return_val_if_fail (location != NULL, -1);
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Open the disc.
|
* Open the disc.
|
||||||
*/
|
*/
|
||||||
priv->dvd = DVDOpen (location);
|
priv->dvd = DVDOpen (location);
|
||||||
|
@ -589,7 +589,7 @@ _open (DVDReadSrcPrivate * priv, const gchar * location)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Load the video manager to find out the information about the titles on
|
* Load the video manager to find out the information about the titles on
|
||||||
* this disc.
|
* this disc.
|
||||||
*/
|
*/
|
||||||
|
@ -608,9 +608,9 @@ _seek_title (DVDReadSrcPrivate * priv, int title, int angle)
|
||||||
{
|
{
|
||||||
GHashTable *languagelist = NULL;
|
GHashTable *languagelist = NULL;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Make sure our title number is valid.
|
* Make sure our title number is valid.
|
||||||
*/
|
*/
|
||||||
GST_LOG ("There are %d titles on this DVD", priv->tt_srpt->nr_of_srpts);
|
GST_LOG ("There are %d titles on this DVD", priv->tt_srpt->nr_of_srpts);
|
||||||
if (title < 0 || title >= priv->tt_srpt->nr_of_srpts) {
|
if (title < 0 || title >= priv->tt_srpt->nr_of_srpts) {
|
||||||
GST_WARNING ("Invalid title %d (only %d available)",
|
GST_WARNING ("Invalid title %d (only %d available)",
|
||||||
|
@ -625,9 +625,9 @@ _seek_title (DVDReadSrcPrivate * priv, int title, int angle)
|
||||||
GST_LOG ("There are %d chapters in this title",
|
GST_LOG ("There are %d chapters in this title",
|
||||||
priv->tt_srpt->title[title].nr_of_ptts);
|
priv->tt_srpt->title[title].nr_of_ptts);
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Make sure the angle number is valid for this title.
|
* Make sure the angle number is valid for this title.
|
||||||
*/
|
*/
|
||||||
GST_LOG ("There are %d angles available in this title",
|
GST_LOG ("There are %d angles available in this title",
|
||||||
priv->tt_srpt->title[title].nr_of_angles);
|
priv->tt_srpt->title[title].nr_of_angles);
|
||||||
|
|
||||||
|
@ -640,9 +640,9 @@ _seek_title (DVDReadSrcPrivate * priv, int title, int angle)
|
||||||
angle = priv->tt_srpt->title[title].nr_of_angles - 1;
|
angle = priv->tt_srpt->title[title].nr_of_angles - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Load the VTS information for the title set our title is in.
|
* Load the VTS information for the title set our title is in.
|
||||||
*/
|
*/
|
||||||
priv->vts_file =
|
priv->vts_file =
|
||||||
ifoOpen (priv->dvd, priv->tt_srpt->title[title].title_set_nr);
|
ifoOpen (priv->dvd, priv->tt_srpt->title[title].title_set_nr);
|
||||||
if (!priv->vts_file) {
|
if (!priv->vts_file) {
|
||||||
|
@ -655,9 +655,9 @@ _seek_title (DVDReadSrcPrivate * priv, int title, int angle)
|
||||||
priv->ttn = priv->tt_srpt->title[title].vts_ttn;
|
priv->ttn = priv->tt_srpt->title[title].vts_ttn;
|
||||||
priv->vts_ptt_srpt = priv->vts_file->vts_ptt_srpt;
|
priv->vts_ptt_srpt = priv->vts_file->vts_ptt_srpt;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* We've got enough info, time to open the title set data.
|
* We've got enough info, time to open the title set data.
|
||||||
*/
|
*/
|
||||||
priv->dvd_title =
|
priv->dvd_title =
|
||||||
DVDOpenFile (priv->dvd, priv->tt_srpt->title[title].title_set_nr,
|
DVDOpenFile (priv->dvd, priv->tt_srpt->title[title].title_set_nr,
|
||||||
DVD_READ_TITLE_VOBS);
|
DVD_READ_TITLE_VOBS);
|
||||||
|
@ -688,9 +688,9 @@ _seek_chapter (DVDReadSrcPrivate * priv, int chapter)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Make sure the chapter number is valid for this title.
|
* Make sure the chapter number is valid for this title.
|
||||||
*/
|
*/
|
||||||
if (chapter < 0 || chapter >= priv->tt_srpt->title[priv->title].nr_of_ptts) {
|
if (chapter < 0 || chapter >= priv->tt_srpt->title[priv->title].nr_of_ptts) {
|
||||||
GST_WARNING ("Invalid chapter %d (only %d available)",
|
GST_WARNING ("Invalid chapter %d (only %d available)",
|
||||||
chapter, priv->tt_srpt->title[priv->title].nr_of_ptts);
|
chapter, priv->tt_srpt->title[priv->title].nr_of_ptts);
|
||||||
|
@ -699,10 +699,10 @@ _seek_chapter (DVDReadSrcPrivate * priv, int chapter)
|
||||||
chapter = priv->tt_srpt->title[priv->title].nr_of_ptts - 1;
|
chapter = priv->tt_srpt->title[priv->title].nr_of_ptts - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Determine which program chain we want to watch. This is based on the
|
* Determine which program chain we want to watch. This is based on the
|
||||||
* chapter number.
|
* chapter number.
|
||||||
*/
|
*/
|
||||||
priv->pgc_id = priv->vts_ptt_srpt->title[priv->ttn - 1].ptt[chapter].pgcn;
|
priv->pgc_id = priv->vts_ptt_srpt->title[priv->ttn - 1].ptt[chapter].pgcn;
|
||||||
priv->pgn = priv->vts_ptt_srpt->title[priv->ttn - 1].ptt[chapter].pgn;
|
priv->pgn = priv->vts_ptt_srpt->title[priv->ttn - 1].ptt[chapter].pgn;
|
||||||
priv->cur_pgc = priv->vts_file->vts_pgcit->pgci_srp[priv->pgc_id - 1].pgc;
|
priv->cur_pgc = priv->vts_file->vts_pgcit->pgci_srp[priv->pgc_id - 1].pgc;
|
||||||
|
@ -784,9 +784,9 @@ _read (DVDReadSrcPrivate * priv, int angle, int new_seek, GstBuffer * buf)
|
||||||
data = static_data;
|
data = static_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Playback by cell in this pgc, starting at the cell for our chapter.
|
* Playback by cell in this pgc, starting at the cell for our chapter.
|
||||||
*/
|
*/
|
||||||
if (new_seek)
|
if (new_seek)
|
||||||
priv->cur_cell = priv->start_cell;
|
priv->cur_cell = priv->start_cell;
|
||||||
|
|
||||||
|
@ -810,7 +810,7 @@ again:
|
||||||
/* calculate next cell */
|
/* calculate next cell */
|
||||||
priv->next_cell = get_next_cell_for (priv, priv->cur_cell);
|
priv->next_cell = get_next_cell_for (priv, priv->cur_cell);
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* We loop until we're out of this cell.
|
* We loop until we're out of this cell.
|
||||||
*/
|
*/
|
||||||
priv->cur_pack =
|
priv->cur_pack =
|
||||||
|
@ -824,9 +824,9 @@ again:
|
||||||
unsigned int next_vobu, next_ilvu_start, cur_output_size;
|
unsigned int next_vobu, next_ilvu_start, cur_output_size;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Read NAV packet.
|
* Read NAV packet.
|
||||||
*/
|
*/
|
||||||
nav_retry:
|
nav_retry:
|
||||||
|
|
||||||
len = DVDReadBlocks (priv->dvd_title, priv->cur_pack, 1, data);
|
len = DVDReadBlocks (priv->dvd_title, priv->cur_pack, 1, data);
|
||||||
|
@ -841,31 +841,31 @@ again:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Parse the contained dsi packet.
|
* Parse the contained dsi packet.
|
||||||
*/
|
*/
|
||||||
navRead_DSI (&dsi_pack, &(data[DSI_START_BYTE]));
|
navRead_DSI (&dsi_pack, &(data[DSI_START_BYTE]));
|
||||||
assert (priv->cur_pack == dsi_pack.dsi_gi.nv_pck_lbn);
|
assert (priv->cur_pack == dsi_pack.dsi_gi.nv_pck_lbn);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* Determine where we go next. These values are the ones we mostly
|
* Determine where we go next. These values are the ones we mostly
|
||||||
* care about.
|
* care about.
|
||||||
*/
|
*/
|
||||||
next_ilvu_start = priv->cur_pack + dsi_pack.sml_agli.data[angle].address;
|
next_ilvu_start = priv->cur_pack + dsi_pack.sml_agli.data[angle].address;
|
||||||
cur_output_size = dsi_pack.dsi_gi.vobu_ea;
|
cur_output_size = dsi_pack.dsi_gi.vobu_ea;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* If we're not at the end of this cell, we can determine the next
|
* If we're not at the end of this cell, we can determine the next
|
||||||
* VOBU to display using the VOBU_SRI information section of the
|
* VOBU to display using the VOBU_SRI information section of the
|
||||||
* DSI. Using this value correctly follows the current angle,
|
* DSI. Using this value correctly follows the current angle,
|
||||||
* avoiding the doubled scenes in The Matrix, and makes our life
|
* avoiding the doubled scenes in The Matrix, and makes our life
|
||||||
* really happy.
|
* really happy.
|
||||||
*
|
*
|
||||||
* Otherwise, we set our next address past the end of this cell to
|
* Otherwise, we set our next address past the end of this cell to
|
||||||
* force the code above to go to the next cell in the program.
|
* force the code above to go to the next cell in the program.
|
||||||
*/
|
*/
|
||||||
if (dsi_pack.vobu_sri.next_vobu != SRI_END_OF_CELL) {
|
if (dsi_pack.vobu_sri.next_vobu != SRI_END_OF_CELL) {
|
||||||
next_vobu = priv->cur_pack + (dsi_pack.vobu_sri.next_vobu & 0x7fffffff);
|
next_vobu = priv->cur_pack + (dsi_pack.vobu_sri.next_vobu & 0x7fffffff);
|
||||||
} else {
|
} else {
|
||||||
|
@ -876,9 +876,9 @@ again:
|
||||||
priv->cur_pack++;
|
priv->cur_pack++;
|
||||||
|
|
||||||
if (buf) {
|
if (buf) {
|
||||||
/**
|
/*
|
||||||
* Read in and output cursize packs.
|
* Read in and output cursize packs.
|
||||||
*/
|
*/
|
||||||
len =
|
len =
|
||||||
DVDReadBlocks (priv->dvd_title, priv->cur_pack, cur_output_size,
|
DVDReadBlocks (priv->dvd_title, priv->cur_pack, cur_output_size,
|
||||||
data);
|
data);
|
||||||
|
|
|
@ -174,7 +174,7 @@ mp3_type_frame_length_from_header (guint32 header, guint * put_layer,
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* The chance that random data is identified as a valid mp3 header is 63 / 2^18
|
* The chance that random data is identified as a valid mp3 header is 63 / 2^18
|
||||||
* (0.024%) per try. This makes the function for calculating false positives
|
* (0.024%) per try. This makes the function for calculating false positives
|
||||||
* 1 - (1 - ((63 / 2 ^18) ^ GST_MP3_TYPEFIND_MIN_HEADERS)) ^ buffersize)
|
* 1 - (1 - ((63 / 2 ^18) ^ GST_MP3_TYPEFIND_MIN_HEADERS)) ^ buffersize)
|
||||||
|
|
Loading…
Reference in a new issue