From 361829e7efe8742cc153eeb552232aa9b5a9596b Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Kempf <jb@videolan.org>
Date: Thu, 26 Feb 2015 20:55:34 +0100
Subject: [PATCH] Add avparser.h to prepare for submodulification

---
 modules/codec/avcodec/avcodec.c |  3 ++
 modules/packetizer/Makefile.am  |  1 +
 modules/packetizer/avparser.c   | 16 ++++-------
 modules/packetizer/avparser.h   | 51 +++++++++++++++++++++++++++++++++
 po/POTFILES.in                  |  2 +-
 5 files changed, 62 insertions(+), 11 deletions(-)
 create mode 100644 modules/packetizer/avparser.h

diff --git a/modules/codec/avcodec/avcodec.c b/modules/codec/avcodec/avcodec.c
index ed53cbd92a33..2251cda45fc8 100644
--- a/modules/codec/avcodec/avcodec.c
+++ b/modules/codec/avcodec/avcodec.c
@@ -70,6 +70,7 @@ static const char *const enc_hq_list_text[] = {
 #ifdef MERGE_FFMPEG
 # include "../../demux/avformat/avformat.h"
 # include "../../access/avio.h"
+# include "../../packetizer/avparser.h"
 #endif
 
 /*****************************************************************************
@@ -238,6 +239,8 @@ vlc_module_begin ()
 #   include "../../demux/avformat/avformat.c"
     add_submodule ()
         AVIO_MODULE
+    add_submodule ()
+        AVPARSER_MODULE
 #endif
 vlc_module_end ()
 
diff --git a/modules/packetizer/Makefile.am b/modules/packetizer/Makefile.am
index ce71ce2b264c..d67fc2113bd2 100644
--- a/modules/packetizer/Makefile.am
+++ b/modules/packetizer/Makefile.am
@@ -14,6 +14,7 @@ libpacketizer_flac_plugin_la_SOURCES = packetizer/flac.c
 libpacketizer_hevc_plugin_la_SOURCES = packetizer/hevc.c
 
 libpacketizer_avparser_plugin_la_SOURCES = packetizer/avparser.c \
+	packetizer/avparser.h \
 	codec/avcodec/avcommon.h \
 	codec/avcodec/avcodec.h \
 	codec/avcodec/fourcc.c
diff --git a/modules/packetizer/avparser.c b/modules/packetizer/avparser.c
index b6f41432ee4f..c5d2891f6a0e 100644
--- a/modules/packetizer/avparser.c
+++ b/modules/packetizer/avparser.c
@@ -37,19 +37,15 @@
 #include "../codec/avcodec/avcodec.h"
 #include "../codec/avcodec/avcommon.h"
 
+#include "avparser.h"
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
-static int  OpenPacketizer ( vlc_object_t * );
-static void ClosePacketizer( vlc_object_t * );
-
+#ifndef MERGE_FFMPEG
 vlc_module_begin ()
-    set_category( CAT_SOUT )
-    set_subcategory( SUBCAT_SOUT_PACKETIZER )
-    set_description( N_("avparser packetizer") )
-    set_capability( "packetizer", 1 )
-    set_callbacks( OpenPacketizer, ClosePacketizer )
+    AVPARSER_MODULE
 vlc_module_end ()
+#endif
 
 /*****************************************************************************
  * Local prototypes
@@ -69,7 +65,7 @@ static block_t * Packetize( decoder_t *, block_t ** );
  * Tries to launch a decoder and return score so that the interface is able
  * to choose.
  *****************************************************************************/
-static int OpenPacketizer( vlc_object_t *p_this )
+int OpenPacketizer( vlc_object_t *p_this )
 {
     decoder_t     *p_dec = (decoder_t*)p_this;
     decoder_sys_t *p_sys;
@@ -125,7 +121,7 @@ static int OpenPacketizer( vlc_object_t *p_this )
 /*****************************************************************************
  * ClosePacketizer:
  *****************************************************************************/
-static void ClosePacketizer( vlc_object_t *p_this )
+void ClosePacketizer( vlc_object_t *p_this )
 {
     decoder_t     *p_dec = (decoder_t*)p_this;
     avcodec_free_context( &p_dec->p_sys->p_codec_ctx );
diff --git a/modules/packetizer/avparser.h b/modules/packetizer/avparser.h
new file mode 100644
index 000000000000..dabbd7afbad8
--- /dev/null
+++ b/modules/packetizer/avparser.h
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * avparser.h
+ *****************************************************************************
+ * Copyright (C) 2015 VLC authors and VideoLAN
+ * $Id$
+ *
+ * Authors: Denis Charmet <typx@videolan.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Preamble
+ *****************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
+#include <vlc_plugin.h>
+#include <vlc_codec.h>
+#include <vlc_block.h>
+
+#include "../codec/avcodec/avcodec.h"
+#include "../codec/avcodec/avcommon.h"
+
+/*****************************************************************************
+ * Module descriptor
+ *****************************************************************************/
+int  OpenPacketizer ( vlc_object_t * );
+void ClosePacketizer( vlc_object_t * );
+
+#define AVPARSER_MODULE \
+    set_category( CAT_SOUT )                            \
+    set_subcategory( SUBCAT_SOUT_PACKETIZER )           \
+    set_description( N_("avparser packetizer") )        \
+    set_capability( "packetizer", 1 )                   \
+    set_callbacks( OpenPacketizer, ClosePacketizer )
diff --git a/po/POTFILES.in b/po/POTFILES.in
index b67934733898..0d93de1bfbd8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -998,7 +998,7 @@ modules/mux/ogg.c
 modules/mux/wav.c
 modules/notify/growl.m
 modules/notify/notify.c
-modules/packetizer/avparser.c
+modules/packetizer/avparser.h
 modules/packetizer/copy.c
 modules/packetizer/dirac.c
 modules/packetizer/flac.c
-- 
GitLab